openapi: 3.0.3 info: version: 0.0.0 title: Perun RPC API description: Perun Remote Procedure Calls Application Programming Interface contact: url: https://perun-aai.org email: perun@cesnet.cz servers: - url: 'https://{server}/{authentication}/rpc' description: Perun RPC server variables: server: default: api-dev.perun-aai.org description: DNS name of a Perun server authentication: default: ba description: | way of authentication: ba - HTTP Basic Auth krb - Kerberos non - no authentication cert - X509 client certificate oauth - OAuth 2.0 bearer access token fed - SAML federation enum: - ba - krb - non - cert - oauth - fed security: - BasicAuth: [ ] - BearerAuth: [ ] components: ############################################# # # # SECURITY SCHEMES - ways of authentication # # # ############################################# securitySchemes: BasicAuth: description: "HTTP Basic authentication with username and password" type: http scheme: basic BearerAuth: description: "OAuth2 Resource Server authentication using access token in 'Authorization: Bearer' HTTP header" type: http scheme: bearer ############################################# # # # SCHEMAS - data objects definitions # # # ############################################# schemas: RegistrarApplicationInput: title: RegistrarApplicationInput description: "input for registrar application endpoints" type: object required: - vo - attributes - oidcAttributes properties: vo: type: integer description: "ID of the Virtual Organization" group: type: integer description: "ID of the Group to add the member to (optional, null for VO applications)" nullable: true attributes: type: object additionalProperties: type: string description: "Map of the application attributes (key: attr name, value: attr value)" oidcAttributes: type: object additionalProperties: type: string description: "Map of OIDC attributes (must contain iss and sub claims)" PerunException: description: exception thrown from inside of Perun type: object properties: errorId: { type: string } name: { type: string } message: { type: string } CantBeApprovedException: description: thrown by Registrar modules when application shouldn't be approved allOf: - $ref: '#/components/schemas/PerunException' properties: affiliation: { type: string, nullable: true } applicationId: { type: number } category: { type: string, nullable: true } reason: { type: string, nullable: true } soft: { type: boolean } PerunBean: description: identifiable entity in Perun, common ancestor of all entity classes type: object properties: id: { type: integer } beanName: { type: string } required: - id - beanName discriminator: propertyName: beanName Auditable: description: represents audit information allOf: - $ref: '#/components/schemas/PerunBean' properties: createdAt: { type: string, nullable: true } createdBy: { type: string, nullable: true } modifiedAt: { type: string, nullable: true } modifiedBy: { type: string, nullable: true } createdByUid: { type: integer, nullable: true } modifiedByUid: { type: integer, nullable: true } User: description: represents user as a physical person allOf: - $ref: '#/components/schemas/Auditable' properties: firstName: { type: string, nullable: true } lastName: { type: string, nullable: true } middleName: { type: string, nullable: true } titleBefore: { type: string, nullable: true } titleAfter: { type: string, nullable: true } serviceUser: { type: boolean } sponsoredUser: { type: boolean } uuid: { type: string, format: uuid } specificUser: { type: boolean } majorSpecificType: { type: string } RichUser: description: user data packed together with all user attributes and UserExtSources allOf: - $ref: '#/components/schemas/User' properties: userExtSources: { type: array, items: { $ref: '#/components/schemas/UserExtSource' }, nullable: true } userAttributes: { type: array, items: { $ref: '#/components/schemas/Attribute' }, nullable: true } required: - userExtSources - userAttributes PaginatedRichUsers: description: represents Paginated<RichUser> properties: offset: { type: integer } pageSize: { type: integer } totalCount: { type: integer } data: { type: array, items: { $ref: '#/components/schemas/RichUser' } } required: - offset - pageSize - totalCount - data Sponsor: description: represents a Sponsor for some specific member type: object properties: user: { $ref: '#/components/schemas/User' } userExtSources: { type: array, items: { $ref: '#/components/schemas/UserExtSource' } } userAttributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } validityTo: { type: string, description: 'Date in format yyyy-MM-dd}' } active: { type: boolean } required: - user - userExtSources - userAttributes - validityTo - active Member: description: represents Member of a Virtual Organization allOf: - $ref: '#/components/schemas/Auditable' properties: userId: { type: integer } voId: { type: integer } status: { type: string } membershipType: { type: string } dualMembership: { type: boolean } sourceGroupId: { type: integer, nullable: true } sponsored: { type: boolean } groupStatus: { type: string } groupStatuses: { type: object, additionalProperties: { type: string } } AssignedMember: description: represents a member of a group assigned to a resource type: object properties: richMember: { $ref: '#/components/schemas/RichMember' } status: { $ref: '#/components/schemas/GroupResourceStatus' } RichMember: description: Member data packed with member and user attributes, User and UserExtSources allOf: - $ref: '#/components/schemas/Member' properties: user: { $ref: '#/components/schemas/User' } userExtSources: { type: array, items: { $ref: '#/components/schemas/UserExtSource' }, nullable: true } userAttributes: { type: array, items: { $ref: '#/components/schemas/Attribute' }, nullable: true } memberAttributes: { type: array, items: { $ref: '#/components/schemas/Attribute' }, nullable: true } required: - user - userExtSources PaginatedRichMembers: properties: offset: { type: integer } pageSize: { type: integer } totalCount: { type: integer } data: { type: array, items: { $ref: '#/components/schemas/RichMember' } } required: - offset - pageSize - totalCount - data GraphFileFormat: type: string enum: - DOT - TGF description: "currently supported formats are DOT and TGF" GraphDTO: properties: graph: type: string format: $ref: '#/components/schemas/GraphFileFormat' SortingOrder: type: string enum: - ASCENDING - DESCENDING MembersOrderColumn: type: string enum: - ID - NAME - EMAIL - GROUP_STATUS - STATUS - ORGANIZATION MemberGroupStatus: type: string description: 'statuses of a member in a group' enum: - VALID - EXPIRED MembersPageQuery: properties: pageSize: { type: integer } offset: { type: integer } order: { $ref: '#/components/schemas/SortingOrder' } sortColumn: { $ref: '#/components/schemas/MembersOrderColumn' } searchString: { type: string } statuses: { type: array, items: { $ref: '#/components/schemas/VoMemberStatuses' } } groupId: { type: integer } groupStatuses: { type: array, items: { $ref: '#/components/schemas/MemberGroupStatus' } } required: - pageSize - offset - order - sortColumn UsersOrderColumn: type: string enum: - ID - NAME UsersPageQuery: properties: pageSize: { type: integer } offset: { type: integer } order: { $ref: '#/components/schemas/SortingOrder' } sortColumn: { $ref: '#/components/schemas/UsersOrderColumn' } searchString: { type: string } withoutVo: { type: boolean } facilityId: { type: integer } voId: { type: integer } serviceId: { type: integer } resourceId: { type: integer } onlyAllowed: { type: boolean } consentStatuses: { type: array, items: { $ref: '#/components/schemas/ConsentStatus' } } required: - pageSize - offset - order - sortColumn BlockedLogin: description: represent a login block for namespace (or globally) properties: id: { type: integer } login: { type: string } namespace: { type: string } PaginatedBlockedLogins: properties: offset: { type: integer } pageSize: { type: integer } totalCount: { type: integer } data: { type: array, items: { $ref: '#/components/schemas/BlockedLogin' } } required: - offset - pageSize - totalCount - data BlockedLoginsOrderColumn: type: string enum: - LOGIN - NAMESPACE BlockedLoginsPageQuery: properties: pageSize: { type: integer } offset: { type: integer } order: { $ref: '#/components/schemas/SortingOrder' } sortColumn: { $ref: '#/components/schemas/BlockedLoginsOrderColumn' } namespaces: { type: array, items: { type: string } } searchString: { type: string } required: - pageSize - offset - order - sortColumn UserExtSource: description: represents specific user authentication or identification in external source of data allOf: - $ref: '#/components/schemas/Auditable' properties: login: { type: string } userId: { type: integer } loa: { type: integer } persistent: { type: boolean } lastAccess: { type: string, format: timestamp, description: 'SQL timestamp', example: '2012-01-01 00:00:00.100000' } extSource: { $ref: '#/components/schemas/ExtSource' } required: - login - extSource ExtSource: description: represents external source of data for users such as an IdP or an HR database allOf: - $ref: '#/components/schemas/Auditable' properties: name: { type: string } type: { type: string } EnrichedExtSource: properties: extSource: { $ref: '#/components/schemas/ExtSource' } attributes: { type: object, additionalProperties: { type: string } } AttributeDefinition: allOf: - $ref: '#/components/schemas/Auditable' properties: friendlyName: { type: string } namespace: { type: string } description: { type: string, nullable: true } type: { type: string } displayName: { type: string } writable: { type: boolean } unique: { type: boolean } friendlyNameParameter: { type: string, readOnly: true } baseFriendlyName: { type: string, readOnly: true } entity: { type: string, readOnly: true } Attribute: allOf: - $ref: '#/components/schemas/AttributeDefinition' properties: valueCreatedAt: { type: string, nullable: true } valueCreatedBy: { type: string, nullable: true } valueModifiedAt: { type: string, nullable: true } valueModifiedBy: { type: string, nullable: true } value: { nullable: true } AttributeRules: type: object properties: attributePolicyCollections: type: array items: $ref: '#/components/schemas/AttributePolicyCollection' criticalActions: type: object description: "Represents types of actions (READ, WRITE) that users can perform upon attributes and if they are critical globally or not." additionalProperties: type: boolean example: { READ: false, WRITE: true, } AuditEvent: type: object properties: attribute: { $ref: '#/components/schemas/AttributeDefinition' } extSource: { $ref: '#/components/schemas/ExtSource' } source: { $ref: '#/components/schemas/ExtSource' } facility: { $ref: '#/components/schemas/Facility' } group: { $ref: '#/components/schemas/Group' } parentGroup: { $ref: '#/components/schemas/Group' } member: { $ref: '#/components/schemas/Member' } resource: { $ref: '#/components/schemas/Resource' } service: { $ref: '#/components/schemas/Service' } user: { $ref: '#/components/schemas/User' } userExtSource: { $ref: '#/components/schemas/UserExtSource' } vo: { $ref: '#/components/schemas/Vo' } name: { type: string } message: { type: string } AuditMessage: type: object properties: event: { $ref: '#/components/schemas/AuditEvent' } id: { type: integer } actor: { type: string } createdAt: { type: string } createdByUid: { type: integer } PaginatedAuditMessages: properties: offset: { type: integer } pageSize: { type: integer } totalCount: { type: integer } data: { type: array, items: { $ref: '#/components/schemas/AuditMessage' } } required: - offset - pageSize - totalCount - data AuditMessagesPageQuery: properties: pageSize: { type: integer } offset: { type: integer } order: { $ref: '#/components/schemas/SortingOrder' } selectedEvents: { type: array, items: { type: string } } required: - pageSize - offset - order - selectedEvents AttributeAction: type: string description: "Represents types of actions that users can perform upon attributes." enum: - "WRITE" - "READ" RoleObject: type: string description: "Represents objects, upon which Perun roles can be set, e.g. role RESOURCEADMIN can be set upon Resource, Vo, Facility or no object (None)." enum: - "None" - "Group" - "Vo" - "Facility" - "Resource" - "User" - "Member" AttributePolicy: type: object required: - id - role - object - policyCollectionId properties: id: { type: integer } role: { type: string } object: { $ref: '#/components/schemas/RoleObject' } policyCollectionId: { type: integer } AttributePolicyCollection: type: object required: - id - attributeId - action - policies properties: id: { type: integer } attributeId: { type: integer } action: { $ref: '#/components/schemas/AttributeAction' } policies: type: array items: $ref: '#/components/schemas/AttributePolicy' Facility: allOf: - $ref: '#/components/schemas/Auditable' properties: name: { type: string } description: { type: string, nullable: true } uuid: { type: string, format: uuid } RichFacility: allOf: - $ref: '#/components/schemas/Facility' properties: facilityOwners: { type: array, items: { $ref: '#/components/schemas/Owner' } } required: - facilityOwners FacilityWithAttributes: type: object properties: facility: { $ref: '#/components/schemas/Facility' } attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } required: - facility - attributes Host: allOf: - $ref: '#/components/schemas/Auditable' properties: hostname: { type: string } EnrichedResource: type: object properties: resource: { $ref: '#/components/schemas/Resource' } attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } EnrichedGroup: type: object properties: group: { $ref: '#/components/schemas/Group' } attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } GroupResourceStatus: type: string description: 'status of the group-resource assignment' enum: - ACTIVE - INACTIVE - FAILED - PROCESSING AssignedResource: type: object properties: enrichedResource: { $ref: '#/components/schemas/EnrichedResource' } status: { $ref: '#/components/schemas/GroupResourceStatus' } sourceGroupId: { type: integer } failureCause: { type: string } facility: { $ref: '#/components/schemas/Facility' } resourceTags: { type: array, items: { $ref: '#/components/schemas/ResourceTag' } } autoAssignSubgroups: { type: boolean } AssignedGroup: type: object properties: enrichedGroup: { $ref: '#/components/schemas/EnrichedGroup' } status: { $ref: '#/components/schemas/GroupResourceStatus' } sourceGroupId: { type: integer } failureCause: { type: string } autoAssignSubgroups: { type: boolean } EnrichedHost: type: object properties: host: { $ref: '#/components/schemas/Host' } hostAttributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } EnrichedFacility: type: object properties: facility: { $ref: '#/components/schemas/Facility' } owners: { type: array, items: { $ref: '#/components/schemas/Owner' } } destinations: { type: array, items: { $ref: '#/components/schemas/Destination' } } hosts: { type: array, items: { $ref: '#/components/schemas/Host' } } EnrichedVo: type: object properties: vo: { $ref: '#/components/schemas/Vo' } memberVos: { type: array, items: { $ref: '#/components/schemas/Vo' } } parentVos: { type: array, items: { $ref: '#/components/schemas/Vo' } } ConsentHub: allOf: - $ref: '#/components/schemas/Auditable' properties: name: { type: string } enforceConsents: { type: boolean } facilities: { type: array, items: { $ref: '#/components/schemas/Facility' }, nullable: true } required: - name - enforceConsents - facilities PublicationSystem: allOf: - $ref: '#/components/schemas/PerunBean' properties: friendlyName: { type: string } url: { type: string } username: { type: string } password: { type: string } loginNamespace: { type: string } type: { type: string } Publication: allOf: - $ref: '#/components/schemas/PerunBean' properties: authors: { type: array, items: { $ref: '#/components/schemas/Author' } } externalId: { type: integer } publicationSystemId: { type: integer } title: { type: string } year: { type: integer } main: { type: string } isbn: { type: string } doi: { type: string } categoryId: { type: integer } rank: { type: number, format: double } locked: { type: boolean } createdBy: { type: string } createdByUid: { type: integer } createdDate: { type: string, format: date } PublicationForGUI: allOf: - $ref: '#/components/schemas/Publication' properties: pubSystemName: { type: string } categoryName: { type: string } thanks: { type: array, items: { $ref: '#/components/schemas/ThanksForGUI' } } Category: allOf: - $ref: '#/components/schemas/PerunBean' properties: name: { type: string } rank: { type: number, format: double } Thanks: allOf: - $ref: '#/components/schemas/PerunBean' properties: publicationId: { type: integer } ownerId: { type: integer } createdBy: { type: string } createdByUid: { type: integer } createdDate: { type: string, format: date } ThanksForGUI: allOf: - $ref: '#/components/schemas/Thanks' properties: ownerName: { type: string } Authorship: allOf: - $ref: '#/components/schemas/PerunBean' properties: publicationId: { type: integer } userId: { type: integer } createdBy: { type: string } createdDate: { type: string, format: date } createdByUid: { type: integer } Author: allOf: - $ref: '#/components/schemas/PerunBean' properties: firstName: { type: string } lastName: { type: string } middleName: { type: string } titleBefore: { type: string } titleAfter: { type: string } attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } authorships: { type: array, items: { $ref: '#/components/schemas/Authorship' } } OwnerType: description: "enumeration of types of Owners" type: string enum: - technical - administrative Owner: allOf: - $ref: '#/components/schemas/Auditable' properties: name: { type: string } contact: { type: string } type: { $ref: '#/components/schemas/OwnerType' } PerunPolicy: type: object properties: policyName: { type: string } includePolicies: { type: array, items: { type: string } } perunRoles: type: array items: type: object additionalProperties: type: string required: - policyName - includePolicies - perunRoles RoleManagementRules: type: object properties: roleName: { type: string } primaryObject: { type: string, nullable: true } privilegedRolesToManage: type: array items: type: object additionalProperties: type: string nullable: true privilegedRolesToRead: type: array items: type: object additionalProperties: type: string nullable: true entitiesToManage: type: object additionalProperties: type: string assignedObjects: type: object additionalProperties: type: string assignableToAttributes: { type: boolean } skipMFA: { type: boolean } displayName: { type: string } required: - roleName - primaryObject - privilegedRolesToManage - privilegedRolesToRead - entitiesToManage - assignedObjects - assignableToAttributes - skipMFA - displayName NamespaceRules: type: object properties: defaultEmail: { type: string } csvGenHeader: { type: string } csvGenPlaceholder: { type: string } csvGenHeaderDescription: { type: string } namespaceName: { type: string } requiredAttributes: type: array items: type: string optionalAttributes: type: array items: type: string required: - namespaceName Group: allOf: - $ref: '#/components/schemas/Auditable' type: object nullable: true properties: name: { type: string } shortName: { type: string } description: { type: string, nullable: true } voId: { type: integer } parentGroupId: { type: integer, nullable: true } uuid: { type: string, format: uuid } RichGroup: allOf: - $ref: '#/components/schemas/Group' properties: attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } PaginatedRichGroups: properties: offset: { type: integer } pageSize: { type: integer } totalCount: { type: integer } data: { type: array, items: { $ref: '#/components/schemas/RichGroup' } } required: - offset - pageSize - totalCount - data GroupsOrderColumn: type: string enum: - ID - NAME - DESCRIPTION GroupsPageQuery: properties: pageSize: { type: integer } offset: { type: integer } order: { $ref: '#/components/schemas/SortingOrder' } sortColumn: { $ref: '#/components/schemas/GroupsOrderColumn' } memberId: { type: integer } searchString: { type: string } roles: { type: array, items: { $ref: '#/components/schemas/GroupAdminRoles' } } types: { type: array, items: { $ref: '#/components/schemas/RoleAssignmentType' } } required: - pageSize - offset - order - sortColumn RoleAssignmentType: type: string description: 'type of role assignment' enum: - DIRECT - INDIRECT ConsentStatus: type: string description: 'statuses of consents' enum: - UNSIGNED - GRANTED - REVOKED Consent: allOf: - $ref: '#/components/schemas/Auditable' properties: userId: { type: integer } status: { $ref: '#/components/schemas/ConsentStatus' } consentHub: { $ref: '#/components/schemas/ConsentHub' } attributes: { type: array, items: { $ref: '#/components/schemas/AttributeDefinition' } } Resource: allOf: - $ref: '#/components/schemas/Auditable' properties: name: { type: string } description: { type: string } voId: { type: integer } facilityId: { type: integer } uuid: { type: string, format: uuid } RichResource: allOf: - $ref: '#/components/schemas/Resource' properties: vo: { $ref: '#/components/schemas/Vo' } facility: { $ref: '#/components/schemas/Facility' } resourceTags: { type: array, items: { $ref: '#/components/schemas/ResourceTag' } } ResourceTag: allOf: - $ref: '#/components/schemas/Auditable' properties: tagName: { type: string } voId: { type: integer } Vo: allOf: - $ref: '#/components/schemas/Auditable' properties: name: { type: string } shortName: { type: string } uuid: { type: string, format: uuid } VoAdminRoles: type: string description: 'admin roles for a Vo' enum: - "VOOBSERVER" - "TOPGROUPCREATOR" - "VOADMIN" GroupAdminRoles: type: string description: 'admin roles for a group' enum: - "GROUPOBSERVER" - "GROUPMEMBERSHIPMANAGER" - "GROUPADMIN" - "GROUPCREATOR" VoMemberStatuses: type: string description: 'statuses of a member in a Vo' enum: - VALID - INVALID - EXPIRED - DISABLED Service: allOf: - $ref: '#/components/schemas/Auditable' properties: name: { type: string } description: { type: string } delay: { type: integer } recurrence: { type: integer } enabled: { type: boolean } script: { type: string } useExpiredMembers: { type: boolean } useExpiredVoMembers: { type: boolean } useBannedMembers: { type: boolean } DestinationType: type: string description: 'type of destination, i.e. way of delivery of service settings' enum: - "host" - "url" - "user@host" - "user@host:port" - "service-specific" - "user@host-windows" - "host-windows-proxy" - "s3" - "s3-json" - "url-json" DestinationPropagationType: type: string description: 'type of propagation of service settings to a destination' enum: [ 'PARALLEL', 'SERIAL', 'DUMMY' ] Destination: allOf: - $ref: '#/components/schemas/Auditable' properties: destination: { type: string } type: { $ref: '#/components/schemas/DestinationType' } propagationType: { $ref: '#/components/schemas/DestinationPropagationType' } RichDestination: allOf: - $ref: '#/components/schemas/Destination' properties: blocked: { type: boolean } service: { $ref: '#/components/schemas/Service' } facility: { $ref: '#/components/schemas/Facility' } lastSuccessfulPropagation: { type: string } lastAttemptedPropagation: { type: string } ApplicationForm: type: object properties: id: { type: integer } vo: { $ref: '#/components/schemas/Vo' } group: { $ref: '#/components/schemas/Group' } automaticApproval: { type: boolean } automaticApprovalExtension: { type: boolean } automaticApprovalEmbedded: { type: boolean } moduleClassNames: type: array items: type: string Type: type: string description: 'type of application form items' enum: - HTML_COMMENT - SUBMIT_BUTTON - AUTO_SUBMIT_BUTTON - PASSWORD - VALIDATED_EMAIL - TEXTFIELD - TEXTAREA - CHECKBOX - RADIO - SELECTIONBOX - COMBOBOX - USERNAME - HEADING - TIMEZONE - EMBEDDED_GROUP_APPLICATION - LIST_INPUT_BOX - MAP_INPUT_BOX ItemTexts: type: object properties: locale: { type: string } label: { type: string, nullable: true } options: { type: string, nullable: true } help: { type: string, nullable: true } errorMessage: { type: string, nullable: true } ApplicationFormItem: type: object properties: id: { type: integer } shortname: { type: string } required: { type: boolean } updatable: { type: boolean } type: { $ref: '#/components/schemas/Type' } federationAttribute: { type: string, nullable: true } perunSourceAttribute: { type: string, nullable: true } perunDestinationAttribute: { type: string, nullable: true } regex: { type: string, nullable: true } applicationTypes: type: array items: $ref: '#/components/schemas/AppType' ordnum: { type: integer } i18n: type: object additionalProperties: { $ref: '#/components/schemas/ItemTexts' } hiddenDependencyItemId: { type: integer, nullable: true } disabledDependencyItemId: { type: integer, nullable: true } hidden: { type: string, enum: [ 'NEVER', 'ALWAYS', 'IF_PREFILLED', 'IF_EMPTY' ] } disabled: { type: string, enum: [ 'NEVER', 'ALWAYS', 'IF_PREFILLED', 'IF_EMPTY' ] } forDelete: { type: boolean } ApplicationFormItemData: type: object properties: id: { type: integer } formItem: { $ref: '#/components/schemas/ApplicationFormItem' } shortname: { type: string } value: { type: string } assuranceLevel: { type: string } prefilledValue: { type: string } AppType: type: string enum: - INITIAL - EXTENSION - EMBEDDED AppState: type: string enum: - NEW - VERIFIED - APPROVED - REJECTED Application: type: object properties: id: { type: integer } vo: { $ref: '#/components/schemas/Vo' } group: { $ref: '#/components/schemas/Group' } type: { $ref: '#/components/schemas/AppType' } fedInfo: { type: string } state: { $ref: '#/components/schemas/AppState' } extSourceName: { type: string } extSourceType: { type: string } extSourceLoa: { type: integer } user: { $ref: '#/components/schemas/User' } createdBy: { type: string } createdAt: { type: string } createdByUid : { type: integer, nullable: true } modifiedBy: { type: string } modifiedAt: { type: string } modifiedByUid: { type: integer, nullable: true } modifiedByDisplayName: { type: string, nullable: true } autoApproveError: { type: string } RichApplication: allOf: - $ref: '#/components/schemas/Application' properties: formData: { type: array, items: { $ref: '#/components/schemas/ApplicationFormItemData' } } required: - formData PaginatedRichApplications: properties: offset: { type: integer } pageSize: { type: integer } totalCount: { type: integer } data: { type: array, items: { $ref: '#/components/schemas/RichApplication' } } required: - offset - pageSize - totalCount - data ApplicationsPageQuery: properties: pageSize: { type: integer } offset: { type: integer } order: { $ref: '#/components/schemas/SortingOrder' } sortColumn: { $ref: '#/components/schemas/ApplicationsOrderColumn' } searchString: { type: string } includeGroupApplications: { type: boolean } includeSubGroupApplications: { type: boolean } getDetails: { type: boolean } states: { type: array, items: { $ref: '#/components/schemas/AppState' } } dateFrom: { type: string, format: date } dateTo: { type: string, format: date } userId: { type: integer } groupId: { type: integer } required: - pageSize - offset - order - sortColumn ApplicationsOrderColumn: type: string enum: - ID - DATE_CREATED - TYPE - STATE - SUBMITTER - GROUP_NAME - MODIFIED_BY MailType: type: string enum: - APP_CREATED_USER - APPROVABLE_GROUP_APP_USER - APP_CREATED_VO_ADMIN - MAIL_VALIDATION - APP_APPROVED_USER - APP_REJECTED_USER - APP_ERROR_VO_ADMIN - APP_CHANGES_REQUESTED - USER_INVITE - USER_PRE_APPROVED_INVITE InvitationStatus: type: string enum: - PENDING - ACCEPTED - EXPIRED - REVOKED - UNSENT Invitation: type: object allOf: - $ref: '#/components/schemas/Auditable' properties: voId: { type: integer } groupId: { type: integer } applicationId: { type: integer, nullable: true } senderId: { type: integer } receiverName: { type: string } receiverEmail: { type: string, format: email } redirectUrl: { type: string, nullable: true } token: { type: string, format: uuid, nullable: true } language: { type: string } expiration: { type: string } status: { $ref: '#/components/schemas/InvitationStatus' } InvitationWithSender: type: object allOf: - $ref: '#/components/schemas/Invitation' properties: senderName: { type: string } senderEmail: { type: string, format: email } PaginatedInvitationsWithSender: properties: offset: { type: integer } pageSize: { type: integer } totalCount: { type: integer } data: { type: array, items: { $ref: '#/components/schemas/InvitationWithSender' } } required: - offset - pageSize - totalCount - data InvitationsOrderColumn: type: string enum: - ID - STATUS - EXPIRATION - RECEIVER_NAME - RECEIVER_EMAIL - SENDER_NAME InvitationsPageQuery: properties: pageSize: { type: integer } offset: { type: integer } order: { $ref: '#/components/schemas/SortingOrder' } sortColumn: { $ref: '#/components/schemas/InvitationsOrderColumn' } searchString: { type: string } statuses: { type: array, items: { $ref: '#/components/schemas/InvitationStatus' } } expirationFrom: { type: string, format: date } expirationTo: { type: string, format: date } required: - pageSize - offset - order - sortColumn PerunPrincipal: type: object required: - userId - user properties: actor: { type: string } extSourceName: { type: string } extSourceType: { type: string } extSourceLoa: { type: integer } user: { $ref: "#/components/schemas/User" } authzInitialized: { type: boolean } additionalInformations: type: object additionalProperties: { type: string } userId: { type: integer } # Map>> roles: type: object additionalProperties: type: object additionalProperties: type: array items: type: integer Ban: allOf: - $ref: '#/components/schemas/Auditable' properties: validityTo: { type: string } description: { type: string } BanOnResource: allOf: - $ref: '#/components/schemas/Ban' properties: memberId: { type: integer } resourceId: { type: integer } BanOnVo: allOf: - $ref: '#/components/schemas/Ban' properties: memberId: { type: integer } voId: { type: integer } EnrichedBanOnVo: type: object properties: vo: { $ref: '#/components/schemas/Vo' } member: { $ref: '#/components/schemas/RichMember' } ban: { $ref: '#/components/schemas/BanOnVo' } BanOnFacility: allOf: - $ref: '#/components/schemas/Ban' properties: userId: { type: integer } facilityId: { type: integer } EnrichedBanOnResource: type: object properties: resource: { $ref: '#/components/schemas/Resource' } member: { $ref: '#/components/schemas/RichMember' } ban: { $ref: '#/components/schemas/BanOnResource' } EnrichedBanOnFacility: type: object properties: facility: { $ref: '#/components/schemas/Facility' } user: { $ref: '#/components/schemas/RichUser' } ban: { $ref: '#/components/schemas/BanOnFacility' } RichUserExtSource: properties: userExtSource: { $ref: '#/components/schemas/UserExtSource' } attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' }, nullable: false } required: - userExtSource - attributes Candidate: allOf: - $ref: '#/components/schemas/User' properties: userExtSource: { $ref: '#/components/schemas/UserExtSource' } additionalUserExtSources: { type: array, items: { $ref: '#/components/schemas/UserExtSource' } } attributes: { type: object, additionalProperties: { type: string } } expectedSyncGroupStatus: { type: string } MemberCandidate: type: object properties: candidate: { $ref: '#/components/schemas/Candidate' } member: { $ref: '#/components/schemas/Member' } richUser: { $ref: '#/components/schemas/RichUser' } ServiceForGUI: allOf: - $ref: '#/components/schemas/Service' properties: allowedOnFacility: { type: boolean } GenDataNode: type: object properties: children: type: object additionalProperties: $ref: '#/components/schemas/GenDataNode' members: type: object additionalProperties: type: integer HashedGenData: type: object properties: attributes: type: object additionalProperties: type: array items: { $ref: '#/components/schemas/Attribute' } hierarchy: type: object additionalProperties: $ref: '#/components/schemas/GenDataNode' IdmObject: type: object properties: idmObjectType: type: string objectId: type: string required: - idmObjectType - objectId TaskStatus: type: string enum: - WAITING - PLANNED - GENERATING - GENERROR - GENERATED - SENDING - DONE - SENDERROR - ERROR - WARNING Task: type: object properties: id: { type: integer } delay: { type: integer } recurrence: { type: integer } startTime: { type: string } sentToEngine: { type: string } sendStartTime: { type: string } schedule: { type: string } genStartTime: { type: string } genEndTime: { type: string } sendEndTime: { type: string } endTime: { type: string } service: { $ref: '#/components/schemas/Service' } facility: { $ref: '#/components/schemas/Facility' } destinations: { type: array, items: { $ref: '#/components/schemas/Destination' } } status: { $ref: '#/components/schemas/TaskStatus' } sourceUpdated: { type: boolean } propagationForced: { type: boolean } TaskResultStatus: type: string enum: - DONE - ERROR - DENIED - WARNING TaskResult: allOf: - $ref: '#/components/schemas/PerunBean' properties: taskId: { type: integer } taskRunId: { type: integer } destinationId: { type: integer } errorMessage: { type: string } standardMessage: { type: string } returnCode: { type: integer } timestamp: { type: string } status: { $ref: '#/components/schemas/TaskResultStatus' } destination: { $ref: '#/components/schemas/Destination' } service: { $ref: '#/components/schemas/Service' } FacilityPropagationState: type: string enum: - OK - ERROR - PROCESSING - NOT_DETERMINED FacilityState: type: object properties: facility: { $ref: '#/components/schemas/Facility' } state: { $ref: '#/components/schemas/FacilityPropagationState' } results: type: object additionalProperties: { $ref: '#/components/schemas/FacilityPropagationState' } ResourceState: type: object properties: resource: { $ref: '#/components/schemas/Resource' } taskList: { type: array, items: { $ref: '#/components/schemas/Task' } } ServiceState: type: object properties: service: { $ref: '#/components/schemas/Service' } facility: { $ref: '#/components/schemas/Facility' } task: { $ref: '#/components/schemas/Task' } status: { type: string } blockedOnFacility: { type: boolean } blockedGlobally: { type: boolean, readOnly: true } hasDestinations: { type: boolean } MailText: type: object properties: locale: { type: string } htmlFormat: { type: boolean } subject: { type: string } text: { type: string } ApplicationMail: type: object properties: id: { type: integer } appType: { $ref: '#/components/schemas/AppType' } formId: { type: integer } mailType: { $ref: '#/components/schemas/MailType' } send: { type: boolean } message: type: object additionalProperties: { $ref: '#/components/schemas/MailText' } htmlMessage: type: object additionalProperties: { $ref: '#/components/schemas/MailText' } #Map>> AuthzRoles: type: object additionalProperties: type: object additionalProperties: type: array items: type: integer MemberWithSponsors: type: object properties: member: { $ref: '#/components/schemas/RichMember' } sponsors: { type: array, items: { $ref: '#/components/schemas/Sponsor' } } RTMessage: type: object properties: memberPreferredEmail: { type: string } ticketNumber: { type: integer } EntitylessAttributesByKeys: type: object additionalProperties: $ref: '#/components/schemas/Attribute' SponsoredUserData: type: object properties: guestName: { type: string } firstName: { type: string } lastName: { type: string } titleBefore: { type: string } titleAfter: { type: string } namespace: { type: string } email: { type: string } password: { type: string } login: { type: string } NewApps: type: object properties: api: { type: string } admin: { type: string } consolidator: { type: string } linker: { type: string } profile: { type: string } pwdReset: { type: string } publications: { type: string } Brand: type: object properties: name: { type: string } oldGuiDomain: { type: string } newApps: { $ref: '#/components/schemas/NewApps' } vos: { type: array, items: { type: string } } oldGuiAlert: { type: string } PerunAppsConfig: type: object properties: brands: { type: array, items: { $ref: '#/components/schemas/Brand' } } GroupMemberRelation: type: object properties: m: { type: integer, description: "member id" } u: { type: integer, description: "user_id" } g: { type: integer, description: "group id" } sg: { type: integer, description: "source group id" } gn: { type: string, description: "group_name" } pg: { type: integer, description: "parent_group_id" } s: { type: string, description: "source group status" } t: { type: string, description: "membership type" } GroupMemberData: type: object properties: relations: { type: array, items: { $ref: '#/components/schemas/GroupMemberRelation' } } groupMemberAttributes: type: object additionalProperties: type: object additionalProperties: type: array items: { $ref: '#/components/schemas/Attribute' } Identity: type: object properties: id: { type: integer } name: { type: string } organization: { type: string } email: { type: string } identities: { type: array, items: { $ref: '#/components/schemas/ExtSource' } } EnrichedIdentity: type: object properties: id: { type: integer } name: { type: string } organization: { type: string } email: { type: string } identities: { type: array, items: { $ref: '#/components/schemas/EnrichedExtSource' } } ApplicationOperationResult: type: object properties: applicationId: { type: integer } error: { $ref: "#/components/schemas/PerunException" } PersonalDataChangeConfig: description: represents personal data change config type: object properties: enableLinkedName: { type: boolean } enableCustomName: { type: boolean } customNameRequiresApprove: { type: boolean } enableLinkedOrganization: { type: boolean } enableCustomOrganization: { type: boolean } customOrganizationRequiresApprove: { type: boolean } enableLinkedEmail: { type: boolean } enableCustomEmail: { type: boolean } customEmailRequiresVerification: { type: boolean } required: - enableLinkedName - enableCustomName - customNameRequiresApprove - enableLinkedOrganization - enableCustomOrganization - customOrganizationRequiresApprove - enableLinkedEmail - enableCustomEmail - customEmailRequiresVerification PerunNotifTemplate: description: Represents template for message sent to receivers type: object properties: id: { type: integer } name: { type: string, nullable: true } matchingRegexs: { type: array, items: { $ref: "#/components/schemas/PerunNotifRegex" } } receivers: { type: array, items: { $ref: "#/components/schemas/PerunNotifReceiver" } } primaryProperties: { type: object, additionalProperties: { type: array, items: { type: string } } } notifyTrigger: { type: string } perunNotifTemplateMessages: { type: array, items: { $ref: "#/components/schemas/PerunNotifTemplateMessage" } } oldestMessageTime: { type: integer, format: int64, nullable: true } youngestMessageTime: { type: integer, format: int64, nullable: true } sender: { type: string, nullable: true } replyTo: { type: string, nullable: true } PerunNotifRegex: description: Holds a regex definition used to recognize type of message type: object properties: id: { type: integer } regex: { type: string } note: { type: string, nullable: true } objects: { type: array, items: { $ref: "#/components/schemas/PerunNotifObject" } } PerunNotifReceiver: description: Represents one receiver of message, is defined in template type: object properties: id: { type: integer } target: { type: string } typeOfReceiver: { type: string } templateId: { type: integer } locale: { type: string, nullable: true } PerunNotifTemplateMessage: description: Localized freemarker template type: object properties: id: { type: integer } templateId: { type: integer } locale: { type: string } message: { type: string, nullable: true } subject: { type: string } PerunNotifObject: type: object properties: id: { type: integer } name: { type: string } properties: { type: array, items: { type: string } } objectClass: { type: string } ################################################# # # # RESPONSES - type definitions of return values # # # ################################################# responses: ExceptionResponse: description: exception occurred content: application/json: schema: $ref: "#/components/schemas/PerunException" CantBeApprovedExceptionResponse: description: exception occurred content: application/json: schema: $ref: "#/components/schemas/CantBeApprovedException" VoidResponse: description: "returns nothing" IntegerResponse: description: "returns Integer" content: application/json: schema: type: integer DoubleResponse: description: "returns Double" content: application/json: schema: type: number format: double LongResponse: description: "returns Long" content: application/json: schema: type: integer format: int64 BooleanResponse: description: "returns Boolean" content: application/json: schema: type: boolean StringResponse: description: "returns String" content: application/json: schema: type: string ListOfStringsResponse: description: "returns List" content: application/json: schema: type: array items: type: string ListOfMemberWithSponsorsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/MemberWithSponsors" MapStringStringResponse: description: "returns Map" content: application/json: schema: type: object additionalProperties: type: string MapStringIntegerResponse: description: "returns Map" content: application/json: schema: type: object additionalProperties: type: integer MapStringListOfPerunBeanResponse: description: "returns Map>" content: application/json: schema: type: object additionalProperties: type: array items: $ref: "#/components/schemas/PerunBean" ListOfMapStringStringResponse: description: "returns List>" content: application/json: schema: type: array items: type: object additionalProperties: type: string UserResponse: description: returns User content: application/json: schema: $ref: "#/components/schemas/User" PersonalDataChangeConfigResponse: description: returns PersonalDataChangeConfig content: application/json: schema: $ref: "#/components/schemas/PersonalDataChangeConfig" ListOfUsersResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/User" RichUserResponse: description: returns RichUser content: application/json: schema: $ref: "#/components/schemas/RichUser" ListOfRichUsersResponse: description: 'returns List' content: application/json: schema: type: array items: $ref: "#/components/schemas/RichUser" PaginatedRichUsersResponse: description: "returns Paginated" content: application/json: schema: $ref: "#/components/schemas/PaginatedRichUsers" ListOfSponsorsResponse: description: 'returns List' content: application/json: schema: type: array items: $ref: "#/components/schemas/Sponsor" MemberResponse: description: returns Member content: application/json: schema: $ref: "#/components/schemas/Member" ListOfMembersResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Member" ListOfRichMembersResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/RichMember" RichMemberResponse: description: returns RichMember content: application/json: schema: $ref: "#/components/schemas/RichMember" ListOfAssignedMembersResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/AssignedMember" FacilityResponse: description: "returns Facility" content: application/json: schema: $ref: "#/components/schemas/Facility" ListOfFacilitiesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Facility" ListOfRichFacilitiesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/RichFacility" ListOfEnrichedFacilitiesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedFacility" ListOfFacilitiesWithAttributesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/FacilityWithAttributes" OwnerResponse: description: "returns Owner" content: application/json: schema: $ref: "#/components/schemas/Owner" ListOfOwnersResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Owner" ListOfAuditMessagesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/AuditMessage" PaginatedMessagesResponse: description: "returns Paginated" content: application/json: schema: $ref: "#/components/schemas/PaginatedAuditMessages" PublicationSystemResponse: description: "returns PublicationSystem" content: application/json: schema: $ref: "#/components/schemas/PublicationSystem" ListOfPublicationSystemsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/PublicationSystem" CategoryResponse: description: "returns Category" content: application/json: schema: $ref: "#/components/schemas/Category" ListOfCategoryResponse: description: "returns List" content: application/json: schema: type: array items: $ref: '#/components/schemas/Category' ThanksResponse: description: "returns Thanks" content: application/json: schema: $ref: "#/components/schemas/Thanks" ListOfThanksForGUIResponse: description: "returns List" content: application/json: schema: type: array items: $ref: '#/components/schemas/ThanksForGUI' AuthorshipResponse: description: "returns Authorship" content: application/json: schema: $ref: "#/components/schemas/Authorship" ListOfAuthorResponse: description: "returns List" content: application/json: schema: type: array items: $ref: '#/components/schemas/Author' PublicationResponse: description: "return Publication" content: application/json: schema: $ref: "#/components/schemas/Publication" ListOfPublicationResponse: description: "return List" content: application/json: schema: type: array items: $ref: '#/components/schemas/Publication' PublicationForGUIResponse: description: "return PublicationForGUI" content: application/json: schema: $ref: "#/components/schemas/PublicationForGUI" ListOfPublicationForGUIResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/PublicationForGUI" AttributeDefinitionResponse: description: "returns AttributeDefinition" content: application/json: schema: $ref: "#/components/schemas/AttributeDefinition" ListOfAttributeDefinitionsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/AttributeDefinition" ListOfAttributePolicyCollectionResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/AttributePolicyCollection" AttributeRulesResponse: description: "returns AttributeRules" content: application/json: schema: $ref: "#/components/schemas/AttributeRules" AttributeResponse: description: "returns Attribute" content: application/json: schema: $ref: "#/components/schemas/Attribute" ListOfAttributesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Attribute" EntitylessAttributesByKeysResponse: description: "Entityless attributes by keys" content: application/json: schema: $ref: "#/components/schemas/EntitylessAttributesByKeys" GroupResponse: description: "returns Group" content: application/json: schema: $ref: "#/components/schemas/Group" RichGroupResponse: description: "returns RichGroup" content: application/json: schema: $ref: "#/components/schemas/RichGroup" ListOfGroupsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Group" ListOfListsOfGroupsResponse: description: "returns List>" content: application/json: schema: type: array items: type: array items: $ref: "#/components/schemas/Group" ListOfPerunPoliciesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/PerunPolicy" ListOfRolesManagementRulesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/RoleManagementRules" ListOfNamespacesRulesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/NamespaceRules" ListOfRichGroupsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/RichGroup" PaginatedRichGroupsResponse: description: "returns Paginated" content: application/json: schema: $ref: "#/components/schemas/PaginatedRichGroups" PaginatedRichMembersResponse: description: "returns Paginated" content: application/json: schema: $ref: "#/components/schemas/PaginatedRichMembers" PaginatedRichApplicationsResponse: description: "returns Paginated" content: application/json: schema: $ref: "#/components/schemas/PaginatedRichApplications" PaginatedInvitationWithSenderResponse: description: "returns Paginated" content: application/json: schema: $ref: "#/components/schemas/PaginatedInvitationsWithSender" ResourceResponse: description: "returns Resource" content: application/json: schema: $ref: "#/components/schemas/Resource" ListOfResourcesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Resource" ResourceTagResponse: description: "returns ResourceTag" content: application/json: schema: $ref: "#/components/schemas/ResourceTag" ListOfResourceTagsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/ResourceTag" RichResourceResponse: description: "returns RichResource" content: application/json: schema: $ref: "#/components/schemas/RichResource" EnrichedResourceResponse: description: "returns EnrichedResource" content: application/json: schema: $ref: "#/components/schemas/EnrichedResource" ListOfRichResourcesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/RichResource" ListOfEnrichedResourcesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedResource" ListOfAssignedResourcesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/AssignedResource" ListOfAssignedGroupsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/AssignedGroup" VoResponse: description: "returns Vo" content: application/json: schema: $ref: "#/components/schemas/Vo" EnrichedVoResponse: description: "returns enriched Vo" content: application/json: schema: $ref: "#/components/schemas/EnrichedVo" ListOfVosResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Vo" ListOfEnrichedVosResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedVo" ExtSourceResponse: description: "returns ExtSource" content: application/json: schema: $ref: "#/components/schemas/ExtSource" ListOfExtSourcesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/ExtSource" ListOfUserExtSourcesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/UserExtSource" ListOfRichUserExtSourcesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/RichUserExtSource" ApplicationFormResponse: description: "returns ApplicationForm" content: application/json: schema: $ref: "#/components/schemas/ApplicationForm" ApplicationFormItemResponse: description: "returns ApplicationFormItem" content: application/json: schema: $ref: "#/components/schemas/ApplicationFormItem" ListOfApplicationFormItemsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/ApplicationFormItem" ListOfApplicationFormItemDataResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/ApplicationFormItemData" ApplicationResponse: description: "returns Application" content: application/json: schema: $ref: "#/components/schemas/Application" InvitationResponse: description: "returns Invitation" content: application/json: schema: $ref: '#/components/schemas/Invitation' InvitationWithSenderResponse: description: "returns InvitationWithSender" content: application/json: schema: $ref: '#/components/schemas/InvitationWithSender' ListOfApplicationsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Application" ServiceResponse: description: "returns Service" content: application/json: schema: $ref: "#/components/schemas/Service" ListOfServicesResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Service" HostResponse: description: "returns Host" content: application/json: schema: $ref: "#/components/schemas/Host" ListOfHostsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Host" ListOfEnrichedHostsResponse: description: " returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedHost" DestinationResponse: description: "returns Destination" content: application/json: schema: $ref: "#/components/schemas/Destination" ListOfDestinationsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Destination" ListOfRichDestinationsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/RichDestination" GraphDTOResponse: description: "returns GraphDTO" content: application/json: schema: $ref: "#/components/schemas/GraphDTO" BanOnVoResponse: description: "returns banOnVo" content: application/json: schema: $ref: "#/components/schemas/BanOnVo" ListOfBanOnVoResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/BanOnVo" ListOfEnrichedBanOnVoResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedBanOnVo" BanOnResourceResponse: description: "returns banOnResource" content: application/json: schema: $ref: "#/components/schemas/BanOnResource" ListOfBanOnResourceResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/BanOnResource" ListOfEnrichedBansOnResourceResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedBanOnResource" ListOfServiceForGUIResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/ServiceForGUI" ListOfCandidatesResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Candidate" BanOnFacilityResponse: description: "returns banOnFacility" content: application/json: schema: $ref: "#/components/schemas/BanOnFacility" ListOfBanOnFacilitiesResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/BanOnFacility" ListOfEnrichedBansOnFacilitiesResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedBanOnFacility" ListOfMemberCandidatesResponse: description: "return List" content: application/json: schema: type: array items: $ref: "#/components/schemas/MemberCandidate" HashedGenDataResponse: description: "return hashed gen data" content: application/json: schema: $ref: "#/components/schemas/HashedGenData" TaskResponse: description: "Task" content: application/json: schema: $ref: "#/components/schemas/Task" ListOfTasksResponse: description: "List Tasks" content: application/json: schema: type: array items: $ref: "#/components/schemas/Task" ListOfApplicationMailsResponse: description: "List Application mails" content: application/json: schema: type: array items: $ref: "#/components/schemas/ApplicationMail" TaskResultResponse: description: "Task result" content: application/json: schema: $ref: "#/components/schemas/TaskResult" ListOfTaskResultsResponse: description: "List Task results" content: application/json: schema: type: array items: $ref: "#/components/schemas/TaskResult" FacilityStateResponse: description: "Facility state" content: application/json: schema: $ref: "#/components/schemas/FacilityState" ListOfFacilityStatesResponse: description: "List Propagation status" content: application/json: schema: type: array items: $ref: "#/components/schemas/FacilityState" ListOfResourceStatesResponse: description: "List Propagation status" content: application/json: schema: type: array items: $ref: "#/components/schemas/ResourceState" ListOfServiceStatesResponse: description: "List serviceStates" content: application/json: schema: type: array items: $ref: "#/components/schemas/ServiceState" AuthzRolesResponse: description: AuthzRoles of user content: application/json: schema: $ref: "#/components/schemas/AuthzRoles" MapStringSetOfIdmObjectResponse: description: "returns Map>" content: application/json: schema: type: object additionalProperties: type: array items: $ref: "#/components/schemas/IdmObject" uniqueItems: true ComplementaryObjectsWithAuthzGroupsResponse: description: Complementary objects combined with authorized groups (connected by role) content: application/json: schema: type: object additionalProperties: type: object additionalProperties: type: object additionalProperties: type: array items: $ref: "#/components/schemas/Group" RTMessageResponse: description: Confirmation with e-mail address the ticket was created for content: application/json: schema: $ref: "#/components/schemas/RTMessage" UserExtSourceResponse: description: "returns userExtSource" content: application/json: schema: $ref: "#/components/schemas/UserExtSource" RichUserExtSourceResponse: description: "returns richUserExtSource" content: application/json: schema: $ref: "#/components/schemas/RichUserExtSource" PerunAppsConfigResponse: description: "returns configuration of perun apps brandings and apps' domains" content: application/json: schema: $ref: "#/components/schemas/PerunAppsConfig" GroupMemberDataResponse: description: "returns member-groups relations with attributes" content: application/json: schema: $ref: "#/components/schemas/GroupMemberData" ListOfIdentityResponse: description: "List Identities" content: application/json: schema: type: array items: $ref: "#/components/schemas/Identity" ListOfEnrichedIdentityResponse: description: "List Identities" content: application/json: schema: type: array items: $ref: "#/components/schemas/EnrichedIdentity" ConsentHubResponse: description: "returns ConsentHub" content: application/json: schema: $ref: "#/components/schemas/ConsentHub" ListOfConsentHubResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/ConsentHub" ConsentResponse: description: "returns Consent" content: application/json: schema: $ref: "#/components/schemas/Consent" ListOfConsentResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/Consent" PaginatedBlockedLoginsResponse: description: "returns Paginated" content: application/json: schema: $ref: "#/components/schemas/PaginatedBlockedLogins" applicationsOperationResultsResponse: description: "returns List" content: application/json: schema: type: array items: $ref: "#/components/schemas/ApplicationOperationResult" PerunNotifTemplateResponse: description: "returns PerunNotifTemplate" content: application/json: schema: $ref: "#/components/schemas/PerunNotifTemplate" PerunNotifRegexResponse: description: "returns PerunNotifRegex" content: application/json: schema: $ref: "#/components/schemas/PerunNotifRegex" PerunNotifReceiverResponse: description: "returns PerunNotifReceiver" content: application/json: schema: $ref: "#/components/schemas/PerunNotifReceiver" PerunNotifTemplateMessageResponse: description: "returns PerunNotifTemplateMessage" content: application/json: schema: $ref: "#/components/schemas/PerunNotifTemplateMessage" PerunNotifObjectResponse: description: "returns PerunNotifObject" content: application/json: schema: $ref: "#/components/schemas/PerunNotifObject" ##################################################### # # # PARAMETERS - definitions of often used parameters # # # ##################################################### parameters: id: name: id description: numeric id schema: type: integer in: query required: true ids: name: "ids[]" description: "list of ids List" in: query required: true schema: type: array items: type: integer async: name: async description: "asynchronous flag, if set to true, some operation will be performed asynchronously" schema: type: boolean in: query required: false assignInactive: name: assignInactive description: "flag, if set to true, group-resource assignment will have status INACTIVE" schema: type: boolean in: query required: false autoAssignSubgroups: name: autoAssignSubgroups description: "flag, if set to true, subgroups are assigned to resource as well" schema: type: boolean in: query required: false attributeId: name: attributeId description: "id of AttributeDefinition" schema: type: integer in: query required: true attributeInteger: name: attribute description: "id of AttributeDefinition" schema: type: integer in: query required: true attributeDefinitionId: name: attributeDefinition description: "id of AttributeDefinition" schema: type: integer in: query required: true attrDefId: name: attrDefId description: "id of AttributeDefinition" schema: type: integer in: query required: true attributes: name: "attributes[]" description: "list of attribute ids List" in: query required: true schema: type: array items: type: integer attributeName: name: attributeName description: "full name of attribute definition (namespace + ':' + friendlyName)" schema: type: string in: query required: true attrName: name: attrName description: "full name of attribute definition (namespace + ':' + friendlyName)" schema: type: string in: query required: true attrNames: name: "attrNames" description: "list of attribute names List" in: query required: true schema: type: array items: type: string attrsNames: name: "attrsNames[]" description: "list of attribute names List" in: query required: true schema: type: array items: type: string attrNamesOptional: name: "attrNames[]" description: "list of attribute names List or null" in: query required: false schema: type: array items: type: string attributeValue: name: attributeValue description: "string value of Attribute" schema: type: string in: query required: true consentHubId: name: consentHub description: "id of ConsentHub" schema: type: integer in: query required: true consentHubIds: name: "consentHubs[]" description: "list of ConsentHub ids List" in: query required: true schema: type: array items: type: integer consentId: name: consent description: "id of Consent" schema: type: integer in: query required: true facilityId: name: facility description: "id of Facility" schema: type: integer in: query required: true facilityIds: name: "facilities[]" description: "list of Facility ids List" in: query required: true schema: type: array items: type: integer facilityName: name: facility description: "name of Facility" schema: type: string in: query required: true optionalFacilityId: name: facility description: "id of Facility" schema: type: integer in: query required: false userId: name: user description: "id of User" schema: type: integer in: query required: true specificUserId: name: specificUser description: "id of specific User" schema: type: integer in: query required: true publicationId: name: publicationId description: "id of publication" schema: type: integer in: query required: true isbn: name: isbn description: "ISBN" schema: type: string in: query required: false doi: name: doi description: "DOI" schema: type: string in: query required: false title: name: title description: "Title" schema: type: string in: query required: false optionalUserId: name: user description: "id of User" schema: type: integer in: query required: false memberId: name: member description: "id of Member" schema: type: integer in: query required: true memberIds: name: "members[]" description: "id of Member" schema: type: array items: type: integer in: query required: true optionalMemberId: name: member description: "id of Member" schema: type: integer in: query required: false voId: name: vo description: "id of Vo" schema: type: integer in: query required: true voIds: name: "vos[]" description: "list of Vo ids List" in: query required: true schema: type: array items: type: integer memberVoId: name: memberVo description: "id of member Vo" schema: type: integer in: query required: true banId: name: banId description: "id of a ban" schema: type: integer in: query required: true optionalVoId: name: vo description: "id of Vo" schema: type: integer in: query required: false groupId: name: group description: "id of Group" schema: type: integer in: query required: true optionalGroupId: name: group description: "id of Group" schema: type: integer in: query required: false groupIds: name: "groups[]" description: "list of Group ids List" in: query required: true schema: type: array items: type: integer groupDescription: name: description description: "description of Group" schema: type: string in: query required: true groupName: name: name description: "name of Group" schema: type: string in: query required: true resourceId: name: resource description: "id of Resource" schema: type: integer in: query required: true optionalResourceId: name: resource description: "id of Resource" schema: type: integer in: query required: false resourceIds: name: "resources[]" description: "list of Resource ids List" in: query required: true schema: type: array items: type: integer userExtSourceId: name: userExtSource description: "id of UserExtSource" schema: type: integer in: query required: true optionalUserExtSourceId: name: userExtSource description: "id of UserExtSource" schema: type: integer in: query required: false hostId: name: host description: "id of Host" schema: type: integer in: query required: true optionalHostId: name: host description: "id of Host" schema: type: integer in: query required: false hostnames: name: "hostnames[]" description: "list of host names List" in: query required: true schema: type: array items: type: string listOfHostIds: name: "hosts[]" description: "list of host ids List" in: query required: true schema: type: array items: type: integer listOfAllowedStatuses: name: "allowedStatuses[]" description: "list of allowed statuses List" in: query required: false schema: type: array items: type: string listOfAllowedGroupStatuses: name: "allowedGroupStatuses[]" description: "list of allowed group statuses List" in: query required: false schema: type: array items: type: string enum: - VALID - EXPIRED destinationId: name: destination description: "id of Destination" schema: type: integer in: query required: true destinationIds: name: "destinations[]" description: "list of Destination ids List" in: query required: true schema: type: array items: type: integer destinationName: name: destination description: "string name of destination" schema: type: string in: query required: true ownerId: name: owner description: "id of Owner" schema: type: integer in: query required: true ownerIds: name: owners[] description: "list of owner ids" schema: type: array items: type: integer in: query required: true ownerName: name: owner description: "name of Owner" schema: type: string in: query required: true ownerNames: name: ownerNames[] description: "list of owner names" schema: type: array items: type: string in: query required: true serviceId: name: service description: "id of Service" schema: type: integer in: query required: true serviceIds: name: "services[]" description: "list of Service ids List" in: query required: true schema: type: array items: type: integer workWithUserAttributes: name: workWithUserAttributes description: "flag to work with user attributes" schema: type: boolean in: query required: true workWithUserAttributesOptional: name: workWithUserAttributes description: "flag to work with user attributes" schema: type: boolean in: query required: false workWithGroupAttributes: name: workWithGroupAttributes description: "flag to work with group attributes" schema: type: boolean in: query required: true extLogin: name: extLogin description: external login of user, e.g. john schema: type: string in: query required: true sourceId: name: source description: external source id schema: type: integer in: query required: true extSourceName: name: extSourceName description: external source name, e.g. IdP entityId schema: type: string in: query required: true extSourceIds: name: "extSources[]" description: "list of extSource ids List" in: query required: true schema: type: array items: type: integer resultGroupId: name: resultGroup description: "id of Group to have removed 'operandGroup' from subgroups" schema: type: integer in: query required: true operandGroupId: name: operandGroup description: "id of Group to have removed 'resultGroup' from subgroups" schema: type: integer in: query required: true operandGroupIds: name: "operandGroups[]" description: "IDs of Groups to be removed from 'resultGroup' subgroups" schema: type: array items: type: integer in: query required: true key: name: key description: key of an entityless attribute schema: type: string in: query required: true complementaryObjectId: name: complementaryObjectId description: "Property id of complementaryObject to get managers for" schema: type: integer in: query required: true complementaryObjectName: name: complementaryObjectName description: "Property beanName of complementaryObject, meaning object type (supported object types: Group | RichGroup | Vo | Resource | Facility)" schema: type: string in: query required: true role: name: role description: "User role" schema: type: string in: query required: true ListOfRoles: name: "roles[]" description: "list of role names List" in: query required: true schema: type: array items: type: string consumerName: name: consumerName description: "name of the audit message consumer" schema: type: string in: query required: true applicationId: name: appId description: id of application schema: type: integer in: query required: true authorizedGroup: name: authorizedGroup description: 'Group id' schema: type: integer in: query required: true searchString: name: searchString description: 'Text to search by' schema: type: string in: query required: true specificAttributes: name: specificAttributes description: 'list of specified attributes which are needed in object richUser' schema: type: array items: type: string in: query required: true destinationType: name: destinationType description: "Destination type (like host, user@host, user@host:port, service-specific, ...)" schema: type: string in: query required: true taskId: name: task description: "Task id" schema: type: integer required: true in: query taskResultId: name: taskResult description: "TaskResult id" schema: type: integer required: true in: query name: name: name description: name of entity schema: type: string in: query required: true namespace: name: namespace description: "namespace" schema: type: string in: query required: true login: name: login description: "login" schema: type: string in: query required: true sponsorId: name: sponsor description: id of sponsor schema: type: integer in: query required: true optionalValidityTo: name: validityTo description: date in format yyyy-mm-dd schema: type: string nullable: true in: query required: false onlySponsored: name: onlySponsored description: "Boolean specifying if only sponsored members should be returned" schema: type: boolean in: query required: true lookingInParentGroup: name: lookingInParentGroup description: If true, look up in a parent group schema: type: boolean in: query required: true sponsoredMemberId: name: sponsoredMember description: id of member to be sponsored schema: type: integer in: query required: true forceDelete: name: force description: "If true, delete entity forcefully." schema: type: boolean in: query required: false formItemId: name: formItem description: "id of of the form item" schema: type: integer in: query required: true invitationId: name: invitation description: "id of Invitation" schema: type: integer in: query required: true invitationUuid: name: uuid description: "uuid of Invitation" schema: type: string format: uuid in: query required: true userUuid: name: uuid description: "uuid of User" schema: type: string format: uuid in: query required: true groupUuid: name: uuid description: "uuid of Group" schema: type: string format: uuid in: query required: true ################################################# # # # TAGS - documentation for groups of operations # # # ################################################# tags: - name: Utils description: various utilities - name: AuthzResolver description: AuthzResolver RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AuthzResolver.html - name: AuditMessagesManager description: AuditMessage RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AuditMessagesManager.html - name: CabinetManager description: CabinetManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-CabinetManager.html - name: UsersManager description: UsersManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-UsersManager.html - name: MembersManager description: MembersManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-MembersManager.html - name: FacilitiesManager description: FacilitiesManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-FacilitiesManager.html - name: OwnersManager description: OwnersManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-OwnersManager.html - name: AttributesManager description: AttributesManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html - name: GroupsManager description: GroupsManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-GroupsManager.html - name: ResourcesManager description: ResourcesManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-ResourcesManager.html - name: VosManager description: VosManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-VosManager.html - name: TasksManager description: TasksManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-TasksManager.html - name: RTMessagesManager description: RTMessagesManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-RTMessagesManager.html - name: IntegrationManager description: IntegrationManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-IntegrationManager.html - name: Searcher description: Searcher RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-Searcher.html - name: ConsentsManager description: ConsentsManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-ConsentsManager.html - name: InvitationsManager description: InvitationsManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-InvitationsManager.html - name: DatabaseManager description: DatabaseManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-DatabaseManager.html - name: ExtSourcesManager description: ExtSourcesManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-ExtSourcesManager.html - name: RegistrarManager description: RegistrarManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-RegistrarManager.html - name: ServicesManager description: ServicesManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-ServicesManager.html - name: ConfigManager description: ConfigManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-ConfigManager.html - name: NotificationManager description: NotificationManager RPC API in Perun externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-NotificationManager.html ################################################# # # # PATHS - URLs of RPC operations # # # ################################################# paths: ################################################# # # # Utils # # # ################################################# /: get: tags: - Utils operationId: getPerunRPCVersion summary: Gets Perun runtime status responses: '200': description: OK content: text/plain: schema: type: string example: "OK! Version: 3.8.6, User: makub@META, extSource: META" /json/utils/getPerunStatus: get: tags: - Utils operationId: getPerunStatus summary: Gets Perun runtime status description: | Returns list of strings which looks like this "Version of Perun: 3.8.6", "Version of PerunDB: 3.1.55", "Version of Servlet: Apache Tomcat/9.0.16 (Debian)", "Version of DB-driver: PostgreSQL JDBC Driver-42.2.8", "Version of DB: PostgreSQL-12.0 (Debian 12.0-2.pgdg100+1)", "Version of Java platform: 11.0.5", "AuditerConsumer: '127.0.0.1:6071' with last processed id='23463958'", "AuditerConsumer: 'ldapcConsumer' with last processed id='23463958'", "AuditerConsumer: 'notifications' with last processed id='23463952'", "LastMessageId: 23463958", "Timestamp: 2019-11-14 10:12:30.99" responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/utils/getPerunStatistics: get: tags: - Utils operationId: getPerunStatistics summary: Gets Perun runtime statistics description: | Returns list of strings which looks like this "Timestamp: '2019-11-14 10:46:39.613'", "USERS: '39927'", "FACILITIES: '552'", "DESTINATIONS: '2568'", "VOS: '341'", "RESOURCES: '2560'", "GROUPS: '2300'", "AUDITMESSAGES: '7333237'" responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/utils/getPerunSystemTimeInMillis: get: tags: - Utils operationId: getPerunSystemTimeInMillis summary: Gets Perun system time in milliseconds since the epoch responses: '200': $ref: '#/components/responses/LongResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/utils/getGuiConfiguration: get: tags: - Utils operationId: getGuiConfiguration summary: Gets perun-web-gui.properties as Map responses: '200': $ref: '#/components/responses/MapStringStringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/utils/getAppsConfig: get: tags: - Utils operationId: getAppsConfig summary: Gets configuration of perun apps brandings and apps' domains description: Returns object of type PerunAppsConfig responses: '200': $ref: '#/components/responses/PerunAppsConfigResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/utils/getNewGuiAlert: get: tags: - Utils operationId: getNewGuiAlert summary: Gets new GUI alert (banner html content) for the brand of incoming request. description: Returns new GUI alert responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # AuthzResolver # # # ################################################# /json/authzResolver/getPrincipalRoleNames: get: tags: - AuthzResolver operationId: getPrincipalRoleNames summary: | Returns list of caller's role names. Perun system uses role names in the upper case format. However, for now, they are converted to the lower case format because of the compatibility with external systems. responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getPerunPrincipal: get: tags: - AuthzResolver operationId: getPerunPrincipal summary: Gets current user description: Returns object representing the currently authenticated user. responses: '200': description: successfully returned authenticated user content: application/json: schema: $ref: "#/components/schemas/PerunPrincipal" default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getRichAdmins: get: tags: - AuthzResolver operationId: getAuthzRichAdmins summary: Gets all valid rich admins description: Get all valid richUser administrators (for group-based rights, status must be VALID for both Vo and group) for complementary object and role with specified attributes. parameters: - $ref: '#/components/parameters/role' - $ref: '#/components/parameters/complementaryObjectId' - $ref: '#/components/parameters/complementaryObjectName' - { name: specificAttributes, description: "list of specified attributes which are needed in object richUser", schema: { type: array, items: { type: string } }, in: query, required: true } - { name: allUserAttributes, description: "When true, do not specify attributes through list and return them all in objects richUser. Ignoring list of specific attributes", schema: { type: boolean, default: false }, in: query, required: false } - { name: onlyDirectAdmins, description: "When true, return only direct users of the complementary object for role with specific attributes", schema: { type: boolean, default: true }, in: query, required: false } responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getAdmins: get: tags: - AuthzResolver operationId: getAuthzAdmins summary: Gets all valid admins description: Get all valid user administrators (for group-based rights, status must be VALID for both Vo and group) for complementary object and role. parameters: - $ref: '#/components/parameters/role' - $ref: '#/components/parameters/complementaryObjectId' - $ref: '#/components/parameters/complementaryObjectName' - { name: onlyDirectAdmins, description: "When true, return only direct users of the complementary object for role", schema: { type: boolean, default: true }, in: query, required: false } responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/someAdminExists: get: tags: - AuthzResolver operationId: someAdminExists summary: Checks if some valid admin exists. description: Checks if valid user administrators (for group-based rights, status must be VALID for both Vo and group) for complementary object and role exists. parameters: - $ref: '#/components/parameters/role' - $ref: '#/components/parameters/complementaryObjectId' - $ref: '#/components/parameters/complementaryObjectName' - { name: onlyDirectAdmins, description: "When true, check only direct users of the complementary object for role", schema: { type: boolean, default: true }, in: query, required: false } responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getAdminGroups: get: tags: - AuthzResolver operationId: getAuthzAdminGroups summary: Get all groups of managers (authorizedGroups) for complementaryObject and role parameters: - $ref: '#/components/parameters/role' - $ref: '#/components/parameters/complementaryObjectId' - $ref: '#/components/parameters/complementaryObjectName' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/setRole/u: post: tags: - AuthzResolver operationId: setRoleForUser summary: Set role for user responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: setRoleForUser description: "input to setRoleForUser" type: object required: - role - user properties: role: { type: string, nullable: false } user: { type: integer, nullable: false } /json/authzResolver/unsetRole/u: post: tags: - AuthzResolver operationId: unsetRoleForUser summary: Unset role for user responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: unsetRoleForUser description: "input to unsetRoleForUser" type: object required: - role - user properties: role: { type: string, nullable: false } user: { type: integer, nullable: false } /json/authzResolver/setRole/u-co: post: tags: - AuthzResolver operationId: setRoleWithUserComplementaryObject summary: Set role for user and complementaryObject responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: setRoleWithUserComplementaryObject description: "input to setRoleWithUserComplementaryObject (supported objects: Group | RichGroup | Vo | Resource | Facility)" type: object required: - role - users properties: role: { type: string, nullable: false } users: type: array description: "List of user ids" nullable: false items: type: integer complementaryObject: { $ref: "#/components/schemas/PerunBean" } /json/authzResolver/setRole/u-cos: post: tags: - AuthzResolver operationId: setRoleWithUserComplementaryObjects summary: Set role for user and complementaryObjects responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: setRoleWithUserComplementaryObjects description: "input to setRoleWithUserComplementaryObjects" type: object required: - role - user properties: role: { type: string, nullable: false } user: { type: integer, description: "user id", nullable: false } complementaryObjects: type: array description: "List of complementary objects (supported objects: Group | RichGroup | Vo | Resource | Facility)" nullable: false items: $ref: "#/components/schemas/PerunBean" /json/authzResolver/unsetRole/u-co: post: tags: - AuthzResolver operationId: unsetRoleWithUserComplementaryObject summary: Unset role for user and complementaryObject responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: unsetRoleWithUserComplementaryObject description: "input to unsetRoleWithUserComplementaryObject (supported objects: Group | RichGroup | Vo | Resource | Facility)" type: object required: - role - users properties: role: { type: string, nullable: false } users: type: array description: "List of user ids" nullable: false items: type: integer complementaryObject: { $ref: "#/components/schemas/PerunBean" } /json/authzResolver/unsetRole/u-cos: post: tags: - AuthzResolver operationId: unsetRoleWithUserComplementaryObjects summary: Unset role for user and complementaryObjects responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: unsetRoleWithUserComplementaryObjects description: "input to unsetRoleWithUserComplementaryObjects" type: object required: - role - user properties: role: { type: string, nullable: false } user: { type: integer, description: "user id", nullable: false } complementaryObjects: type: array description: "List of complementary objects (supported objects: Group | RichGroup | Vo | Resource | Facility)" nullable: false items: $ref: "#/components/schemas/PerunBean" /json/authzResolver/setRole/g: post: tags: - AuthzResolver operationId: setRoleForGroup summary: Set role for authorizedGroup responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: setRoleForGroup description: "input to setRoleForGroup" type: object required: - role - authorizedGroup properties: role: { type: string, nullable: false } authorizedGroup: { type: integer, nullable: false } /json/authzResolver/unsetRole/g: post: tags: - AuthzResolver operationId: unsetRoleForGroup summary: Unset role for authorizedGroup responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: unsetRoleForGroup description: "input to unsetRoleForGroup" type: object required: - role - authorizedGroup properties: role: { type: string, nullable: false } authorizedGroup: { type: integer, nullable: false } /json/authzResolver/setRole/g-co: post: tags: - AuthzResolver operationId: setRoleWithGroupComplementaryObject summary: Set role for authorizedGroup and complementaryObject responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: setRoleWithGroupComplementaryObject description: "input to unsetRoleWithUserComplementaryObject (supported objects: Group | RichGroup | Vo | Resource | Facility)" type: object required: - role - authorizedGroups properties: role: { type: string, nullable: false } authorizedGroups: type: array description: "List of authorizedGroups ids" nullable: false items: type: integer complementaryObject: { $ref: "#/components/schemas/PerunBean" } /json/authzResolver/setRole/g-cos: post: tags: - AuthzResolver operationId: setRoleWithGroupComplementaryObjects summary: Set role for authorizedGroup and complementaryObjects responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: setRoleWithGroupComplementaryObjects description: "input to setRoleWithUserComplementaryObjects" type: object required: - role - authorizedGroup properties: role: { type: string, nullable: false } authorizedGroup: { type: integer, nullable: false } complementaryObjects: type: array description: "List of complementary objects (supported objects: Group | RichGroup | Vo | Resource | Facility)" nullable: false items: $ref: "#/components/schemas/PerunBean" /json/authzResolver/unsetRole/g-co: post: tags: - AuthzResolver operationId: unsetRoleWithGroupComplementaryObject summary: Unset role for authorizedGroup and complementaryObject responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: unsetRoleWithGroupComplementaryObject description: "input to unsetRoleWithUserComplementaryObject (supported objects: Group | RichGroup | Vo | Resource | Facility)" type: object required: - role - authorizedGroups properties: role: { type: string, nullable: false } authorizedGroups: type: array description: "List of authorizedGroups ids" nullable: false items: type: integer complementaryObject: { $ref: "#/components/schemas/PerunBean" } /json/authzResolver/unsetRole/g-cos: post: tags: - AuthzResolver operationId: unsetRoleWithGroupComplementaryObjects summary: Unset role for authorizedGroup and complementaryObjects responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: unsetRoleWithGroupComplementaryObjects description: "input to unsetRoleWithUserComplementaryObjects" type: object required: - role - authorizedGroup properties: role: { type: string, nullable: false } authorizedGroup: { type: integer, nullable: false } complementaryObjects: type: array description: "List of complementary objects (supported objects: Group | RichGroup | Vo | Resource | Facility)" nullable: false items: $ref: "#/components/schemas/PerunBean" /json/authzResolver/getUserRoles: get: tags: - AuthzResolver operationId: getUserRoles summary: Returns all roles accessible to the principal as an AuthzRoles object for a given user. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/AuthzRolesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getRegistrarUserRoles: get: tags: - AuthzResolver operationId: getRegistrarUserRoles summary: Returns all new Registrar roles for the user derived from roles in Perun. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/MapStringSetOfIdmObjectResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getUserDirectRoles: get: tags: - AuthzResolver operationId: getUserDirectRoles summary: Returns all roles accessible to the principal except for those obtained from membership in authorized groups as an AuthzRoles object for a given user. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/AuthzRolesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getUserRolesObtainedFromAuthorizedGroupMemberships: get: tags: - AuthzResolver operationId: getUserRolesObtainedFromAuthorizedGroupMemberships summary: Returns roles resulting from membership in authorized groups as an AuthzRoles object for a given user. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/AuthzRolesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getRoleComplementaryObjectsWithAuthorizedGroups: get: tags: - AuthzResolver operationId: getRoleComplementaryObjectsWithAuthorizedGroups summary: Returns map of role names with map of corresponding complementary objects (perun beans) together with list of authorized groups where user is member. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ComplementaryObjectsWithAuthzGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getUserRoleNames: get: tags: - AuthzResolver operationId: getUserRoleNames summary: | Returns list of user's role names. Perun system uses role names in the upper case format. However, for now, they are converted to the lower case format because of the compatibility with external systems. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getGroupRoleNames: get: tags: - AuthzResolver operationId: getGroupRoleNames summary: | Returns list of group's role names. Perun system uses role names in the upper case format. However, for now, they are converted to the lower case format because of the compatibility with external systems. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/authzResolver/getGroupRoles: get: tags: - AuthzResolver operationId: getGroupRoles summary: Returns all roles as an AuthzRoles object for a given group. parameters: - name: groupId description: "id of Group" schema: type: integer in: query required: true responses: '200': $ref: '#/components/responses/AuthzRolesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/authzResolver/isVoAdmin: get: tags: - AuthzResolver operationId: isVoAdmin summary: Returns 1 if User has VO manager role (VOADMIN) or for specific VO defined by id parameters: - name: vo description: "id of Vo" schema: type: integer in: query required: false responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/authzResolver/isGroupAdmin: get: tags: - AuthzResolver operationId: isGroupAdmin summary: Returns 1 if User has Group manager role (GROUPADMIN) or for specific Group defined by id parameters: - $ref: '#/components/parameters/optionalGroupId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/authzResolver/isFacilityAdmin: get: tags: - AuthzResolver operationId: isFacilityAdmin summary: Returns 1 if User has Facility manager role (FACILITYADMIN) or for specific Facility defined by id parameters: - $ref: '#/components/parameters/optionalFacilityId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/isPerunAdmin: get: tags: - AuthzResolver operationId: isPerunAdmin summary: Returns 1 if User has Perun admin role (perunadmin). responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/isGroupLastAdminInFacilities: get: tags: - AuthzResolver operationId: isGroupLastAdminInFacilities summary: Checks whether groups is the last admin the facilities and returns those in which it is. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/facilityIds' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/isGroupLastAdminInVos: get: tags: - AuthzResolver operationId: isGroupLastAdminInVos summary: Checks whether groups is the last admin the vos and returns those in which it is. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/voIds' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/isUserLastAdminInFacilities: get: tags: - AuthzResolver operationId: isUserLastAdminInFacilities summary: Checks whether user is the last admin the facilities and returns those in which it is. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityIds' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/isUserLastAdminInVos: get: tags: - AuthzResolver operationId: isUserLastAdminInVos summary: Checks whether user is the last admin the vos and returns those in which it is. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/voIds' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getLoggedUser: get: tags: - AuthzResolver operationId: getLoggedUser summary: Returns User which is associated with credentials used to log-in to Perun. responses: '200': $ref: '#/components/responses/UserResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/keepAlive: get: tags: - AuthzResolver operationId: keepAlive summary: Returns "OK" string. Helper method for GUI check if connection is alive. responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getAllPolicies: get: tags: - AuthzResolver operationId: getAllPolicies summary: Return all loaded perun policies. responses: '200': $ref: '#/components/responses/ListOfPerunPoliciesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getAllRolesManagementRules: get: tags: - AuthzResolver operationId: getAllRolesManagementRules summary: Return all loaded roles management rules. responses: '200': $ref: '#/components/responses/ListOfRolesManagementRulesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/loadAuthorizationComponents: get: tags: - AuthzResolver operationId: loadAuthorizationComponents summary: Load perun roles and policies from the configuration file perun-roles.yml. Roles are loaded to the database and policies are loaded to the PerunPoliciesContainer. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getVosWhereUserIsInRoles: get: tags: - AuthzResolver operationId: getVosWhereUserIsInRoles summary: Get all Vos where the given user (principal if user not sent) has set one of the given roles or the given user is a member of an authorized group with such roles. parameters: - $ref: '#/components/parameters/optionalUserId' - $ref: '#/components/parameters/ListOfRoles' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getFacilitiesWhereUserIsInRoles: get: tags: - AuthzResolver operationId: getFacilitiesWhereUserIsInRoles summary: Get all Facilities where the given user (principal if user not sent) has set one of the given roles or the given user is a member of an authorized group with such roles. parameters: - $ref: '#/components/parameters/optionalUserId' - $ref: '#/components/parameters/ListOfRoles' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getResourcesWhereUserIsInRoles: get: tags: - AuthzResolver operationId: getResourcesWhereUserIsInRoles summary: Get all Resources where the given user (principal if user not sent) has set one of the given roles or the given user is a member of an authorized group with such roles. parameters: - $ref: '#/components/parameters/optionalUserId' - $ref: '#/components/parameters/ListOfRoles' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getGroupsWhereUserIsInRoles: get: tags: - AuthzResolver operationId: getGroupsWhereUserIsInRoles summary: Get all Groups where the given user (principal if user not sent) has set one of the given roles or the given user is a member of an authorized group with such roles. parameters: - $ref: '#/components/parameters/optionalUserId' - $ref: '#/components/parameters/ListOfRoles' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/authzResolver/getMembersWhereUserIsInRoles: get: tags: - AuthzResolver operationId: getMembersWhereUserIsInRoles summary: Get all Members where the given user (principal if user not sent) has set one of the given roles or the given user is a member of an authorized group with such roles. parameters: - $ref: '#/components/parameters/optionalUserId' - $ref: '#/components/parameters/ListOfRoles' responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # AttributesManager # # # ################################################# /json/attributesManager/getAttributes/f-r-u-m: get: tags: - AttributesManager operationId: getFacilityResourceUserMemberAttributes summary: Get all non-empty member, user, member-resource and user-facility attributes. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/f-u: get: tags: - AttributesManager operationId: getFacilityUserAttributes summary: Get all non-empty attributes associated with the user on the facility. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes1 parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/f-names: get: tags: - AttributesManager operationId: getFacilityAttributesByNames summary: Returns all specified Facility attributes for selected Facility. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes3 parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/f: get: tags: - AttributesManager operationId: getFacilityAttributes summary: Returns all non-empty Facility attributes for selected Facility. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes2 parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/vo-names: get: tags: - AttributesManager operationId: getVoAttributesByNames summary: Get all attributes associated with the vo which have name in list attrNames (empty too). externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes5 parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/vo: get: tags: - AttributesManager operationId: getVoAttributes summary: Get all attributes associated with the vo. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes4 parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-r-names-wu: get: tags: - AttributesManager operationId: getMemberResourceAndUserFacilityAttributesByNames description: | Gets selected non-empty attributes associated with the member and the resource. It returns member and member-resource attributes and also user and user-facility attributes if workWithUserAttributes is true. Attributes are selected by list of attr_names. Empty list means all attributes. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes9 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attrNames' - $ref: '#/components/parameters/workWithUserAttributes' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-r-wu: get: tags: - AttributesManager operationId: getMemberResourceAndUserFacilityAttributes description: | Gets all non-empty attributes associated with the member on the resource and if workWithUserAttributes is true, gets also all non-empty user, user-facility and member attributes. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes8 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/workWithUserAttributes' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/r-g-m-names: get: tags: - AttributesManager operationId: getResourceGroupMemberAttributesByNames description: | Get all attributes by the list of attrNames if they are in one of these namespaces: - member - group - member-group - resource - member-resource - group-resource - user (get from member object) - facility (get from resource object) - user-facility Returns all attributes even if they are empty or virtual. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes11 parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-r: get: tags: - AttributesManager operationId: getMemberResourceAttributes summary: Get all non-empty attributes associated with the member on the resource. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes10 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/r-g-names-wg: get: tags: - AttributesManager operationId: getResourceGroupAndGroupAttributesByNames description: | Get all attributes associated with the group and the resource which have their name in list attrNames (empty too). Virtual attributes too. If workWithGroupAttributes is true, return also all group attributes in list of attrNames (with virtual attributes too). externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes14 parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrNames' - $ref: '#/components/parameters/workWithGroupAttributes' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/r-g-wg: get: tags: - AttributesManager operationId: getResourceGroupAndGroupAttributes description: | Get all non-empty attributes associated with the group and resource. Virtual attributes too. If workWithGroupAttributes is true, return also all group attributes. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes13 parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/workWithGroupAttributes' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/r-g: get: tags: - AttributesManager operationId: getResourceGroupAttributes summary: Get all non-empty attributes associated with the group on resource. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes12 parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/r-names: get: tags: - AttributesManager operationId: getResourceAttributesByNames description: | Get all attributes associated with the resource which have name in list attrNames (empty too). Virtual attributes too. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes16 parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/r: get: tags: - AttributesManager operationId: getResourceAttributes summary: Get all non-empty attributes associated with the resource. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes15 parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-g-names-wu: get: tags: - AttributesManager operationId: getMemberGroupAndUserAttributesByNames description: | Get all attributes associated with the member in the group which have name in list attrNames (empty too). If workWithUserAttribute is true, return also all user attributes in list of attrNames (with virtual attributes too). externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes17 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrNames' - $ref: '#/components/parameters/workWithUserAttributes' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-names-wu: get: tags: - AttributesManager operationId: getMemberAndUserAttributesByNames description: | Get all attributes associated with the member which have name in list attrNames (empty too). Virtual attributes too. If workWithUserAttribute is true, return also all user attributes in list of attrNames (with virtual attributes too). parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attrNames' - $ref: '#/components/parameters/workWithUserAttributes' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-wu: get: tags: - AttributesManager operationId: getMemberAndUserAttributes description: | Get all non-empty attributes associated with the member and if workWithUserAttributes is true, get all non-empty attributes associated with user, who is this member. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes19 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/workWithUserAttributes' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-g-names: get: tags: - AttributesManager operationId: getMemberGroupAttributesByNames description: | Get all attributes (empty and virtual too)associated with the member in the group which have name in list attrNames. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes20 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-names: get: tags: - AttributesManager operationId: getMemberAttributesByNames description: | Get all attributes associated with the member which have name in list attrNames (empty too). Virtual attribute too. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes21 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m-g: get: tags: - AttributesManager operationId: getMemberGroupAttributes description: | Get all non-empty attributes associated with the member in the group. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes22 parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/m: get: tags: - AttributesManager operationId: getMemberAttributes description: | Get all non-empty attributes associated with the member. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes18 parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/u-names: get: tags: - AttributesManager operationId: getUserAttributesByNames description: | Get all attributes associated with the user which have name in list attrNames (empty too). externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes24 parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/u: get: tags: - AttributesManager operationId: getUserAttributes description: | Get all non-empty attributes associated with the user. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes23 parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/g-names: get: tags: - AttributesManager operationId: getGroupAttributesByNames description: | Get all attributes associated with the group which have name in list attrNames (empty too). Virtual attribute too. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes26 parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/g: get: tags: - AttributesManager operationId: getGroupAttributes description: | Get all non-empty attributes associated with the group. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes25 parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/h: get: tags: - AttributesManager operationId: getHostAttributes description: | Get all non-empty attributes associated with the host. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes27 parameters: - $ref: '#/components/parameters/hostId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/h-names: get: tags: - AttributesManager operationId: getHostAttributesByNames description: | Get all non-empty attributes associated with the host which have name in list attrNames (empty too). Empty list attrNames will return no attributes. parameters: - $ref: '#/components/parameters/hostId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/key: get: tags: - AttributesManager operationId: getEntitylessAttributesByKey description: | Get all entityless attributes with subject equaled String key. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes28 parameters: - { name: key, description: "key for entityless attributes", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/ues-names: get: tags: - AttributesManager operationId: getUserExtSourceAttributesByNames description: | Get all attributes associated with the userExtSource which have name in list attrNames (empty too). externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes7 parameters: - $ref: '#/components/parameters/userExtSourceId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/ues: get: tags: - AttributesManager operationId: getUserExtSourceAttributes description: | Get all non-empty attributes associated with the UserExtSource. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html#AttributesManagergetAttributes6 parameters: - $ref: '#/components/parameters/userExtSourceId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getEntitylessAttributes: get: tags: - AttributesManager operationId: getEntitylessAttributesByName summary: Returns all entityless attributes with attrName. parameters: - $ref: '#/components/parameters/attrName' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getEntitylessKeys: get: tags: - AttributesManager operationId: getEntitylessKeys summary: Returns list of Keys which fits the attributeDefinition. parameters: - $ref: '#/components/parameters/attributeDefinitionId' responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getEntitylessAttributesWithKeys: get: tags: - AttributesManager operationId: getEntitylessAttributesWithKeys summary: Get entityless attributes mapped by their keys. parameters: - $ref: '#/components/parameters/attrName' - { name: "keys[]", description: "key for entityless attribute", schema: { type: array, items: { type: string } }, in: query, required: false } responses: '200': $ref: '#/components/responses/EntitylessAttributesByKeysResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/setAttributes/f-r-g-u-m: post: tags: - AttributesManager operationId: setFacilityResourceGroupUserMemberAttributes description: | Store the member, user, member-group, member-resource and user-facility attributes. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). Group and group-resource attributes are not supported in this context. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetFacilityResourceGroupUserMemberAttributes description: "input to setFacilityResourceGroupUserMemberAttributes" type: object required: - facility - resource - group - user - member - attributes properties: facility: { type: integer, description: "facility id", nullable: false } resource: { type: integer, description: "resource id", nullable: false } group: { type: integer, description: "group id", nullable: false } user: { type: integer, description: "user id", nullable: false } member: { type: integer, description: "member id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/f-r-u-m: post: tags: - AttributesManager operationId: setFacilityResourceUserMemberAttributes description: | Store the member, user, member-resource and user-facility attributes. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetFacilityResourceUserMemberAttributes description: "input to setFacilityResourceUserMemberAttributes" type: object properties: facility: { type: integer, description: "facility id", nullable: false } resource: { type: integer, description: "resource id", nullable: false } user: { type: integer, description: "user id", nullable: false } member: { type: integer, description: "member id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/f-u: post: tags: - AttributesManager operationId: setFacilityUserAttributes description: | Store the attributes associated with the facility and user combination. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetFacilityUserAttributes description: "input to setFacilityUserAttributes" type: object properties: facility: { type: integer, description: "facility id", nullable: false } user: { type: integer, description: "user id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/f: post: tags: - AttributesManager operationId: setFacilityAttributes description: | Store the attributes associated with the facility. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetFacilityAttributes description: "input to setFacilityAttributes" type: object properties: facility: { type: integer, description: "facility id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/vo: post: tags: - AttributesManager operationId: setVoAttributes description: | Store the attributes associated with the vo. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetVoAttributes description: "input to setVoAttributes" type: object properties: vo: { type: integer, description: "vo id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/m-r-wu: post: tags: - AttributesManager operationId: setMemberResourceAndUserAttributes description: | Store the attributes associated with the resource and member combination. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). If workWithUserAttributes is true, the method stores also the attributes associated with user, user-facility and member. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberResourceAndUserAttributes description: "input to setMemberResourceAndUserAttributes" type: object required: - member - resource - attributes - workWithUserAttributes properties: member: { type: integer, description: "member id", nullable: false } resource: { type: integer, description: "resource id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' workWithUserAttributes: { type: boolean } /json/attributesManager/setAttributes/m-r: post: tags: - AttributesManager operationId: setMemberResourceAttributes description: | Store the attributes associated with the resource and member combination. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberResourceAttributes description: "input to setMemberResourceAttributes" type: object required: - member - resource - attributes properties: member: { type: integer, description: "member id", nullable: false } resource: { type: integer, description: "resource id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/r-g-wg: post: tags: - AttributesManager operationId: setResourceGroupWithGroupAttributes description: | Store the attributes associated with group and resource, if workWithUserAttributes is true then also from group itself. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetResourceGroupWithGroupAttributes description: "input to setResourceGroupWithGroupAttributes" type: object required: - resource - group - attributes - workWithGroupAttributes properties: resource: { type: integer, description: "resource id", nullable: false } group: { type: integer, description: "group id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' workWithGroupAttributes: { type: boolean } /json/attributesManager/setAttributes/r-g: post: tags: - AttributesManager operationId: setResourceGroupAttributes description: | Store the attributes associated with the group on resource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetResourceGroupAttributes description: "input to setResourceGroupAttributes" type: object required: - resource - group - attributes properties: resource: { type: integer, description: "resource id", nullable: false } group: { type: integer, description: "group id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/r: post: tags: - AttributesManager operationId: setResourceAttributes description: | Store the attributes associated with the resource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetResourceAttributes description: "input to setResourceAttributes" type: object required: - resource - attributes properties: resource: { type: integer, description: "resource id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/m-g-wu: post: tags: - AttributesManager operationId: setMemberGroupWithUserAttributes description: | Store the attributes associated with the member and group combination. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). If workWithUserAttributes is true, the method stores also the attributes associated with user and member. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberGroupWithUserAttributes description: "input to setMemberGroupWithUserAttributes" type: object required: - member - group - attributes - workWithUserAttributes properties: member: { type: integer, description: "member id", nullable: false } group: { type: integer, description: "group id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' workWithUserAttributes: { type: boolean } /json/attributesManager/setAttributes/m-wu: post: tags: - AttributesManager operationId: setMemberWithUserAttributes description: | Store the attributes associated with member and user (which we get from this member) if workWithUserAttributes is true. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberWithUserAttributes description: "input to setMemberWithUserAttributes" type: object required: - member - attributes - workWithUserAttributes properties: member: { type: integer, description: "member id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' workWithUserAttributes: { type: boolean } /json/attributesManager/setAttributes/m-g: post: tags: - AttributesManager operationId: setMemberGroupAttributes description: | Store the attributes associated with the member and group combination. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberGroupAttributes description: "input to setMemberGroupAttributes" type: object required: - member - group - attributes properties: member: { type: integer, description: "member id", nullable: false } group: { type: integer, description: "group id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/m: post: tags: - AttributesManager operationId: setMemberAttributes description: | Store the attributes associated with the member. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberAttributes description: "input to setMemberAttributes" type: object required: - member - attributes properties: member: { type: integer, description: "member id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/u: post: tags: - AttributesManager operationId: setUserAttributes description: | Store the attributes associated with the user. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetUserAttributes description: "input to setUserAttributes" type: object required: - user - attributes properties: user: { type: integer, description: "user id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/g: post: tags: - AttributesManager operationId: setGroupAttributes description: | Store the attributes associated with the group. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetGroupAttributes description: "input to setGroupAttributes" type: object required: - group - attributes properties: group: { type: integer, description: "group id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/h: post: tags: - AttributesManager operationId: setHostAttributes description: | Store the attributes associated with the host. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetHostAttributes description: "input to setHostAttributes" type: object required: - host - attributes properties: host: { type: integer, description: "host id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/setAttributes/ues: post: tags: - AttributesManager operationId: setUserExtSourceAttributes description: | Store the attributes associated with the UserExtSource. If an attribute is core attribute then the attribute isn't stored (It's skipped without any notification). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetUserExtSourceAttributes description: "input to setUserExtSourceAttributes" type: object required: - userExtSource - attributes properties: userExtSource: { type: integer, description: "userExtSource id", nullable: false } attributes: type: array nullable: false items: $ref: '#/components/schemas/Attribute' /json/attributesManager/getAttribute/name-facility: get: tags: - AttributesManager operationId: getFacilityAttributeByName summary: Returns a facility Attribute by its name. description: This is an overloaded method getAttribute, specialized for facility and attribute name. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-facility: get: tags: - AttributesManager operationId: getFacilityAttributeById summary: Returns a facility Attribute by its id. description: This is an overloaded method getAttribute, specialized for facility and attribute id. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-user: get: tags: - AttributesManager operationId: getUserAttributeByName summary: Returns a user Attribute by its name. description: This is an overloaded method getAttribute, specialized for user and attribute name. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-user: get: tags: - AttributesManager operationId: getUserAttributeById summary: Returns a user Attribute by its id. description: This is an overloaded method getAttribute, specialized for user and attribute id. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/user-facility: get: tags: - AttributesManager operationId: getUserFacilityAttributes summary: Returns all non-empty User-Facility attributes for selected User and Facility. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-user_facility: get: tags: - AttributesManager operationId: getUserFacilityAttributeByName summary: Returns a user_facility Attribute by its name. description: This is an overloaded method getAttribute, specialized for user, facility and attribute name. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-user_facility: get: tags: - AttributesManager operationId: getUserFacilityAttributeById summary: Returns a user_facility Attribute by its id. description: This is an overloaded method getAttribute, specialized for user, facility and attribute id. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-vo: get: tags: - AttributesManager operationId: getVoAttributeByName summary: Returns a Vo Attribute by its name. description: This is an overloaded method getAttribute, specialized for virtual organization and attribute name. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-vo: get: tags: - AttributesManager operationId: getVoAttributeById summary: Returns a Vo Attribute by its id. description: This is an overloaded method getAttribute, specialized for virtual organization and attribute id. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-member: get: tags: - AttributesManager operationId: getMemberAttributeByName summary: Returns a member Attribute by its name. description: This is an overloaded method getAttribute, specialized for member and attribute name. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-member: get: tags: - AttributesManager operationId: getMemberAttributeById summary: Returns a member Attribute by its id. description: This is an overloaded method getAttribute, specialized for member and attribute id. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-group: get: tags: - AttributesManager operationId: getGroupAttributeByName summary: Returns a group Attribute by its name. description: This is an overloaded method getAttribute, specialized for group and attribute name. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-group: get: tags: - AttributesManager operationId: getGroupAttributeById summary: Returns a group Attribute by its id. description: This is an overloaded method getAttribute, specialized for group and attribute id. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-resource: get: tags: - AttributesManager operationId: getResourceAttributeByName summary: Returns a resource Attribute by its name. description: This is an overloaded method getAttribute, specialized for resource and attribute name. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-resource: get: tags: - AttributesManager operationId: getResourceAttributeById summary: Returns a resource Attribute by its id. description: This is an overloaded method getAttribute, specialized for resource and attribute id. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-member-group: get: tags: - AttributesManager operationId: getMemberGroupAttributeByName summary: Returns a member_group Attribute by its name. description: This is an overloaded method getAttribute, specialized for member, group and attribute name. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-member-group: get: tags: - AttributesManager operationId: getMemberGroupAttributeById summary: Returns a member_group Attribute by its id. description: This is an overloaded method getAttribute, specialized for member, group and attribute id. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-member-resource: get: tags: - AttributesManager operationId: getMemberResourceAttributeByName summary: Returns a member_resource Attribute by its name. description: This is an overloaded method getAttribute, specialized for member, resource and attribute name. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-member-resource: get: tags: - AttributesManager operationId: getMemberResourceAttributeById summary: Returns a member_resource Attribute by its id. description: This is an overloaded method getAttribute, specialized for member, resource and attribute id. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributes/group-resource: get: tags: - AttributesManager operationId: getGroupResourceAttributes summary: Returns all non-empty Group-Resource attributes for selected Group and Resource. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-group-resource: get: tags: - AttributesManager operationId: getGroupResourceAttributeByName summary: Returns a group_resource Attribute by its name. description: This is an overloaded method getAttribute, specialized for group, resource and attribute name. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-group-resource: get: tags: - AttributesManager operationId: getGroupResourceAttributeById summary: Returns a group_resource Attribute by its id. description: This is an overloaded method getAttribute, specialized for group, resource and attribute id. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-ues: get: tags: - AttributesManager operationId: getUserExtSourceAttributeByName summary: Returns a UserExtSource Attribute by its name. description: This is an overloaded method getAttribute, specialized for UserExtSource and attribute name. parameters: - $ref: '#/components/parameters/userExtSourceId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-ues: get: tags: - AttributesManager operationId: getUserExtSourceAttributeById summary: Returns a UserExtSource Attribute by its id. description: This is an overloaded method getAttribute, specialized for UserExtSource and attribute id. parameters: - $ref: '#/components/parameters/userExtSourceId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-host: get: tags: - AttributesManager operationId: getHostAttributeByName summary: Returns a host Attribute by its name. description: This is an overloaded method getAttribute, specialized for host and attribute name. parameters: - $ref: '#/components/parameters/hostId' - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/id-host: get: tags: - AttributesManager operationId: getHostAttributeById summary: Returns a host Attribute by its id. description: This is an overloaded method getAttribute, specialized for host and attribute id. parameters: - $ref: '#/components/parameters/hostId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/name-entityless: get: tags: - AttributesManager operationId: getEntitylessAttributeByName summary: Returns an entityless Attribute by its name. description: This is an overloaded method getAttribute, specialized for entityless key and attribute name. parameters: - { name: key, description: "key for entityless attribute", schema: { type: string }, in: query, required: true } - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttribute/any: get: tags: - AttributesManager operationId: getAttribute summary: Returns an Attribute by its name or id. description: | This method cannot be fully described correctly in OpenID, because it cannot describe allowed combinations of parameters. One of attributeName, attributeId is required. The other parameters specify ids that can be combined in the following ways: (facility), (user), (user,facility), (vo), (member), (group), (resource), (member,group), (member,resource), (group,resource),(userExtSource), (host), (key) Use the specialized methods getFacilityAttributeByName(), getMemberResourceAttributeById() etc. externalDocs: url: https://perun-aai.org/documentation/technical-documentation/rpc-api/rpc-javadoc-AttributesManager.html parameters: - { name: attributeName, description: "full name of attribute (namespace + ':' + friendlyName)", schema: { type: string }, in: query } - { name: attributeId, description: "id of attribute", schema: { type: integer }, in: query } - { name: facility, description: "id of Facility", schema: { type: integer }, in: query } - { name: user, description: "id of User", schema: { type: integer }, in: query } - { name: vo, description: "id of Vo", schema: { type: integer }, in: query } - { name: resource, description: "id of Resource", schema: { type: integer }, in: query } - { name: member, description: "id of Member", schema: { type: integer }, in: query } - { name: group, description: "id of Group", schema: { type: integer }, in: query } - { name: host, description: "id of Host", schema: { type: integer }, in: query } - { name: userExtSource, description: "id of UserExtSource", schema: { type: integer }, in: query } - { name: key, description: "key for entityless attribute", schema: { type: string }, in: query } responses: '200': $ref: '#/components/responses/AttributeResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributeDefinition: get: tags: - AttributesManager operationId: getAttributeDefinitionByName summary: Returns an AttributeDefinition by its name. parameters: - $ref: '#/components/parameters/attributeName' responses: '200': $ref: '#/components/responses/AttributeDefinitionResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributesDefinition: get: tags: - AttributesManager operationId: getAllAttributeDefinitions summary: Returns all AttributeDefinitions. parameters: [ ] responses: '200': $ref: '#/components/responses/ListOfAttributeDefinitionsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributeDefinitionById: get: tags: - AttributesManager operationId: getAttributeDefinitionById summary: Returns an AttributeDefinition by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/AttributeDefinitionResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributesDefinitionByNamespace: get: tags: - AttributesManager operationId: getAttributeDefinitionsByNamespace summary: Returns all AttributeDefinitions in a namespace. parameters: - { name: namespace, description: "name of namespace to obtain attribute definitions from", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfAttributeDefinitionsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/getAttributesDefinitionWithRights: get: tags: - AttributesManager operationId: getAttributesDefinitionWithRights summary: Returns all AttributeDefinitions for every entity and possible combination of entities with rights. Only attribute definition of attributes user can read (or write) you will get. Combination of entities is based on provided parameters, which are optional (at least one must be present). parameters: - $ref: '#/components/parameters/optionalMemberId' - $ref: '#/components/parameters/optionalUserId' - $ref: '#/components/parameters/optionalVoId' - $ref: '#/components/parameters/optionalGroupId' - $ref: '#/components/parameters/optionalResourceId' - $ref: '#/components/parameters/optionalFacilityId' - $ref: '#/components/parameters/optionalHostId' - $ref: '#/components/parameters/optionalUserExtSourceId' responses: '200': $ref: '#/components/responses/ListOfAttributeDefinitionsResponse' default: $ref: '#/components/responses/ExceptionResponse' ## # combinations: # (facility), (user), (user,facility), (vo), (member), (group), (resource), # (member,group), (member,resource), (group,resource),(userExtSource), (host), (key) /json/attributesManager/setAttribute/facility: post: tags: - AttributesManager operationId: setFacilityAttribute summary: Sets Attribute for Facility. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetFacilityAttribute description: "input to setFacilityAttribute" type: object required: - facility - attribute properties: facility: { type: integer, description: "facility id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/user: post: tags: - AttributesManager operationId: setUserAttribute summary: Sets Attribute for User. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetUserAttribute description: "input to setUserAttribute" type: object required: - user - attribute properties: user: { type: integer, description: "user id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttributes/facility-user: post: tags: - AttributesManager operationId: setUserFacilityAttributes summary: Sets Attributes for User and Facility. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetUserFacilityAttributes description: "input to setUserFacilityAttributes" type: object required: - user - facility - attributes properties: user: { type: integer, description: "user id" } facility: { type: integer, description: "facility id" } attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } /json/attributesManager/setAttribute/facility-user: post: tags: - AttributesManager operationId: setUserFacilityAttribute summary: Sets Attribute for User and Facility. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetUserFacilityAttribute description: "input to setUserFacilityAttribute" type: object required: - user - facility - attribute properties: user: { type: integer, description: "user id" } facility: { type: integer, description: "facility id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/vo: post: tags: - AttributesManager operationId: setVoAttribute summary: Sets Attribute for Vo. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetVoAttribute description: "input to setVoAttribute" type: object required: - vo - attribute properties: vo: { type: integer, description: "vo id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/member: post: tags: - AttributesManager operationId: setMemberAttribute summary: Sets Attribute for Member. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberAttribute description: "input to setMemberAttribute" type: object required: - member - attribute properties: member: { type: integer, description: "member id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/group: post: tags: - AttributesManager operationId: setGroupAttribute summary: Sets Attribute for Group. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetGroupAttribute description: "input to setGroupAttribute" type: object required: - group - attribute properties: group: { type: integer, description: "group id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/resource: post: tags: - AttributesManager operationId: setResourceAttribute summary: Sets Attribute for Resource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetResourceAttribute description: "input to setResourceAttribute" type: object required: - resource - attribute properties: resource: { type: integer, description: "resource id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/member-group: post: tags: - AttributesManager operationId: setMemberGroupAttribute summary: Sets Attribute for Member and Group. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberGroupAttribute description: "input to setMemberGroupAttribute" type: object required: - member - group - attribute properties: member: { type: integer, description: "member id" } group: { type: integer, description: "group id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/member-resource: post: tags: - AttributesManager operationId: setMemberResourceAttribute summary: Sets Attribute for Member and Resource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetMemberResourceAttribute description: "input to setMemberResourceAttribute" type: object required: - member - resource - attribute properties: member: { type: integer, description: "member id" } resource: { type: integer, description: "resource id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttributes/group-resource: post: tags: - AttributesManager operationId: setGroupResourceAttributes summary: Sets Attributes for Group and Resource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetGroupResourceAttributes description: "input to setGroupResourceAttributes" type: object required: - group - resource - attributes properties: group: { type: integer, description: "group id" } resource: { type: integer, description: "resource id" } attributes: { type: array, items: { $ref: '#/components/schemas/Attribute' } } /json/attributesManager/setAttribute/group-resource: post: tags: - AttributesManager operationId: setGroupResourceAttribute summary: Sets Attribute for Group and Resource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetGroupResourceAttribute description: "input to setGroupResourceAttribute" type: object required: - group - resource - attribute properties: group: { type: integer, description: "group id" } resource: { type: integer, description: "resource id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/userExtSource: post: tags: - AttributesManager operationId: setUserExtSourceAttribute summary: Sets Attribute for UserExtSource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetUserExtSourceAttribute description: "input to setUserExtSourceAttribute" type: object required: - userExtSource - attribute properties: userExtSource: { type: integer, description: "userExtSource id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/host: post: tags: - AttributesManager operationId: setHostAttribute summary: Sets Attribute for Host. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetHostAttribute description: "input to setHostAttribute" type: object required: - host - attribute properties: host: { type: integer, description: "host id" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/setAttribute/entityless: post: tags: - AttributesManager operationId: setEntitylessAttribute summary: Sets entityless Attribute. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputEntitylessAttribute description: "input to setEntitylessAttribute" type: object required: - key - attribute properties: key: { type: string, description: "key for entityless attribute" } attribute: { $ref: '#/components/schemas/Attribute' } /json/attributesManager/createAttribute: post: tags: - AttributesManager operationId: createAttributeDefinition summary: Creates AttributeDefinition. responses: '200': $ref: '#/components/responses/AttributeDefinitionResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateAttributeDefinition description: "input to createAttributeDefinition" type: object required: - attribute properties: attribute: { $ref: '#/components/schemas/AttributeDefinition' } /urlinjsonout/attributesManager/deleteAttribute: post: tags: - AttributesManager operationId: deleteAttributeDefinition summary: Deletes attribute definition from Perun including all values set for any entity. parameters: - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/deleteAttributes: post: tags: - AttributesManager operationId: deleteAttributeDefinitions summary: Deletes attribute definitions from Perun including all values set for any entity. parameters: - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-r-g-m: get: tags: - AttributesManager operationId: getRequiredAttributesMemberGroupResourceService summary: Returns member, member-group and member-resource attributes required by specified service. If workWithUserAttributes == TRUE, then returns also user and user-facility attributes. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/workWithUserAttributesOptional' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-r-g: get: tags: - AttributesManager operationId: getRequiredAttributesGroupResourceService summary: Returns group-resource attributes required by specified service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-r-m: get: tags: - AttributesManager operationId: getRequiredAttributesMemberResourceService summary: Returns member and member-resource attributes required by the specified service. If workWithUserAttributes == TRUE, then returns also user attributes. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/workWithUserAttributesOptional' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-r: get: tags: - AttributesManager operationId: getRequiredAttributesResourceService summary: Returns resource attributes required by specified service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-g-m: get: tags: - AttributesManager operationId: getRequiredAttributesMemberGroupService summary: Returns member-group attributes required by specified service. If workWithUserAttributes == TRUE, then returns also member and user attributes. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/workWithUserAttributesOptional' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-f: get: tags: - AttributesManager operationId: getRequiredAttributesFacilityService summary: Returns facility attributes required by specified service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-h: get: tags: - AttributesManager operationId: getRequiredAttributesHostService summary: Returns required host attributes. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/hostId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/s-v: get: tags: - AttributesManager operationId: getRequiredAttributesVoService summary: Returns required vo attributes. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/ss-f: get: tags: - AttributesManager operationId: getRequiredAttributesFacilityServices summary: Returns facility attributes required by specified list of services. parameters: - $ref: '#/components/parameters/serviceIds' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/ss-r: get: tags: - AttributesManager operationId: getRequiredAttributesResourceServices summary: Returns resource attributes required by specified list of services. parameters: - $ref: '#/components/parameters/serviceIds' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/m-r: get: tags: - AttributesManager operationId: getRequiredAttributesMemberResource summary: Returns member-resource attributes required by specified list of services. If workWithUserAttributes == TRUE, then returns also user attributes. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/workWithUserAttributesOptional' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/r: get: tags: - AttributesManager operationId: getRequiredAttributesResource summary: Returns required resource attributes. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/u-f: get: tags: - AttributesManager operationId: getRequiredAttributesUserFacility summary: Returns required user-facility attributes. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/f: get: tags: - AttributesManager operationId: getRequiredAttributesFacility summary: Returns required facility attributes. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/m-g: get: tags: - AttributesManager operationId: getRequiredAttributesMemberGroup summary: Returns required member-group attributes. If workWithUserAttributes == TRUE, then returns also user attributes. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/workWithUserAttributesOptional' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/m: get: tags: - AttributesManager operationId: getRequiredAttributesMember summary: Returns required member attributes. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/workWithUserAttributesOptional' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributes/u: get: tags: - AttributesManager operationId: getRequiredAttributesUser summary: Returns required user attributes. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getRequiredAttributesDefinition: get: tags: - AttributesManager operationId: getRequiredAttributesDefinition summary: Returns required attributes definition for a Service. parameters: - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/ListOfAttributeDefinitionsResponse' default: $ref: '#/components/responses/ExceptionResponse' #TODO getResourceRequiredAttributes #TODO fillAttribute #TODO fillAttributes #TODO checkAttributeSyntax #TODO checkAttributeSemantics #TODO checkAttributesSemantics #TODO checkAttributesSyntax /urlinjsonout/attributesManager/removeAttributes/m-workWithUserAttributes: post: tags: - AttributesManager operationId: removeMemberAttributesWorkWithUserAttributes summary: Remove attributes of namespace member parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attributes' - $ref: '#/components/parameters/workWithUserAttributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/m-g-workWithUserAttributes: post: tags: - AttributesManager operationId: removeMemberGroupAttributesWorkWithUserAttributes summary: Remove attributes of namespace member-group parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributes' - $ref: '#/components/parameters/workWithUserAttributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/g-r-workWithGroupAttributes: post: tags: - AttributesManager operationId: removeGroupResourceAttributesWorkWithGroupAttributes summary: Remove attributes of namespace group-resource parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributes' - $ref: '#/components/parameters/workWithGroupAttributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/m-g: post: tags: - AttributesManager operationId: removeMemberGroupAttributes summary: Remove attributes of namespace member-group parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/m-r: post: tags: - AttributesManager operationId: removeMemberResourceAttributes summary: Remove attributes of namespace member-resource parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/u-f: post: tags: - AttributesManager operationId: removeUserFacilityAttributes summary: Remove attributes of namespace user-facility parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/f-r-u-m: post: tags: - AttributesManager operationId: removeAttributesForFacilityResourceUserMember summary: Remove attributes of namespace facility, resource, user and member parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/f-r-g-u-m: post: tags: - AttributesManager operationId: removeAttributesForFacilityResourceGroupUserMember summary: Remove attributes of namespace facility, resource, group, user and member parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/g-r: post: tags: - AttributesManager operationId: removeGroupResourceAttributes summary: Remove attributes of namespace group-resource parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/r: post: tags: - AttributesManager operationId: removeResourceAttributes summary: Remove attributes of namespace resource parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/ues: post: tags: - AttributesManager operationId: removeUesAttributes summary: Remove attributes of namespace userExtSource parameters: - $ref: '#/components/parameters/userExtSourceId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/h: post: tags: - AttributesManager operationId: removeHostAttributes summary: Remove attributes of namespace host parameters: - $ref: '#/components/parameters/hostId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/f: post: tags: - AttributesManager operationId: removeFacilityAttributes summary: Remove attributes of namespace facility parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/m: post: tags: - AttributesManager operationId: removeMemberAttributes summary: Remove attributes of namespace member parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/u: post: tags: - AttributesManager operationId: removeUserAttributes summary: Remove attributes of namespace user parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/g: post: tags: - AttributesManager operationId: removeGroupAttributes summary: Remove attributes of namespace group parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttributes/v: post: tags: - AttributesManager operationId: removeVoAttributes summary: Remove attributes of namespace vo parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/u-f: post: tags: - AttributesManager operationId: removeUserFacilityAttribute summary: Remove user facility attribute parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/f: post: tags: - AttributesManager operationId: removeFacilityAttribute summary: Remove facility attribute parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/v: post: tags: - AttributesManager operationId: removeVoAttribute summary: Remove vo attribute parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/m-r: post: tags: - AttributesManager operationId: removeMemberResourceAttribute summary: Remove member-resource attribute parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/g-r: post: tags: - AttributesManager operationId: removeGroupResourceAttribute summary: Remove group-resource attribute parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/r: post: tags: - AttributesManager operationId: removeResourceAttribute summary: Remove resource attribute parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/m-g: post: tags: - AttributesManager operationId: removeMemberGroupAttribute summary: Remove member-group attribute parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/m: post: tags: - AttributesManager operationId: removeMemberAttribute summary: Remove member attribute parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/u: post: tags: - AttributesManager operationId: removeUserAttribute summary: Remove user attribute parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/g: post: tags: - AttributesManager operationId: removeGroupAttribute summary: Remove group attribute parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/h: post: tags: - AttributesManager operationId: removeHostAttribute summary: Remove host attribute parameters: - $ref: '#/components/parameters/hostId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/ues: post: tags: - AttributesManager operationId: removeUserExtSourceAttribute summary: Remove userExtSource attribute parameters: - $ref: '#/components/parameters/userExtSourceId' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/removeAttribute/e: post: tags: - AttributesManager operationId: removeEntitylessAttribute summary: Remove entityless attribute parameters: - $ref: '#/components/parameters/key' - $ref: '#/components/parameters/attributeInteger' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' #TODO removeAllAttributes /json/attributesManager/getLogins: get: tags: - AttributesManager operationId: getLogins summary: "Get all users logins as Attributes. Meaning it returns all non-empty User attributes with URN starting with: \"urn:perun:user:attribute-def:def:login-namespace:\"." parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/updateAttributeDefinition: post: tags: - AttributesManager operationId: updateAttributeDefinition summary: Updates AttributeDefinition in Perun based on provided object. Update is done on AttributeDefinition selected by its id. requestBody: required: true content: application/json: schema: type: object title: InputAttributeDefinition description: Input to updateAttributeDefinition required: - attributeDefinition properties: attributeDefinition: $ref: '#/components/schemas/AttributeDefinition' responses: '200': $ref: '#/components/responses/AttributeDefinitionResponse' default: $ref: '#/components/responses/ExceptionResponse' #TODO doTheMagic /json/attributesManager/getAttributePolicyCollections: get: tags: - AttributesManager operationId: getAttributePolicyCollections summary: "Gets attribute policy collections for an attribute definition with given id." parameters: - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/ListOfAttributePolicyCollectionResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributeRules: get: tags: - AttributesManager operationId: getAttributeRules summary: "Gets attribute rules containing policy collections and critical actions for an attribute definition with given id" parameters: - $ref: '#/components/parameters/attributeDefinitionId' responses: '200': $ref: '#/components/responses/AttributeRulesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/setAttributePolicyCollections: post: tags: - AttributesManager operationId: setAttributePolicyCollections summary: "Deletes old attribute policy collections and sets attribute policy collections for an attribute definition provided in given policy collections." requestBody: required: true content: application/json: schema: title: InputAttributePolicyCollections description: Input to setAttributePolicyCollections type: object required: - policyCollections properties: policyCollections: type: array items: $ref: '#/components/schemas/AttributePolicyCollection' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/setAttributeActionCriticality: post: tags: - AttributesManager operationId: setAttributeActionCriticality summary: Marks the action on attribute as critical, which may require additional authentication of user performing that action on attribute. parameters: - $ref: '#/components/parameters/attributeDefinitionId' - { name: action, description: "type of action to mark as critical", in: query, schema: { $ref: '#/components/schemas/AttributeAction' }, required: true } - { name: critical, description: "if action should be marked as critical", schema: { type: boolean }, in: query, required: true } - { name: global, description: "if action should be globally critical (for all objects)", schema: { type: boolean }, in: query, required: false } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/convertAttributeToUnique: post: tags: - AttributesManager operationId: convertAttributeToUnique summary: "Converts attribute to unique - marks its definition as unique and ensures that all its values are unique. Entityless attributes cannot be converted to unique, only attributes attached to PerunBeans or pairs of PerunBeans." parameters: - $ref: '#/components/parameters/attrDefId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/attributesManager/convertAttributeToNonunique: post: tags: - AttributesManager operationId: convertAttributeToNonunique summary: "Converts attribute to nonunique - unmarks unique flag from attribute definition, and deletes all values from a special table with unique constraint that ensures that all values remain unique." parameters: - $ref: '#/components/parameters/attrDefId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributeModulesDependenciesGraphText: get: tags: - AttributesManager operationId: getAttributeModulesDependenciesGraphText summary: | Generates text file describing dependencies between attribute modules. The format of text file can be specified by parameter. Modules that has no dependency relations are omitted. parameters: - name: format description: "format of the generated graph (DOT or TGF)" in: query schema: { $ref: '#/components/schemas/GraphFileFormat' } required: true responses: '200': $ref: '#/components/responses/GraphDTOResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAttributeModulesDependenciesGraphText/for-attribute: get: tags: - AttributesManager operationId: getAttributeModulesDependenciesForAttributeGraphText summary: | Generates text file describing dependencies between attribute modules. The format of text file can be specified by parameter. Modules that has no dependency relations are omitted. parameters: - name: format description: "format of the generated graph (DOT or TGF)" in: query schema: { $ref: '#/components/schemas/GraphFileFormat' } required: true - name: attrName in: query schema: type: string description: Attribute name which dependencies will be found. required: true responses: '200': $ref: '#/components/responses/GraphDTOResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getIdpAttributeDefinitions: get: tags: - AttributesManager operationId: getIdpAttributeDefinitions summary: Returns list of definitions of IdP attributes that are filled to fedInfo responses: '200': $ref: '#/components/responses/ListOfAttributeDefinitionsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/attributesManager/getAllNamespaces: get: tags: - AttributesManager operationId: getAllNamespaces summary: Returns list of all possible namespaces. responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # AuditMessagesManager # # # ################################################# /json/auditMessagesManager/getMessages: get: tags: - AuditMessagesManager operationId: getMessages summary: | Returns 100 newest audit messages from auditLOG. If there is a less messages than 100, then all of them are returned OR Returns exact number of newest audit messages defined by 'count' param (disregarding message IDs). If there is less messages present, then all of them are returned.. parameters: - { name: count, in: query, schema: { type: integer }, description: "Messages limit", required: false } responses: '200': $ref: '#/components/responses/ListOfAuditMessagesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/auditMessagesManager/getMessagesByCount: get: tags: - AuditMessagesManager operationId: getMessagesByCount summary: | Returns all messages with IDs within the range from max(ID) to (max(ID)-count), where number of returned messages is equal or less than 'count' param, because some IDs could be skipped in the sequence. parameters: - { name: count, in: query, schema: { type: integer }, description: "Number of IDs to subtract from max_id", required: true } responses: '200': $ref: '#/components/responses/ListOfAuditMessagesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/auditMessagesManager/getMessagesByIdAndCount: get: tags: - AuditMessagesManager operationId: getMessagesByIdAndCount summary: | Returns "count" number of messages that are more or equal than the given ID (ascending order), i.e. the method returns newer messages by provided ID. parameters: - { name: id, in: query, schema: { type: integer }, description: "Starting id from which the messages will be taken", required: true } - { name: count, in: query, schema: { type: integer }, description: "Number of messages that will be returned", required: true } responses: '200': $ref: '#/components/responses/ListOfAuditMessagesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/auditMessagesManager/getMessagesPage: post: tags: - AuditMessagesManager operationId: getMessagesPage summary: Get page of audit messages. Total count is only estimated. responses: '200': $ref: '#/components/responses/PaginatedMessagesResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetMessagesPage description: "input to get messages page" type: object required: - query properties: query: { $ref: '#/components/schemas/AuditMessagesPageQuery' } /json/auditMessagesManager/pollConsumerMessages: get: tags: - AuditMessagesManager operationId: pollConsumerMessages summary: | Returns list of AuditMessages from audit log with IDs > lastProcessedId for registered auditer consumer specified by consumerName param. parameters: - $ref: '#/components/parameters/consumerName' responses: '200': $ref: '#/components/responses/ListOfAuditMessagesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/auditMessagesManager/setLastProcessedId: post: tags: - AuditMessagesManager operationId: setLastProcessedId summary: | Set ID of last processed message for specified consumer. parameters: - $ref: '#/components/parameters/consumerName' - { name: lastProcessedId, in: query, schema: { type: integer }, description: "id of message to what consumer will be set", required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/auditMessagesManager/createAuditerConsumer: post: tags: - AuditMessagesManager operationId: createAuditerConsumer summary: | Creates new auditer consumer with last processed id which equals current auditer log max id. parameters: - $ref: '#/components/parameters/consumerName' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/auditMessagesManager/getAllAuditerConsumers: get: tags: - AuditMessagesManager operationId: getAllAuditerConsumers summary: | Get all auditer consumers as a map with key=value pairs like String(name)=Integer(lastProcessedId). responses: '200': description: map with key=value pairs like String(name)=Integer(lastProcessedId) content: application/json: schema: type: object additionalProperties: type: integer default: $ref: '#/components/responses/ExceptionResponse' /json/auditMessagesManager/getLastMessageId: get: tags: - AuditMessagesManager operationId: getLastMessageId summary: | Get ID of last (newest) message in auditer logs. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/auditMessagesManager/getAuditerMessagesCount: get: tags: - AuditMessagesManager operationId: getAuditerMessagesCount summary: | Get count of all messages stored in auditer logs. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/auditMessagesManager/log: post: tags: - AuditMessagesManager operationId: auditMessagesManagerLog summary: | Log arbitrary auditer message/event to the auditLOG. parameters: - { name: msg, in: query, schema: { type: string }, description: "Message to be logged", required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/auditMessagesManager/findAllPossibleEvents: get: tags: - AuditMessagesManager operationId: findAllPossibleEvents summary: Get list of names of all possible events. responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # CabinetManager # # # ################################################# /json/cabinetManager/getPublicationSystems: get: tags: - CabinetManager operationId: getPublicationSystems summary: Get all PublicationSystems in Perun. If none, return empty list. responses: '200': $ref: '#/components/responses/ListOfPublicationSystemsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/cabinetManager/deletePublicationSystem: post: tags: - CabinetManager operationId: deletePublicationSystem summary: Deletes PublicationSystem by its ID. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/createPublicationSystem: post: tags: - CabinetManager operationId: createPublicationSystem summary: Creates new PublicationSystem. responses: '200': $ref: '#/components/responses/PublicationSystemResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreatePublicationSystem description: 'input to createPublicationSystem' type: object required: - pubsys properties: pubsys: { $ref: '#/components/schemas/PublicationSystem' } /json/cabinetManager/updatePublicationSystem: post: tags: - CabinetManager operationId: updatePublicationSystem summary: Updates PublicationSystem by its ID. responses: '200': $ref: '#/components/responses/PublicationSystemResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdatePublicationSystem description: 'input to updatePublicationSystem' type: object required: - pubsys properties: pubsys: { $ref: '#/components/schemas/PublicationSystem' } /json/cabinetManager/getCategories: get: tags: - CabinetManager operationId: getCategories summary: Return list of all Categories in Perun or empty list of none present. responses: '200': $ref: '#/components/responses/ListOfCategoryResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/createCategory/cat: post: tags: - CabinetManager operationId: createCategoryCat summary: | Creates new Category for Publications with specified name and rank. Category object's parameter name must be non-empty, max 128 chars long and rank must be double with single digit after decimal point. Other parameters are ignored. responses: '200': $ref: '#/components/responses/CategoryResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateCategory description: 'input to createCategory' type: object required: - category properties: category: { $ref: '#/components/schemas/Category' } /json/cabinetManager/createCategory/n-r: post: tags: - CabinetManager operationId: createCategoryNR summary: Creates new Category for Publications with specified name and rank. responses: '200': $ref: '#/components/responses/CategoryResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateCategoryNR description: 'input to createCategory' type: object required: - name - rank properties: name: { type: string, description: 'name of the category' } rank: { type: number, format: double, description: 'the rank of the category' } /json/cabinetManager/updateCategory: post: tags: - CabinetManager operationId: updateCategory summary: | Updates publications category in Perun. Category to update is found by ID. When category rank is changed, priorityCoefficient for all authors of books from this category, is recalculated. responses: '200': $ref: '#/components/responses/CategoryResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateCategory description: 'input to updateCategory' type: object required: - category properties: category: { $ref: '#/components/schemas/Category' } /urlinjsonout/cabinetManager/deleteCategory: post: tags: - CabinetManager operationId: deleteCategory summary: Delete category by its ID. If category contains any publications, it can't be deleted. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/createThanks: post: tags: - CabinetManager operationId: createThanks summary: Creates new Thanks for Publication responses: '200': $ref: '#/components/responses/ThanksResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateThanks description: 'input to createThanks' type: object required: - thanks properties: thanks: { $ref: '#/components/schemas/Thanks' } /urlinjsonout/cabinetManager/deleteThanks: post: tags: - CabinetManager operationId: deleteThanks summary: Delete Thanks by its ID. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/getRichThanksByPublicationId: get: tags: - CabinetManager operationId: getRichThanksByPublicationId summary: Get ThanksForGUI of Publication specified by its ID or empty list. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ListOfThanksForGUIResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/createAuthorship: post: tags: - CabinetManager operationId: createAutorship summary: | Creates Authorship. Everything except current date must be already set in Authorship object. Authorship is checked for existence before creation, if exists, existing object is returned. When authorship is successfully created, users priority coefficient is updated. responses: '200': $ref: '#/components/responses/AuthorshipResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateAuthorship description: 'input to createAuthorship' type: object required: - authorship properties: authorship: { $ref: '#/components/schemas/Authorship' } /urlinjsonout/cabinetManager/deleteAuthorship: post: tags: - CabinetManager operationId: deleteAuthorship summary: Delete Authorship by its userId and publicationId. parameters: - $ref: '#/components/parameters/publicationId' - { name: userId, schema: { type: integer }, in: query, required: true, description: 'id of user' } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/getRank: get: tags: - CabinetManager operationId: getRank summary: Gets overall rank of given user as sum of all his publications Authorships. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/DoubleResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/findAuthorsByPublicationId: get: tags: - CabinetManager operationId: findAuthorsByPublicationId summary: Return all Authors of Publication specified by its ID. Empty list of none found. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ListOfAuthorResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/findAllAuthors: get: tags: - CabinetManager operationId: findAllAuthors summary: Return all Authors of Publications. Empty list of none found. responses: '200': $ref: '#/components/responses/ListOfAuthorResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/findNewAuthors: get: tags: - CabinetManager operationId: findNewAuthors summary: | Find new Authors for Publication. Empty list of none found. Used by users to search for colleagues to add them as co-authors. parameters: - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfAuthorResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/createPublication: post: tags: - CabinetManager operationId: createPublication summary: | Create Publication. If exists by its ID or EXT_ID,PUB_SYS_ID then existing publication is returned. responses: '200': $ref: '#/components/responses/PublicationResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreatePublication description: 'input to createPublication' type: object required: - publication properties: publication: { $ref: '#/components/schemas/Publication' } /json/cabinetManager/updatePublication: post: tags: - CabinetManager operationId: updatePublication summary: Update existing publication by its ID. responses: '200': $ref: '#/components/responses/PublicationResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdatePublication description: 'input to updatePublication' type: object required: - publication properties: publication: { $ref: '#/components/schemas/Publication' } /urlinjsonout/cabinetManager/deletePublication: post: tags: - CabinetManager operationId: deletePublication summary: | Delete publication by its ID. Only Author of the record or PerunAdmin can do this. - Author deletes Authorships and Thanks from publication. - PerunAdmin also delete publication record. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/findPublicationById: get: tags: - CabinetManager operationId: findPublicationById summary: | Return Publication by its ID. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/PublicationForGUIResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/findPublicationsByGUIFilter: get: tags: - CabinetManager operationId: findPublicationsByGUIFilter summary: | Finds rich publications in Cabinet by GUI filter: id = exact match (used when search for publication of authors) title = if "like" this substring year = exact match isbn = if "like" this substring category = exact match yearSince = if year >= yearSince yearTill = if year <= yearTill userId = exact match or 0 If you don't want to filter by publication params, do not include the attribute in the query. parameters: - $ref: '#/components/parameters/title' - $ref: '#/components/parameters/isbn' - $ref: '#/components/parameters/doi' - name: id in: query schema: type: integer description: Publication id required: false - name: year in: query schema: type: integer description: Year required: false - name: category in: query schema: type: integer description: Category required: false - name: yearSince in: query schema: type: integer description: Year since required: false - name: yearTill in: query schema: type: integer description: Year till required: false - name: userId in: query schema: type: integer description: User id required: false responses: '200': $ref: '#/components/responses/ListOfPublicationForGUIResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/findPublicationsByFilter: get: tags: - CabinetManager operationId: findPublicationsByFilter summary: Finds publications in Cabinet by filter. parameters: - name: yearSince in: query schema: type: integer description: Year since required: false - name: yearTill in: query schema: type: integer description: Year till required: false - name: userId in: query schema: type: integer description: User id required: true responses: '200': $ref: '#/components/responses/ListOfPublicationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/lockPublications: post: tags: - CabinetManager operationId: lockPublications summary: (Un)Lock passed Publications for changes. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputLockPublications description: 'input to lockPublications' type: object required: - lock - publications properties: publications: { type: array, items: { $ref: '#/components/schemas/Publication' } } lock: { type: boolean } /json/cabinetManager/findExternalPublications: get: tags: - CabinetManager operationId: findExternalPublications summary: | Finds publications of perun's user specified in param Search is done in external publication systems (MU, ZCU) All parameters are required. parameters: - $ref: '#/components/parameters/userId' - name: yearSince in: query schema: type: integer description: Year since required: true - name: yearTill in: query schema: type: integer description: Year till required: true - name: pubSysNamespace in: query schema: type: string description: (MU or ZCU) required: true responses: '200': $ref: '#/components/responses/ListOfPublicationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/cabinetManager/findSimilarPublications: get: tags: - CabinetManager operationId: findSimilarPublications summary: Finds similar publications parameters: - $ref: '#/components/parameters/title' - $ref: '#/components/parameters/doi' - $ref: '#/components/parameters/isbn' responses: '200': $ref: '#/components/responses/ListOfPublicationForGUIResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # DatabaseManager # # # ################################################# /json/databaseManager/getCurrentDatabaseVersion: get: tags: - DatabaseManager operationId: getCurrentDatabaseVersion summary: Returns current database version, e.g. "3.1.55" responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/databaseManager/getDatabaseDriverInformation: get: tags: - DatabaseManager operationId: getDatabaseDriverInformation summary: Returns current database driver info, e.g. "PostgreSQL JDBC Driver-42.2.8" responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/databaseManager/getDatabaseInformation: get: tags: - DatabaseManager operationId: getDatabaseInformation summary: Returns current database info, e.g. "PostgreSQL-12.0 (Debian 12.0-2.pgdg100+1)" responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/databaseManager/getTimeOfQueryPerformance: get: tags: - DatabaseManager operationId: getTimeOfQueryPerformance summary: Get time in ns "nanoseconds" of calling 1 simple update query to DB responses: '200': $ref: '#/components/responses/LongResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # ExtSourcesManager # # # ################################################# /json/extSourcesManager/createExtSource/es: post: tags: - ExtSourcesManager operationId: createExtSourceFromExtSourceObject summary: "Creates an external source. ExtSource object must contain: name, type. Other parameters are ignored." responses: '200': $ref: '#/components/responses/ExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: ExtSourceObject description: "input to createExtSourceFromExtSourceObject" type: object required: - extSource properties: extSource: { $ref: '#/components/schemas/ExtSource' } /urlinjsonout/extSourcesManager/createExtSource/n-t: post: tags: - ExtSourcesManager operationId: createExtSourceWithNameType summary: "Creates an external source." parameters: - $ref: '#/components/parameters/name' - name: type schema: type: string description: type of ExtSource required: true in: query responses: '200': $ref: '#/components/responses/ExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/deleteExtSource: post: tags: - ExtSourcesManager operationId: deleteExtSource summary: "Delete an external source." parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/extSourcesManager/getExtSourceById: get: tags: - ExtSourcesManager operationId: getExtSourceById summary: Returns an external source by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/extSourcesManager/getExtSourceByName: get: tags: - ExtSourcesManager operationId: getExtSourceByName summary: Returns an external source by its name. parameters: - $ref: '#/components/parameters/name' responses: '200': $ref: '#/components/responses/ExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/extSourcesManager/getVoExtSources: get: tags: - ExtSourcesManager operationId: getVoExtSources summary: Returns the list of external sources associated with a VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfExtSourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/extSourcesManager/getGroupExtSources: get: tags: - ExtSourcesManager operationId: getGroupExtSources summary: Returns the list of external sources associated with a GROUP. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfExtSourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/extSourcesManager/getExtSources: get: tags: - ExtSourcesManager operationId: getExtSources summary: Returns the list of all external sources. responses: '200': $ref: '#/components/responses/ListOfExtSourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/addExtSource/v-s: post: tags: - ExtSourcesManager operationId: addExtSourceWithVoSource summary: Associate an external source definition with a VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/sourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/addExtSources/v-s: post: tags: - ExtSourcesManager operationId: addExtSourcesWithVoSource summary: Associate external source definitions with a VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/extSourceIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/addExtSource/g-s: post: tags: - ExtSourcesManager operationId: addExtSourceWithGroupSource summary: Associate an external source definition with a GROUP. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/sourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/addExtSources/g-s: post: tags: - ExtSourcesManager operationId: addExtSourcesWithGroupSource summary: Associate external source definitions with a GROUP. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/extSourceIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/removeExtSource/v-s: post: tags: - ExtSourcesManager operationId: removeExtSourceWithVoSource summary: Remove an association of an external source from a VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/sourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/removeExtSources/v-s: post: tags: - ExtSourcesManager operationId: removeExtSourcesWithVoSource summary: remove associations of external source definitions with a VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/extSourceIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/removeExtSource/g-s: post: tags: - ExtSourcesManager operationId: removeExtSourceWithGroupSource summary: Remove an association of an external source from a GROUP. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/sourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/extSourcesManager/removeExtSources/g-s: post: tags: - ExtSourcesManager operationId: removeExtSourcesWithGroupSource summary: Remove associations of external source definitions with a GROUP. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/extSourceIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/extSourcesManager/loadExtSourcesDefinitions: get: tags: - ExtSourcesManager operationId: loadExtSourcesDefinitions summary: Loads ext source definitions from the configuration file and updates entries stored in the DB. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # UsersManager # # # ################################################# /json/usersManager/getUserById: get: tags: - UsersManager operationId: getUserById summary: Returns user by its id description: Returns object representing the User parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/UserResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getSponsorsForMember/member: get: tags: - UsersManager operationId: getSponsorsForMember summary: Gets sponsors for given member with optional attribute names. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfSponsorsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getSponsorsForMember/vo: get: tags: - UsersManager operationId: getSponsorsForMemberByVoAndLogin summary: Gets sponsors for member specified by VO, extSourceName and extLogin with optional attribute names. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/extSourceName' - $ref: '#/components/parameters/extLogin' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfSponsorsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserByExtSourceNameAndExtLogin: get: tags: - UsersManager operationId: getUserByExtSourceNameAndExtLogin summary: Returns user by its ExtSourceName and ExtLogin. description: Returns User found by its authentication data parameters: - $ref: '#/components/parameters/extLogin' - $ref: '#/components/parameters/extSourceName' responses: '200': $ref: '#/components/responses/UserResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getRichUserWithAttributes: get: tags: - UsersManager operationId: getRichUserWithAttributes summary: Returns user with attributes description: Returns object representing the User with attributes parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/RichUserResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUsers: get: tags: - UsersManager operationId: getUsers summary: Returns all users description: Returns list of objects representing the User responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getAllRichUsersWithAttributes: get: tags: - UsersManager operationId: getAllRichUsersWithAttributes summary: Returns users with attributes description: Returns list of objects representing the User with attributes parameters: - { name: includedSpecificUsers, description: "if you want to or don't want to get specificUsers too", schema: { type: boolean, }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getRichUsersByIds: get: tags: - UsersManager operationId: getRichUsersByIds summary: Returns rich users without attributes by their IDs. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getRichUsersWithAttributesByIds: get: tags: - UsersManager operationId: getRichUsersWithAttributesByIds summary: Returns rich users with attributes by their IDs. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserExtSources: get: tags: - UsersManager operationId: getUserExtSources summary: Gets list of all user's external sources. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfUserExtSourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/checkPasswordStrength: post: tags: - UsersManager operationId: checkPasswordStrength summary: Check password strength for the given namespace. Some namespaces may require passing also login for complete password strength check. description: If the check fails, the PasswordStrengthException error is returned. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCheckPasswordStrength description: "input for checkPasswordStrength" type: object required: - password - namespace properties: password: { type: string } namespace: { type: string } login: { type: string } /json/usersManager/getGroupsWhereUserIsActive/facility: get: tags: - UsersManager operationId: getGroupsForFacilityWhereUserIsActive summary: Get list of groups of user on specified facility where use is active. description: | That means User is a VALID in the VO and the Group and groups are assigned to the facility. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getGroupsWhereUserIsActive/resource: get: tags: - UsersManager operationId: getGroupsForResourceWhereUserIsActive summary: Get list of groups of user on specified resource where use is active. description: | That means User is a VALID in the VO and the Group and groups are assigned to the resource. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getRichGroupsWhereUserIsActive/facility: get: tags: - UsersManager operationId: getRichGroupsForFacilityWhereUserIsActive summary: Get list of groups of user on specified facility where use is active. description: | That means User is a VALID in the VO and the Group and groups are assigned to the facility. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getRichGroupsWhereUserIsActive/resource: get: tags: - UsersManager operationId: getRichGroupsForResourceWhereUserIsActive summary: Get list of groups of user on specified resource where use is active. description: | That means User is a VALID in the VO and the Group and groups are assigned to the resource. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/findUsers: get: tags: - UsersManager operationId: findUsers summary: Returns list of Users with attributes who matches the searchString, searching name, email, logins. parameters: - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/findRichUsers: get: tags: - UsersManager operationId: findRichUsers summary: Returns list of RichUsers with attributes who matches the searchString, searching name, email, logins. parameters: - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/findRichUsersWithAttributes: get: tags: - UsersManager operationId: findRichUsersWithAttributes summary: Returns list of RichUsers with attributes who matches the searchString. parameters: - $ref: '#/components/parameters/searchString' - name: "attrsNames[]" description: "list of attribute names List or null" in: query required: false schema: type: array items: type: string responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getRichUsersWithoutVoWithAttributes: get: tags: - UsersManager operationId: getRichUsersWithoutVoWithAttributes summary: Returns list of RichUsers which are not members of any VO with attributes. parameters: - name: "attrsNames[]" description: "list of attribute names List or null" in: query required: false schema: type: array items: type: string responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getVosWhereUserIsMember: get: tags: - UsersManager operationId: getVosWhereUserIsMember summary: Returns list of VOs, where the user is a Member. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getVosWhereUserIsAdmin: get: tags: - UsersManager operationId: getVosWhereUserIsAdmin summary: Returns list of VOs, where the user is an Administrator. If a group, of which the user is a valid member, is an administrator of a VO, include that VO as well. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getGroupsWhereUserIsAdmin/u: get: tags: - UsersManager operationId: getGroupsWhereUserIsAdmin summary: Returns list of Groups in Perun, where the User is a direct Administrator or he is a VALID member of any group which is Administrator of some of these Groups. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getGroupsWhereUserIsAdmin/u-v: get: tags: - UsersManager operationId: getGroupsInVoWhereUserIsAdmin summary: Returns list of Groups in selected Vo, where the User is a direct Administrator or he is a VALID member of any group which is Administrator of some of these Groups. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getRichUserExtSources/u: get: tags: - UsersManager operationId: getRichUserExtSources summary: Gets list of all user's external sources with attributes. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfRichUserExtSourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/createAlternativePassword: post: tags: - UsersManager operationId: createAlternativePassword summary: Creates alternative password in external system. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateAlternativePassword description: "input for createAlternativePassword" type: object required: - user - description - loginNamespace - password properties: user: { type: integer } description: { type: string } loginNamespace: { type: string } password: { type: string } /json/usersManager/deleteAlternativePassword: post: tags: - UsersManager operationId: deleteAlternativePassword summary: Deletes alternative password in external system. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputDeleteAlternativePassword description: "input for deleteAlternativePassword" type: object required: - user - passwordId - loginNamespace properties: user: { type: string } passwordId: { type: string } loginNamespace: { type: string } /urlinjsonout/usersManager/updateUserExtSourceLastAccess: post: tags: - UsersManager operationId: updateUserExtSourceLastAccess summary: Updates user's userExtSource last access time in DB. We can get information which userExtSource has been used as a last one. parameters: - $ref: '#/components/parameters/userExtSourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/removeUserExtSource: post: tags: - UsersManager operationId: removeUserExtSource summary: Remove user's external source. Persistent UserExtSources are not removed unless force param is present and set to true. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/userExtSourceId' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/removeUserExtSources: post: tags: - UsersManager operationId: removeUserExtSources summary: Remove user's external sources. Persistent UserExtSources are not removed unless force param is present and set to true. parameters: - $ref: '#/components/parameters/userId' - name: userExtSources description: "list of userExtSource ids" schema: type: array items: type: integer in: query required: true - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserExtSourceById: get: tags: - UsersManager operationId: getUserExtSourceById summary: Returns user ext source by its id. parameters: - $ref: '#/components/parameters/userExtSourceId' responses: '200': $ref: '#/components/responses/UserExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserExtSourceByExtLoginAndExtSourceName: get: tags: - UsersManager operationId: getUserExtSourceByExtLoginAndExtSourceName summary: Returns user's external source by the user's external login and external source name. parameters: - $ref: '#/components/parameters/extSourceName' - { name: extSourceLogin, description: "external source login", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/UserExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserExtSourcesByIds: get: tags: - UsersManager operationId: getUserExtSourcesByIds summary: Returns list of user ext sources by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfUserExtSourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserExtSourceByUniqueAttributeValue/id: get: tags: - UsersManager operationId: getUserExtSourceByUniqueAttributeValueAndAttributeId summary: Return userExtSource for specific attribute definition (specified by id) and unique value. parameters: - $ref: '#/components/parameters/attributeId' - $ref: '#/components/parameters/attributeValue' responses: '200': $ref: '#/components/responses/UserExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserExtSourceByUniqueAttributeValue/name: get: tags: - UsersManager operationId: getUserExtSourceByUniqueAttributeValueAndAttributeName summary: Return userExtSource for specific attribute definition (specified by name) and unique value. parameters: - $ref: '#/components/parameters/attributeName' - $ref: '#/components/parameters/attributeValue' responses: '200': $ref: '#/components/responses/UserExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/requestPreferredEmailChange: post: tags: - UsersManager operationId: requestPreferredEmailChange summary: Request to change preferred email address of user. Validation mail is sent on new address. Change is not saved until user validate new email address by calling validatePreferredEmailChange() method with proper set of parameters (sent in validation mail). Provide eiher linkPath (appended to referer) or whole custom url. Combination of linkPath and customUrl is not supported. parameters: - $ref: '#/components/parameters/userId' - { name: email, description: "new email address to set", schema: { type: string }, in: query, required: true } - { name: lang, description: "language to get confirmation mail in (optional)", schema: { type: string }, in: query, required: false } - { name: linkPath, description: "path that is appended to the referer and creates the verification link (optional)", schema: { type: string }, in: query, required: false } - { name: customUrl, description: "url to verification link containing path (optional)", schema: { type: string }, in: query, required: false } - { name: idpFilter, description: "authentication method appended to query parameters of verification link (optional)", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/addUserExtSource: post: tags: - UsersManager operationId: addUserExtSource summary: Adds user's external sources. responses: '200': $ref: '#/components/responses/UserExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: AddUserExtSourceInput description: "input to addUserExtSource" type: object required: - user - userExtSource properties: user: { type: integer } userExtSource: { $ref: '#/components/schemas/UserExtSource' } /json/usersManager/addUserExtSourceWithAttributes: post: tags: - UsersManager operationId: addUserExtSourceWithAttributes summary: Adds user's external source along with the given attributes. responses: '200': $ref: '#/components/responses/RichUserExtSourceResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: AddUserExtSourceWithAttributesInput description: "input to addUserExtSourceWithAttributes" type: object required: - user - userExtSource - attributes properties: user: { type: integer } userExtSource: { $ref: '#/components/schemas/UserExtSource' } attributes: { type: array, items: { $ref: "#/components/schemas/Attribute" } } /json/usersManager/validatePreferredEmailChange: post: tags: - UsersManager operationId: validatePreferredEmailChangeWithToken summary: Validate new preferred email address. Request to validate is determined based on token parameter sent in email notice by requestPreferredEmailChange() method. responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputValidatePreferredEmailChange description: "input for validatePreferredEmailChange" type: object required: - token - u properties: token: { type: string, format: uuid } u: { type: integer } /json/usersManager/getPendingPreferredEmailChanges: get: tags: - UsersManager operationId: getPendingPreferredEmailChanges summary: Return list of email addresses of user, which are awaiting validation and are inside time window for validation. If there is no preferred email change request pending or requests are outside time window for validation, returns empty list. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfStringsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getAssignedRichResources: get: tags: - UsersManager operationId: getAssignedRichResourcesForUser summary: Get all rich resources where the user is assigned. The user has a membership in a group with an active assignment to the resource. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getAssociatedResources: get: tags: - UsersManager operationId: getAssociatedResourcesForUser summary: Get all resources associated with the user on the facility parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUsersByIds: get: tags: - UsersManager operationId: getUsersByIds summary: Returns list of Users by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getSpecificUsersByUser: get: tags: - UsersManager operationId: getSpecificUsersByUser summary: Get all specific users who are owned by the user. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/addSpecificUserOwner: post: tags: - UsersManager operationId: addSpecificUserOwner summary: Add specific user owner. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/specificUserId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/moveUserExtSource: post: tags: - UsersManager operationId: moveUserExtSource summary: Move UserExtSource from one user to another parameters: - { name: sourceUser, schema: { type: integer }, in: query, description: "id of source user", required: true } - { name: targetUser, schema: { type: integer }, in: query, description: "id of target user", required: true } - $ref: '#/components/parameters/userExtSourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/removeSpecificUserOwner: post: tags: - UsersManager operationId: removeSpecificUserOwner summary: Remove specific user owner. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/specificUserId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUsersBySpecificUser: get: tags: - UsersManager operationId: getUsersBySpecificUser summary: Return all users who owns the specific user. parameters: - $ref: '#/components/parameters/specificUserId' responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUnanonymizedUsersBySpecificUser: get: tags: - UsersManager operationId: getUnanonymizedUsersBySpecificUser summary: Return all users who owns the specific user and are not anonymized. parameters: - $ref: '#/components/parameters/specificUserId' responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/updateUser: post: tags: - UsersManager operationId: updateUser summary: Updates user responses: '200': $ref: '#/components/responses/UserResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateUser description: "input to updateUser" type: object required: - user properties: user: { $ref: '#/components/schemas/User' } /json/usersManager/createServiceUser: post: tags: - UsersManager operationId: createServiceUser summary: From given candidate, creates a service user and assign given owners to him. description: | This method also checks if some of given userExtSources do exist. If so, this method throws a UserExtSourceExistsException. This method can also set only user-def and user-opt attributes for the given candidate. responses: '200': $ref: '#/components/responses/UserResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateServiceUser description: "input to createServiceUser" type: object required: - candidate - specificUserOwners properties: candidate: { $ref: '#/components/schemas/Candidate' } specificUserOwners: { type: array, items: { $ref: "#/components/schemas/User" } } /json/usersManager/checkPasswordResetRequestIsValid/token: post: tags: - UsersManager operationId: checkPasswordResetRequestByTokenIsValid summary: Checks if the password reset request is valid. description: | This method throws PasswordResetLinkExpiredException when the password reset request expired. This method throws PasswordResetLinkNotValidException when the password reset request was already used or has never existed. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCheckPasswordResetRequestByTokenIsValid description: "input to checkPasswordResetRequestByTokenIsValid" type: object required: - token properties: token: { type: string, format: uuid, description: "token for the password reset request"} /json/usersManager/changeNonAuthzPassword/token: post: tags: - UsersManager operationId: changeNonAuthzPasswordByToken summary: Changes user password in defined login-namespace based on token parameter. description: | This method throws PasswordResetLinkExpiredException when the password reset request expired. This method throws PasswordResetLinkNotValidException when the password reset request was already used or has never existed. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputChangeNonAuthzPasswordByToken description: "input for changeNonAuthzPasswordByToken" type: object required: - token - password properties: token: { type: string, format: uuid, description: "token for the password reset request" } password: { type: string } lang: { type: string, description: "language to get notifications in (optional)" } /json/usersManager/reservePassword/login: post: tags: - UsersManager operationId: reservePasswordForLogin summary: Reserves password for a user in specified login-namespace. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputReservePasswordForLogin description: "input for reservePasswordForLogin" type: object required: - login - namespace - password properties: login: { type: string } namespace: { type: string } password: { type: string } /json/usersManager/reservePassword/user: post: tags: - UsersManager operationId: reservePasswordForUser summary: Reserves password for a user in specified login-namespace. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputReservePasswordForUser description: "input for reservePasswordForUser" type: object required: - user - namespace - password properties: user: { type: integer } namespace: { type: string } password: { type: string } /urlinjsonout/usersManager/validatePassword/login: post: tags: - UsersManager operationId: validatePasswordForLogin summary: Validate password for a user in specified login-namespace. parameters: - $ref: '#/components/parameters/login' - $ref: '#/components/parameters/namespace' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/validatePassword/user: post: tags: - UsersManager operationId: validatePasswordForUser summary: Validate password for a user in specified login-namespace. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/namespace' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/deletePassword/login: post: tags: - UsersManager operationId: deletePasswordForLogin summary: Delete password for a user in specified login-namespace. parameters: - $ref: '#/components/parameters/login' - $ref: '#/components/parameters/namespace' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/deletePassword/user: post: tags: - UsersManager operationId: deletePasswordForUser summary: Delete password for a user in specified login-namespace. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/namespace' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/changePassword/login: post: tags: - UsersManager operationId: changePasswordForLogin summary: Changes password for a user in specified login-namespace. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputChangePasswordForLogin description: "input for changePasswordForLogin" type: object required: - login - namespace - newPassword properties: login: { type: string } namespace: { type: string } newPassword: { type: string } oldPassword: { type: string } checkOldPassword: { type: boolean, description: "True if the oldPassword has to be checked. When omitted it defaults to false." } /json/usersManager/changePassword/user: post: tags: - UsersManager operationId: changePasswordForUser summary: Changes password for a user in specified login-namespace. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputChangePasswordForUser description: "input for changePasswordForUser" type: object required: - user - namespace - newPassword properties: user: { type: integer } namespace: { type: string } newPassword: { type: string } oldPassword: { type: string } checkOldPassword: { type: boolean, description: "True if the oldPassword has to be checked. When omitted it defaults to false." } /urlinjsonout/usersManager/loginExist: post: tags: - UsersManager operationId: loginExist summary: Check wheter login exists in specified login-namespace. Only available for some namespaces. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/namespace' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/setLogin: post: tags: - UsersManager operationId: setLogin summary: Set new login in namespace if login is available and user doesn't have login in that namespace. Works only for specific (service or guest) users. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/login' - $ref: '#/components/parameters/namespace' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/setSpecificUser: post: tags: - UsersManager operationId: setSpecificUser summary: Set specific user type for specific user and set ownership of this user to the owner. parameters: - { name: specificUser, schema: { type: integer }, in: query, description: "id of specific user", required: true } - { name: specificUserType, schema: { type: string, enum: [ SERVICE, SPONSORED, NORMAL ] }, in: query, description: "specific type of user", required: true } - { name: owner, schema: { type: integer }, in: query, description: "id of user, who will be owner of the specific user", required: true } responses: '200': $ref: '#/components/responses/UserResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/unsetSpecificUser: post: tags: - UsersManager operationId: unsetSpecificUser summary: Remove all ownerships of this specific user and unset this specific user type from this specific user. parameters: - { name: specificUser, schema: { type: integer }, in: query, description: "id of specific user", required: true } - { name: specificUserType, schema: { type: string, enum: [ SERVICE, SPONSORED, NORMAL ] }, in: query, description: "specific type of user", required: true } responses: '200': $ref: '#/components/responses/UserResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/deleteUser: post: tags: - UsersManager operationId: deleteUser summary: Deletes a user. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/anonymizeUser: post: tags: - UsersManager operationId: anonymizeUser summary: Anonymizes user - according to configuration, each of user's attributes is either anonymized, kept untouched or deleted. Also deletes other user's related data, e.g. authorships of users publications, mail change and password reset requests, bans... parameters: - $ref: '#/components/parameters/userId' - { name: force, schema: { type: boolean }, in: query, required: false, description: "if true the user is removed from all groups and vos" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/isLoginAvailable: post: tags: - UsersManager operationId: isLoginAvailable summary: Checks if the login is available in the namespace. Return 1 if yes, 0 if no. parameters: - { name: loginNamespace, description: "login namespace", schema: { type: string }, in: query, required: true } - $ref: '#/components/parameters/login' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/blockLogins: post: tags: - UsersManager operationId: blockLogins summary: Block logins for given namespace or block logins globally (if no namespace is selected) parameters: - { name: "logins[]", schema: { type: array, items: { type: string } }, in: query, required: false, description: "list of logins to be blocked" } - { name: namespace, description: "login namespace", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/blockLogins: post: tags: - UsersManager operationId: blockLoginsBodyParams summary: Block logins for given namespace or block logins globally (if no namespace is selected). Copy of the blockLogins call with parameters in the request body. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputBlockLogins description: "input to block logins" type: object required: - logins properties: logins: { type: array, items: { type: string } } namespace: { type: string } /urlinjsonout/usersManager/unblockLogins: post: tags: - UsersManager operationId: unblockLogins summary: Unblock logins for given namespace or unblock logins globally (if no namespace is selected) parameters: - { name: "logins[]", schema: { type: array, items: { type: string } }, in: query, required: false, description: "list of logins to be blocked" } - { name: namespace, description: "login namespace", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/unblockLogins: post: tags: - UsersManager operationId: unblockLoginsBodyParams summary: Unblock logins for given namespace or unblock logins globally (if no namespace is selected). Copy of the unblockLogins call with parameters in the request body. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUnblockLogins description: "input to unblock logins" type: object required: - logins properties: logins: { type: array, items: { type: string } } namespace: { type: string } /urlinjsonout/usersManager/unblockLoginsById: post: tags: - UsersManager operationId: unblockLoginsById summary: Unblock logins by id parameters: - name: logins[] description: "list of login ids to be unblocked" schema: type: array items: type: integer in: query required: true responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/unblockLoginsById: post: tags: - UsersManager operationId: unblockLoginsByIdBodyParams summary: Unblock logins by id. Copy of the unblockLoginsById call with parameters in the request body. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUnblockLoginsById description: "input to unblock logins by id" type: object required: - logins properties: logins: { type: array, items: { type: integer } } /json/usersManager/getBlockedLoginsPage: post: tags: - UsersManager operationId: getBlockedLoginsPage summary: Get page of blocked logins. responses: '200': $ref: '#/components/responses/PaginatedBlockedLoginsResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetPaginatedBlockedLogins description: "input to getBlockedLoginsPage" type: object required: - query properties: query: { $ref: '#/components/schemas/BlockedLoginsPageQuery' } /json/usersManager/getAllBlockedLoginsInNamespaces: get: tags: - UsersManager operationId: getAllBlockedLoginsInNamespaces summary: Returns all blocked logins in namespaces (if namespace is null, then this login is blocked globally) responses: '200': description: "list of all blocked logins in namespaces" content: application/json: schema: type: array items: $ref: '#/components/schemas/BlockedLogin' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/reserveRandomPassword: post: tags: - UsersManager operationId: reserveRandomPassword summary: Reserves a random password in external authz system. User shouldn't be able to log-in (account disabled, password unknown to him). This is usefull when manager create account for others and later send them password reset request. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/namespace' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUsersPage: post: tags: - UsersManager operationId: getUsersPage summary: Get page of users with the given attributes. responses: '200': $ref: '#/components/responses/PaginatedRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetPaginatedUsers description: "input to getPaginatedUsers" type: object required: - query - attrNames properties: attrNames: { type: array, items: { type: string } } query: { $ref: '#/components/schemas/UsersPageQuery' } /urlinjsonout/usersManager/generateAccount/name: post: tags: - UsersManager operationId: generateAccountForName summary: Generates user account in a backend system associated with login-namespace in Perun. Parameters are implementation-dependent for each login-namespace. Returns map with 1) key=login-namespace attribute urn, value=generated login 2) rest of opt response attributes. parameters: - $ref: '#/components/parameters/namespace' - { name: name, description: "name of the account to generate", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/MapStringStringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getUserRelations: get: tags: - UsersManager operationId: getUserRelations summary: Gets map with 2 items which are a list of all vos and a list of all groups where given user is member filtered by principal's privileges. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/MapStringListOfPerunBeanResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/changeOrganization: post: tags: - UsersManager operationId: changeOrganization summary: Change organization from which user came to organization from user ext source. parameters: - $ref: '#/components/parameters/userId' - { name: newOrganizationName, schema: { type: string }, in: query, required: true, description: "name of new organization which will be set" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/changeOrganizationCustom: post: tags: - UsersManager operationId: changeOrganizationCustom summary: Change organization from which user came to custom organization. If check from admin is required, then UserOrganizationChangeRequested audit log will be created. Otherwise, it will be set immediately. parameters: - $ref: '#/components/parameters/userId' - { name: newOrganizationName, schema: { type: string }, in: query, required: true, description: "name of new organization which will be set" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/changeName: post: tags: - UsersManager operationId: changeName summary: Change user's name to user's name from user ext source. parameters: - $ref: '#/components/parameters/userId' - { name: newUserName, schema: { type: string }, in: query, required: true, description: "new user's name which will be set" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/changeNameCustom: post: tags: - UsersManager operationId: changeNameCustom summary: Change user's name to custom name. If check from admin is required, then UserNameChangeRequest audit log will be created. Otherwise, it will be set immediately. parameters: - $ref: '#/components/parameters/userId' - { name: titleBefore, schema: { type: string }, in: query, required: true, description: "new title before which will be set" } - { name: firstName, schema: { type: string }, in: query, required: true, description: "new first name which will be set" } - { name: middleName, schema: { type: string }, in: query, required: true, description: "new middle name which will be set" } - { name: lastName, schema: { type: string }, in: query, required: true, description: "new last name which will be set" } - { name: titleAfter, schema: { type: string }, in: query, required: true, description: "new title after which will be set" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/changeEmail: post: tags: - UsersManager operationId: changeEmail summary: Change user's email to email from user ext source. parameters: - $ref: '#/components/parameters/userId' - { name: newEmail, schema: { type: string }, in: query, required: true, description: "new email which will be set" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/usersManager/changeEmailCustom: post: tags: - UsersManager operationId: changeEmailCustom summary: Change user's email to custom email. If verification is required, then verification email will be sent. Otherwise, it will be set immediately. parameters: - $ref: '#/components/parameters/userId' - { name: newEmail, schema: { type: string }, in: query, required: true, description: "new email which will be set" } - { name: lang, description: "language to get confirmation mail in (optional)", schema: { type: string }, in: query, required: false } - { name: linkPath, description: "path that is appended to the referer and creates the verification link (optional)", schema: { type: string }, in: query, required: false } - { name: customUrl, description: "url to verification link containing path (optional)", schema: { type: string }, in: query, required: false } - { name: idpFilter, description: "authentication method appended to query parameters of verification link (optional)", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/getAllowedResources: get: tags: - UsersManager operationId: getAllowedResourcesOnFacility summary: Get all resources on the facility where the user is allowed. The user has a membership in a group with an active assignment to the resource and their VO membership status is not INVALID or DISABLED. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/reserveLogin/user: post: tags: - UsersManager operationId: reserveLoginForUser summary: Reserve login in a namespace for given userId. requestBody: required: true content: application/json: schema: type: object required: - login - userId - namespace properties: login: {type: string} userId: {type: integer} namespace: {type: string} password: {type: string} responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/reserveLogin: post: tags: - UsersManager operationId: reserveLogin summary: Reserve login in a namespace for given identifier and issuer. requestBody: required: true content: application/json: schema: type: object required: - login - identifier - issuer - namespace properties: login: {type: string} identifier: {type: string} issuer: {type: string} namespace: {type: string} password: {type: string} responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/usersManager/deleteReservedLogin: post: tags: - UsersManager operationId: deleteReservedLogin summary: Deletes login reservation for given namespace and login requestBody: required: true content: application/json: schema: type: object required: - login properties: namespace: {type: string} login: {type: string} responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # MembersManager # # # ################################################# /json/membersManager/getMemberById: get: tags: - MembersManager operationId: getMemberById summary: Returns Member by its id. description: Gets Member parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getRichMemberByUserUUID: get: tags: - MembersManager operationId: getRichMemberByUserUUID summary: Returns RichMember with attributes by the users' uuid and the vo. description: Gets RichMember by uuid parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userUuid' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/RichMemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMembersByIds: get: tags: - MembersManager operationId: getMembersByIds summary: Returns list of Members by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getRichMembersByIds: get: tags: - MembersManager operationId: getRichMembersByIds summary: Returns rich members by their IDs with specific attributes. When the list of attribute names is null or empty then rich members will be returned without attributes. parameters: - $ref: '#/components/parameters/ids' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getRichMember: get: tags: - MembersManager operationId: getRichMember summary: Returns RichMember by member id. description: Get RichMember without attributes parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/RichMemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getRichMemberWithAttributes: get: tags: - MembersManager operationId: getRichMemberWithAttributes summary: Returns Member by its id. description: Get richMember with member/user attributes parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/RichMemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getRichMembersNoUserAttributes: get: tags: - MembersManager operationId: getRichMembersNoUserAttributes summary: Returns list of all RichMembers for specified VO. User attributes aren't included in the returned objects description: Get richMembers for VO with member attributes (without user attributes). parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMemberByUser: get: tags: - MembersManager operationId: getMemberByUser summary: Returns a Member specified by VO id and User id. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMemberByUserIfExists: get: tags: - MembersManager operationId: getMemberByUserIfExists summary: Returns a Member specified by VO id and User ID. Returns null if the Member does not exist. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMembersByUser: get: tags: - MembersManager operationId: getMembersByUser summary: Returns members for a user. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getAllMembers: get: tags: - MembersManager operationId: getAllMembers summary: Get all members from all vos. responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMembers: get: tags: - MembersManager operationId: getMembers summary: Returns members of a VO. parameters: - $ref: '#/components/parameters/voId' - { name: status, in: query, required: false, schema: { $ref: '#/components/schemas/VoMemberStatuses' }, description: 'optional status' } responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/findMembersInVo: get: tags: - MembersManager operationId: findMembersInVo summary: Searches for members in a VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMemberByExtSourceNameAndExtLogin: get: tags: - MembersManager operationId: getMemberByExtSourceNameAndExtLogin summary: Searches for members in a VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/extLogin' - $ref: '#/components/parameters/extSourceName' responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/validateMemberAsync: post: tags: - MembersManager operationId: validateMemberAsync summary: Validate all attributes for member and set member's status to VALID. This method runs asynchronously. It immediately return member with original status and after asynchronous validation successfully finishes it switch member's status to VALID. If validation ends with error, member keeps his status. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/extendMembership: post: tags: - MembersManager operationId: extendMembership summary: Extend member membership using membershipExpirationRules attribute defined at VO. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/canExtendMembership: get: tags: - MembersManager operationId: canExtendMembership summary: Return true if the membership can be extended or if no rules were set for the membershipExpiration, otherwise false. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/canExtendInNewRegistrar: get: tags: - MembersManager operationId: canExtendInNewRegistrar summary: Return true if the membership can be extended or if no rules were set for the membershipExpiration, otherwise throws an exception containing the reason. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/canCallerBeMemberWithReason: get: tags: - MembersManager operationId: canCallerBeMemberWithReason summary: Checks if the caller can apply for membership in VO, throws error containing the reason if cannot be member. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMembersCount: get: tags: - MembersManager operationId: getMembersCount summary: Returns count of all VO members. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMembersCount/status: get: tags: - MembersManager operationId: getMembersWithStatusCount summary: Returns count of VO members with specified status. parameters: - $ref: '#/components/parameters/voId' - name: status description: status (VALID | INVALID | EXPIRED | DISABLED) schema: type: string in: query required: true responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getSponsoredMembers/v: get: tags: - MembersManager operationId: getSponsoredMembers summary: Gets members from VO who are sponsored. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getAllSponsoredMembers: get: tags: - MembersManager operationId: getAllSponsoredMembers summary: Gets all sponsored members from VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getSponsors/member: get: tags: - MembersManager operationId: getSponsorsByMember summary: Gets sponsors for given member with optional attribute names. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getSponsors/vo: get: tags: - MembersManager operationId: getSponsorsByVo summary: Gets sponsors for given VO, extSourceName and extLogin with optional attribute names. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/extSourceName' - $ref: '#/components/parameters/extLogin' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getSponsoredMembersAndTheirSponsors: get: tags: - MembersManager operationId: getSponsoredMembersAndTheirSponsors summary: Gets list of members with sponsors. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfMemberWithSponsorsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getAllSponsoredMembersAndTheirSponsors: get: tags: - MembersManager operationId: getAllSponsoredMembersAndTheirSponsors summary: Gets list of VO's all sponsored members with sponsors. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfMemberWithSponsorsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/createSponsoredMember/withFullName: post: tags: - MembersManager operationId: createSponsoredMember summary: Creates a new sponsored member in a given VO and namespace. responses: '200': $ref: '#/components/responses/RichMemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateSponsoredMember description: "input for createSponsoredMember" type: object required: - userData - vo - sponsor properties: vo: { type: integer } validityTo: { type: string } sponsor: { type: integer } sendActivationLink: { type: boolean } language: { type: string } userData: { $ref: '#/components/schemas/SponsoredUserData' } baseUrl: { type: string, description: "base url of Perun instance (optional)" } /json/membersManager/setSponsoredMember: post: tags: - MembersManager operationId: setSponsoredMember summary: Creates a sponsored membership for the given user. responses: '200': $ref: '#/components/responses/RichMemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetSponsoredMember description: "input for setSponsoredMember" type: object required: - userToBeSponsored - password - vo - namespace properties: userToBeSponsored: { type: integer } password: { type: string } vo: { type: integer } sponsor: { type: integer } namespace: { type: string } validityTo: { type: string } /json/membersManager/createSponsoredMembersFromCSV: post: tags: - MembersManager operationId: createSponsoredMembersFromCSV summary: Creates new sponsored members in a given VO and namespace. responses: '200': $ref: '#/components/responses/ListOfMapStringStringResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateSponsoredMemberFromCSV description: "input for createSponsoredMembersFromCSV" type: object required: - vo - sponsor - namespace - data - header properties: data: { type: array, items: { type: string }, description: "values separated with semicolons" } header: { type: string, description: "csv header for the given data, values are also split with semicolons" } vo: { type: integer } sponsor: { type: integer } namespace: { type: string } validityTo: { type: string } sendActivationLinks: { type: boolean } language: { type: string } groups: { type: array, items: { type: integer }, description: "groups to which should be the created users assigned" } baseUrl: { type: string, description: "base url of Perun instance (optional)" } /json/membersManager/createSponsoredMembers: post: tags: - MembersManager operationId: createSponsoredMembers summary: Creates new sponsored members in a given VO and namespace. responses: '200': $ref: '#/components/responses/ListOfMapStringStringResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateSponsoredMembers description: "input for createSponsoredMembers" type: object required: - guestNames - vo - sponsor - namespace properties: guestNames: { type: array, items: { type: string }, description: "names of members to create, single name should have the format {firstName};{lastName} to be parsed well" } vo: { type: integer } sponsor: { type: integer } namespace: { type: string } validityTo: { type: string } email: { type: string } sendActivationLink: { type: boolean } language: { type: string } baseUrl: { type: string, description: "base url of Perun instance (optional)" } /json/membersManager/createSpecificMember: post: tags: - MembersManager operationId: createSpecificMember summary: Creates a new member from candidate which is prepared for creating specificUser. responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSpecificMember description: "input to createSpecificMember" type: object required: - candidate - vo - specificUserType - specificUserOwners properties: candidate: { $ref: '#/components/schemas/Candidate' } vo: { type: integer } specificUserType: { type: string } specificUserOwners: { type: array, items: { $ref: '#/components/schemas/User' } } /urlinjsonout/membersManager/removeSponsor: post: tags: - MembersManager operationId: removeSponsor summary: Removes sponsor of existing member. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/sponsorId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/removeSponsors: post: tags: - MembersManager operationId: removeSponsors summary: Removes sponsors of existing member. parameters: - $ref: '#/components/parameters/memberId' - name: sponsorIds description: "list of ids of sponsors" schema: type: array items: type: integer in: query required: true responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/updateSponsorshipValidity: post: tags: - MembersManager operationId: updateSponsorshipValidity summary: Updates sponsorship validity. To change it to FOREVER, don't pass the validityTo param, or pass it as null. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/sponsorId' - $ref: '#/components/parameters/optionalValidityTo' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/deleteMember: post: tags: - MembersManager operationId: deleteMember summary: Deletes only member data appropriated by member id. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/deleteMembers: post: tags: - MembersManager operationId: deleteMembers summary: Delete members with given ids. It is possible to delete members from multiple vos. parameters: - $ref: '#/components/parameters/memberIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/deleteMembers: post: tags: - MembersManager operationId: deleteMembersBodyParams summary: Delete members with given ids. It is possible to delete members from multiple vos. Copy of the deleteMembers call with parameters in the request body. requestBody: required: true content: application/json: schema: title: InputDeleteMembers description: "input to delete members" type: object required: - members properties: members: { type: array, items: { type: integer } } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/findCompleteRichMembers/v: get: tags: - MembersManager operationId: FindCompleteRichMembersForVo summary: Return list of richMembers for specific vo by the searchString with attributes specific for list of attrsNames and who have only status which is contain in list of statuses. If attrsNames is empty or null return all attributes for specific richMembers. If listOfStatuses is empty or null, return all possible statuses. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrsNames' - $ref: '#/components/parameters/listOfAllowedStatuses' - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/findCompleteRichMembers/v-sponsored: get: tags: - MembersManager operationId: findSponsoredCompleteRichMembersForVo summary: Returns list of RichMembers for vo, with reqested attributes, filterd by search string and option to return only sponosred members. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrsNames' - $ref: '#/components/parameters/searchString' - $ref: '#/components/parameters/onlySponsored' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/findCompleteRichMembers/g: get: tags: - MembersManager operationId: FindCompleteRichMembersForGroup summary: Return list of richMembers for specific group by the searchString with attributes specific for list of attrsNames and who have only status which is contain in lists of statuses. If attrsNames is empty or null return all attributes for specific richMembers. If listOfStatuses or listOfGroupStatuses is empty or null, return all possible statuses. If lookingInParentGroup is true, find all these richMembers only for parentGroup of this group. If this group is top level group, so find richMembers from members group. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrsNames' - $ref: '#/components/parameters/listOfAllowedStatuses' - $ref: '#/components/parameters/listOfAllowedGroupStatuses' - $ref: '#/components/parameters/searchString' - $ref: '#/components/parameters/lookingInParentGroup' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/findCompleteRichMembers/attrs: get: tags: - MembersManager operationId: FindCompleteRichMembersByAttributes summary: Return list of richMembers from perun by the searchString with attributes specific for list of attrsNames and who have only status which is contain in list of statuses. If attrsNames is empty or null return all attributes for specific richMembers. If listOfStatuses is empty or null, return all possible statuses. parameters: - $ref: '#/components/parameters/attrsNames' - $ref: '#/components/parameters/searchString' - $ref: '#/components/parameters/listOfAllowedStatuses' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/createMember/extSource: post: tags: - MembersManager operationId: createMemberFromExtSource summary: Creates a new member and sets all member's attributes from the candidate. Also stores the associated user if doesn't exist. This method is used by the registrar. This method also add user to all groups in list. Empty list of groups is ok, the behavior is then same like in the method without list of groups. responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateMemberFromExtSource description: "input to create member from extSource" type: object required: - vo - extSourceName - extSourceType - login - candidate properties: vo: { type: integer } extSourceName: { type: string } extSourceType: { type: string } login: { type: string } candidate: { $ref: '#/components/schemas/Candidate' } groups: { type: array, items: { $ref: '#/components/schemas/Group' } } /json/membersManager/createMember/u: post: tags: - MembersManager operationId: CreateMemberForUser summary: Creates a new member from user. This method also add user to all groups in list. Empty list of groups is ok, the behavior is then same like in the method without list of groups. responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateMemberForUser description: "input to create member for user" type: object required: - vo - user properties: vo: { type: integer } user: { type: integer } groups: { type: array, items: { $ref: '#/components/schemas/Group' } } /json/membersManager/createMember/c: post: tags: - MembersManager operationId: createMemberForCandidate summary: Creates a new member from candidate returned by the method VosManager.findCandidates which fills Candidate.userExtSource. This method also add user to all groups in list. Empty list of groups is ok, the behavior is then same like in the method without list of groups. This method runs asynchronously responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateMemberForCandidate description: "input to create member for candidate" type: object required: - vo - candidate properties: vo: { type: integer } candidate: { $ref: '#/components/schemas/Candidate' } groups: { type: array, items: { $ref: '#/components/schemas/Group' } } /json/membersManager/getCompleteRichMembers/v: get: tags: - MembersManager operationId: getCompleteRichMembersForVo summary: Get all RichMembers with attributes specific for list of attrsNames from the vo and have only status which is contain in list of statuses. If attrsNames is empty or null return all attributes for specific richMembers. If listOfStatuses is empty or null, return all possible statuses. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/listOfAllowedStatuses' - name: "attrsNames[]" description: "list of attributes names List" in: query required: false schema: type: array items: type: string responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getCompleteRichMembers/g: get: tags: - MembersManager operationId: getCompleteRichMembersForGroup summary: Get all RichMembers with attributes specific for list of attrsNames from the group and have only status which is contain in lists of statuses. If attrsNames is empty or null return all attributes for specific richMembers. If listOfStatuses or listOfGroupStatuses is empty or null, return all possible statuses. If lookingInParentGroup is true, get all these richMembers only for parentGroup of this group. If this group is top level group, so get richMembers from members group. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/listOfAllowedStatuses' - $ref: '#/components/parameters/listOfAllowedGroupStatuses' - $ref: '#/components/parameters/lookingInParentGroup' - name: "attrsNames[]" description: "list of attributes names List" in: query required: false schema: type: array items: type: string responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getCompleteRichMembers/g-r: get: tags: - MembersManager operationId: getCompleteRichMembersForGroupResource summary: Get all RichMembers with attributes specific for list of attrsNames. Attributes are defined by member (user) and resource (facility) objects. It returns also user-facility (in userAttributes of RichMember) and member-resource (in memberAttributes of RichMember) attributes. Members are defined by group and are filtered by list of allowed statuses. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attrsNames' - name: "allowedStatuses[]" description: "list of allowed statuses List" in: query required: true schema: type: array items: type: string responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getServiceUserRichMembers: get: tags: - MembersManager operationId: getServiceUserRichMembers summary: Retrieve service user RichMembers from a VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/setStatus: post: tags: - MembersManager operationId: setStatus summary: Set membership status of a member. parameters: - $ref: '#/components/parameters/memberId' - name: status description: status (VALID | INVALID | EXPIRED | DISABLED) schema: type: string in: query required: true responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/sendUsernameReminderEmail: post: tags: - MembersManager operationId: sendUsernameReminderEmail summary: Send mail to user's preferred email address with a reminder of the username for the given namespace. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/namespace' - { name: emailAttributeURN, schema: { type: string }, in: query, required: true, description: "urn of the attribute with stored mail" } - { name: language, schema: { type: string }, in: query, required: true, description: "language of the message" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/sendPasswordResetLinkEmail: post: tags: - MembersManager operationId: sendPasswordResetLinkEmail summary: Send mail to user's preferred email address with link for non-authz password reset. Correct authz information is stored in link's URL. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/namespace' - { name: emailAttributeURN, schema: { type: string }, in: query, required: true, description: "urn of the attribute with stored mail" } - { name: language, schema: { type: string }, in: query, required: true, description: "language of the message" } - { name: baseUrl, schema: { type: string }, in: query, required: false, description: "base url of Perun instance (optional)" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/sendAccountActivationLinkEmail: post: tags: - MembersManager operationId: sendAccountActivationLinkEmail summary: Send mail to user's preferred email address with link for non-authz account activation. Correct authz information is stored in link's URL. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/namespace' - { name: emailAttributeURN, schema: { type: string }, in: query, required: true, description: "urn of the attribute with stored mail" } - { name: language, schema: { type: string }, in: query, required: true, description: "language of the message" } - { name: baseUrl, schema: { type: string }, in: query, required: false, description: "base url of Perun instance (optional)" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/setSponsorshipForMember: post: tags: - MembersManager operationId: setSponsorshipForMember summary: Transform non-sponsored member to sponsored one, with defined sponsor and optional sponsorship validity expiration parameters: - $ref: '#/components/parameters/sponsoredMemberId' - $ref: '#/components/parameters/sponsorId' - $ref: '#/components/parameters/optionalValidityTo' responses: '200': $ref: '#/components/responses/RichMemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/sponsorMember: post: tags: - MembersManager operationId: sponsorMember summary: For an existing member, assigns a new sponsor parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/sponsorId' - $ref: '#/components/parameters/optionalValidityTo' responses: '200': $ref: '#/components/responses/RichMemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/membersManager/sponsorMembers: post: tags: - MembersManager operationId: sponsorMembers summary: Assigns a new sponsor to existing members. If some members are non-sponsored, turn them into sponsored and assign the sponsor. parameters: - $ref: '#/components/parameters/memberIds' - $ref: '#/components/parameters/sponsorId' - $ref: '#/components/parameters/optionalValidityTo' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/sponsorMembers: post: tags: - MembersManager operationId: sponsorMembersBodyParams summary: Assigns a new sponsor to existing members. If some members are non-sponsored, turn them into sponsored and assign the sponsor. Copy of the sponsorMembers call with parameters in the request body. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSponsorMembers description: "input to sponsor members" type: object required: - members - sponsor properties: members: { type: array, items: { type: integer } } sponsor: { type: integer } validityTo: { type : string } /urlinjsonout/membersManager/copySponsoredMembers: post: tags: - MembersManager operationId: copySponsoredMembers summary: Copy sponsored members from one user to another. If copyValidity tag is present, set validity of new sponsorships to the copied from value parameters: - $ref: '#/components/parameters/memberIds' - { name: copyFrom, schema: { type: integer }, in: query, description: "id of source sponsor", required: true } - { name: copyTo, schema: { type: integer }, in: query, description: "id of target sponsor", required: true } - { name: copyValidity, schema: { type: boolean }, in: query, description: "whether to copy validity", required: true } - $ref: '#/components/parameters/optionalValidityTo' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/copySponsoredMembers: post: tags: - MembersManager operationId: copySponsoredMembersBodyParams summary: Copy sponsored members from one user to another. If copyValidity tag is present, set validity of new sponsorships to the copied from value. Copy of the copySponsoredmembers call with parameters in the request body. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCopySponsoredMembers description: "input to copy sponsored members" type: object required: - members - copyFrom - copyTo - copyValidity properties: members: { type: array, items: { type: integer } } copyFrom: { type: integer } copyTo: { type: integer } copyValidity: { type: boolean } validityTo: { type: string } /urlinjsonout/membersManager/moveMembership: post: tags: - MembersManager operationId: moveMembership summary: Moves membership in VO from source user to target user - moves the source user's memberships in non-synchronized groups, member related attributes, bans and sponsorships in the VO. Removes the source user's member object. If VO is member of any hierarchical parent VO, user's membership is moved in parent VOs also. If VO is parent of any hierarchical member VOs, user's membership is not moved in member VOs. parameters: - $ref: '#/components/parameters/voId' - { name: sourceUser, schema: { type: integer }, in: query, description: "id of source user", required: true } - { name: targetUser, schema: { type: integer }, in: query, description: "id of target user", required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getAllNamespacesRules: get: tags: - MembersManager operationId: getAllNamespacesRules summary: Return all loaded namespaces rules. responses: '200': $ref: '#/components/responses/ListOfNamespacesRulesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getMembersPage: post: tags: - MembersManager operationId: getMembersPage summary: Get page of members from the given vo, with the given attributes. responses: '200': $ref: '#/components/responses/PaginatedRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetPaginatedMembers description: "input to getPaginatedMembers" type: object required: - vo - query - attrNames properties: vo: { type: integer } attrNames: { type: array, items: { type: string } } query: { $ref: '#/components/schemas/MembersPageQuery' } /json/membersManager/addMemberCandidates: post: tags: - MembersManager operationId: addMemberCandidates summary: Adds member candidates. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputAddMemberCandidates description: "input to add member candidates" type: object required: - vo - candidates properties: vo: { type: integer } candidates: { type: array, items: { $ref: '#/components/schemas/MemberCandidate' } } group: { type: integer } /json/membersManager/someAvailableSponsorExistsForMember: get: tags: - MembersManager operationId: someAvailableSponsorExistsForMember summary: Returns true if some vo sponsor who does not already sponsor given member exists, false otherwise. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/getAvailableSponsorsForMember: get: tags: - MembersManager operationId: getAvailableSponsorsForMember summary: Returns all available sponsors for given member. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/membersManager/createMemberFromInitialRegistrarApplication: post: tags: - MembersManager operationId: createMemberFromInitialRegistrarApplication summary: Creates a member based on data from an initial registrar application. description: Creates a member based on a registrar application with OIDC authentication. responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RegistrarApplicationInput' /json/membersManager/extendMembershipFromExtensionRegistrarApplication: post: tags: - MembersManager operationId: extendMembershipFromExtensionRegistrarApplication summary: Extends a membership based on data from an initial registrar application. description: Extends a membership based on a registrar application with OIDC authentication. responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RegistrarApplicationInput' ################################################# # # # FacilitiesManager # # # ################################################# /json/facilitiesManager/getFacilityById: get: tags: - FacilitiesManager operationId: getFacilityById summary: Returns Facility with specified id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/FacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilityByName: get: tags: - FacilitiesManager operationId: getFacilityByName summary: Returns Facility with specified name. parameters: - $ref: '#/components/parameters/name' responses: '200': $ref: '#/components/responses/FacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilitiesByIds: get: tags: - FacilitiesManager operationId: getFacilitiesByIds summary: Returns list of Facilities by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedUsers: get: tags: - FacilitiesManager operationId: getAssignedUsers summary: Returns all assigned users on the facility. Assigned users are members of a group with an active assignment to a resource on this facility. If a service is provided, results are additionally restricted to resources with that service assigned. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/facilityId' - name: service description: "id of Service" schema: type: integer in: query required: false responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedUsers/f-name: get: tags: - FacilitiesManager operationId: getAssignedUsersByFacilityName summary: Returns all assigned users on the facility. Assigned users are members of a group with an active assignment to a resource on this facility. If a service is provided, results are additionally restricted to resources with that service assigned. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/facilityName' - name: service description: "id of Service" schema: type: integer in: query required: false responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getRichFacilities: get: tags: - FacilitiesManager operationId: getRichFacilities summary: Gets all possible rich facilities with all their owners. parameters: [ ] responses: '200': $ref: '#/components/responses/ListOfRichFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilitiesByDestination: get: tags: - FacilitiesManager operationId: getFacilitiesByDestination summary: Searches for the Facilities by theirs destination. parameters: - $ref: '#/components/parameters/destinationName' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilitiesByAttribute: get: tags: - FacilitiesManager operationId: getFacilitiesByAttribute summary: Returns all facilities that have the attribute 'attributeName' with the string value 'attributeValue'. description: Searching only def and opt attributes. Large attributes are not supported. parameters: - $ref: '#/components/parameters/attributeName' - $ref: '#/components/parameters/attributeValue' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilitiesByAttributeWithAttributes: get: tags: - FacilitiesManager operationId: getFacilitiesByAttributeWithAttributes summary: Searches (partially!) for facilities with the attribute 'attributeName' and its value 'attributeValue'. Found Facilities are returned along with attributes listed in 'attrNames'. parameters: - $ref: '#/components/parameters/attributeName' - $ref: '#/components/parameters/attributeValue' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfFacilitiesWithAttributesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilities: get: tags: - FacilitiesManager operationId: getAllFacilities summary: Get all facilities. parameters: [ ] responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilitiesCount: get: tags: - FacilitiesManager operationId: getFacilitiesCount summary: Gets count of all facilities. parameters: [ ] responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getEnrichedFacilities: get: tags: - FacilitiesManager operationId: getEnrichedFacilities summary: Gets all enriched facilities user has access rights to. parameters: [ ] responses: '200': $ref: '#/components/responses/ListOfEnrichedFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getOwners: get: deprecated: true tags: - FacilitiesManager operationId: getFacilityOwners summary: Returns owners of a facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfOwnersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getOwners/f-name: get: deprecated: true tags: - FacilitiesManager operationId: getFacilityOwnersByFacilityName summary: Returns owners of a facility. parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/ListOfOwnersResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwner: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwner summary: Adds owner of a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwners: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwners summary: Adds owners of a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwner/f-o-name: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwnerByFacilityNameOwnerName summary: Adds owner of a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerName' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwners/f-o-name: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwnersByFacilityNameOwnerName summary: Adds owners of a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerNames' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwner/f-name: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwnerByFacilityName summary: Adds owner of a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwners/f-name: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwnersByFacilityName summary: Adds owners of a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwner/o-name: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwnerByOwnerName summary: Adds owner of a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerName' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addOwners/o-name: post: deprecated: true tags: - FacilitiesManager operationId: addFacilityOwnersByOwnerName summary: Adds owners of a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerNames' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwner: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwner summary: Removes owner from a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwners: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwners summary: Removes owners from a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwner/f-o-name: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwnerByFacilityNameOwnerName summary: Removes owner from a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerName' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwners/f-o-name: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwnersByFacilityNameOwnerName summary: Removes owners from a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerNames' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwner/f-name: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwnerByFacilityName summary: Removes owner from a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwners/f-name: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwnersByFacilityName summary: Removes owners from a facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/ownerIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwner/o-name: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwnerByOwnerName summary: Removes owner from a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerName' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeOwners/o-name: post: deprecated: true tags: - FacilitiesManager operationId: removeFacilityOwnersByOwnerName summary: Removes owners from a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/ownerNames' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/getAllowedVos: post: tags: - FacilitiesManager operationId: getAllowedVos summary: Return all VO which can use a facility. (VO must have the resource which belongs to this facility.) parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/getAllowedVos/f-name: post: tags: - FacilitiesManager operationId: getAllowedVosByFacilityName summary: Return all VO which can use a facility. (VO must have the resource which belongs to this facility.) parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAllowedGroups: get: tags: - FacilitiesManager operationId: getAllowedGroups summary: Get all allowed groups on the Facility, optionally filtered by Vo or Service or both. Allowed groups have an active assignment to a resource on the facility. parameters: - $ref: '#/components/parameters/facilityId' - { name: vo, description: "id of Vo", schema: { type: integer }, in: query, required: false } - { name: service, description: "id of Service", schema: { type: integer }, in: query, required: false } responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAllowedGroups/f-name: get: tags: - FacilitiesManager operationId: getAllowedGroupsByFacilityName summary: Get all allowed groups on the Facility, optionally filtered by Vo or Service or both. Allowed groups have an active assignment to a resource on the facility. parameters: - $ref: '#/components/parameters/facilityName' - { name: vo, description: "id of Vo", schema: { type: integer }, in: query, required: false } - { name: service, description: "id of Service", schema: { type: integer }, in: query, required: false } responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAllowedRichGroupsWithAttributes: get: tags: - FacilitiesManager operationId: getAllowedRichGroupsWithAttributes summary: Get all allowed RichGroups on the Facility with specified set of attributes, optionally filtered by Vo or Service or both. Allowed groups have an active assignment to a resource on the facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attrNames' - { name: vo, description: "id of Vo", schema: { type: integer }, in: query, required: false } - { name: service, description: "id of Service", schema: { type: integer }, in: query, required: false } responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAllowedRichGroupsWithAttributes/f-name: get: tags: - FacilitiesManager operationId: getAllowedRichGroupsWithAttributesByFacilityName summary: Get all allowed RichGroups on the Facility with specified set of attributes, optionally filtered by Vo or Service or both. Allowed groups have an active assignment to a resource on the facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/attrNames' - { name: vo, description: "id of Vo", schema: { type: integer }, in: query, required: false } - { name: service, description: "id of Service", schema: { type: integer }, in: query, required: false } responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedResources: get: tags: - FacilitiesManager operationId: getAssignedResourcesForFacility summary: Returns all resources assigned to a facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedResources/f-name: get: tags: - FacilitiesManager operationId: getAssignedResourcesForFacilityByFacilityName summary: Returns all resources assigned to a facility. parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedResourcesByAssignedService: get: tags: - FacilitiesManager operationId: getAssignedResourcesByAssignedServiceForFacility summary: Returns resources with specific service assigned to the facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedRichResources: get: tags: - FacilitiesManager operationId: getAssignedRichResourcesForFacility summary: Returns all rich resources assigned to a facility with VO property filled. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedRichResources/f-name: get: tags: - FacilitiesManager operationId: getAssignedRichResourcesForFacilityByFacilityName summary: Returns all rich resources assigned to a facility with VO property filled. parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedRichResources/f-s: get: tags: - FacilitiesManager operationId: getAssignedRichResourcesForFacilityAndService summary: Returns all rich resources assigned to a facility and service with VO property filled. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/createFacility: post: tags: - FacilitiesManager operationId: createFacility summary: Creates a facility. Caller is automatically set as facility manager. parameters: - $ref: '#/components/parameters/name' - { name: description, required: false, in: query, schema: { type: string }, description: "optional description of a facility" } responses: '200': $ref: '#/components/responses/FacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/deleteFacility: post: tags: - FacilitiesManager operationId: deleteFacility summary: Deletes a facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/deleteFacility/f-name: post: tags: - FacilitiesManager operationId: deleteFacilityByFacilityName summary: Deletes a facility. parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/updateFacility: post: tags: - FacilitiesManager operationId: updateFacility summary: Updates a facility. responses: '200': $ref: '#/components/responses/FacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateFacility description: "input to updateFacility" type: object required: - facility properties: facility: { $ref: '#/components/schemas/Facility' } /json/facilitiesManager/getOwnerFacilities: get: deprecated: true tags: - FacilitiesManager operationId: getOwnerFacilities summary: Returns list of all facilities owned by the owner. parameters: - $ref: '#/components/parameters/ownerId' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getHosts: get: tags: - FacilitiesManager operationId: getHosts summary: Returns Hosts of a Facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfHostsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getHosts/f-name: get: tags: - FacilitiesManager operationId: getHostsByFacilityName summary: Returns Hosts of a Facility. parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/ListOfHostsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getHostById: get: tags: - FacilitiesManager operationId: getHostById summary: Returns a host by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/HostResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getHostsByHostname: get: tags: - FacilitiesManager operationId: getHostsByHostname summary: Returns hosts by hostname. (from all facilities) parameters: - { name: hostname, required: true, in: query, schema: { type: string }, description: "name of a host" } responses: '200': $ref: '#/components/responses/HostResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getEnrichedHosts: get: tags: - FacilitiesManager operationId: getEnrichedHosts summary: Return all enriched hosts of given facility. That is host with all its attributes. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfEnrichedHostsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilityForHost: get: tags: - FacilitiesManager operationId: getFacilityForHost summary: Return facility which has the host. parameters: - $ref: '#/components/parameters/hostId' responses: '200': $ref: '#/components/responses/FacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getHostsCount: get: tags: - FacilitiesManager operationId: getHostsCount summary: Count hosts of Facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getHostsCount/f-name: get: tags: - FacilitiesManager operationId: getHostsCountByFacilityName summary: Count hosts of Facility. parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addHosts: post: tags: - FacilitiesManager operationId: addHosts summary: Adds hosts to the Facility. description: InvalidHostnameException is thrown when any host has invalid hostname. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/hostnames' responses: '200': $ref: '#/components/responses/ListOfHostsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addHosts/f-name: post: tags: - FacilitiesManager operationId: addHostsByFacilityName summary: Adds hosts to the Facility. description: InvalidHostnameException is thrown when any host has invalid hostname. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/hostnames' responses: '200': $ref: '#/components/responses/ListOfHostsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeHosts: post: tags: - FacilitiesManager operationId: removeHosts summary: Remove hosts from a Facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/listOfHostIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeHosts/f-name: post: tags: - FacilitiesManager operationId: removeHostsByFacilityName summary: Remove hosts from a Facility. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/listOfHostIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addHost: post: tags: - FacilitiesManager operationId: addHost summary: Adds a host to the Facility. description: InvalidHostnameException is thrown when host has invalid hostname. parameters: - $ref: '#/components/parameters/facilityId' - { name: hostname, description: "DNS name of host", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfHostsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addHost/f-name: post: tags: - FacilitiesManager operationId: addHostByFacilityName summary: Adds a host to the Facility. description: InvalidHostnameException is thrown when host has invalid hostname. parameters: - $ref: '#/components/parameters/facilityName' - { name: hostname, description: "DNS name of host", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfHostsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeHost: post: tags: - FacilitiesManager operationId: removeHost summary: Removes a host. parameters: - $ref: '#/components/parameters/hostId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeHostByHostname: post: tags: - FacilitiesManager operationId: removeHostByHostname summary: Remove host from the Facility based on hostname. If there is ambiguity, method throws exception and no host is removed. parameters: - { name: hostname, schema: { type: string }, in: query, required: true, description: "specific hostname" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedFacilities/service: get: tags: - FacilitiesManager operationId: getAssignedFacilitiesByService summary: Get facilities where the service is defined.. parameters: - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedFacilities/group: get: tags: - FacilitiesManager operationId: getAssignedFacilitiesByGroup summary: Get facilities which are assigned to a Group (via resource). parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedFacilities/member: get: tags: - FacilitiesManager operationId: getAssignedFacilitiesByMember summary: Get facilities where the member is assigned. A facility is returned if the member belongs to a group with an active assignment to at least one resource on that facility. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAssignedFacilities/user: get: tags: - FacilitiesManager operationId: getAssignedFacilitiesByUser summary: Get facilities where the user is assigned. A facility is returned if the user has a membership in a group with an active assignment to at least one resource on that facility. No filter is applied on VO membership status. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addAdmin/user: post: tags: - FacilitiesManager operationId: addFacilityAdminUser summary: Adds a user as a Facility admin. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addAdmin/user/f-name: post: tags: - FacilitiesManager operationId: addFacilityAdminUserByFacilityName summary: Adds a user as a Facility admin. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addAdmin/group: post: tags: - FacilitiesManager operationId: addFacilityAdminGroup summary: Adds a group as a Facility admin. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/addAdmin/group/f-name: post: tags: - FacilitiesManager operationId: addFacilityAdminGroupByFacilityName summary: Adds a group as a Facility admin. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeAdmin/user: post: tags: - FacilitiesManager operationId: removeFacilityAdminUser summary: Removes a user as a Facility admin. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeAdmin/user/f-name: post: tags: - FacilitiesManager operationId: removeFacilityAdminUserByFacilityName summary: Removes a user as a Facility admin. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeAdmin/group: post: tags: - FacilitiesManager operationId: removeFacilityAdminGroup summary: Removes a group as a Facility admin. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeAdmin/group/f-name: post: tags: - FacilitiesManager operationId: removeFacilityAdminGroupByFacilityName summary: Removes a group as a Facility admin. parameters: - $ref: '#/components/parameters/facilityName' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAdmins: get: tags: - FacilitiesManager operationId: getFacilityAdminUsers description: | Get list of all facility administrators for supported role and given facility. If onlyDirectAdmins is true, return only direct admins of the group for supported role. Includes users who are VALID members of administrator groups. Supported roles: FacilityAdmin parameters: - $ref: '#/components/parameters/facilityId' - { name: onlyDirectAdmins, schema: { type: boolean }, in: query, required: true, description: "if true, get only direct facility administrators (if false, get both direct and indirect)" } responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAdmins/f-name: get: tags: - FacilitiesManager operationId: getFacilityAdminUsersByFacilityName description: | Get list of all facility administrators for supported role and given facility. If onlyDirectAdmins is true, return only direct admins of the group for supported role. Includes users who are VALID members of administrator groups. Supported roles: FacilityAdmin parameters: - $ref: '#/components/parameters/facilityName' - { name: onlyDirectAdmins, schema: { type: boolean }, in: query, required: true, description: "if true, get only direct facility administrators (if false, get both direct and indirect)" } responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAdminGroups: get: tags: - FacilitiesManager operationId: getFacilityAdminGroups summary: Get all Facility group admins. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAdminGroups/f-name: get: tags: - FacilitiesManager operationId: getFacilityAdminGroupsByFacilityName summary: Get all Facility group admins. parameters: - $ref: '#/components/parameters/facilityName' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilitiesWhereUserIsAdmin: get: tags: - FacilitiesManager operationId: getFacilitiesWhereUserIsAdmin summary: Returns list of Facilities, where the user is a direct Administrator or a VALID member of an administrator group. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getFacilitiesByHostName: get: tags: - FacilitiesManager operationId: getFacilitiesByHostName summary: Return all facilities where exists host with the specific hostname parameters: - { name: hostname, schema: { type: string }, in: query, required: true, description: "specific hostname" } responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAllowedUsers/v-f-s: get: tags: - FacilitiesManager operationId: getAllowedUsersOfFacility summary: Return all allowed users on the facility. Allowed users are members of a group with an active assignment to a resource on this facility and their VO membership status is not INVALID or DISABLED. parameters: - $ref: '#/components/parameters/facilityId' - { name: vo, schema: { type: integer }, in: query, description: "VO id, if provided, filter out users who aren't in specific VO" } - { name: service, schema: { type: integer }, in: query, description: "Service id, if provided, filter out users who aren't allowed to use the service on the facility" } responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getAllowedUsers/v-f-s/f-name: get: tags: - FacilitiesManager operationId: getAllowedUsersOfFacilityByFacilityName summary: Return all allowed users on the facility. Allowed users are members of a group with an active assignment to a resource on this facility and their VO membership status is not INVALID or DISABLED. parameters: - $ref: '#/components/parameters/facilityName' - { name: vo, schema: { type: integer }, in: query, description: "VO id, if provided, filter out users who aren't in specific VO" } - { name: service, schema: { type: integer }, in: query, description: "Service id, if provided, filter out users who aren't allowed to use the service on the facility" } responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' #TODO getAllowedUsers - another future versions /urlinjsonout/facilitiesManager/copyOwners: post: deprecated: true tags: - FacilitiesManager operationId: copyOwners summary: Copy owners from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacility, schema: { type: integer }, in: query, required: true, description: "source facility id" } - { name: destFacility, schema: { type: integer }, in: query, required: true, description: "destination facility id" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyOwners/src-dest-name: post: deprecated: true tags: - FacilitiesManager operationId: copyOwnersBySourceDestinationNames summary: Copy owners from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacilityName, schema: { type: string }, in: query, required: true, description: "source facility name" } - { name: destFacilityName, schema: { type: string }, in: query, required: true, description: "destination facility name" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyOwners/src-name: post: deprecated: true tags: - FacilitiesManager operationId: copyOwnersBySourceName summary: Copy owners from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacilityName, schema: { type: string }, in: query, required: true, description: "source facility name" } - { name: destFacility, schema: { type: integer }, in: query, required: true, description: "destination facility id" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyOwners/dest-name: post: deprecated: true tags: - FacilitiesManager operationId: copyOwnersByDestinationName summary: Copy owners from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacility, schema: { type: integer }, in: query, required: true, description: "source facility id" } - { name: destFacilityName, schema: { type: string }, in: query, required: true, description: "destination facility name" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyManagers: post: tags: - FacilitiesManager operationId: copyManagers summary: Copy managers from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacility, schema: { type: integer }, in: query, required: true, description: "source facility id" } - { name: destFacility, schema: { type: integer }, in: query, required: true, description: "destination facility id" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyManagers/src-dest-name: post: tags: - FacilitiesManager operationId: copyManagersBySourceDestinationNames summary: Copy managers from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacilityName, schema: { type: string }, in: query, required: true, description: "source facility name" } - { name: destFacilityName, schema: { type: string }, in: query, required: true, description: "destination facility name" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyManagers/src-name: post: tags: - FacilitiesManager operationId: copyManagersBySourceName summary: Copy managers from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacilityName, schema: { type: string }, in: query, required: true, description: "source facility name" } - { name: destFacility, schema: { type: integer }, in: query, required: true, description: "destination facility id" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyManagers/dest-name: post: tags: - FacilitiesManager operationId: copyManagersByDestinationName summary: Copy managers from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacility, schema: { type: integer }, in: query, required: true, description: "source facility id" } - { name: destFacilityName, schema: { type: string }, in: query, required: true, description: "destination facility name" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyAttributes: post: tags: - FacilitiesManager operationId: copyAttributes summary: Copy attributes (settings) from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacility, schema: { type: integer }, in: query, required: true, description: "source facility id" } - { name: destFacility, schema: { type: integer }, in: query, required: true, description: "destination facility id" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyAttributes/src-dest-names: post: tags: - FacilitiesManager operationId: copyAttributesBySourceDestinationNames summary: Copy attributes (settings) from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacilityName, schema: { type: string }, in: query, required: true, description: "source facility name" } - { name: destFacilityName, schema: { type: string }, in: query, required: true, description: "destination facility name" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyAttributes/src-name: post: tags: - FacilitiesManager operationId: copyAttributesBySourceName summary: Copy attributes (settings) from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacilityName, schema: { type: string }, in: query, required: true, description: "source facility name" } - { name: destFacility, schema: { type: integer }, in: query, required: true, description: "destination facility id" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/copyAttributes/dest-name: post: tags: - FacilitiesManager operationId: copyAttributesByDestinationName summary: Copy attributes (settings) from source facility to destination facility. You must be facility manager of both. parameters: - { name: srcFacility, schema: { type: integer }, in: query, required: true, description: "source facility id" } - { name: destFacilityName, schema: { type: string }, in: query, required: true, description: "destination facility name" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/setBan: post: tags: - FacilitiesManager operationId: setFacilityBan summary: Set ban for user on facility. responses: '200': $ref: '#/components/responses/BanOnFacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetBanForUserOnFacility description: "input to setBanForUserOnFacility" type: object required: - banOnFacility properties: banOnFacility: { $ref: '#/components/schemas/BanOnFacility' } /json/facilitiesManager/getBanById: get: tags: - FacilitiesManager operationId: getFacilityBanById summary: Get Ban for user on facility by it's id. parameters: - { name: banId, schema: { type: integer }, in: query, required: true, description: "BanOnFacility id" } responses: '200': $ref: '#/components/responses/BanOnFacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getBan: get: tags: - FacilitiesManager operationId: getFacilityBan summary: Get ban by userId and facilityId. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/BanOnFacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getBansForUser: get: tags: - FacilitiesManager operationId: getBansForUser summary: Get all bans for user on any facility. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfBanOnFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getBansForFacility: get: tags: - FacilitiesManager operationId: getBansForFacility summary: Get all bans for user on the facility. parameters: - name: facilityId description: "id of Facility" schema: type: integer in: query required: true responses: '200': $ref: '#/components/responses/ListOfBanOnFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getEnrichedBansForFacility: get: tags: - FacilitiesManager operationId: getEnrichedBansForFacility summary: Get all enriched bans on the facility. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedBansOnFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/getEnrichedBansForUser: get: tags: - FacilitiesManager operationId: getEnricheFacilitydBansForUser summary: Get all user's enriched bans on assigned facilities. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedBansOnFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/facilitiesManager/updateBan: post: tags: - FacilitiesManager operationId: updateFacilityBan summary: Update existing ban (description, validation timestamp) responses: '200': $ref: '#/components/responses/BanOnFacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateBanForFacility description: "input to updateBanForFacility" type: object required: - banOnFacility properties: banOnFacility: { $ref: '#/components/schemas/BanOnFacility' } /urlinjsonout/facilitiesManager/removeBan/byId: post: tags: - FacilitiesManager operationId: removeFacilityBanById summary: Remove specific ban by it's id. parameters: - { name: banId, schema: { type: integer }, in: query, required: true, description: "BanOnFacility id" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/facilitiesManager/removeBan/byUserIdFacilityId: post: tags: - FacilitiesManager operationId: removeBanByUserIdFacilityId summary: Remove specific ban by userId and facilityId. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # OwnersManager # # (completely described) # ################################################# /json/ownersManager/createOwner: post: deprecated: true tags: - OwnersManager operationId: createOwner summary: Creates a new owner. responses: '200': $ref: '#/components/responses/OwnerResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateOwner description: "input to createOwner, no id, numeric ownerType instead of string type" type: object required: - name - contact - ownerType properties: name: { type: string, description: "name of contact, e.g. John Doe or NSA" } contact: { type: string, description: "email address" } ownerType: type: integer enum: [ 0, 1 ] description: "0 - technical, 1 - administrative" /urlinjsonout/ownersManager/deleteOwner: post: deprecated: true tags: - OwnersManager operationId: deleteOwner summary: Deletes Owner specified by id. Returns null. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' parameters: - $ref: '#/components/parameters/ownerId' - $ref: '#/components/parameters/forceDelete' /urlinjsonout/ownersManager/deleteOwners: post: deprecated: true tags: - OwnersManager operationId: deleteOwners summary: Deletes owners by ids. Returns null. parameters: - $ref: '#/components/parameters/ownerIds' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/ownersManager/getOwnerById: get: deprecated: true tags: - OwnersManager operationId: getOwnerById summary: Returns Owner by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/OwnerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/ownersManager/getOwnerByName: get: deprecated: true tags: - OwnersManager operationId: getOwnerByName summary: Returns Owner by its name. parameters: - $ref: '#/components/parameters/ownerName' responses: '200': $ref: '#/components/responses/OwnerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/ownersManager/getOwners: get: deprecated: true tags: - OwnersManager operationId: getAllOwners summary: Returns all owners. parameters: [ ] responses: '200': $ref: '#/components/responses/ListOfOwnersResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # GroupsManager # # # ################################################# /json/groupsManager/getGroupById: get: tags: - GroupsManager operationId: getGroupById summary: Returns a group by id. description: Throws GroupNotExistsException when the group doesn't exist. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/GroupResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupByUUID: get: tags: - GroupsManager operationId: getGroupByUUID summary: Returns a group by uuid. description: Throws GroupNotExistsException when the group doesn't exist. parameters: - $ref: '#/components/parameters/groupUuid' responses: '200': $ref: '#/components/responses/GroupResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getRichGroupByIdWithAttributesByNames: get: tags: - GroupsManager operationId: getRichGroupByIdWithAttributesByNames summary: Returns RichGroup selected by id containing selected attributes description: Throws GroupNotExistsException when the group doesn't exist. parameters: - { name: groupId, description: "id of Group", schema: { type: integer }, in: query, required: true } - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/RichGroupResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupByName: get: tags: - GroupsManager operationId: getGroupByName description: | Returns a group by VO and Group name. IMPORTANT: need to use full name of group (ex. 'toplevel:a:b', not the shortname which is in this example 'b') Throws GroupNotExistsException when the group doesn't exist. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/name' responses: '200': $ref: '#/components/responses/GroupResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupsByIds: get: tags: - GroupsManager operationId: getGroupsByIds summary: Returns list of groups by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getSubGroups: get: tags: - GroupsManager operationId: getSubGroups summary: Returns direct subgroups of a group (single level) parameters: - { name: parentGroup, description: "Parent Group id", schema: { type: integer }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupMembers: get: tags: - GroupsManager operationId: getGroupMembers summary: Returns list of members of a group. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/isGroupLastAdminInSomeFacility: get: tags: - GroupsManager operationId: isGroupLastAdminInSomeFacility summary: Return groups which supply the last FACILITYADMIN in some Facility. parameters: - $ref: '#/components/parameters/groupIds' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/isGroupLastAdminInSomeVo: get: tags: - GroupsManager operationId: isGroupLastAdminInSomeVo summary: Returns groups which supply the last VOADMIN in some VO. parameters: - $ref: '#/components/parameters/groupIds' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/isGroupMember: get: tags: - GroupsManager operationId: isGroupMember summary: Return true if Member is member of the Group. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getMemberGroups: get: tags: - GroupsManager operationId: getMemberGroups summary: Returns groups for a member. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllMemberGroups: get: tags: - GroupsManager operationId: getAllMemberGroups summary: Returns all groups for a member including group 'members' parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllGroups/all: get: tags: - GroupsManager operationId: getAllGroupsFromAllVos summary: Get all groups from all vos. Returned groups are filtered based on the principal rights. responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllGroups: get: tags: - GroupsManager operationId: getAllGroups summary: Returns all groups in a VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroups: get: tags: - GroupsManager operationId: getAllMyGroups summary: Returns all groups in a VO the user has access to. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllRichGroups: get: tags: - GroupsManager operationId: getAllRichGroups summary: Get all groups with their specified attributes. If the attrNames are null or empty, all group attributes are returned. parameters: - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllRichGroupsWithAttributesByNames: get: tags: - GroupsManager operationId: getAllRichGroupsWithAttributesByNames summary: Returns full list of all RichGroups containing selected attributes. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrNames' - { name: "roles[]", schema: { type: array, items: { $ref: '#/components/schemas/GroupAdminRoles' } }, in: query, description: "list of roles: GROUPADMIN, GROUPOBSERVER, GROUPMEMBERSHIPMANAGER" } - { name: "types[]", schema: { type: array, items: { $ref: '#/components/schemas/RoleAssignmentType' } }, in: query, description: "list of role types: DIRECT, INDIRECT" } responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllRichSubGroupsWithAttributesByNames: get: tags: - GroupsManager operationId: getAllRichSubGroupsWithGroupAttributesByNames summary: Returns all AllRichSubGroups from parent group containing selected attributes (all level subgroups). parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrNamesOptional' - { name: "roles[]", schema: { type: array, items: { $ref: '#/components/schemas/GroupAdminRoles' } }, in: query, description: "list of roles: GROUPADMIN, GROUPOBSERVER, GROUPMEMBERSHIPMANAGER" } - { name: "types[]", schema: { type: array, items: { $ref: '#/components/schemas/RoleAssignmentType' } }, in: query, description: "list of role types: DIRECT, INDIRECT" } responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/createGroup/v-n-d: post: tags: - GroupsManager operationId: createGroupWithVoNameDescription description: Creates a new group in the specific VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/groupName' - $ref: '#/components/parameters/groupDescription' responses: '200': $ref: '#/components/responses/GroupResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/createGroup/pg-n-d: post: tags: - GroupsManager operationId: createGroupWithParentGroupNameDescription description: Creates a subgroup of a group. parameters: - { name: parentGroup, description: "Parent Group id", schema: { type: integer }, in: query, required: true } - $ref: '#/components/parameters/groupName' - $ref: '#/components/parameters/groupDescription' responses: '200': $ref: '#/components/responses/GroupResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/deleteGroup: post: tags: - GroupsManager operationId: deleteGroup summary: Deletes group with given id if it contains no members and group is not assigned to any resources. If force param is true, removes group forcefully. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/deleteGroups: post: tags: - GroupsManager operationId: deleteGroups summary: Forcefully deletes a list of groups (remove all group members, remove group from resources). responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputDeleteGroups description: "input to deleteGroup" type: object required: - groups - forceDelete properties: groups: { type: array, items: { type: integer } } forceDelete: { type: boolean, description: "boolean for force delete" } /urlinjsonout/groupsManager/getGroupsWhereAutoRegistrationWillBeBrokenByMovingGroup/dg-mg: post: tags: - GroupsManager operationId: getGroupsWhereAutoRegistrationWillBeBrokenByMovingGroup summary: The groups embedded for an auto-registration in a group form need to be subgroups of this group. When moving a group within the VO, this relation can be broken. This method gets all such groups, meaning groups that have the group to be moved as embedded in their registration form and will no longer be supergroups after moving the group to the destination. parameters: - { name: destinationGroup, description: "id of Group to have 'movingGroup' as subGroup", schema: { type: integer }, in: query, required: false } - { name: movingGroup, description: "id of Group to be moved under 'destinationGroup'", schema: { type: integer }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/moveGroup/dg-mg: post: tags: - GroupsManager operationId: moveGroupWithDestinationGroupMovingGroup summary: Moves "movingGroup" (including subGroups) under "destinationGroup" as subGroup within same Vo. Indirect group members are also processed during move operation. parameters: - { name: destinationGroup, description: "id of Group to have 'movingGroup' as subGroup", schema: { type: integer }, in: query, required: false } - { name: movingGroup, description: "id of Group to be moved under 'destinationGroup'", schema: { type: integer }, in: query, required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/addMember: post: tags: - GroupsManager operationId: addMember summary: Add member to groups. If already a member of a group, the group will be skipped. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/addMembers: post: tags: - GroupsManager operationId: addMembers summary: Adds members to a group. If already a member of the group, the member will be skipped. Non-empty list of members expected, if empty, no member will be added. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/memberIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/copyMembers: post: tags: - GroupsManager operationId: copyMembers summary: Copies direct members from one group to other groups within the same VO. The members are copied without their member-group attributes. Empty or null members list will copy all of the group's direct members parameters: - { name: sourceGroup, description: "id of the group to copy from", schema: { type: integer }, in: query, required: true } - { name: destinationGroups, description: "ids of groups to copy to", schema: { type: array, items: { type: integer } }, in: query, required: true } - { name: members, description: "ids of members to copy", schema: { type: array, items: { type: integer } }, in: query, required: false } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/removeMember: post: tags: - GroupsManager operationId: removeMember summary: Removes member from a groups. If a member is not in the group or is indirect, it is skipped without a warning, but the rest of groups are processed. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/removeMembers: post: tags: - GroupsManager operationId: removeMembers summary: Removes members from a group. Non-empty list of members expected. In case of empty list, no member is removed from the group. If member is not in the group or the membership is indirect, it is skipped without a warning but the rest of the members are processed. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/memberIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/removeMembers: post: tags: - GroupsManager operationId: removeMembersBodyParams summary: Removes members from a group. Non-empty list of members expected. In case of empty list, no member is removed from the group. If member is not in the group or the membership is indirect, it is skipped without a warning but the rest of the members are processed. Copy of the removeMembers call with parameters in the request body. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputRemoveMembers description: "input to remove members" type: object required: - group - members properties: group: { type: integer } members: { type: array, items: { type: integer } } /urlinjsonout/groupsManager/createGroupUnion: post: tags: - GroupsManager operationId: createGroupUnion summary: Create union of two groups, where "operandGroup" is technically set as subgroup of "resultGroup". Members from "operandGroup" are added to "resultGroup" as INDIRECT members. Union is honored also in all group member changing operations. parameters: - $ref: '#/components/parameters/resultGroupId' - $ref: '#/components/parameters/operandGroupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupUnions: get: tags: - GroupsManager operationId: getGroupUnions summary: Return all operand groups for specified result groups (all INCLUDED groups). If "reverseDirection" is TRUE than return all result groups for specified operand group (where group is INCLUDED). parameters: - $ref: '#/components/parameters/groupId' - { name: reverseDirection, description: "FALSE (default) return INCLUDED groups / TRUE = return groups where INCLUDED", schema: { type: boolean }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/setGroupsMemberStatus: post: tags: - GroupsManager operationId: setGroupsMemberStatus summary: Set membership status of a member in a group. Please note, that resulting Status after change is calculated from all members sub-groups and groups in relation sourcing this member. If in any of them is VALID, resulting status is still VALID. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' - name: status description: status (VALID | EXPIRED) schema: type: string in: query required: true responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/extendMembershipInGroup: post: tags: - GroupsManager operationId: extendMembershipInGroup summary: Extend member membership in given group using membershipExpirationRules attribute defined in Group. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/canExtendMembershipInGroup: get: tags: - GroupsManager operationId: canExtendMembershipInGroup summary: Returns true if member in given group can extend membership or if no rules were set for the membershipExpiration, otherwise false. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/canExtendInNewRegistrarGroup: get: tags: - GroupsManager operationId: canExtendInNewRegistrarGroup summary: Returns true if member in given group can extend membership or if no rules were set for the membershipExpiration, otherwise throws exception containing the reason. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/removeGroupUnion: post: tags: - GroupsManager operationId: removeGroupUnion summary: Removes union of two groups, when "operandGroup" is technically removed from subgroups of "resultGroup". Members from "operandGroup" are removed from "resultGroup" if they were INDIRECT members sourcing from this group only. parameters: - $ref: '#/components/parameters/resultGroupId' - $ref: '#/components/parameters/operandGroupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/removeGroupUnions: post: tags: - GroupsManager operationId: removeGroupUnions summary: Removes unions of groups, where "operandGroups" are technically removed from subgroups of "resultGroup". Members from "operandGroups" are removed from "resultGroup" if they were INDIRECT members sourcing from these groups only. parameters: - $ref: '#/components/parameters/resultGroupId' - $ref: '#/components/parameters/operandGroupIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/forceGroupSynchronization: post: tags: - GroupsManager operationId: forceGroupSynchronization summary: Forces group synchronization. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/forceGroupStructureSynchronization: post: tags: - GroupsManager operationId: forceGroupStructureSynchronization summary: Forces group structure synchronization. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/forceAllSubGroupsSynchronization: post: tags: - GroupsManager operationId: forceAllSubGroupsSynchronization summary: Force synchronization for all subgroups (recursively - whole tree) of the group (useful for group structure). parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/updateGroup: post: tags: - GroupsManager operationId: updateGroup summary: Updates a group. responses: '200': $ref: '#/components/responses/GroupResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateGroup description: "input to updateGroup" type: object required: - group properties: group: { $ref: '#/components/schemas/Group' } /json/groupsManager/getGroupMembersCount: get: tags: - GroupsManager operationId: getGroupMembersCount summary: Returns count of group members. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupDirectMembersCount: get: tags: - GroupsManager operationId: getGroupDirectMembersCount summary: Returns count of direct group members. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupMembersCountsByVoStatus: get: tags: - GroupsManager operationId: getGroupMembersCountsByVoStatus summary: Returns counts of group members by their status in VO. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/MapStringIntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupMembersCountsByGroupStatus: get: tags: - GroupsManager operationId: getGroupMembersCountsByGroupStatus summary: Returns counts of group members by their group status. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/MapStringIntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getMemberRichGroupsWithAttributesByNames: get: tags: - GroupsManager operationId: getMemberRichGroupsWithAttributesByNames summary: "Returns full list of member's RichGroups containing selected attributes. 'members' group is not included! Supported are attributes from these namespaces: - group - member-group" parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/attrNames' - { name: "roles[]", schema: { type: array, items: { $ref: '#/components/schemas/GroupAdminRoles' } }, in: query, description: "list of roles: GROUPADMIN, GROUPOBSERVER, GROUPMEMBERSHIPMANAGER" } - { name: "types[]", schema: { type: array, items: { $ref: '#/components/schemas/RoleAssignmentType' } }, in: query, description: "list of role types: DIRECT, INDIRECT" } responses: '200': $ref: '#/components/responses/ListOfRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getParentGroup: get: tags: - GroupsManager operationId: getParentGroup summary: Returns a parent group of a group. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/GroupResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllSubGroups: get: tags: - GroupsManager operationId: getAllSubGroups summary: Returns all subgroups of a group. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getIndirectMembershipPaths: get: tags: - GroupsManager operationId: getIndirectMembershipPaths summary: Returns unique paths of groups as list of lists of groups [CURRENT GROUP -> SUBGROUP -> ... -> MEMBER'S SOURCE GROUP] via which member is indirectly included to the group. Cuts off after first included group. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfListsOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupMemberById: get: tags: - GroupsManager operationId: getGroupMemberById summary: Get member in context of group. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/MemberResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupRichMembersByIds: get: tags: - GroupsManager operationId: getGroupRichMembersByIds summary: Returns list of RichMembers with requested attributes by their member IDs from given group. Skips invalid member IDs (unknown or not members of group). Supports member, member-group (stored in memberAttributes) and user attributes (stored in userAttributes). parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/memberIds' - $ref: '#/components/parameters/attrNames' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupsPage: post: tags: - GroupsManager operationId: getGroupsPage summary: Get page of groups from the given vo. responses: '200': $ref: '#/components/responses/PaginatedRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetPaginatedGroups description: "input to getPaginatedGroups" type: object required: - vo - query - attrNames properties: vo: { type: integer } attrNames: { type: array, items: { type: string } } query: { $ref: '#/components/schemas/GroupsPageQuery' } /json/groupsManager/getSubgroupsPage: post: tags: - GroupsManager operationId: getSubgroupsPage summary: Get page of subgroups from the given parent group. responses: '200': $ref: '#/components/responses/PaginatedRichGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetPaginatedSubgroups description: "input to getSubgroupsPage" type: object required: - group - query - attrNames properties: group: { type: integer } attrNames: { type: array, items: { type: string } } query: { $ref: '#/components/schemas/GroupsPageQuery' } /urlinjsonout/groupsManager/allowGroupToHierarchicalVo: post: tags: - GroupsManager operationId: allowGroupToHierarchicalVo summary: Sets flag required for including group to parent vo in a vo hierarchy. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/allowGroupsToHierarchicalVo: post: tags: - GroupsManager operationId: allowGroupsToHierarchicalVo summary: Sets flag required for including groups to parent vo in a vo hierarchy. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/disallowGroupToHierarchicalVo: post: tags: - GroupsManager operationId: disallowGroupToHierarchicalVo summary: Unsets flag required for including group to parent vo in a vo hierarchy. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/disallowGroupsToHierarchicalVo: post: tags: - GroupsManager operationId: disallowGroupsToHierarchicalVo summary: Unsets flag required for including groups to parent vo in a vo hierarchy. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/isAllowedGroupToHierarchicalVo: get: tags: - GroupsManager operationId: isAllowedGroupToHierarchicalVo summary: Returns flag representing if the group can be included in the (parent) vo's groups parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllAllowedGroupsToHierarchicalVo/v: get: tags: - GroupsManager operationId: getAllAllowedGroupsToHierarchicalVo summary: Returns all groups which can be included to VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getAllAllowedGroupsToHierarchicalVo/v-v: get: tags: - GroupsManager operationId: getVoAllAllowedGroupsToHierarchicalVo summary: Returns all groups which can be included to VO from specific member VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/memberVoId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupsWhereMemberIsActive: get: tags: - GroupsManager operationId: getGroupsWhereMemberIsActive summary: Returns list of groups where member is in active state. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/getGroupsWhereUserIsActiveMember: get: tags: - GroupsManager operationId: getGroupsWhereUserIsActiveMember summary: Returns list of groups where user is member in active state. Groups are looked up only for the specfied VO. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/suspendGroupSynchronization: post: tags: - GroupsManager operationId: suspendGroupSynchronization summary: Suspends group synchronization. Groups being currently synchronized will finish. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/groupsManager/resumeGroupSynchronization: post: tags: - GroupsManager operationId: resumeGroupSynchronization summary: Resumes previously suspended group synchronization responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/groupsManager/isSuspendedGroupSynchronization: get: tags: - GroupsManager operationId: isSuspendedGroupSynchronization summary: Return true if group synchronization has been suspended. responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # ResourcesManager # # # ################################################# /json/resourcesManager/getAllResources: get: tags: - ResourcesManager operationId: getAllResources summary: Returns all resources. responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourceById: get: tags: - ResourcesManager operationId: getResourceById summary: Returns a resource by id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourcesByIds: get: tags: - ResourcesManager operationId: getResourcesByIds summary: Returns list of Resources by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getEnrichedResourceById: get: tags: - ResourcesManager operationId: getEnrichedResourceById summary: Find resource for given id and returns it with given attributes. If attrNames are null or empty, all resource attributes are returned. parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/EnrichedResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourceByName: get: tags: - ResourcesManager operationId: getResourceByName summary: Returns resource by its name, Vo id and Facility id. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/name' responses: '200': $ref: '#/components/responses/ResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getRichResourceById: get: tags: - ResourcesManager operationId: getRichResourceById summary: Returns RichResource by id (also containing facility and VO inside). parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/RichResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getRichResourcesByIds: get: tags: - ResourcesManager operationId: getRichResourcesByIds summary: Returns list of RichResources by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/createResource: post: tags: - ResourcesManager operationId: createResource summary: Creates a new resource. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/name' - { name: description, schema: { type: string }, in: query, required: false, description: 'optional resource description' } responses: '200': $ref: '#/components/responses/ResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/copyResource: post: tags: - ResourcesManager operationId: copyResource summary: | Copy "template" settings from user's another existing resource and create new resource with this template. The settings are attributes, services, tags (if the resources are from the same VO), groups and their members (if the resources are from the same VO and withGroups is true) Template Resource can be from any of user's facilities. responses: '200': $ref: '#/components/responses/ResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCopyResource description: "input to copyResource" type: object required: - templateResource - destinationResource - withGroups properties: templateResource: { $ref: '#/components/schemas/Resource' } destinationResource: { $ref: '#/components/schemas/Resource' } withGroups: { type: boolean, description: 'if copy the resource with group' } /json/resourcesManager/updateResource: post: tags: - ResourcesManager operationId: updateResource summary: Updates a resource. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateResource description: "input to updateResource" type: object required: - resource properties: resource: { $ref: '#/components/schemas/Resource' } /urlinjsonout/resourcesManager/deleteResource: post: tags: - ResourcesManager operationId: deleteResource summary: Deletes a resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getFacility: get: tags: - ResourcesManager operationId: getFacility summary: Get facility which belongs to a specific resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/FacilityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getVo: get: tags: - ResourcesManager operationId: getVo summary: Returns Vo which is tied to a specific resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/VoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAllowedMembers: get: tags: - ResourcesManager operationId: getAllowedMembers summary: Returns all allowed members on the resource. Allowed members belong to a group with an active assignment to the resource and their VO membership status is not INVALID or DISABLED. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAllowedUsers: get: tags: - ResourcesManager operationId: getAllowedUsersOfResource summary: Returns all allowed users on the resource. Allowed users are members of a group with an active assignment to the resource and their VO membership status is not INVALID or DISABLED. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/isResourceLastAssignedServices: get: tags: - ResourcesManager operationId: isResourceLastAssignedServices summary: Returns the services where the resource is the last one on the facility to have them assigned. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/serviceIds' responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/assignGroupToResource: post: tags: - ResourcesManager operationId: assignGroupToResource summary: Assigns a group to a resource. Check if attributes for each member from group are valid. Fill members' attributes with missing value. Work in sync/async mode. Provide options for creating inactive or automatic subgroups group-resource assignments. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/async' - $ref: '#/components/parameters/assignInactive' - $ref: '#/components/parameters/autoAssignSubgroups' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/assignGroupsToResource: post: tags: - ResourcesManager operationId: assignGroupsToResource summary: Assigns groups to a resource. Check if attributes for each member from groups are valid. Fill members' attributes with missing values. Work in sync/async mode. Provide options for creating inactive or automatic subgroups group-resource assignments. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/async' - $ref: '#/components/parameters/assignInactive' - $ref: '#/components/parameters/autoAssignSubgroups' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/assignGroupToResources: post: tags: - ResourcesManager operationId: assignGroupToResources summary: Assigns a group to resources. Check if attributes for each member from group are valid. Fill members' attributes with missing values. Work in sync/async mode. Provide options for creating inactive or automatic subgroups group-resource assignments. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceIds' - $ref: '#/components/parameters/async' - $ref: '#/components/parameters/assignInactive' - $ref: '#/components/parameters/autoAssignSubgroups' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeGroupFromResource: post: tags: - ResourcesManager operationId: removeGroupFromResource summary: Remove a group from a resource. After removing, check attributes and fix them if it is needed. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeGroupsFromResource: post: tags: - ResourcesManager operationId: removeGroupsFromResource summary: Remove groups from a resource. After removing, check attributes and fix them if it is needed. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeGroupFromResources: post: tags: - ResourcesManager operationId: removeGroupFromResources summary: Remove a group from resource. After removing, check attributes and fix them if it is needed. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedGroups: get: tags: - ResourcesManager operationId: getAssignedGroups summary: List all groups associated with the resource and optionally a member. parameters: - $ref: '#/components/parameters/resourceId' - { name: member, required: false, schema: { type: integer }, in: query, description: 'optional member id' } responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedResources/g: get: tags: - ResourcesManager operationId: getAssignedResourcesWithGroup summary: List all resources to which the group is assigned. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedResourcesWithStatus: get: tags: - ResourcesManager operationId: getAssignedResourcesWithStatus summary: Returns all resources reachable through groups the member belongs to, annotated with the group-resource assignment status. Assignments in any state are included (not only ACTIVE). If the same resource is reached through multiple assignments, only the entry with the most important status is returned. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfAssignedResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourceAssignments: get: tags: - ResourcesManager operationId: getResourceAssignments summary: Lists all of the resource assignments for the given group. Also, returns specified attributes for the resources and resource tags. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfAssignedResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getGroupAssignments: get: tags: - ResourcesManager operationId: getGroupAssignments summary: Lists all of the assigned groups for the given resource. Also, returns specified attributes for the groups. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfAssignedGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/allowGroupsToResources: post: tags: - ResourcesManager operationId: allowGroupsToResources summary: Assigns given groups to all of the given resources. If async is set to false, check if attributes for each member from groups are valid and fill members' attributes with missing values. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/resourceIds' - $ref: '#/components/parameters/async' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/unallowGroupsFromResources: post: tags: - ResourcesManager operationId: unallowGroupsFromResources summary: Unassigns given groups from the given resources. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/resourceIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/activateGroupResourceAssignment: post: tags: - ResourcesManager operationId: activateGroupResourceAssignment summary: Try to activate the group-resource status. If the async is set to false, the validation is performed synchronously. The assignment will be either ACTIVE, in case of a sucessfull synchronous call, or it will be PROCESSING in case of an asynchronous call. After the async validation, the state can be either ACTIVE or FAILED. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/async' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/deactivateGroupResourceAssignment: post: tags: - ResourcesManager operationId: deactivateGroupResourceAssignment summary: Deactivates the group-resource assignment. The assignment will become INACTIVE and will not be used to allow users from the given group to the resource. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedResources/m: get: tags: - ResourcesManager operationId: getAssignedResourcesWithMember summary: Get all resources where the member is assigned. The member belongs to a group with an active assignment to the resource. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedRichResources/s-m: get: tags: - ResourcesManager operationId: getAssignedRichResourcesWithMemberService summary: Get all rich resources where the member is assigned, with facility property filled. The member belongs to a group with an active assignment to the resource. On top of that, results are restricted to resources with the given service assigned. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedRichResources/m: get: tags: - ResourcesManager operationId: getAssignedRichResourcesWithMember summary: Get all rich resources where the member is assigned, with facility property filled. The member belongs to a group with an active assignment to the resource. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedRichResources/g: get: tags: - ResourcesManager operationId: getAssignedRichResourcesWithGroup summary: List all rich resources associated with a group. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedMembers: get: tags: - ResourcesManager operationId: getAssignedMembers summary: Returns all assigned members on the resource. Assigned members belong to a group with an active assignment to the resource. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedMembersWithStatus: get: tags: - ResourcesManager operationId: getAssignedMembersWithStatus summary: Returns all members of groups with a group-resource assignment to the resource, annotated with the assignment status. Assignments in any state are included (not only ACTIVE). parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfAssignedMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedRichMembers: get: tags: - ResourcesManager operationId: getAssignedRichMembers summary: Returns all assigned members on the resource as RichMembers. Assigned members belong to a group with an active assignment to the resource. No filter is applied on their VO membership status. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfRichMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/addAdmin/r-u: post: tags: - ResourcesManager operationId: addAdminToUser summary: Adds a Resource admin. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/addAdmin/r-g: post: tags: - ResourcesManager operationId: addAdminToGroup summary: Adds a group administrator to the Resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeAdmin/r-u: post: tags: - ResourcesManager operationId: removeUserAdminResource summary: Removes a Resource admin. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeAdmin/r-g: post: tags: - ResourcesManager operationId: removeGroupAdminResource summary: Removes a group administrator of the Resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAdmins: get: tags: - ResourcesManager operationId: getAdmins summary: Get list of all resource administrators for supported role and given resource. description: If onlyDirectAdmins is == true, return only direct admins of the group for supported role. Otherwise include users who are VALID members of administrator groups. Supported roles are ResourceAdmin, VOAdmin. parameters: - $ref: '#/components/parameters/resourceId' - { name: onlyDirectAdmins, required: true, schema: { type: boolean }, in: query, description: 'boolean if true, get only direct resource administrators (if false, get both direct and indirect)' } responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAdminGroups: get: tags: - ResourcesManager operationId: getAdminGroups summary: Get all Resource group admins. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getRichAdmins: get: tags: - ResourcesManager operationId: getRichAdmins summary: | Get list of all richUser administrators for the resource and supported role with specific attributes. If some group is administrator of the given group, all VALID members are included in the list. Supported roles: ResourceAdmin, VOAdmin If "onlyDirectAdmins" is true, return only direct admins of the resource for supported role with specific attributes. If "allUserAttributes" is true, do not specify attributes through list and return them all in objects richUser. Ignoring list of specific attributes. parameters: - $ref: '#/components/parameters/resourceId' - name: specificAttributes description: 'list of specified attributes which are needed in object richUser' schema: type: array items: type: string in: query required: true - { name: allUserAttributes, required: true, schema: { type: boolean }, in: query, description: 'if == true, get all possible user attributes and ignore list of specificAttributes (if false, get only specific attributes)' } - { name: onlyDirectAdmins, required: true, schema: { type: boolean }, in: query, description: 'if == true, get only direct resource administrators (if false, get both direct and indirect)' } responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourcesWhereUserIsAdmin: get: tags: - ResourcesManager operationId: getResourcesWhereUserIsAdmin summary: Returns list of Resources for specified VO and Facility, where the user is a direct Administrator or a VALID member of an administrator group. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourcesWhereUserIsAdmin/group: get: tags: - ResourcesManager operationId: getResourcesWhereGroupIsAdmin summary: Returns list of Resources for specified VO and Facility, where the group is an Administrator. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourcesWhereUserIsAdmin/fromVo: get: tags: - ResourcesManager operationId: getResourcesFromVoWhereUserIsAdmin summary: Returns list of Resources for specified VO, where the user is an Administrator. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourcesWhereUserIsAdmin/all: get: tags: - ResourcesManager operationId: getAllResourcesWhereUserIsAdmin summary: Returns list of Resources, where the user is an Administrator. parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/assignService: post: tags: - ResourcesManager operationId: assignService summary: Assigns service to resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/assignServices: post: tags: - ResourcesManager operationId: assignServices summary: Assigns services to resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/serviceIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeService: post: tags: - ResourcesManager operationId: removeService summary: Removes a service from a resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeService/forResources: post: tags: - ResourcesManager operationId: removeServiceForResources summary: Remove service from multiple resources in the same facility. parameters: - $ref: '#/components/parameters/resourceIds' - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeServices: post: tags: - ResourcesManager operationId: removeServices summary: Removes services from a resource. Optionally also removes tasks, their results or destinations associated with the services on the resource's facility. This only happens for services which are not assigned to other resources on the facility. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/serviceIds' - { name: removeTasks, required: false, schema: { type: boolean }, in: query, description: 'whether to also remove associated tasks. This will also remove task results' } - { name: removeTaskResults, required: false, schema: { type: boolean }, in: query, description: 'whether to also remove associated task results' } - { name: removeDestinations, required: false, schema: { type: boolean }, in: query, description: 'whether to also remove associated destinations' } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResources: get: tags: - ResourcesManager operationId: getResources summary: Get all VO resources. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getRichResources: get: tags: - ResourcesManager operationId: getRichResources summary: Get all VO rich resources. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getMailingServiceRichResourcesWithMember: get: tags: - ResourcesManager operationId: getMailingServiceRichResourcesWithMember summary: Return all rich resources with mailing service(s) where given member is assigned. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfRichResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getEnrichedResourcesForVo: get: tags: - ResourcesManager operationId: getEnrichedResourcesForVo summary: Find resources for given vo and attributes for given names. If the attrNames are empty or null, return all attributes. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getEnrichedResourcesForFacility: get: tags: - ResourcesManager operationId: getEnrichedResourcesForFacility summary: Find resources for given facility and attributes for given names. If the attrNames are empty or null, return all attributes. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourcesCount/vo: get: tags: - ResourcesManager operationId: getResourcesCountForVo summary: Returns number of VO resources parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getResourcesCount/all: get: tags: - ResourcesManager operationId: getResourcesCountForAll summary: Gets count of all users. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/deleteAllResources: post: tags: - ResourcesManager operationId: deleteAllResources summary: Deletes all VO resources parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAllowedResources: get: tags: - ResourcesManager operationId: getAllowedResources summary: Get all resources where the member is allowed. The member belongs to a group with an active assignment to the resource and their VO membership status is not INVALID or DISABLED. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/createResourceTag/resourceTag: post: tags: - ResourcesManager operationId: createResourceTagWithResourceTag summary: Create new resource tag in VO responses: '200': $ref: '#/components/responses/ResourceTagResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateResourceTagWithResourceTag description: "input to createResourceTagWithResourceTag" type: object required: - resourceTag - vo properties: resourceTag: { $ref: '#/components/schemas/ResourceTag' } vo: { type: integer, description: 'vo id' } /urlinjsonout/resourcesManager/createResourceTag/tagName: post: tags: - ResourcesManager operationId: createResourceTagWithTagName summary: Create new resource tag defined by tag name in VO parameters: - { name: tagName, required: true, description: "tagName", schema: { type: string }, in: query } - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ResourceTagResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/updateResourceTag: post: tags: - ResourcesManager operationId: updateResourceTag summary: Update resource tag name by it's id and VO_ID responses: '200': $ref: '#/components/responses/ResourceTagResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateResourceTag description: "input to updateResourceTag" type: object required: - resourceTag properties: resourceTag: { $ref: '#/components/schemas/ResourceTag' } /json/resourcesManager/deleteResourceTag: post: tags: - ResourcesManager operationId: deleteResourceTag summary: Delete resource tag by it's id and VO_ID responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputDeleteResourceTag description: "input to deleteResourceTag" type: object required: - resourceTag properties: resourceTag: { $ref: '#/components/schemas/ResourceTag' } /urlinjsonout/resourcesManager/deleteAllResourcesTagsForVo: post: tags: - ResourcesManager operationId: deleteAllResourcesTagsForVo summary: Delete all resources tags of VO parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/assignResourceTagToResource: post: tags: - ResourcesManager operationId: assignResourceTagToResource summary: Assigns ResourceTag to resource. The ResourceTag must contain its id, voId and tagName. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputAssignResourceTagToResource description: "input to assignResourceTagToResource" type: object required: - resource - resourceTag properties: resource: { type: integer, description: 'resource id' } resourceTag: { $ref: '#/components/schemas/ResourceTag' } /json/resourcesManager/assignResourceTagsToResource: post: tags: - ResourcesManager operationId: assignResourceTagsToResource summary: Assigns ResourceTags to resource. The ResourceTags must contain its id, voId and tagName. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputAssignResourceTagsToResource description: "input to assignResourceTagsToResource" type: object required: - resource - resourceTags properties: resource: { type: integer, description: 'resource id' } resourceTags: { type: array, items: { $ref: '#/components/schemas/ResourceTag' } } /json/resourcesManager/removeResourceTagFromResource: post: tags: - ResourcesManager operationId: removeResourceTagFromResource summary: Removes ResourceTag from a resource. The ResourceTag must contain its id, voId and tagName. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputRemoveResourceTagFromResource description: "input to removeResourceTagFromResource" type: object required: - resource - resourceTag properties: resource: { type: integer, description: 'resource id' } resourceTag: { $ref: '#/components/schemas/ResourceTag' } /json/resourcesManager/removeResourceTagsFromResource: post: tags: - ResourcesManager operationId: removeResourceTagsFromResource summary: Removes ResourceTags from a resource. The ResourceTags must contain its id, voId and tagName. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputRemoveResourceTagsFromResource description: "input to removeResourceTagsFromResource" type: object required: - resource - resourceTags properties: resource: { type: integer, description: 'resource id' } resourceTags: { type: array, items: { $ref: '#/components/schemas/ResourceTag' } } /urlinjsonout/resourcesManager/removeAllResourcesTagFromResource: post: tags: - ResourcesManager operationId: removeAllResourceTagsFromResource summary: Removes all resources tags from a resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAllResourcesByResourceTag: post: tags: - ResourcesManager operationId: getAllResourcesByResourceTag summary: Get all resources with the specific tag assigned. responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetAllResourcesByResourceTag description: "input to getAllResourcesByResourceTag" type: object required: - resourceTag properties: resource: { type: integer, description: 'resource id' } resourceTag: { $ref: '#/components/schemas/ResourceTag' } /json/resourcesManager/getAllResourcesTagsForVo: get: tags: - ResourcesManager operationId: getAllResourcesTagsForVo summary: Gets all resource tags of VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfResourceTagsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAllResourcesTagsForResource: get: tags: - ResourcesManager operationId: getAllResourcesTagsForResource summary: Gets all resource tags of Resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfResourceTagsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getAssignedServices: get: tags: - ResourcesManager operationId: getAssignedServicesToResource summary: List all services associated with the resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/setBan: post: tags: - ResourcesManager operationId: setResourceBan summary: Set ban for member on resource. responses: '200': $ref: '#/components/responses/BanOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetBan description: "input to setBan" type: object required: - banOnResource properties: banOnResource: { $ref: '#/components/schemas/BanOnResource' } /json/resourcesManager/getBanById: get: tags: - ResourcesManager operationId: getResourceBanById summary: Get Ban for member on resource by it's id. parameters: - { name: banId, required: true, description: "BanOnResource id", schema: { type: integer }, in: query } responses: '200': $ref: '#/components/responses/BanOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getBan: get: tags: - ResourcesManager operationId: getResourceBan summary: Get ban by memberId and resource id. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/BanOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getBansForMember: get: tags: - ResourcesManager operationId: getBansForMember summary: Get all bans for member on any resource. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/ListOfBanOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getBansForResource: get: tags: - ResourcesManager operationId: getBansForResource summary: Get all bans for members on the resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfBanOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getEnrichedBansForResource: get: tags: - ResourcesManager operationId: getEnrichedBansForResource summary: Get all enriched bans for members on the resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedBansOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/getEnrichedBansForUser: get: tags: - ResourcesManager operationId: getEnrichedBansForUser summary: Get all enriched bans for user's members on resources. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedBansOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/resourcesManager/updateBan: post: tags: - ResourcesManager operationId: updateResourceBan summary: Update existing ban (description, validation timestamp) responses: '200': $ref: '#/components/responses/BanOnResourceResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateBan description: "input to updateBan" type: object required: - banOnResource properties: banOnResource: { $ref: '#/components/schemas/BanOnResource' } /urlinjsonout/resourcesManager/removeBan/id: post: tags: - ResourcesManager operationId: removeResourceBanById summary: Remove specific ban by it's id. parameters: - { name: banId, required: true, description: "BanOnResource id", schema: { type: integer }, in: query } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeBan/member-resource-id: post: tags: - ResourcesManager operationId: removeBanByMemberAndResource summary: Remove specific ban by memberId and resourceId. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/addResourceSelfServiceUser: post: tags: - ResourcesManager operationId: addResourceSelfServiceUser summary: Sets ResourceSelfService role to given user for given resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/addResourceSelfServiceGroup: post: tags: - ResourcesManager operationId: addResourceSelfServiceGroup summary: Sets ResourceSelfService role to given group for given resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeResourceSelfServiceUser: post: tags: - ResourcesManager operationId: removeResourceSelfServiceUser summary: Unset ResourceSelfService role to given user for given resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/resourcesManager/removeResourceSelfServiceGroup: post: tags: - ResourcesManager operationId: removeResourceSelfServiceGroup summary: Unset ResourceSelfService role to given group for given resource. parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # VosManager # # # ################################################# /json/vosManager/getVos: get: tags: - VosManager operationId: getMyVos summary: Return list of all VOs the caller is associated with. responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getEnrichedVos: get: tags: - VosManager operationId: getMyEnrichedVos summary: Return list of all EnrichedVos the caller is associated with. responses: '200': $ref: '#/components/responses/ListOfEnrichedVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getAllVos: get: tags: - VosManager operationId: getAllVos summary: Return list of all VOs in Perun. responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/deleteVo: post: tags: - VosManager operationId: deleteVo summary: Deletes a VO. If force == true then VO is deleted including members, groups and resources. If force == false or null only empty VO is deleted or exception is thrown. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/createVo/withVo: post: tags: - VosManager operationId: createVoWithVo summary: | Creates new VO. Caller is automatically set as VO manager. Vo Object must contain: name - lenght can be no more than 128 characters shortName - can contain only a-z, A-Z, 0-9, '.', '-', '_' and cannot be longer than 32 characters. Other parameters are ignored. @exampleParam vo { "name" : "My testing VO" , "shortName" : "test_vo" } responses: '200': $ref: '#/components/responses/VoResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateVoWithVo description: "input to createVoWithVo" type: object required: - vo properties: vo: { $ref: '#/components/schemas/Vo' } /urlinjsonout/vosManager/createVo/withName: post: tags: - VosManager operationId: createVoWithName summary: Creates new VO. Caller is automatically set as VO manager. parameters: - { name: name, description: "name - length can be no more than 128 characters", schema: { type: string }, in: query, required: true } - { name: shortName, description: "shortName - can contain only a-z, A-Z, 0-9, '.', '-', '_' and cannot be longer than 32 characters", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/VoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/updateVo: post: tags: - VosManager operationId: updateVo summary: Updates a VO. Only name parameter is updated. VO to updated is determined by id parameter of passed VO object. responses: '200': $ref: '#/components/responses/VoResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateVo description: "input to updateVo" type: object required: - vo properties: vo: { $ref: '#/components/schemas/Vo' } /json/vosManager/getVoByShortName: get: tags: - VosManager operationId: getVoByShortName summary: Returns a VO by its short name. parameters: - { name: shortName, required: true, description: "short name of Vo", schema: { type: string }, in: query } responses: '200': $ref: '#/components/responses/VoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getVoById: get: tags: - VosManager operationId: getVoById summary: Returns a virtual organization by id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getEnrichedVoById: get: tags: - VosManager operationId: getEnrichedVoById summary: Returns an enriched virtual organization by id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/EnrichedVoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getVosByIds: get: tags: - VosManager operationId: getVosByIds summary: Return list of VOs by their ids. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/findCandidates: get: tags: - VosManager operationId: findCandidates summary: | Find candidates for VO. Candidates can be used to create new members. Candidates are searched in VOs external sources (if available). Candidates, which are already members of VO are never returned even if they match searchString. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfCandidatesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/findCandidates/forGroup: get: tags: - VosManager operationId: findCandidatesForGroup summary: | Find candidates for Group. Candidates can be used to create new VO and Group members. Candidates are searched in Groups external sources (if available). Candidates, which are already members of VO are never returned even if they match searchString. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfCandidatesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getCompleteCandidates/forVo: get: tags: - VosManager operationId: getCompleteCandidatesForVo summary: | Find MemberCandidates for VO. MemberCandidates can be used to create new members. They are made of Candidate, RichUser and Member objects. Candidates are searched in VO's external sources (if available). RichUsers are searched in given VO and are associated with appropriate candidate and member. RichUsers for MemberCandidates may also be searched in the whole Perun. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrNames' - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfMemberCandidatesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getCompleteCandidates/forGroup: get: tags: - VosManager operationId: getCompleteCandidatesForGroup summary: | Find MemberCandidates for GROUP. MemberCandidates can be used to create new members. They are made of Candidate, RichUser and Member objects. Candidates are searched in VO's or GROUP's (depends on privileges) external sources (if available). RichUsers are searched in given VO and are associated with appropriate candidate and member. RichUsers for appropriate Candidate are also searched in the whole Perun. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/attrNames' - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/ListOfMemberCandidatesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getVosCount: get: tags: - VosManager operationId: getVosCount summary: Gets count of all vos. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getVoMembersCountsByStatus: get: tags: - VosManager operationId: getVoMembersCountsByStatus summary: Returns number of vo members by their status. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/MapStringIntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/addAdmin/user: post: tags: - VosManager operationId: addVoAdminUser summary: Adds a user as a Vo admin. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/addAdmin/group: post: tags: - VosManager operationId: addVoAdminGroup summary: Adds a group as a Vo admin. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/addSponsorRole/user: post: tags: - VosManager operationId: addSponsorRoleToUser summary: Add user as a sponsor for guest members of VO. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/addSponsorRole/group: post: tags: - VosManager operationId: addSponsorRoleToGroup summary: Add group as a sponsor of guest members of VO. All members of group will become sponsors. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/removeAdmin/user: post: tags: - VosManager operationId: removeVoAdminUser summary: Removes a user as a Vo admin. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/removeAdmin/group: post: tags: - VosManager operationId: removeVoAdminGroup summary: Removes a group as a Vo admin. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/removeSponsorRole/user: post: tags: - VosManager operationId: removeSponsorRoleFromUser summary: Removes user as a sponsor. His or her sponsored members will be set as expired if the user was their last sponsor. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/removeSponsorRole/group: post: tags: - VosManager operationId: removeSponsorRoleFromGroup summary: Removes group as a sponsor. All group members will cease to be sponsors, and their sponsored members will be set as expired if the group member was their last sponsor. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/authorizedGroup' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getAdmins: get: tags: - VosManager operationId: getVoAdminUsers description: | Get list of all vo administrators for supported role and specific vo. If onlyDirectAdmins is true, return only direct admins of the vo for supported role. Otherwise return direct admins and users who are VALID members of administrator groups Supported roles: VOOBSERVER, TOPGROUPCREATOR, VOADMIN parameters: - $ref: '#/components/parameters/voId' - { name: role, schema: { $ref: '#/components/schemas/VoAdminRoles' }, in: query, required: true, description: 'supported role name' } - { name: onlyDirectAdmins, schema: { type: boolean }, in: query, required: true, description: "get only direct administrators (if false, get both direct and indirect)" } responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getAdminGroups: get: tags: - VosManager operationId: getVoAdminGroups description: | Get list of administrator groups of the given VO. Supported roles: VOOBSERVER, TOPGROUPCREATOR, VOADMIN parameters: - $ref: '#/components/parameters/voId' - { name: role, schema: { $ref: '#/components/schemas/VoAdminRoles' }, in: query, required: true, description: 'supported role name' } responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getRichAdmins: get: tags: - VosManager operationId: getRichAdminsForVo description: | Get list of all richUser administrators for the vo and supported role with specific attributes. If some group is administrator of the given group, all VALID members are included in the list. Supported roles: VOOBSERVER, TOPGROUPCREATOR, VOADMIN If "onlyDirectAdmins" is == true, return only direct admins of the vo for supported role with specific attributes. If "allUserAttributes" is == true, do not specify attributes through list and return them all in objects richUser. Ignoring list of specific attributes. parameters: - $ref: '#/components/parameters/voId' - { name: role, schema: { $ref: '#/components/schemas/VoAdminRoles' }, in: query, required: true, description: 'role name' } - $ref: '#/components/parameters/specificAttributes' - { name: allUserAttributes, schema: { type: boolean }, in: query, required: true, description: 'if == true, get all possible user attributes and ignore list of specificAttributes (if false, get only specific attributes)' } - { name: onlyDirectAdmins, schema: { type: boolean }, in: query, required: true, description: 'if == true, get only direct vo administrators (if false, get both direct and indirect)' } responses: '200': $ref: '#/components/responses/ListOfRichUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/setBan: post: tags: - VosManager operationId: setVoBan description: | Set ban for member on his vo. The member id is required, validityTo and description are optional. voId is ignored. responses: '200': $ref: '#/components/responses/BanOnVoResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetVoBan description: "input to set vo ban" type: object required: - banOnVo properties: banOnVo: { $ref: '#/components/schemas/BanOnVo' } /urlinjsonout/vosManager/removeBan: post: tags: - VosManager operationId: removeVoBan summary: Remove vo ban with given id. parameters: - $ref: '#/components/parameters/banId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/removeBanForMember: post: tags: - VosManager operationId: removeVoBanForMember summary: Remove vo ban for member with given id. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/updateBan: post: tags: - VosManager operationId: updateVoBan summary: Update existing ban (description, validation timestamp) responses: '200': $ref: '#/components/responses/BanOnVoResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateBan description: "input to updateBan" type: object required: - banOnVo properties: banOnVo: { $ref: '#/components/schemas/BanOnVo' } /json/vosManager/getBanById: get: tags: - VosManager operationId: getVoBanById summary: Get vo ban with given id. parameters: - $ref: '#/components/parameters/banId' responses: '200': $ref: '#/components/responses/BanOnVoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getBanForMember: get: tags: - VosManager operationId: getVoBanForMember summary: Get ban for given member, or null if he is not banned. parameters: - $ref: '#/components/parameters/memberId' responses: '200': $ref: '#/components/responses/BanOnVoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getBansForVo: get: tags: - VosManager operationId: getVoBansForVo summary: Get list of all bans for vo with given id. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfBanOnVoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getEnrichedBansForVo: get: tags: - VosManager operationId: getEnrichedBansForVo summary: Get list of all enriched bans for vo. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedBanOnVoResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getEnrichedBansForUser: get: tags: - VosManager operationId: getEnrichedVoBansForUser summary: Get list of all enriched bans for user. parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/attrNamesOptional' responses: '200': $ref: '#/components/responses/ListOfEnrichedBanOnVoResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/addMemberVo: post: tags: - VosManager operationId: addMemberVo summary: Add member vo to vo. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/memberVoId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/vosManager/removeMemberVo: post: tags: - VosManager operationId: removeMemberVo summary: Remove member vo from vo. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/memberVoId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getMemberVos: get: tags: - VosManager operationId: getMemberVos summary: Get list of all members organizations of a vo. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/vosManager/getParentVos: get: tags: - VosManager operationId: getParentVos summary: Get list of all parent organizations of a vo. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfVosResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # RegistrarManager # # # ################################################# /json/registrarManager/checkCheckboxHtml: post: tags: - RegistrarManager operationId: checkCheckboxHtml summary: Check whether input html is safe for our application form item checkbox labels responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCheckCheckboxHtml description: "input to checkCheckboxHtml" type: object required: - html properties: html: { type: string, description: "string containing the html to check for" } /json/registrarManager/checkHtmlInput: post: tags: - RegistrarManager operationId: checkHtmlInput summary: Checks whether input is valid html according to the rules in our custom html parser (returns warning message if the input will be autocompleted/changed during the sanitization) responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCheckHtmlInput description: "input to checkHtmlInput" type: object required: - html properties: html: { type: string, description: "input html to check" } /json/registrarManager/consolidateIdentityUsingToken: post: tags: - RegistrarManager operationId: consolidateIdentityUsingToken summary: Joins current user identity with the one previously provided and referenced by the token. responses: '200': $ref: '#/components/responses/ListOfUserExtSourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputConsolidateIdentityUsingToken description: "input to consolidateIdentityUsingToken" type: object required: - token properties: token: { type: string, description: "token to be used for joining identities" } /urlinjsonout/registrarManager/sendInvitation: post: tags: - RegistrarManager operationId: sendInvitation summary: Sends invitation email to user which is not member of VO parameters: - { name: voId, schema: { type: number }, in: query, description: "id of VO to send invitation into" } - { name: name, schema: { type: string }, in: query, description: "name of person used in invitation email (optional)" } - { name: email, schema: { type: string }, in: query, required: true, description: "email address to send invitation to" } - { name: language, schema: { type: string }, in: query, required: true, description: "preferred language to use" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/sendInvitationsFromCsv: post: tags: - RegistrarManager operationId: sendInvitationsFromCsv summary: Send invitations with link to VO / Group application form from provided csv data If VO or Group have non-empty attribute urn:perun:[vo/group]:attribute-def:def:applicationURL content is used as link to application form. Otherwise link is automatically generated based on required AUTHZ in template and registrar url set in /etc/perun/perun-registrar.properties. General errors result in exception being thrown, single failures are skipped and added to result responses: '200': $ref: '#/components/responses/MapStringStringResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputInvitationsFromCsv description: "input for sending invitations from csv" type: object required: - voId - invitationData properties: invitationData: { type: array, items: { type: string }, description: "values separated with semicolons" } voId: { type: number, description: "id of VO to send invitation into" } groupId: { type: number, description: "id of Group to send invitation into" } language: { type: string } /urlinjsonout/registrarManager/sendInvitation/g: post: tags: - RegistrarManager operationId: sendInvitationForGroup summary: Sends invitation email to user which is not member of VO and Group description: | Invitation link targets VO application form fist, after submission, Group application form is displayed. parameters: - { name: voId, schema: { type: number }, in: query, description: "id of VO to send invitation into" } - { name: groupId, schema: { type: number }, in: query, description: "id of Group to send invitation into" } - { name: name, schema: { type: string }, in: query, description: "name of person used in invitation email (optional)" } - { name: email, schema: { type: string }, in: query, required: true, description: "email address to send invitation to" } - { name: language, schema: { type: string }, in: query, required: true, description: "preferred language to use" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/sendInvitation/u: post: tags: - RegistrarManager operationId: sendInvitationToExistingUser summary: Sends invitation email to user which is not member of VO parameters: - { name: userId, schema: { type: number }, in: query, description: "id of user to send invitation to" } - { name: voId, schema: { type: number }, in: query, description: "id of VO to send invitation into" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/sendInvitation/u-g: post: tags: - RegistrarManager operationId: sendInvitationGroupToExistingUser summary: Sends invitation email to user which is not member of Group parameters: - { name: userId, schema: { type: number }, in: query, description: "id of user to send invitation to" } - { name: voId, schema: { type: number }, in: query, description: "id of VO to send invitation into" } - { name: groupId, schema: { type: number }, in: query, description: "id of Group to send invitation into" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/buildInviteURL: get: tags: - RegistrarManager operationId: buildInviteURL summary: Creates an invitation link for the given vo/group and namespace (type of authentication) parameters: - { name: voId, schema: { type: number }, in: query, required: true, description: "id of vo for which the invitation link should be created, parent vo of the group if it should be a group invitation" } - { name: groupId, schema: { type: number }, in: query, required: false, description: "id of group for which the invitation link should be created" } responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationsForVo: get: tags: - RegistrarManager operationId: getApplicationsForVo summary: Gets all applications for a given VO. parameters: - $ref: '#/components/parameters/voId' - { name: "state[]", schema: { type: array, items: { type: string } }, in: query, description: "list of states: NEW, VERIFIED, APPROVED, REJECTED" } - { name: "dateFrom", schema: { type: string, format: date }, in: query, required: false, description: "return applications with the same date or newer than this date" } - { name: "dateTo", schema: { type: string, format: date }, in: query, required: false, description: "return applications with the same date or older than this date" } responses: '200': $ref: '#/components/responses/ListOfApplicationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationsPage: post: tags: - RegistrarManager operationId: getApplicationsPage summary: Get page of applications from the given vo, based on the query attributes. responses: '200': $ref: '#/components/responses/PaginatedRichApplicationsResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetPaginatedApplications description: "input to getPaginatedApplications" type: object required: - query properties: vo: { type: integer } query: { $ref: '#/components/schemas/ApplicationsPageQuery' } /json/registrarManager/getApplicationsForGroup: get: tags: - RegistrarManager operationId: getApplicationsForGroup summary: Gets all applications for a given Group. parameters: - $ref: '#/components/parameters/groupId' - { name: "state[]", schema: { type: array, items: { type: string } }, in: query, description: "list of states: NEW, VERIFIED, APPROVED, REJECTED" } - { name: "dateFrom", schema: { type: string, format: date }, in: query, required: false, description: "return with the same date or applications newer than this date" } - { name: "dateTo", schema: { type: string, format: date }, in: query, required: false, description: "return applications with the same date or older than this date" } responses: '200': $ref: '#/components/responses/ListOfApplicationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationsForMember: get: tags: - RegistrarManager operationId: getApplicationsForMember summary: Gets all aplications for a given Member. parameters: - $ref: '#/components/parameters/memberId' - $ref: '#/components/parameters/optionalGroupId' responses: '200': $ref: '#/components/responses/ListOfApplicationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getOpenApplicationsForUserInVo: get: tags: - RegistrarManager operationId: getOpenApplicationsForUserInVo summary: Gets all open applications of the caller in the given VO parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfApplicationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getPrincipalsReservedLogins: get: tags: - RegistrarManager operationId: getPrincipalsReservedLogins summary: Gets logins reserved by the caller in format of `namespace->login` responses: '200': $ref: '#/components/responses/MapStringStringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationById: get: tags: - RegistrarManager operationId: getApplicationById summary: Returns application object by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ApplicationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationDataById: get: tags: - RegistrarManager operationId: getApplicationDataById summary: Returns data submitted by user in given application (by id). parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ListOfApplicationFormItemDataResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/verifyApplication: post: tags: - RegistrarManager operationId: verifyApplication summary: Forcefully marks application as verified (only when application was in NEW state). parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ApplicationResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/approveApplication: post: tags: - RegistrarManager operationId: approveApplication summary: Manually approves an application. description: | Expected to be called as a result of direct VO administrator action in the web UI. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ApplicationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/canBeApproved: get: tags: - RegistrarManager operationId: canBeApproved summary: Check if application can be approved based on form module rules. Throws exception if not. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/CantBeApprovedExceptionResponse' /urlinjsonout/registrarManager/approveApplications: post: tags: - RegistrarManager operationId: approveApplications summary: Manually approves multiple applications at once. description: | Expected to be called as a result of direct VO administrator action in the web UI. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/applicationsOperationResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/rejectApplication: post: tags: - RegistrarManager operationId: rejectApplication summary: Manually rejects an application. description: | Expected to be called as a result of direct VO administrator action in the web UI. parameters: - $ref: '#/components/parameters/id' - { name: reason, schema: { type: string }, in: query, description: "description of reason", required: false } responses: '200': $ref: '#/components/responses/ApplicationResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/rejectApplications: post: tags: - RegistrarManager operationId: rejectApplications summary: Manually rejects multiple applications at once. description: | Expected to be called as a result of direct VO administrator action in the web UI. parameters: - $ref: '#/components/parameters/ids' - { name: reason, schema: { type: string }, in: query, description: "description of reason", required: false } responses: '200': $ref: '#/components/responses/applicationsOperationResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/deleteApplication: post: tags: - RegistrarManager operationId: deleteApplication summary: Deletes an application. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/deleteApplications: post: tags: - RegistrarManager operationId: deleteApplications summary: Manually deletes multiple applications at once. description: | Expected to be called as a result of direct VO administrator action in the web UI. parameters: - $ref: '#/components/parameters/ids' responses: '200': $ref: '#/components/responses/applicationsOperationResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/sendMessage: post: tags: - RegistrarManager operationId: sendMessage summary: Re-send mail notification for existing application. description: | Message of specified type is sent only, when application is in expected state related to the notification. Note, that some data related to processing application are not available (e.g. list of exceptions during approval), since this method doesn't perform any action with Application itself. Perun admin can send any notification except USER_INVITE type, see #sendInvitation() for this. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSendMessage description: "input to sendMessage" type: object required: - mailType - appId properties: mailType: { $ref: '#/components/schemas/MailType' } appId: { type: integer, description: "application id" } reason: { type: string, description: "you can specify reason for case: mailType == APP_REJECTED_USER" } /json/registrarManager/sendMessageNewRegistrar: post: tags: - RegistrarManager operationId: sendMessageNewRegistrar summary: Re-send mail notification for existing New Registrar application. description: | Message of specified type is sent only, when application is in expected state related to the notification. Note, that some data related to processing application are not available (e.g. list of exceptions during approval), since this method doesn't perform any action with Application itself. Perun admin can send any notification except USER_INVITE type, see #sendInvitation() for this. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSendMessageNewRegistrar description: "input to sendMessageNewRegistrar" type: object required: - mailType - appId - issuer - identifier properties: mailType: { $ref: '#/components/schemas/MailType' } group: { type: integer, description: "group id"} vo: { type: integer, description: "vo id"} user: { type: integer, description: "user id"} issuer: { type: string, description: "issuer of the user's identity" } identifier: { type: string, description: "identifier of the user" } newRegAppId: type: string format: uuid description: "application id in new Registrar" newRegAppType: type: string enum: - INITIAL - EXTENSION description: "type of the application from new Registrar" reason: { type: string, description: "you can specify reason for case: mailType == APP_REJECTED_USER" } emailItems: type: object description: "Map of the email items, {formItemDataUUID}->{value}" additionalProperties: type: string itemsByShortname: type: object description: "Map of the item data, itemShortname->itemData" additionalProperties: type: string destinationValues: type: object description: "Map of the items with a destination attribute, destinationAttribute->itemData" additionalProperties: type: string /json/registrarManager/sendMessages: post: tags: - RegistrarManager operationId: sendMessages summary: Manually re-sends mail notifications for existing applications. description: | Expected to be called as a result of direct VO administrator action in the web UI. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSendMessages description: "input to sendMessages" type: object required: - mailType - ids properties: mailType: { $ref: '#/components/schemas/MailType' } reason: { type: string, description: "you can specify reason for case: mailType == APP_REJECTED_USER" } ids: type: array items: type: integer description: "An array of integers representing the IDs of applications" /json/registrarManager/getApplicationForm/vo: get: tags: - RegistrarManager operationId: getVoApplicationForm summary: Gets an application form for a given VO. description: | There is exactly one form for membership per VO, one form is used for both initial registration and annual account expansion, just the form items are marked whether the should be present in one, the other, or both types of application. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ApplicationFormResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationForm/group: get: tags: - RegistrarManager operationId: getGroupApplicationForm summary: Gets an application form for a given Group. description: | There is exactly one form for membership per Group, one form is used for both initial registration and annual account expansion, just the form items are marked whether the should be present in one, the other, or both types of application. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ApplicationFormResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/getFormItemById: get: tags: - RegistrarManager operationId: getFormItemById summary: Gets a form item by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ApplicationFormItemResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/updateFormItemTexts: post: tags: - RegistrarManager operationId: updateFormItemTexts summary: Update label, options, help and error message for specified form item. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateFormItemTexts description: "input to updateFormItemTexts" type: object properties: formItem: { $ref: '#/components/schemas/ApplicationFormItem' } locale: { type: string, nullable: true } /json/registrarManager/getFormItems/vo: get: tags: - RegistrarManager operationId: getFormItemsForVo summary: Gets all items in VO application form. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfApplicationFormItemsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getFormItems/vo-type: get: tags: - RegistrarManager operationId: getFormItemsForVoWithType summary: Gets items of specified type in VO application form, for initital registration or extension of account. parameters: - $ref: '#/components/parameters/voId' - { name: type, schema: { type: string }, in: query, description: "application type: INITIAL or EXTENSION" } responses: '200': $ref: '#/components/responses/ListOfApplicationFormItemsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getFormItems/group: get: tags: - RegistrarManager operationId: getFormItemsForGroup summary: Gets all items in Group application form. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfApplicationFormItemsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getFormItems/group-type: get: tags: - RegistrarManager operationId: getFormItemsForGroupWithType summary: Gets items of specified type in Group application form, for initital registration or extension of account. parameters: - $ref: '#/components/parameters/groupId' - { name: type, schema: { type: string }, in: query, description: "application type: INITIAL, EXTENSION or EMBEDDED" } responses: '200': $ref: '#/components/responses/ListOfApplicationFormItemsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/updateFormItems/vo: post: tags: - RegistrarManager operationId: updateFormItemsForVo summary: Updates form items sent in list. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateFormItemsForVo description: "input to updateFormItemsForVo" type: object properties: vo: { type: integer, description: "vo id" } items: { type: array, items: { $ref: '#/components/schemas/ApplicationFormItem' } } /json/registrarManager/updateFormItems/group: post: tags: - RegistrarManager operationId: updateFormItemsForGroup summary: Updates form items sent in list. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateFormItemsForGroup description: "input to updateFormItemsForGroup" type: object properties: group: { type: integer, description: "group id" } items: { type: array, items: { $ref: '#/components/schemas/ApplicationFormItem' } } /json/registrarManager/updateForm: post: tags: - RegistrarManager operationId: updateForm summary: Updates the form attributes, not the form items. responses: '200': $ref: '#/components/responses/ApplicationFormResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateForm description: "input to updateForm" type: object properties: form: { $ref: '#/components/schemas/ApplicationForm' } /urlinjsonout/registrarManager/clearVoForm: post: tags: - RegistrarManager operationId: clearVoForm summary: Resets the vo application form to the state after creation - deletes all form items, removes modules and sets approval styles to manual. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ApplicationFormResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/clearGroupForm: post: tags: - RegistrarManager operationId: clearGroupForm summary: Resets the group application form to the state after creation - deletes all form items, removes modules and sets approval styles to manual. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ApplicationFormResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/copyForm/voToVo: post: tags: - RegistrarManager operationId: copyFormFromVoToVo summary: Copy all form items from selected VO into another. parameters: - { name: fromVo, schema: { type: integer }, in: query, description: "source VO" } - { name: toVo, schema: { type: integer }, in: query, description: "destination VO" } - { name: idempotent, schema: { type: boolean }, in: query, required: false, description: "when true existing target items are deleted" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/copyForm/groupToVo: post: tags: - RegistrarManager operationId: copyFormFromGroupToVo summary: Copy all form items from selected Group into VO. parameters: - { name: fromGroup, schema: { type: integer }, in: query, description: "source group" } - { name: toVo, schema: { type: integer }, in: query, description: "destination VO" } - { name: idempotent, schema: { type: boolean }, in: query, required: false, description: "when true existing target items are deleted" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/copyForm/voToGroup: post: tags: - RegistrarManager operationId: copyFormFromVoToGroup summary: Copy all form items from selected VO into Group. parameters: - { name: fromVo, schema: { type: integer }, in: query, description: "source VO" } - { name: toGroup, schema: { type: integer }, in: query, description: "destination group" } - { name: idempotent, schema: { type: boolean }, in: query, required: false, description: "when true existing target items are deleted" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/copyForm/groupToGroup: post: tags: - RegistrarManager operationId: copyFormFromGroupToGroup summary: Copy all form items from selected Group into another. parameters: - { name: fromGroup, schema: { type: integer }, in: query, description: "source group" } - { name: toGroup, schema: { type: integer }, in: query, description: "destination group" } - { name: idempotent, schema: { type: boolean }, in: query, required: false, description: "when true existing target items are deleted" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationMails/v: get: tags: - RegistrarManager operationId: getApplicationMailsForVo summary: Returns all mail notifications related to specific app form. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfApplicationMailsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getApplicationMails/g: get: tags: - RegistrarManager operationId: getApplicationMailsForGroup summary: Returns all mail notifications related to specific app form. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/ListOfApplicationMailsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/setSendingEnabled: post: tags: - RegistrarManager operationId: setSendingEnabled summary: Enable or disable sending for list of mail definitions. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSetSendingEnabled description: "input to setSendingEnabled" type: object required: - mails - enabled properties: mails: type: array items: $ref: '#/components/schemas/ApplicationMail' enabled: { type: boolean } /urlinjsonout/registrarManager/copyMails/voToVo: post: tags: - RegistrarManager operationId: copyMailsFromVoToVo summary: Copy all e-mail notifications from selected VO into another. parameters: - { name: fromVo, schema: { type: integer }, in: query, description: "source VO" } - { name: toVo, schema: { type: integer }, in: query, description: "destination VO" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/copyMails/groupToVo: post: tags: - RegistrarManager operationId: copyMailsFromGroupToVo summary: Copy all e-mail notifications from selected Group into VO. parameters: - { name: fromGroup, schema: { type: integer }, in: query, description: "source group" } - { name: toVo, schema: { type: integer }, in: query, description: "destination VO" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/copyMails/voToGroup: post: tags: - RegistrarManager operationId: copyMailsFromVoToGroup summary: Copy all e-mail notifications from selected VO into Group. parameters: - { name: fromVo, schema: { type: integer }, in: query, description: "source VO" } - { name: toGroup, schema: { type: integer }, in: query, description: "destination group" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/copyMails/groupToGroup: post: tags: - RegistrarManager operationId: copyMailsFromGroupToGroup summary: Copy all e-mail notifications from selected Group into another. parameters: - { name: fromGroup, schema: { type: integer }, in: query, description: "source group" } - { name: toGroup, schema: { type: integer }, in: query, description: "destination group" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/deleteApplicationMail/v: post: tags: - RegistrarManager operationId: deleteApplicationMailForVo summary: Deletes an e-mail notification from DB based on id property. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/deleteApplicationMail/g: post: tags: - RegistrarManager operationId: deleteApplicationMailForGroup summary: Deletes an e-mail notification from DB based on id property. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/updateApplicationMail: post: tags: - RegistrarManager operationId: updateApplicationMail summary: Updates an e-mail notification. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateApplicationMail description: "input to updateApplicationMail" type: object required: - mail properties: mail: { $ref: '#/components/schemas/ApplicationMail' } /json/registrarManager/addApplicationMail/v: post: tags: - RegistrarManager operationId: addApplicationMailForVo summary: Add new mail notification. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputAddApplicationMailForVo description: "input to addApplicationMailForVo" type: object required: - vo - mail properties: vo: { type: integer } mail: { $ref: '#/components/schemas/ApplicationMail' } /json/registrarManager/addApplicationMail/g: post: tags: - RegistrarManager operationId: addApplicationMailForGroup summary: Add new mail notification. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputAddApplicationMailForGroup description: "input to addApplicationMailForGroup" type: object required: - group - mail properties: group: { type: integer } mail: { $ref: '#/components/schemas/ApplicationMail' } /urlinjsonout/registrarManager/createApplicationForm/vo: post: tags: - RegistrarManager operationId: createApplicationFormInVo summary: Create application form for a VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/createApplicationForm/group: post: tags: - RegistrarManager operationId: createApplicationFormInGroup summary: Create application form for a group. parameters: - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/checkForSimilarUsers/authInfo: post: tags: - RegistrarManager operationId: checkForSimilarUsersWithAuthInfo summary: Check for similar users by name and email in session (authz) information responses: '200': $ref: '#/components/responses/ListOfIdentityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/checkForSimilarUsers/formData: post: tags: - RegistrarManager operationId: checkForSimilarUsersWithFormItemData summary: Check for similar users by name and email in form data requestBody: required: true content: application/json: schema: title: InputCheckForSimilarUsersWithFormItemData description: "input to checkForSimilarUsersWithFormItemData" type: object required: - formItems properties: formItems: { type: array, items: { $ref: '#/components/schemas/ApplicationFormItemData' } } responses: '200': $ref: '#/components/responses/ListOfIdentityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/checkForSimilarUsers/new-registrar: post: tags: - RegistrarManager operationId: checkForSimilarUsersWithAppData summary: Check for similar users by name and email in new registrar application data requestBody: required: true content: application/json: schema: title: InputCheckForSimilarUsersWithAppData description: "input to checkForSimilarUsersWithAppData" type: object required: - appData properties: appData: { type: object, additionalProperties: {type: string}, description: "Map of the application attributes (key: attr name, value: attr value)" } responses: '200': $ref: '#/components/responses/ListOfIdentityResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/checkForSimilarRichIdentities: post: tags: - RegistrarManager operationId: checkForSimilarRichIdentities summary: Check for similar users by name and email in session (authz) information responses: '200': $ref: '#/components/responses/ListOfEnrichedIdentityResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getConsolidatorToken: get: tags: - RegistrarManager operationId: getConsolidatorToken summary: Get time-limited token proving user identity in external source (for now 3 minutes). description: | It can be used to join user identity with another by calling consolidateIdentityUsingToken() method and passing the token. Please note, that different authz (identity) must be used to perform both calls. responses: '200': $ref: '#/components/responses/StringResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/consolidate: post: tags: - RegistrarManager operationId: consolidate summary: Join user identities by access tokens. description: | Join user identities by access tokens. requestBody: required: true content: application/json: schema: title: InputConsolidate description: "input to consolidate" type: object required: - accessToken properties: accessToken: { type: string, description: "second access token" } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/updateFormItemData: post: tags: - RegistrarManager operationId: updateFormItemData summary: Update application form item data value, which was originally submitted by the User. requestBody: required: true content: application/json: schema: title: InputFormItemData description: "input to updateFormItemData" type: object required: - appId - data properties: appId: { type: integer, description: "application id" } data: { $ref: '#/components/schemas/ApplicationFormItemData' } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/updateFormItemsData: post: tags: - RegistrarManager operationId: updateFormItemsData summary: Update application form items data, which was originally submitted by the User. requestBody: required: true content: application/json: schema: title: InputFormItemsData description: "input to updateFormItemsData" type: object required: - appId - data properties: appId: { type: integer, description: "application id" } data: { type: array, items: { $ref: '#/components/schemas/ApplicationFormItemData' } } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/submitApplication: post: tags: - RegistrarManager operationId: submitApplication summary: Creates a new application and if succeeds, trigger validation and approval. The method triggers approval for VOs with auto-approved applications. responses: '200': $ref: '#/components/responses/ApplicationResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputSubmitApplication description: "input to submitApplication" type: object required: - app - data properties: app: { $ref: '#/components/schemas/Application' } data: { type: array, items: { $ref: '#/components/schemas/ApplicationFormItemData' } } invitationToken: { type: string, format: uuid, description: "uuid token of invitation if application is pre-approved", nullable: true } /json/registrarManager/getGroupsToAutoRegistration: get: deprecated: true tags: - RegistrarManager operationId: getGroupsToAutoRegistration summary: Returns all groups which can be registered into during vo registration. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getGroupsToAutoRegistration/vo: get: tags: - RegistrarManager operationId: getVoGroupsToAutoRegistration summary: Returns all groups which can be registered into during vo registration. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/formItemId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/getGroupsToAutoRegistration/group: get: tags: - RegistrarManager operationId: getSubgroupsToAutoRegistration summary: Returns all groups which can be registered into during group registration. parameters: - $ref: '#/components/parameters/groupId' - $ref: '#/components/parameters/formItemId' responses: '200': $ref: '#/components/responses/ListOfGroupsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/deleteGroupsFromAutoRegistration: post: deprecated: true tags: - RegistrarManager operationId: deleteGroupsFromAutoRegistration summary: Deletes groups from a list of groups which can be registered into during vo registration. parameters: - $ref: '#/components/parameters/groupIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/deleteGroupsFromAutoRegistration/vo: post: tags: - RegistrarManager operationId: deleteVoGroupsFromAutoRegistration summary: Deletes groups from a list of groups which can be registered into during vo registration. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/formItemId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/deleteGroupsFromAutoRegistration/group: post: tags: - RegistrarManager operationId: deleteSubgroupsFromAutoRegistration summary: Deletes groups from a list of groups which can be registered into during group registration. parameters: - $ref: '#/components/parameters/groupIds' - { name: registrationGroup, description: "id of the group to which these groups are associated for the embedded registration", schema: { type: integer }, in: query, required: true } - $ref: '#/components/parameters/formItemId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/addGroupsToAutoRegistration: post: deprecated: true tags: - RegistrarManager operationId: addGroupsToAutoRegistration summary: Adds groups to a list of groups which can be registered into during vo registration. parameters: - $ref: '#/components/parameters/groupIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/addGroupsToAutoRegistration/vo: post: tags: - RegistrarManager operationId: addVoGroupsToAutoRegistration summary: Adds groups to a list of groups which can be registered into during vo registration. parameters: - $ref: '#/components/parameters/groupIds' - $ref: '#/components/parameters/formItemId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/registrarManager/addGroupsToAutoRegistration/group: post: tags: - RegistrarManager operationId: addSubgroupsToAutoRegistration summary: Adds groups to a list of groups which can be registered into during group registration. parameters: - $ref: '#/components/parameters/groupIds' - { name: registrationGroup, description: "id of the group to which these groups are associated for the embedded registration", schema: { type: integer }, in: query, required: true } - $ref: '#/components/parameters/formItemId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/inviteMemberCandidates: post: tags: - RegistrarManager operationId: inviteMemberCandidates summary: Invite member candidates. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputInviteMemberCandidates description: "input to invite member candidates" type: object required: - vo - candidates - lang properties: vo: { type: integer } candidates: { type: array, items: { $ref: '#/components/schemas/MemberCandidate' } } lang: { type: string } group: { type: integer } /json/registrarManager/invitationFormExists: get: tags: - RegistrarManager operationId: invitationFormExists summary: Checks if invitation form and invitation notification exist. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/optionalGroupId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/isInvitationEnabled: get: tags: - RegistrarManager operationId: isInvitationEnabled summary: Checks if invitation via notification is enabled (invitation notification exists, application form exists and application form can be submitted). parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/optionalGroupId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/isPreApprovedInvitationEnabled: get: tags: - RegistrarManager operationId: isPreApprovedInvitationEnabled summary: Checks if pre-approved invitation via notification is enabled (pre-approved invitation notification exists, application form exists and application form can be submitted). parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/registrarManager/isLinkInvitationEnabled: get: tags: - RegistrarManager operationId: isLinkInvitationEnabled summary: Checks if invitation via link is enabled (application form exists and application form can be submitted). parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/optionalGroupId' responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # ServicesManager # # # ################################################# /urlinjsonout/servicesManager/blockServiceOnFacility: post: tags: - ServicesManager operationId: blockServiceOnFacility summary: Bans service on a facility. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/blockServicesOnFacility: post: tags: - ServicesManager operationId: blockServicesOnFacility summary: Bans services on a facility. parameters: - $ref: '#/components/parameters/serviceIds' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/blockServiceOnDestination/s-d: post: tags: - ServicesManager operationId: blockServiceOnDestination summary: Bans Service on a destination. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/destinationId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/blockServiceOnDestination/s-dname-dtype: post: tags: - ServicesManager operationId: blockServiceOnDestinationWithNameAndType summary: Bans Service on a destination. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/destinationName' - $ref: '#/components/parameters/destinationType' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/blockServiceOnDestinations: post: tags: - ServicesManager operationId: blockServiceOnDestinations summary: Bans Service on given destinations. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/destinationIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/blockServicesOnDestinations: post: tags: - ServicesManager operationId: blockServicesOnDestinations summary: Bans the Service on the destination - each pair defined by the rich destination. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputBlockServicesOnDestinations description: "input to blockServicesOnDestinations" type: object required: - richDestinations properties: richDestinations: { type: array, items: { $ref: '#/components/schemas/RichDestination' } } /urlinjsonout/servicesManager/blockAllServicesOnFacility: post: tags: - ServicesManager operationId: blockAllServicesOnFacility summary: Block all services currently assigned on this facility. Newly assigned services are still allowed for propagation. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/blockAllServicesOnDestination/d: post: tags: - ServicesManager operationId: blockAllServicesOnDestinationById summary: Block all services currently assigned on this destination. Newly assigned services are still allowed for propagation. parameters: - $ref: '#/components/parameters/destinationId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/blockAllServicesOnDestination/dname-dtype: post: tags: - ServicesManager operationId: blockAllServicesOnDestinationByName summary: Block all services currently assigned on this destination. Newly assigned services are still allowed for propagation. parameters: - $ref: '#/components/parameters/destinationName' - $ref: '#/components/parameters/destinationType' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getServicesBlockedOnFacility: get: tags: - ServicesManager operationId: getServicesBlockedOnFacility summary: Returns list of denials for a facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getServicesBlockedOnDestination: get: tags: - ServicesManager operationId: getServicesBlockedOnDestination summary: Returns list of denials for a destination. parameters: - $ref: '#/components/parameters/destinationId' responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/isServiceBlockedOnFacility: get: tags: - ServicesManager operationId: isServiceBlockedOnFacility summary: Is this Service denied on the facility? Return int 1 = true - the Service is denied on the facility, 0 = false - the Service is NOT denied on the facility parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/isServiceBlockedOnDestination: get: tags: - ServicesManager operationId: isServiceBlockedOnDestination summary: Is this Service denied on the destination? Return int 1 = true - the Service is denied on the destination, 0 = false - the Service is NOT denied on the destination parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/destinationId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockAllServicesOnFacility: post: tags: - ServicesManager operationId: unblockAllServicesOnFacility summary: Erase all the possible denials on this facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockAllServicesOnDestination/d: post: tags: - ServicesManager operationId: unblockAllServicesOnDestinationById summary: Erase all the possible denials on this destination. parameters: - $ref: '#/components/parameters/destinationId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockAllServicesOnDestination/dname-dtype: post: tags: - ServicesManager operationId: unblockAllServicesOnDestinationByName summary: Erase all the possible denials on this destination. parameters: - $ref: '#/components/parameters/destinationName' - $ref: '#/components/parameters/destinationType' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockServiceOnFacility: post: tags: - ServicesManager operationId: unblockServiceOnFacility summary: Free the denial of the Service on this facility. If the Service was banned on this facility, it will be freed. In case the Service was not banned on this facility, nothing will happen. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockServicesOnFacility: post: tags: - ServicesManager operationId: unblockServicesOnFacility summary: Free the denial of the Service on this facility. parameters: - $ref: '#/components/parameters/serviceIds' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockServiceOnDestination/s-d: post: tags: - ServicesManager operationId: unblockServiceOnDestinationById summary: Free the denial of the Service on this destination. If the Service was banned on this destination, it will be freed. In case the Service was not banned on this destination, nothing will happen. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/destinationId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockServiceOnDestination/s-dname-dtype: post: tags: - ServicesManager operationId: unblockServiceOnDestinationByName summary: Free the denial of the Service on this destination. If the Service was banned on this destination, it will be freed. In case the Service was not banned on this destination, nothing will happen. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/destinationName' - $ref: '#/components/parameters/destinationType' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/unblockServiceOnDestinations: post: tags: - ServicesManager operationId: unblockServiceOnDestinations summary: Free the denial of the Service on these destinations. If the Service was banned on these destinations, it will be freed. In case the Service was not banned on these destinations, nothing will happen. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/destinationIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/unblockServicesOnDestinations: post: tags: - ServicesManager operationId: unblockServicesOnDestinations summary: Free the denial of the Service on the destination - each pair defined by the rich destination. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUnlockServicesOnDestinations description: "input to unblockServicesOnDestinations" type: object required: - richDestinations properties: richDestinations: { type: array, items: { $ref: '#/components/schemas/RichDestination' } } /urlinjsonout/servicesManager/forceServicePropagation: post: tags: - ServicesManager operationId: forceServicePropagation summary: Forces service propagation on defined facility. Return int 1 = true if it is possible, 0 = false if not parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/optionalFacilityId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/forceServicePropagationBulk: post: tags: - ServicesManager operationId: forceServicePropagationBulk summary: Forces services propagation on all facilities, where the services are defined, or just on the given facility. parameters: - $ref: '#/components/parameters/serviceIds' - $ref: '#/components/parameters/optionalFacilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/planServicePropagation: post: tags: - ServicesManager operationId: planServicePropagation summary: Plans service propagation on defined facility. Return int 1 = true if it is possible, 0 = false if not parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/optionalFacilityId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getFacilityAssignedServicesForGUI: get: tags: - ServicesManager operationId: getFacilityAssignedServicesForGUI summary: Return list of ServiceForGUI assigned on facility, (Service with "allowedOnFacility" property filled). 1 - allowed / 0 - service is service is denied. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfServiceForGUIResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/createService: post: tags: - ServicesManager operationId: createServiceWithService summary: Creates a new service. Service object must contain name. Parameters desctiption, script, delay, recurrence, enabled are optional. Other parameters ignored. responses: '200': $ref: '#/components/responses/ServiceResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputCreateService description: "input to createService" type: object required: - service properties: service: { $ref: '#/components/schemas/Service' } /urlinjsonout/servicesManager/createService: post: tags: - ServicesManager operationId: createService summary: Creates a new service. parameters: - { name: name, description: "name", schema: { type: string }, in: query, required: true } - { name: description, description: "description", schema: { type: string }, in: query, required: true } - { name: script, description: "script which should be constructed like ./service_name (where anything else than [a-z,A-Z] is converted to _)", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/ServiceResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/deleteService: post: tags: - ServicesManager operationId: deleteService summary: Deletes a service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/deleteServices: post: tags: - ServicesManager operationId: deleteServices summary: Deletes given services. parameters: - $ref: '#/components/parameters/serviceIds' - $ref: '#/components/parameters/forceDelete' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/updateService: post: tags: - ServicesManager operationId: updateService summary: Updates a service. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateService description: "input to updateService" type: object required: - service properties: service: { $ref: '#/components/schemas/Service' } /json/servicesManager/getServiceById: get: tags: - ServicesManager operationId: getServiceById summary: Returns a service by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ServiceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getServiceByName: get: tags: - ServicesManager operationId: getServiceByName summary: Returns a service by its name. parameters: - $ref: '#/components/parameters/name' responses: '200': $ref: '#/components/responses/ServiceResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getServices: get: tags: - ServicesManager operationId: getServices summary: Returns all services. responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getServicesByAttributeDefinition: get: tags: - ServicesManager operationId: getServicesByAttributeDefinition summary: Get all services with given attribute. parameters: - $ref: '#/components/parameters/attributeDefinitionId' responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getHashedHierarchicalData: get: tags: - ServicesManager operationId: getHashedHierarchicalData summary: Generates hashed hierarchical data structure for given service and facility. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' - { name: consentEval, description: "if true the method will run consent eval", schema: { type: boolean }, in: query, required: false } - { name: taskRun, description: "id of the task propagation run", schema: {type: integer}, in: query, required: false} responses: '200': $ref: '#/components/responses/HashedGenDataResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getHashedDataWithGroups: get: tags: - ServicesManager operationId: getHashedDataWithGroups summary: Generates hashed group structure data for given service and facility. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' - { name: consentEval, description: "if true the method will run consent eval", schema: { type: boolean }, in: query, required: false } - { name: taskRun, description: "id of the task propagation run", schema: { type: integer }, in: query, required: false } responses: '200': $ref: '#/components/responses/HashedGenDataResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/addRequiredAttribute: post: tags: - ServicesManager operationId: addRequiredAttribute summary: Mark the attribute as required for the service. Required attributes are requisite for Service to run. If you add attribute which has a default attribute then this default attribute will be automatically add too. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/addRequiredAttributes: post: tags: - ServicesManager operationId: addRequiredAttributes summary: Batch version of addRequiredAttribute. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/removeRequiredAttribute: post: tags: - ServicesManager operationId: removeRequiredAttribute summary: Remove required attribute from service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/attributeId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/removeRequiredAttributes: post: tags: - ServicesManager operationId: removeRequiredAttributes summary: Remove required attributes from service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/attributes' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/removeAllRequiredAttributes: post: tags: - ServicesManager operationId: removeAllRequiredAttributes summary: Remove all required attributes from service. parameters: - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getDestinationById: get: tags: - ServicesManager operationId: getDestinationById summary: Returns a destination by its id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/DestinationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getDestinations/s-f: get: tags: - ServicesManager operationId: getDestinations summary: Returns list of all destinations defined for the service and facility. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getDestinations/all: get: tags: - ServicesManager operationId: getAllDestinations summary: Get list of all destinations. responses: '200': $ref: '#/components/responses/ListOfDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getAllRichDestinations/s: get: tags: - ServicesManager operationId: getAllRichDestinationsForService summary: Returns list of all rich destinations defined for the service. parameters: - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/ListOfRichDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getAllRichDestinations/f: get: tags: - ServicesManager operationId: getAllRichDestinationsForFacility summary: Returns list of all rich destinations defined for the facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfRichDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getRichDestinations: get: tags: - ServicesManager operationId: getRichDestinations summary: Returns list of all rich destinations defined for the service and facility. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfRichDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/addDestination: post: tags: - ServicesManager operationId: addDestination summary: Adds an destination for a facility and service. If destination doesn't exist it will be created. description: InvalidDestinationException is thrown when destination value is invalid in given destination type. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' - { name: destination, description: "Destination's destination, usually a DNS name", schema: { type: string }, in: query, required: true } - { name: type, description: "Destination's type", schema: { $ref: '#/components/schemas/DestinationType' }, in: query, required: true } - { name: propagationType, description: "Destination's propagationType", schema: { $ref: '#/components/schemas/DestinationPropagationType' }, in: query, required: false } responses: '200': $ref: '#/components/responses/DestinationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/addDestination: post: tags: - ServicesManager operationId: addDestinationToMultipleServices description: Adds an destination for a facility and list of services. If destination doesn't exist it will be created. InvalidDestinationException is thrown when destination value is invalid in given destination type. responses: '200': $ref: '#/components/responses/DestinationResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputAddDestinationToMultipleServices description: "input to addDestinationToMultipleServices" type: object required: - services - facility - destination - type properties: services: type: array items: $ref: '#/components/schemas/Service' facility: { type: integer } destination: { type: string } type: { $ref: '#/components/schemas/DestinationType' } propagationType: { $ref: '#/components/schemas/DestinationPropagationType' } /urlinjsonout/servicesManager/addDestinationsForAllServicesOnFacility: post: tags: - ServicesManager operationId: addDestinationsForAllServicesOnFacility summary: Adds destination for all services defined on the facility. description: InvalidDestinationException is thrown when destination value is invalid in given destination type. parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/destinationName' - { name: type, description: "Destination type (host,user@host,user@host:port,url,service-specific, s3, s3-json, url-json)", schema: { $ref: '#/components/schemas/DestinationType' }, in: query, required: true } - { name: propagationType, description: "propagation type (PARALLEL, DUMMY - doesn't send data)", schema: { $ref: '#/components/schemas/DestinationPropagationType' }, in: query, required: false } responses: '200': $ref: '#/components/responses/ListOfDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/addDestinationsDefinedByHostsOnFacility/s-f: post: tags: - ServicesManager operationId: addDestinationsDefinedByHostsOnFacilityWithServiceAndFacility summary: Add services destinations for all services currently available on facility (assigned to all facility's resources). Destinations names are taken from all facility's host hostnames. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/addDestinationsDefinedByHostsOnFacility/lists-f: post: tags: - ServicesManager operationId: addDestinationsDefinedByHostsOnFacilityWithListOfServiceAndFacility summary: Add services destinations for list of services. Destinations names are taken from all facility's host hostnames. responses: '200': $ref: '#/components/responses/ListOfDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputAddDestinationsDefinedByHostsOnFacility description: "input to addDestinationsDefinedByHostsOnFacility" type: object required: - services - facility properties: services: type: array items: $ref: '#/components/schemas/Service' facility: { type: integer } /urlinjsonout/servicesManager/addDestinationsDefinedByHostsOnFacility/f: post: tags: - ServicesManager operationId: addDestinationsDefinedByHostsOnFacilityWithFacility summary: Add services destinations for one service. Destinations names are taken from all facility's host hostnames. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/removeDestination: post: tags: - ServicesManager operationId: removeDestination summary: Removes the specified destination from the facility and service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' - { name: destination, description: "Destination's destination", schema: { type: string }, in: query, required: true } - { name: type, description: "Destination's type", schema: { $ref: '#/components/schemas/DestinationType' }, in: query, required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/servicesManager/removeDestinations: post: tags: - ServicesManager operationId: removeDestinations summary: Removes the specified destinations from the facility and service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/destinationIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/removeDestinationsByRichDestinations: post: tags: - ServicesManager operationId: removeDestinationsByRichDestinations summary: Removes destinations defined by list of rich destinations. Each destination is removed from the rich destination's facility and service. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputRemoveRichDestinations description: "input to removeRichDestinations" type: object required: - richDestinations properties: richDestinations: { type: array, items: { $ref: '#/components/schemas/RichDestination' } } /urlinjsonout/servicesManager/removeAllDestinations: post: tags: - ServicesManager operationId: removeAllDestinations summary: Removes all destinations from a facility and service. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getFacilitiesDestinations: get: tags: - ServicesManager operationId: getFacilitiesDestinations summary: List all destinations for all facilities which are joined by resources to the VO. parameters: - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfDestinationsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getDestinationsCount: get: tags: - ServicesManager operationId: getDestinationsCount summary: Gets count of all destinations. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getAssignedServices/f: get: tags: - ServicesManager operationId: getAssignedServices summary: List all services associated with the facility (via resource). parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getAssignedServices/f-v: get: tags: - ServicesManager operationId: getAssignedServicesVo summary: List all services associated with the facility and vo (via resource). parameters: - $ref: '#/components/parameters/facilityId' - $ref: '#/components/parameters/voId' responses: '200': $ref: '#/components/responses/ListOfServicesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/servicesManager/getAssignedResourcesForService: get: tags: - ServicesManager operationId: getAssignedResources summary: Lists resources assigned to service. parameters: - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # TasksManager # # # ################################################# /json/tasksManager/getTask: get: tags: - TasksManager operationId: getTask summary: Returns a task. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/TaskResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/listAllTasks: get: tags: - TasksManager operationId: listAllTasks summary: Returns all tasks. responses: '200': $ref: '#/components/responses/ListOfTasksResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/listAllTasksForFacility: get: tags: - TasksManager operationId: listAllTasksForFacility summary: Returns all tasks associated with selected facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfTasksResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/isThereSuchTask: get: tags: - TasksManager operationId: isThereSuchTask summary: Whether task exists. parameters: - $ref: '#/components/parameters/serviceId' - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/countTasks: get: tags: - TasksManager operationId: countTasks summary: Returns the count of all tasks. responses: '200': $ref: '#/components/responses/IntegerResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskResults: get: tags: - TasksManager operationId: getTaskResults summary: Returns all task results. responses: '200': $ref: '#/components/responses/ListOfTaskResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskResultsByTask: get: tags: - TasksManager operationId: getTaskResultsByTask summary: Return list of TaskResults by a Task. parameters: - $ref: '#/components/parameters/taskId' responses: '200': $ref: '#/components/responses/ListOfTaskResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskResultsForGUIByTaskOnlyNewest: get: tags: - TasksManager operationId: getTaskResultsForGUIByTaskOnlyNewest summary: Return list of only newest TaskResults by a Task for GUI. parameters: - $ref: '#/components/parameters/taskId' responses: '200': $ref: '#/components/responses/ListOfTaskResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskResultsForGUIByTaskAndDestination: get: tags: - TasksManager operationId: getTaskResultsForGUIByTaskAndDestination summary: Return list of TaskResults by a Task and destination for GUI. parameters: - $ref: '#/components/parameters/taskId' - $ref: '#/components/parameters/destinationId' responses: '200': $ref: '#/components/responses/ListOfTaskResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskResultsForGUIByTask: get: tags: - TasksManager operationId: getTaskResultsForGUIByTask summary: Return list of TaskResults by a Task for GUI. parameters: - $ref: '#/components/parameters/taskId' responses: '200': $ref: '#/components/responses/ListOfTaskResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskResultById: get: tags: - TasksManager operationId: getTaskResultById summary: Returns TaskResult by its id. parameters: - $ref: '#/components/parameters/taskResultId' responses: '200': $ref: '#/components/responses/TaskResultResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskById: get: tags: - TasksManager operationId: getTaskById summary: Returns Task by its id parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/TaskResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getFacilityState: get: tags: - TasksManager operationId: getFacilityState summary: Return propagation status of facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/FacilityStateResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getAllFacilitiesStates: get: tags: - TasksManager operationId: getAllFacilitiesStates summary: Return propagation status of all facilities in Perun/Vo. parameters: - $ref: '#/components/parameters/optionalVoId' responses: '200': $ref: '#/components/responses/ListOfFacilityStatesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getAllResourcesState: get: tags: - TasksManager operationId: getAllResourcesState summary: Return propagation status of all resources related to VO. parameters: - { name: voId, description: "VO id", schema: { type: integer }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfResourceStatesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getTaskResultsForDestinations: get: tags: - TasksManager operationId: getTaskResultsForDestinations summary: Returns task results for defined destinations. parameters: - name: destinations[] in: query schema: type: array items: type: string description: 'List Destinations' required: true responses: '200': $ref: '#/components/responses/ListOfTaskResultsResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/getFacilityServicesState: get: tags: - TasksManager operationId: getFacilityServicesState summary: Returns service states for defined facility. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ListOfServiceStatesResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/deleteTask: post: tags: - TasksManager operationId: deleteTask summary: Delete Task and TaskResults. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: taskIdObject description: "input to deleteTaskObject" type: object required: - task properties: task: { type: integer, description: "task id", nullable: false } /json/tasksManager/deleteTaskResultById: post: tags: - TasksManager operationId: deleteTaskResultById summary: Delete TaskResult by its ID. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: taskResultIdObject description: "input to deleteTaskResultObject" type: object required: - taskResultId properties: taskResultId: { type: integer, description: "task result id", nullable: false } /urlinjsonout/tasksManager/deleteTaskResultsByIds: post: tags: - TasksManager operationId: deleteTaskResultsByIds summary: Delete TaskResults by their IDs. TaskResults are expected to be from the same facility. parameters: - { name: taskResultIds, description: "list of TaskResult ids", schema: { type: array, items: { type: integer } }, in: query, required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/deleteTaskResults/id: post: tags: - TasksManager operationId: deleteTaskResultsIds summary: Delete all TaskResults for specified Task and Destination. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: taskAndDestinationIdObject description: "input to deleteTaskResultsIds" type: object required: - taskId - destinationId properties: taskId: { type: integer, description: "task id", nullable: false } destinationId: { type: integer, description: "destination id", nullable: false } /json/tasksManager/deleteTaskResults/name: post: tags: - TasksManager operationId: deleteTaskResultsNames summary: Delete all TaskResults for specified Task and Destination. responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: taskAndDestinationNameObject description: "input to deleteTaskResultsNames" type: object required: - taskId - destinationName - destinationType properties: taskId: { type: integer, description: "task id", nullable: false } destinationName: { type: string, description: "destination name", nullable: false } destinationType: { type: string, description: "destination type", nullable: false } /urlinjsonout/tasksManager/suspendTasksPropagation: post: tags: - TasksManager operationId: suspendTasksPropagation summary: Suspends waiting tasks propagation to the engine. Does not affect already propagated tasks. parameters: - { name: persistently, schema: { type: boolean }, in: query, required: false, description: 'optionally remain the suspension through Perun reset' } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/tasksManager/isSuspendedTasksPropagation: get: tags: - TasksManager operationId: isSuspendedTasksPropagation summary: Check if propagating tasks to engine is suspended via the DB flag responses: '200': $ref: '#/components/responses/BooleanResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/tasksManager/resumeTasksPropagation: post: tags: - TasksManager operationId: resumeTasksPropagation summary: Resumes previously suspended waiting tasks propagation to the engine. parameters: - { name: persistently, schema: { type: boolean }, in: query, required: false, description: 'optional, resume persistent suspension' } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # RTMessagesManager # # # ################################################# /urlinjsonout/rtMessagesManager/sentMessageToRT/q: post: tags: - RTMessagesManager operationId: sentMessageToRTWithQueue summary: Sends a message to RT. Only text information is sent. parameters: - { name: queue, description: "RT queue", schema: { type: string }, in: query, required: true } - { name: subject, description: "Message subject", schema: { type: string }, in: query, required: true } - { name: text, description: "Message text", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/RTMessageResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/rtMessagesManager/sentMessageToRT/m-q: post: tags: - RTMessagesManager operationId: sentMessageToRTWithMemberQueue summary: Sends a message to RT. Member id is sent. parameters: - { name: memberId, description: "Member whose e-mail address will be user", schema: { type: integer }, in: query, required: true } - { name: queue, description: "RT queue", schema: { type: string }, in: query, required: true } - { name: subject, description: "Message subject", schema: { type: string }, in: query, required: true } - { name: text, description: "Message text", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/RTMessageResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/rtMessagesManager/sentMessageToRT/v-q: post: tags: - RTMessagesManager operationId: sentMessageToRTWithVoQueue summary: Sends a message to RT. VO id is sent. parameters: - { name: voId, description: "VO id", schema: { type: integer }, in: query, required: true } - { name: queue, description: "RT queue", schema: { type: string }, in: query, required: true } - { name: subject, description: "Message subject", schema: { type: string }, in: query, required: true } - { name: text, description: "Message text", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/RTMessageResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/rtMessagesManager/sentMessageToRT/v: post: tags: - RTMessagesManager operationId: sentMessageToRTWithVo summary: Sends a message to RT. VO id is sent. Queue is not sent. parameters: - { name: voId, description: "VO id", schema: { type: integer }, in: query, required: true } - { name: subject, description: "Message subject", schema: { type: string }, in: query, required: true } - { name: text, description: "Message text", schema: { type: string }, in: query, required: true } responses: '200': $ref: '#/components/responses/RTMessageResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # IntegrationManager # # # ################################################# /json/integrationManager/getGroupMemberData: get: tags: - IntegrationManager operationId: getGroupMemberData summary: Get all member-group relations for all groups with all member-group attributes. responses: '200': $ref: '#/components/responses/GroupMemberDataResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # Searcher # # # ################################################# /json/searcher/getUsers: post: tags: - Searcher operationId: getUsersSearcher summary: Get list of users who have attributes with specific values. responses: '200': $ref: '#/components/responses/ListOfUsersResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetUsers description: "Input to getUsers" type: object required: - attributesWithSearchingValues properties: attributesWithSearchingValues: type: object description: "Map of attribute names with searching values Map" nullable: false additionalProperties: type: string /json/searcher/getMembersByUserAttributes: post: tags: - Searcher operationId: getMembersByUserAttributes summary: Get list of members who have attributes with specific values. responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetMembersByUserAttributes description: "Input to getMembersByUserAttributes" type: object required: - vo - userAttributesWithSearchingValues properties: vo: { type: integer, description: "vo id", nullable: false } userAttributesWithSearchingValues: type: object description: "Map of attribute names with searching values Map" nullable: false additionalProperties: type: string /json/searcher/getMembers: post: tags: - Searcher operationId: getMembersSearcher summary: Get list of members who have attributes with specific values. responses: '200': $ref: '#/components/responses/ListOfMembersResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetMembersSearcher description: "Input to getMembersSearcher" type: object required: - vo - attributesWithSearchingValues properties: vo: { type: integer, description: "vo id", nullable: false } attributesWithSearchingValues: type: object description: "Map of user and member attribute names with searching values Map" nullable: false additionalProperties: type: string /json/searcher/getFacilities: post: tags: - Searcher operationId: getFacilities summary: Get list of facilities who have attributes with specific values. responses: '200': $ref: '#/components/responses/ListOfFacilitiesResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetFacilities description: "Input to getFacilities" type: object required: - attributesWithSearchingValues properties: attributesWithSearchingValues: type: object description: "Map of attribute names with searching values Map" nullable: false additionalProperties: type: string /json/searcher/getResources/attributes: post: tags: - Searcher operationId: getAttributesResources summary: Get list of resources who have attributes with specific values. responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetResources description: "Input to getResources" type: object required: - attributesWithSearchingValues properties: attributesWithSearchingValues: type: object description: "Map of attribute names with searching values Map" nullable: false additionalProperties: type: string /json/searcher/getResources/attributes-match: post: tags: - Searcher operationId: getAttributesMatchResources summary: Get list of resources that have attributes with partially matched values if allowPartialMatchForString is set to true, else with exactly matched values. responses: '200': $ref: '#/components/responses/ListOfResourcesResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetMatchResources description: "Input to getResources" type: object required: - allowPartialMatchForString - attributesWithSearchingValues properties: allowPartialMatchForString: { type: boolean, description: "True if partial match is allowed", nullable: false } attributesWithSearchingValues: type: object description: "Map of attribute names with searching values Map" nullable: false additionalProperties: type: string /json/searcher/globalSearch: get: tags: - Searcher operationId: globalSearch summary: Performs global search parameters: - $ref: '#/components/parameters/searchString' responses: '200': $ref: '#/components/responses/MapStringListOfPerunBeanResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # ConsentsManager # # # ################################################# /json/consentsManager/getAllConsents: get: tags: - ConsentsManager operationId: getAllConsents summary: Return list of all existing Consents responses: '200': $ref: '#/components/responses/ListOfConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentById: get: tags: - ConsentsManager operationId: getConsentById summary: Return Consent object with corresponding id parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentsForUser/id-s: get: tags: - ConsentsManager operationId: getConsentsForUserWithStatus summary: Return Consents of certain status for user with corresponding id parameters: - $ref: '#/components/parameters/userId' - { name: status, description: "consent status", schema: { $ref: '#/components/schemas/ConsentStatus' }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentsForUser/id: get: tags: - ConsentsManager operationId: getConsentsForUser summary: Return Consents for user with corresponding id parameters: - $ref: '#/components/parameters/userId' responses: '200': $ref: '#/components/responses/ListOfConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentsForConsentHub/id-s: get: tags: - ConsentsManager operationId: getConsentsForConsentHubWithStatus summary: Return Consents of certain status for ConsentHub with corresponding id parameters: - $ref: '#/components/parameters/consentHubId' - { name: status, description: "consent status", schema: { $ref: '#/components/schemas/ConsentStatus' }, in: query, required: true } responses: '200': $ref: '#/components/responses/ListOfConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentsForConsentHub/id: get: tags: - ConsentsManager operationId: getConsentsForConsentHub summary: Return Consents for ConsentHub with corresponding id parameters: - $ref: '#/components/parameters/consentHubId' responses: '200': $ref: '#/components/responses/ListOfConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentsForConsentHubByResource: get: tags: - ConsentsManager operationId: getConsentsForConsentHubByResource summary: Get consents for members assigned to the resource. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ListOfConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentsForUserAndConsentHub: get: tags: - ConsentsManager operationId: getConsentsForUserAndConsentHub summary: Return Consents for specified user in specified consent hub parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/consentHubId' responses: '200': $ref: '#/components/responses/ListOfConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentForUserAndConsentHub: get: tags: - ConsentsManager operationId: getConsentForUserAndConsentHub summary: Return Consent object for chosen user in specified consent hub with specified status parameters: - $ref: '#/components/parameters/userId' - $ref: '#/components/parameters/consentHubId' - { name: status, description: "consent status", schema: { $ref: '#/components/schemas/ConsentStatus' }, in: query, required: true } responses: '200': $ref: '#/components/responses/ConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getAllConsentHubs: get: tags: - ConsentsManager operationId: getAllConsentHubs summary: Return list of all Consent Hubs responses: '200': $ref: '#/components/responses/ListOfConsentHubResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentHubById: get: tags: - ConsentsManager operationId: getConsentHubById summary: Returns a Consent Hub by id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/ConsentHubResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentHubByName: get: tags: - ConsentsManager operationId: getConsentHubByName summary: Returns a Consent Hub by name. parameters: - $ref: '#/components/parameters/name' responses: '200': $ref: '#/components/responses/ConsentHubResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentHubByFacility: get: tags: - ConsentsManager operationId: getConsentHubByFacility summary: Returns a Consent Hub by facility id. parameters: - $ref: '#/components/parameters/facilityId' responses: '200': $ref: '#/components/responses/ConsentHubResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/getConsentHubByResource: get: tags: - ConsentsManager operationId: getConsentHubByResource summary: Returns a Consent Hub for facility to which resource belongs. parameters: - $ref: '#/components/parameters/resourceId' responses: '200': $ref: '#/components/responses/ConsentHubResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/consentsManager/updateConsentHub: post: tags: - ConsentsManager operationId: updateConsentHub summary: Updates a consent hub. Ignores related facilities. responses: '200': $ref: '#/components/responses/ConsentHubResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputUpdateConsentHub description: "input to updateConsentHub" type: object required: - consentHub properties: consentHub: { $ref: '#/components/schemas/ConsentHub' } /urlinjsonout/consentsManager/changeConsentStatus: post: tags: - ConsentsManager operationId: changeConsentStatus summary: Changes value of consent status. parameters: - $ref: '#/components/parameters/consentId' - { name: status, description: "consent status", schema: { $ref: '#/components/schemas/ConsentStatus' }, in: query, required: true } responses: '200': $ref: '#/components/responses/ConsentResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/consentsManager/evaluateConsentsForConsentHub: post: tags: - ConsentsManager operationId: evaluateConsentsForConsentHub summary: Evaluates consents for given consent hub. parameters: - $ref: '#/components/parameters/consentHubId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/consentsManager/evaluateConsentsForConsentHubs: post: tags: - ConsentsManager operationId: evaluateConsentsForConsentHubs summary: Evaluates consents for given list of consent hubs. parameters: - $ref: '#/components/parameters/consentHubIds' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/consentsManager/evaluateConsentsForService: post: tags: - ConsentsManager operationId: evaluateConsentsForService summary: Evaluates consents ONLY for given service on consent hubs containing it. If new consent is created, attributes from ALL services under given consent hub are gathered for it. parameters: - $ref: '#/components/parameters/serviceId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # InvitationsManager # # # ################################################# /json/invitationsManager/getInvitationByApplication: get: tags: - InvitationsManager operationId: getInvitationByApplication summary: Get invitation object associated with the application. Return null if such invitation doesn't exist. parameters: - $ref: '#/components/parameters/applicationId' responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/invitationsManager/getInvitationById: get: tags: - InvitationsManager operationId: getInvitationById summary: Gets existing invitation by its ID. parameters: - $ref: '#/components/parameters/invitationId' responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/invitationsManager/getInvitationWithSenderByApplication: get: tags: - InvitationsManager operationId: getInvitationWithSenderByApplication summary: Get invitation object associated with the application, enriched with the sender's information. Fills only sender's name, not the email. Return null if such invitation doesn't exist. parameters: - $ref: '#/components/parameters/applicationId' responses: '200': $ref: '#/components/responses/InvitationWithSenderResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/invitationsManager/inviteToGroup: post: tags: - InvitationsManager operationId: inviteToGroup summary: Creates invitation to group and sends the link via email. Link leads to the application form of the group and consequently connects to a pre-approved application. parameters: - $ref: '#/components/parameters/voId' - $ref: '#/components/parameters/groupId' - { name: receiverName, description: "Name of the invited user", schema: { type: string }, in: query, required: true } - { name: receiverEmail, description: "Email of the invited user", schema: { type: string, format: string }, in: query, required: true } - { name: language, description: "Language of the invitation, should match available instance locales", schema: { type: string }, in: query, required: true } - { name: expiration, description: "Expiration date of the invite in format yyyy-MM-dd}", schema: { type: string }, in: query, required: false } - { name: redirectUrl, description: "URL to redirect to after application filled out.", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/invitationsManager/inviteToGroupFromCsv: post: tags: - InvitationsManager operationId: inviteToGroupFromCsv summary: Creates invitations to group and sends the link via email from CSV. Link leads to the application form of the group and consequently connects to a pre-approved application. responses: '200': $ref: '#/components/responses/MapStringStringResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputInviteToGroupFromCsv description: "input to inviteToGroupFromCsv" type: object required: - vo - group - invitationData - language - expiration properties: vo: { type: integer, description: "vo id", nullable: false } group: { type: integer, description: "group id", nullable: false } invitationData: { type: array, items: { type: string }, description: "values separated with semicolons" } language: { type: string, description: "language", nullable: false } expiration: { type: string, description: "Date in format yyyy-MM-dd ", nullable: true } redirectUrl: { type: string, description: "redirect url", nullable: true } /urlinjsonout/invitationsManager/canInvitationBeAccepted: get: tags: - InvitationsManager operationId: canInvitationBeAccepted summary: Checks whether an invitation under the given uuid exists, is in a pending state and matches the given group. If so returns the invitation. parameters: - $ref: '#/components/parameters/invitationUuid' - $ref: '#/components/parameters/groupId' responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/invitationsManager/revokeInvitationById: post: tags: - InvitationsManager operationId: revokeInvitationById summary: Revokes existing invitation by its id. parameters: - $ref: '#/components/parameters/invitationId' responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/invitationsManager/revokeInvitationByUuid: post: tags: - InvitationsManager operationId: revokeInvitationByUuid summary: Revokes existing invitation by its uuid. parameters: - $ref: '#/components/parameters/invitationUuid' responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/invitationsManager/extendInvitationExpiration: post: tags: - InvitationsManager operationId: extendInvitationExpiration summary: Sets a new later expiration date for the invitation. parameters: - $ref: '#/components/parameters/invitationId' - { name: expiration, description: "New expiration date of the invite in format yyyy-MM-dd}", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/invitationsManager/extendInvitationExpirationByUUID: post: tags: - InvitationsManager operationId: extendInvitationExpirationByUUID summary: Sets a new later expiration date for the invitation given by its token. parameters: - $ref: '#/components/parameters/invitationUuid' - { name: expiration, description: "New expiration date of the invite in format yyyy-MM-dd}", schema: { type: string }, in: query, required: false } responses: '200': $ref: '#/components/responses/InvitationResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/invitationsManager/getInvitationsPage: post: tags: - InvitationsManager operationId: getInvitationsPage summary: Get page of invitations for the given group, based on the query attributes. responses: '200': $ref: '#/components/responses/PaginatedInvitationWithSenderResponse' default: $ref: '#/components/responses/ExceptionResponse' requestBody: required: true content: application/json: schema: title: InputGetInvitationsPage description: "input to getInvitationsPage" type: object required: - group - query properties: group: { type: integer } query: { $ref: '#/components/schemas/InvitationsPageQuery' } /urlinjsonout/invitationsManager/resendInvitation: post: tags: - InvitationsManager operationId: resendInvitation summary: Resends the notification for the given preapproved invitation. parameters: - $ref: '#/components/parameters/invitationId' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # ConfigManager # # # ################################################# /json/configManager/getPersonalDataChangeConfig: get: tags: - ConfigManager operationId: getPersonalDataChangeConfig summary: Gets personal data change configuration with all related core config properties. responses: '200': $ref: '#/components/responses/PersonalDataChangeConfigResponse' default: $ref: '#/components/responses/ExceptionResponse' ################################################# # # # NotificationManager # # ################################################# /json/notificationManager/createPerunNotifTemplate: post: tags: - NotificationManager operationId: createPerunNotifTemplate summary: Creates a new PerunNotifTemplate and saves all relations. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PerunNotifTemplate' responses: '200': $ref: '#/components/responses/PerunNotifTemplateResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getPerunNotifTemplateById: get: tags: - NotificationManager operationId: getPerunNotifTemplateById summary: Gets perunNotifTemplate by id parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/PerunNotifTemplateResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/notificationManager/updatePerunNotifTemplate: post: tags: - NotificationManager operationId: updatePerunNotifTemplate summary: Updates an existing PerunNotifTemplate. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PerunNotifTemplate' responses: '200': $ref: '#/components/responses/PerunNotifTemplateResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/removePerunNotifTemplateById: post: tags: - NotificationManager operationId: removePerunNotifTemplateById summary: Removes a PerunNotifTemplate by id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getAllPerunNotifTemplates: get: tags: - NotificationManager operationId: getAllPerunNotifTemplates summary: Returns all PerunNotifTemplates. responses: '200': description: returns List content: application/json: schema: type: array items: $ref: '#/components/schemas/PerunNotifTemplate' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getAllPerunNotifRegexes: get: tags: - NotificationManager operationId: getAllPerunNotifRegexes summary: Returns all PerunNotifRegexes. responses: '200': description: returns List content: application/json: schema: type: array items: $ref: '#/components/schemas/PerunNotifRegex' default: $ref: '#/components/responses/ExceptionResponse' /json/notificationManager/createPerunNotifRegex: post: tags: - NotificationManager operationId: createPerunNotifRegex summary: Saves perunNotifRegex to DB and creates id, also saves relation between regex and object requestBody: required: true content: application/json: schema: type: object properties: regex: $ref: '#/components/schemas/PerunNotifRegex' responses: '200': $ref: '#/components/responses/PerunNotifRegexResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getPerunNotifRegexById: get: tags: - NotificationManager operationId: getPerunNotifRegexById summary: Gets perunNotifRegex by id parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/PerunNotifRegexResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/notificationManager/updatePerunNotifRegex: post: tags: - NotificationManager operationId: updatePerunNotifRegex summary: Updates an existing PerunNotifRegex requestBody: required: true content: application/json: schema: type: object properties: regex: $ref: '#/components/schemas/PerunNotifRegex' responses: '200': $ref: '#/components/responses/PerunNotifRegexResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/removePerunNotifRegexById: post: tags: - NotificationManager operationId: removePerunNotifRegexById summary: Removes a PerunNotifRegex by id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/saveTemplateRegexRelation: post: tags: - NotificationManager operationId: saveTemplateRegexRelation summary: Stores relation between template and regex to db parameters: - { name: templateId, description: "Id of the Notif Template", schema: { type: integer }, in: query, required: true } - { name: regexId, description: "Id of the Notif Regex", schema: { type: integer }, in: query, required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/removePerunNotifTemplateRegexRelation: post: tags: - NotificationManager operationId: removePerunNotifTemplateRegexRelation summary: Removes relation between template and regex parameters: - { name: templateId, description: "Id of the Notif Template", schema: { type: integer }, in: query, required: true } - { name: regexId, description: "Id of the Notif Regex", schema: { type: integer }, in: query, required: true } responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getRelatedRegexesForTemplate: get: tags: - NotificationManager operationId: getRelatedRegexesForTemplate summary: Returns all regexes related to given template. parameters: - { name: templateId, description: "Id of the Notif Template", schema: { type: integer }, in: query, required: true } responses: '200': description: returns List content: application/json: schema: type: array items: $ref: '#/components/schemas/PerunNotifRegex' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getAllPerunNotifReceivers: get: tags: - NotificationManager operationId: getAllPerunNotifReceivers summary: Returns all PerunNotifReceivers responses: '200': description: returns List content: application/json: schema: type: array items: $ref: '#/components/schemas/PerunNotifReceiver' default: $ref: '#/components/responses/ExceptionResponse' /json/notificationManager/createPerunNotifReceiver: post: tags: - NotificationManager operationId: createPerunNotifReceiver summary: Creates perunNotifReceiver with new id requestBody: required: true content: application/json: schema: type: object properties: receiver: $ref: '#/components/schemas/PerunNotifReceiver' responses: '200': $ref: '#/components/responses/PerunNotifReceiverResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getPerunNotifReceiverById: get: tags: - NotificationManager operationId: getPerunNotifReceiverById summary: Gets perunNotifReceiver by id parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/PerunNotifReceiverResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/notificationManager/updatePerunNotifReceiver: post: tags: - NotificationManager operationId: updatePerunNotifReceiver summary: Updates an existing PerunNotifReceiver requestBody: required: true content: application/json: schema: type: object properties: receiver: $ref: '#/components/schemas/PerunNotifReceiver' responses: '200': $ref: '#/components/responses/PerunNotifReceiverResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/removePerunNotifReceiverById: post: tags: - NotificationManager operationId: removePerunNotifReceiverById summary: Removes a PerunNotifReceiver by id. parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getAllPerunNotifTemplateMessages: get: tags: - NotificationManager operationId: getAllPerunNotifTemplateMessages summary: Returns all PerunNotifTemplateMessages. responses: '200': description: returns List content: application/json: schema: type: array items: $ref: '#/components/schemas/PerunNotifTemplateMessage' default: $ref: '#/components/responses/ExceptionResponse' /json/notificationManager/createPerunNotifTemplateMessage: post: tags: - NotificationManager operationId: createPerunNotifTemplateMessage summary: Save perunNotifTemplateMessage to db requestBody: required: true content: application/json: schema: type: object properties: message: $ref: '#/components/schemas/PerunNotifTemplateMessage' responses: '200': $ref: '#/components/responses/PerunNotifTemplateMessageResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/getPerunNotifTemplateMessageById: get: tags: - NotificationManager operationId: getPerunNotifTemplateMessageById summary: Gets perunNotifTemplateMessage by id parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/PerunNotifTemplateMessageResponse' default: $ref: '#/components/responses/ExceptionResponse' /json/notificationManager/updatePerunNotifTemplateMessage: post: tags: - NotificationManager operationId: updatePerunNotifTemplateMessage summary: Updates perunNotifTemplateMessage in db requestBody: required: true content: application/json: schema: type: object properties: message: $ref: '#/components/schemas/PerunNotifTemplateMessage' responses: '200': $ref: '#/components/responses/PerunNotifTemplateMessageResponse' default: $ref: '#/components/responses/ExceptionResponse' /urlinjsonout/notificationManager/removePerunNotifTemplateMessage: post: tags: - NotificationManager operationId: removePerunNotifTemplateMessage summary: Remove perunNotifTemplateMessage from db by id parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/VoidResponse' default: $ref: '#/components/responses/ExceptionResponse'