Yonsei University user API
The user API from Yonsei University — 7 operation(s) for user.
The user API from Yonsei University — 7 operation(s) for user.
openapi: 3.0.1
info:
title: Pure activity user API
description: The Pure API provides a secure and complete web services API for using and managing research information data in Pure. The API enables a broad range of use-cases for interacting with research information, from anonymous Open Data scenarios to enabling the next generation Pure admin.
termsOfService: ''
contact:
name: ''
url: ''
email: pure-support@elsevier.com
license:
name: ''
url: ''
version: 5.35.3-4
servers:
- url: https://yonsei.elsevierpure.com/ws/api
description: Yonsei University Elsevier Pure REST API
security:
- api-key: []
tags:
- name: user
paths:
/users:
get:
tags:
- user
summary: Lists all users
description: Lists all users in the Pure instance.
operationId: user_list
parameters:
- name: size
in: query
description: Number of returned users per request.
schema:
maximum: 1000
type: integer
format: int32
default: 10
- name: offset
in: query
description: The offset for the returned list. 0 or null value is from the start
schema:
type: integer
format: int32
default: 0
- name: order
in: query
description: The order of the list, must be a value from /users/orderings
schema:
type: string
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/UserListResult'
put:
tags:
- user
summary: Create user
description: Create user
operationId: user_create
requestBody:
description: The user to create
content:
application/json:
schema:
$ref: '#/components/schemas/User'
required: true
responses:
'201':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/users/orderings:
get:
tags:
- user
summary: Lists available orderings
description: Lists all orderings available to the user endpoint. These values can be used by the order parameter.
operationId: user_getOrderings
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/OrderingsList'
/users/{uuid}:
get:
tags:
- user
summary: Get user
description: Get user with specific UUID.
operationId: user_get
parameters:
- name: uuid
in: path
description: UUID of the user
required: true
schema:
pattern: .+
type: string
format: uuid
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'301':
description: The requested content has changed UUID
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
put:
tags:
- user
summary: Update user
description: Update user with specific UUID.
operationId: user_update
parameters:
- name: uuid
in: path
description: UUID of the user to update
required: true
schema:
pattern: .+
type: string
format: uuid
requestBody:
description: The content to update
content:
application/json:
schema:
$ref: '#/components/schemas/User'
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Resource not found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Version conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ConflictProblemDetails'
delete:
tags:
- user
summary: Delete user
description: Delete user with specific UUID.
operationId: user_delete
parameters:
- name: uuid
in: path
description: UUID of the user to delete
required: true
schema:
pattern: .+
type: string
format: uuid
responses:
'204':
description: Successful operation
'404':
description: Resource not found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ConflictProblemDetails'
/users/{uuid}/actions/lock:
post:
tags:
- user
summary: Lock the content
description: Mark the content as external (used when content contains synchronised data). This has no effect on interactions with the content through the API.
operationId: user_lock
parameters:
- name: uuid
in: path
description: UUID of the content to lock
required: true
schema:
pattern: .+
type: string
format: uuid
responses:
'204':
description: Content marked as locked
'404':
description: Resource not found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Content already locked
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ConflictProblemDetails'
/users/{uuid}/actions/reset-password:
post:
tags:
- user
summary: Reset user password
description: Resets the user's password. Reset password email will be sent to the user's email. The token expiry hour defaults to 24 hours.
operationId: user_resetPassword
parameters:
- name: uuid
in: path
description: UUID of the user to reset the password for
required: true
schema:
pattern: .+
type: string
format: uuid
- name: tokenExpiryHours
in: query
description: Token expiration in hours. Must be between 1 and 168 hours (1 week).
schema:
type: number
default: 24
responses:
'202':
description: Accepted
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/users/{uuid}/actions/unlock:
post:
tags:
- user
summary: Unlock the content
description: Remove the external mark on the content (used when content contains synchronised data). This has no effect on interactions with the content through the API.
operationId: user_unlock
parameters:
- name: uuid
in: path
description: UUID of the content to unlock
required: true
schema:
pattern: .+
type: string
format: uuid
responses:
'204':
description: Content marked as unlocked
'404':
description: Resource not found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Content already unlocked
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ConflictProblemDetails'
/users/{uuid}/roles:
get:
tags:
- user
summary: Lists all roles of a user
description: Lists all roles of a user
operationId: user_get_roles_for_user
parameters:
- name: uuid
in: path
description: UUID of the user to list the roles of
required: true
schema:
pattern: .+
type: string
format: uuid
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/UserRoles'
put:
tags:
- user
summary: Updates roles
description: Applies the supplied roles to a user. Roles not in the request will be removed from user
operationId: user_update_roles_for_user
parameters:
- name: uuid
in: path
description: UUID of the user to update roles of
required: true
schema:
pattern: .+
type: string
format: uuid
requestBody:
description: Complete picture of a users roles
content:
application/json:
schema:
$ref: '#/components/schemas/UserRoles'
required: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/UserRoles'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: User not modifiable or role not assignable
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: User or role not found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Version conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ConflictProblemDetails'
components:
schemas:
Name:
type: object
properties:
firstName:
type: string
lastName:
type: string
description: A name describing a person, made up of given- and family name
ProblemDetails:
type: object
properties:
type:
type: string
description: A URI reference [RFC3986] that identifies the problem type.
title:
type: string
description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
status:
type: integer
description: The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
format: int32
detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem.
instance:
type: string
description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
description: RFC7807 Error details
discriminator:
propertyName: type
mapping:
/error: '#/components/schemas/GenericProblemDetails'
/validation-error: '#/components/schemas/ValidationProblemDetails'
/dependency-violation-error: '#/components/schemas/DependencyViolationProblemDetails'
GlobalRoleAssignment:
required:
- roleDefinition
type: object
properties:
roleDefinition:
$ref: '#/components/schemas/AssignableRoleRef'
description: Assignment of a global role
ContentRef:
required:
- systemName
- uuid
type: object
properties:
uuid:
type: string
description: UUID of the referred content
format: uuid
systemName:
type: string
nullable: true
discriminator:
propertyName: systemName
mapping:
AccessDefinition: '#/components/schemas/AccessDefinitionRef'
Activity: '#/components/schemas/ActivityRef'
Application: '#/components/schemas/ApplicationRef'
AuthorCollaboration: '#/components/schemas/AuthorCollaborationRef'
Award: '#/components/schemas/AwardRef'
ClassificationScheme: '#/components/schemas/ClassificationSchemeRef'
ConferenceSeries: '#/components/schemas/ConferenceSeriesRef'
DataSet: '#/components/schemas/DataSetRef'
Equipment: '#/components/schemas/EquipmentRef'
Event: '#/components/schemas/EventRef'
ExternalOrganization: '#/components/schemas/ExternalOrganizationRef'
ExternalPerson: '#/components/schemas/ExternalPersonRef'
Impact: '#/components/schemas/ImpactRef'
Journal: '#/components/schemas/JournalRef'
Organization: '#/components/schemas/OrganizationRef'
Person: '#/components/schemas/PersonRef'
Publisher: '#/components/schemas/PublisherRef'
PressMedia: '#/components/schemas/PressMediaRef'
Prize: '#/components/schemas/PrizeRef'
Project: '#/components/schemas/ProjectRef'
ResearchOutput: '#/components/schemas/ResearchOutputRef'
StudentThesis: '#/components/schemas/StudentThesisRef'
FundingOpportunity: '#/components/schemas/FundingOpportunityRef'
EthicalReview: '#/components/schemas/EthicalReviewRef'
ApplicationCluster: '#/components/schemas/ApplicationClusterRef'
AwardCluster: '#/components/schemas/AwardClusterRef'
User: '#/components/schemas/UserRef'
ERA2018FieldOfResearch: '#/components/schemas/Anzsrc2008FieldOfResearchRef'
UnitOfAssessmentREF2014: '#/components/schemas/Ref2014UnitOfAssessmentRef'
UnitOfAssessmentREF2020: '#/components/schemas/Ref2020UnitOfAssessmentRef'
ANZSRCTypeOfActivity: '#/components/schemas/Anzsrc2020TypeOfActivityRef'
ANZSRCFieldOfResearch: '#/components/schemas/Anzsrc2020FieldOfResearchRef'
ANZSRCSocioEconomicObjective: '#/components/schemas/Anzsrc2020SocioEconomicObjectiveRef'
Semester: '#/components/schemas/SemesterRef'
Education: '#/components/schemas/EducationRef'
Course: '#/components/schemas/CourseRef'
CurriculumVitae: '#/components/schemas/CurriculumVitaeRef'
CustomDefinedFieldConfiguration: '#/components/schemas/CustomDefinedFieldConfigurationRef'
KeywordGroupConfiguration: '#/components/schemas/KeywordGroupConfigurationRef'
Review: '#/components/schemas/ReviewRef'
GenericContentRef: '#/components/schemas/GenericContentRef'
UserProfile: '#/components/schemas/UserProfileRef'
Thesaurus: '#/components/schemas/ThesaurusRef'
Concept: '#/components/schemas/ConceptRef'
PersonExpertise: '#/components/schemas/PersonExpertiseRef'
Contract: '#/components/schemas/ContractRef'
Milestone: '#/components/schemas/MilestoneRef'
Fingerprint: '#/components/schemas/FingerprintRef'
Specialization: '#/components/schemas/SpecializationRef'
StudentProject: '#/components/schemas/StudentProjectRef'
PageInformation:
type: object
properties:
offset:
type: integer
description: Offset that returned items start at
format: int32
size:
type: integer
description: The requested number of items. May be higher than the actual number of items in the result if there are fewer items in the store than requested
format: int32
description: Information about pages
Identifier:
required:
- typeDiscriminator
type: object
properties:
typeDiscriminator:
type: string
discriminator:
propertyName: typeDiscriminator
mapping:
ClassifiedId: '#/components/schemas/ClassifiedId'
PrimaryId: '#/components/schemas/PrimaryId'
Id: '#/components/schemas/Id'
UserRoles:
required:
- globalRoleAssignments
- localRoleAssignments
- version
type: object
properties:
version:
type: string
description: Used to guard against conflicting updates. The property should never be modified explicitly by a client
globalRoleAssignments:
type: array
description: Current/requested global role assignments
items:
$ref: '#/components/schemas/GlobalRoleAssignment'
localRoleAssignments:
type: array
description: Current/requested local role assignments
items:
$ref: '#/components/schemas/LocalRoleAssignment'
description: The complete picture of a users roles
ConflictProblemDetails:
type: object
properties:
type:
type: string
description: A URI reference [RFC3986] that identifies the problem type.
title:
type: string
description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).
status:
type: integer
description: The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
format: int32
detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem.
instance:
type: string
description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
modified:
type: string
format: date-time
modifiedBy:
type: string
description: Problem details for state conflict failures
User:
required:
- email
- username
type: object
properties:
pureId:
type: integer
description: Pure database ID of the object, prefer using the UUID if it is present on the entity
format: int64
readOnly: true
uuid:
type: string
description: UUID, this is the primary identity of the entity
format: uuid
readOnly: true
createdBy:
type: string
description: Username of creator
readOnly: true
createdDate:
type: string
description: Date and time of creation
format: date-time
readOnly: true
modifiedBy:
type: string
description: Username of the user that performed a modification
readOnly: true
modifiedDate:
type: string
description: Date and time of last modification
format: date-time
readOnly: true
portalUrl:
type: string
description: URL of the content on the Pure Portal
readOnly: true
prettyUrlIdentifiers:
type: array
description: All pretty URLs
readOnly: true
items:
type: string
description: All pretty URLs
readOnly: true
previousUuids:
type: array
description: UUIDs of other content items which have been merged into this content item (or similar)
readOnly: true
items:
type: string
description: UUIDs of other content items which have been merged into this content item (or similar)
readOnly: true
version:
type: string
description: Used to guard against conflicting updates. For new content this is null, and for existing content the current value. The property should never be modified by a client, except in the rare case where the client wants to perform an update irrespective of if other clients have made updates in the meantime, also known as a "dirty write". A dirty write is performed by not including the property value or setting the property to null
nullable: true
username:
type: string
description: Username
name:
$ref: '#/components/schemas/Name'
email:
type: string
description: The user's email address
externallyAuthenticated:
type: boolean
description: Is the user externally authenticated.
pureSystemUser:
type: boolean
description: Is the user a Pure system user. Set to false when creating normal Pure users.
default: false
locked:
type: boolean
description: Is the user locked. A locked user cannot log into Pure.
default: false
identifiers:
type: array
description: Identifiers related to the user
nullable: true
items:
$ref: '#/components/schemas/Identifier'
systemName:
type: string
description: The content system name
readOnly: true
description: A user that can be attached to a person in Pure
OrderingsList:
type: object
properties:
orderings:
type: array
description: IDs of ways content can be ordered
items:
type: string
description: IDs of ways content can be ordered
description: List of available orderings
LocalRoleAssignment:
required:
- roleDefinition
type: object
properties:
roleDefinition:
$ref: '#/components/schemas/AssignableRoleRef'
assignments:
type: array
description: Where the local role is (to be) assigned
nullable: true
items:
$ref: '#/components/schemas/ContentRef'
description: The complete picture of where a local role is to be assigned
AssignableRoleRef:
required:
- assignableRoleName
type: object
properties:
assignableRoleName:
type: string
description: Name of an assignable role
description: A reference to an assignable role that can be either local or global
UserListResult:
type: object
properties:
count:
type: integer
description: The full count, ignoring paging
format: int32
pageInformation:
$ref: '#/components/schemas/PageInformation'
items:
type: array
description: Users
items:
$ref: '#/components/schemas/User'
description: List of users. Can contain a subset of all items along with the full count
securitySchemes:
api-key:
type: apiKey
description: Security mechanism for the API
name: api-key
in: header