openapi: 3.0.1 info: title: Pure activity classificationScheme 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.0 servers: - url: https://scholars.hkbu.edu.hk/ws/api security: - api-key: [] tags: - name: classificationScheme paths: /classification-schemes: get: tags: - classificationScheme summary: Lists all classification schemes description: Lists all classification schemes in the Pure instance. operationId: classificationScheme_list parameters: - name: size in: query description: Number of returned classification schemes 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 classificationSchemes_getOrderings schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ClassificationSchemeList' put: tags: - classificationScheme summary: Create classification scheme description: Create classification scheme operationId: classificationScheme_create requestBody: description: The content to create content: application/json: schema: $ref: '#/components/schemas/ClassificationScheme' required: true responses: '201': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ClassificationScheme' '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' /classification-schemes/allowed-associated-schemes: get: tags: - classificationScheme summary: A list of allowed associated schemes classifications description: Get a list of allowed types of associated classification schemes that can be used for the getAssociatedSchemes.classification attribute on classification scheme operationId: classificationScheme_getAllowedAssociatedSchemesClassifications responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ClassificationRefList' /classification-schemes/allowed-locales: get: tags: - classificationScheme summary: A list of allowed locales in localized strings description: 'Get a list of allowed locales that can be used when submitting localized string entities. Example usage: Terms of contained classifications must be defined in all these locales.' operationId: classificationScheme_getAllowedLocales responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/LocalesList' /classification-schemes/allowed-type-classifications: get: tags: - classificationScheme summary: A list of allowed types of classification schemes description: Get a list of allowed types that can be used for the 'typeClassification' attribute of classification scheme operationId: classificationScheme_getAllowedTypeClassifications responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ClassificationRefList' /classification-schemes/{uuid}: get: tags: - classificationScheme summary: Get classification scheme description: Get classification scheme with specific UUID. operationId: classificationScheme_get parameters: - name: uuid in: path description: UUID of the desired classification scheme required: true schema: pattern: .+ type: string format: uuid responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ClassificationScheme' '301': description: The requested content have changed UUID '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' put: tags: - classificationScheme summary: Update classification scheme description: 'Update classification scheme with specific UUID. Note: terms of all containedClassifications must be defined in all UI locales.' operationId: classificationScheme_update parameters: - name: uuid in: path description: 'UUID of the classification scheme to update. Note: terms of all containedClassifications must be defined in all UI locales.' required: true schema: pattern: .+ type: string format: uuid requestBody: description: The content to update content: application/json: schema: $ref: '#/components/schemas/ClassificationScheme' required: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ClassificationScheme' '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: - classificationScheme summary: Delete classification scheme description: Delete classification scheme with specific UUID. operationId: classificationScheme_delete parameters: - name: uuid in: path description: UUID of the classification scheme 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' /classification-schemes/{uuid}/actions/lock: post: tags: - classificationScheme 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: classificationScheme_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' /classification-schemes/{uuid}/actions/unlock: post: tags: - classificationScheme 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: classificationScheme_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' components: schemas: Classification: required: - uri 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 uri: type: string description: URI used to uniquely identify this object term: $ref: '#/components/schemas/FormattedLocalizedString' disabled: type: boolean description: $ref: '#/components/schemas/SystemLocalizedString' classificationRelations: type: array items: $ref: '#/components/schemas/ClassificationRelation' description: A way to annotate another object with a type/role/etc. ClassificationSchemeList: type: object properties: count: type: integer description: The full count, ignoring paging format: int32 pageInformation: $ref: '#/components/schemas/PageInformation' items: type: array items: $ref: '#/components/schemas/ClassificationScheme' description: List of classification schemes ClassificationRelation: 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 relatedTo: $ref: '#/components/schemas/ClassificationRef' relationType: $ref: '#/components/schemas/ClassificationRef' description: Relation between classifications 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 ClassificationSchemeRelation: 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 classification: $ref: '#/components/schemas/ClassificationRef' title: $ref: '#/components/schemas/LocalizedString' classificationScheme: $ref: '#/components/schemas/ClassificationSchemeRef' description: Association between classification schemes 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' SystemLocalizedString: type: object additionalProperties: type: string description: A set of localized string values each for a specific UI locale. nullable: true example: '{"en_GB":"Some text"}' description: A set of localized string values each for a specific UI locale. nullable: true example: en_GB: Some text 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' ClassificationSchemeRef: required: - uuid type: object description: A reference to a classification scheme nullable: true allOf: - $ref: '#/components/schemas/ContentRef' ClassificationRef: required: - uri type: object properties: uri: type: string description: Classification URI of the referred classification term: $ref: '#/components/schemas/SystemLocalizedString' description: A reference to a classification value nullable: true ClassificationRefList: type: object properties: classifications: type: array items: $ref: '#/components/schemas/ClassificationRef' description: List of classification references LocalizedString: type: object additionalProperties: type: string description: 'A set of string values, one for each submission locale. Note: invalid locale values will be ignored.' nullable: true example: '{"en_GB":"Some text"}' description: 'A set of string values, one for each submission locale. Note: invalid locale values will be ignored.' nullable: true example: en_GB: Some text LocalesList: type: object properties: locales: pattern: /^[a-z]{2}_[A-Z]{2}$/ type: array description: Allowed locale values for use in localized string entities. The locale format consists of lower-case ISO 639 alpha-2 language code and upper-cased ISO 3166 alpha-2 country code. items: pattern: /^[a-z]{2}_[A-Z]{2}$/ type: string description: Allowed locale values for use in localized string entities. The locale format consists of lower-case ISO 639 alpha-2 language code and upper-cased ISO 3166 alpha-2 country code. description: List of available locales 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 FormattedLocalizedString: type: object additionalProperties: type: string description: A set of localized strings that support formatting. Invalid locale values will be ignored. nullable: true example: '{"en_GB":"Some text"}' description: A set of localized strings that support formatting. Invalid locale values will be ignored. nullable: true example: en_GB: Some text 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' ClassificationScheme: 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 baseUri: type: string typeClassification: $ref: '#/components/schemas/ClassificationRef' description: $ref: '#/components/schemas/LocalizedString' associatedSchemes: type: array items: $ref: '#/components/schemas/ClassificationSchemeRelation' containedClassifications: type: array items: $ref: '#/components/schemas/Classification' identifiers: type: array description: Identifiers related to the ClassificationScheme. nullable: true items: $ref: '#/components/schemas/Identifier' systemName: type: string description: The content system name readOnly: true description: A classification scheme. securitySchemes: api-key: type: apiKey description: Security mechanism for the API name: api-key in: header