CampusAPI Repository Services API documentation version 0.1.5
Based on OSID version 3.0.0
https://base.url/repository
Overview
The Repository package provides the services for finding, accessing and managing digital assets.
This package includes the following entities:
Assets
An Asset represents a unit of content, whether it be an image, a video, an application document or some text. The Asset defines a core set of definitions applicable to digital content, such as copyright and publisher, and allows for a type specification to be appended as with other entities.
Asset content, such as a document, is defined such that there may be multiple formats contained with the same asset. A document may be accessible in both PDF and MS Word, but is the same document, for example. An image may have both a large size and a thumbnail version. Generally, an asset contains more than one version of content when it is left to the application to decide which is most appropriate.
The Asset Type may define additional attributes in common throughout content variations. An example asset is one whose content Types are "Quicktime" and "MPEG", but the Asset Type is "movie" and defines methods that describe the move aside from the formats. This "double" Type hierarchy stemming from the asset requires more care in defining interfaces.
Assets also have "credits" which define the authors, editors, creators, performers, producers or any other "role", identified with a role Type, with the production of the asset. These are managed externally to the asset through the Acknowledgement service.
Through additional optional service methods, the Asset can be "extended" to offer temporal information. An asset may pertain to a date, a period of time, or a series of dates and periods. This mechanism is to offer the ability to search for assets pertaining to a desired date range without requiring understanding of a Type.
Similarly, the Asset can also map to spatial information. A photograph may be "geotagged" with the GPS coordinates where it was taken, a conical shape in stellar coordinates could be described for an astronimocal image, or there may be a desire to may a historical book to the spatial coordinates of Boston and Philadelphia. Unlike temporal mappings, the definition of the spatial coordinate is left to a spatial Type to define. The Repository service simply manages spatial mappings to the Asset.
Asset Tagging:
Assets may also relate to Ontology service Subjects. The Subject provides the ability to normalize information related to subject matter across the Assets to simplify management and provide a more robust searching mechanism. For example, with a photograph of the Empire State Building, one may wish to describe that it was designed by Shreve, Lamb and Harmon and completed in 1931. The information about the building itself can be described using a Subject and related to the photograph, and any other photograph that captures the building. The Asset Type for the photograph may simply be "photograph" and doesn't attempt to describe a building, while the AssetContent Type is "image/jpeg".
An application performing a search for Empire State Building can be execute the search over the Subjects, and once the user has narrowed the subject area, then the related Assets can be retrieved, and from there negotiate the content.
A provider wishing to construct a simple inventory database of buildings in New York may decide to do so using the Resource service package. The Resource Type may describe the construction dates, height, location, style and architects of buildings. The Type may also include a means of getting a reference image using the Asset interface. Since there is no explicit relationship between Subject and Resource, the Resource can be adapted to the Subject interface (mapping a buildingResourceType to a buildingSubjectType ) to use the same data for Subject to Asset mappings and searching.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this asset, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this asset, provided by system. | string(uri) |
displayName | The name of this asset for display. | string |
description | The description of this asset. | string |
genusTypeId (read‑only) | Id of the immutable type of this asset. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this asset. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this asset. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this asset. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this asset. | string |
title | The proper title of this asset. | string |
publicDomain | -- could someone please write a description for this -- | boolean |
copyright | The copyright statement and of this asset which identifies the current copyright holder. | string |
copyrightRegistration | The copyright registration information for this asset. | string |
distributeVerbatim | -- could someone please write a description for this -- | boolean |
distributeAlterations | -- could someone please write a description for this -- | boolean |
distributeCompositions | -- could someone please write a description for this -- | boolean |
sourceId | The Resource of the source of this asset. References a resource.Resource object | string(osid‑id) |
providerLinkIds | The Resources representing the source of this asset in order from the most recent provider to the originating source. References an array of resource.Resource objects. | string(osid‑id)[] |
createdDate | The created date of this asset, which is generally not related to when the object representing the asset was created. | string(date‑time) |
published | Tests if this asset has been published. | boolean |
publishedDate | The published date of this asset. | string(date‑time) |
principalCreditString | The credits of the principal people involved in the production of this asset as a display string. | string |
compositionId | The Composition corresponding to this asset. References a repository.Composition object | string(osid‑id) |
AssetContents
AssetContent represents a version of content represented by an Asset. Although AssetContent is a separate object with its own Id to distuinguish it from other content inside an Asset, AssetContent can only be accessed through an Asset.
Once an Asset is selected, multiple contents should be negotiated using the size, fidelity, accessibility requirements or application evnironment.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this asset content, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this asset content, provided by system. | string(uri) |
displayName | The name of this asset content for display. | string |
description | The description of this asset content. | string |
genusTypeId (read‑only) | Id of the immutable type of this asset content. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this asset content. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
assetId (read‑only) | The asset associated with this asset content. References a repository.Asset object. | string(osid‑id) |
accessibilityType | -- could someone please write a description for this -- | string(osid‑type) |
data | The asset content data | string(byte[]) |
url | The URL associated with this content for web-based retrieval. | string |
Compositions
Asset compositions can be created using the Composition methods. A Composition is a group of Assets and compositions may be structured into a hierarchy for the purpose of "building" larger content. A content management system may make use of this service to construct a web page. The Composition hierarchy may map into an XHTML structure and each Asset represent an image or a link in the document. However, the produced web page at a given URL may be represented by another single Asset whose content has both the URL and the XHTML stream.
Another example is an IMS Common Cartridge. The Composition may be used to produce the zip file cartridge, but consumers may access the zip file via an Asset.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this composition, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this composition, provided by system. | string(uri) |
displayName | The name of this composition for display. | string |
description | The description of this composition. | string |
genusTypeId (read‑only) | Id of the immutable type of this composition. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this composition. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this composition. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this composition. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this composition. | string |
sequestered | Whether this composition is sequestered in that it should not appear outside of its aggregation. | boolean |
Repositories
Assets and Compositions may be categorized into Repositories. A Repository is a catalog to help organize assets and subject matter. Repositories may be organized into hierarchies for organization or federation purposes.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this repository, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this repository, provided by system. | string(uri) |
displayName | The name of this repository for display. | string |
description | The description of this repository. | string |
genusTypeId (read‑only) | Id of the immutable type of this repository. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this repository. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this repository. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this repository. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this repository. | string |
License
CampusAPI REST Documentation Copyright 2023 DXtera Institute. Based on the Open Service Interface Definitions: http://osid.org
/assets
Collection of Assets in a system, federation of systems, or in a default Repository.
Get all Assets in the system or default Repository.
Create a new Asset in the default Repository.
get /assets
Get all Assets in the system or default Repository.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "source", "providerLinks", "composition", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleAssetType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleAssetType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleAssetType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3690%40demo.dxtera.org
- repositoryId: (string)
The id string to match a repository
Example:
repository.Repository%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Asset:6640@base.url",
"uri": "http://base.url/open/campusapi/repository/asset/repository.Asset%3A6640%40base.url",
"displayName": "Display Name of this Asset",
"description": "The description of this Asset",
"genusTypeId": "type.Type:defaultAssetType@base.url",
"recordTypeIds": [ "type.Type:exampleAssetRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Asset",
"brandingId": "asset.Asset:5506@Asset",
"license": "The license that applies to this 5506",
"title": "This is the Title",
"publicDomain": true,
"copyright": "This is the Copyright",
"copyrightRegistration": "This is the string for CopyrightRegistration",
"distributeVerbatim": true,
"distributeAlterations": true,
"distributeCompositions": true,
"sourceId": "resource.Resource:9576@base.url",
"providerLinkIds": [ "resource.Resource:1110@base.url", "..." ],
"createdDate": "2021-07-21T23:15:30.000Z",
"published": true,
"publishedDate": "2021-07-21T23:15:30.000Z",
"principalCreditString": "This is the PrincipalCreditString",
"compositionId": "repository.Composition:8073@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /assets
Create a new Asset in the default Repository.
Query Parameters
- genusType: (string)
specify a particular asset type to create
Example:
type.Type%3AexampleAssetType%40dxtera.org
- recordType: (array of )
specify support for one or more asset record types
Example:
[ "type.Type%3AexampleAssetRecordType%40campusapi.org", "..." ]
- repositoryId: (string)
specify in which repository to create this asset
Example:
repository.Repository%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Asset",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this asset, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset for display.",
"type": "string"
},
"description": {
"description": "The description of this asset.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this asset. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this asset.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this asset. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this asset.",
"type": "string"
},
"title": {
"description": "The proper title of this asset.",
"type": "string"
},
"publicDomain": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"copyright": {
"description": "The copyright statement and of this asset which identifies the current copyright holder.",
"type": "string"
},
"copyrightRegistration": {
"description": "The copyright registration information for this asset.",
"type": "string"
},
"distributeVerbatim": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"distributeAlterations": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"distributeCompositions": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"sourceId": {
"description": "The Resource of the source of this asset.",
"type": "string",
"format": "osid-id"
},
"providerLinkIds": {
"description": "The Resources representing the source of this asset in order from the most recent provider to the originating source.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"createdDate": {
"description": "The created date of this asset, which is generally not related to when the object representing the asset was created.",
"type": "string",
"format": "date-time"
},
"published": {
"description": "Tests if this asset has been published.",
"type": "boolean"
},
"publishedDate": {
"description": "The published date of this asset.",
"type": "string",
"format": "date-time"
},
"principalCreditString": {
"description": "The credits of the principal people involved in the production of this asset as a display string.",
"type": "string"
},
"compositionId": {
"description": "The Composition corresponding to this asset.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Asset",
"description": "The description of this Asset",
"providerId": "resource.Resource:123@Asset",
"brandingId": "asset.Asset:4428@Asset",
"license": "The license that applies to this 4428",
"title": "This is the Title",
"publicDomain": true,
"copyright": "This is the Copyright",
"copyrightRegistration": "This is the string for CopyrightRegistration",
"distributeVerbatim": true,
"distributeAlterations": true,
"distributeCompositions": true,
"sourceId": "resource.Resource:2919@base.url",
"providerLinkIds": [ "resource.Resource:1203@base.url", "..." ],
"createdDate": "2021-07-21T23:15:30.000Z",
"published": true,
"publishedDate": "2021-07-21T23:15:30.000Z",
"principalCreditString": "This is the PrincipalCreditString",
"compositionId": "repository.Composition:9920@base.url"
}
Query the collection of Assets in a system, federation of systems, or in a default repository by posting a Query object.
Submit a query using a AssetQuery object.
post /assets/asset-query
Submit a query using a AssetQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "source", "providerLinks", "composition", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AssetQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Asset with any provider, false to match Asset with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Asset with any branding, false to match Asset with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchTitle": {
"description": "List of Title strings to match. Boolean OR performed among multiple titles.",
"type": "array",
"items": {
"type": "object",
"properties": {
"titles": {
"description": "titles to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTitle": {
"description": "Match titles with any value. true to match Assets with any title, false to match ProgramOfferings with no title",
"type": "boolean"
},
"matchPublicDomain": {
"description": "Match boolean value for publicDomain.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchCopyright": {
"description": "List of Copyright strings to match. Boolean OR performed among multiple copyrights.",
"type": "array",
"items": {
"type": "object",
"properties": {
"copyrights": {
"description": "copyrights to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCopyright": {
"description": "Match copyrights with any value. true to match Assets with any copyright, false to match ProgramOfferings with no copyright",
"type": "boolean"
},
"matchCopyrightRegistration": {
"description": "List of CopyrightRegistration strings to match. Boolean OR performed among multiple copyrightRegistrations.",
"type": "array",
"items": {
"type": "object",
"properties": {
"copyrightRegistrations": {
"description": "copyrightRegistrations to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCopyrightRegistration": {
"description": "Match copyrightRegistrations with any value. true to match Assets with any copyright registration, false to match ProgramOfferings with no copyright registration",
"type": "boolean"
},
"matchDistributeVerbatim": {
"description": "Match boolean value for distributeVerbatim.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchDistributeAlterations": {
"description": "Match boolean value for distributeAlterations.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchDistributeCompositions": {
"description": "Match boolean value for distributeCompositions.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchSourceIds": {
"description": "List of Resource Ids for this query to match source.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sourceId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sourceQueries": {
"description": "resource.ResourceQueries to match the Source. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySource": {
"description": "Match source with any value. true to match Assets with any source, false to match Assets with no source",
"type": "boolean"
},
"matchProviderLinkIds": {
"description": "List of Resource Ids for this query to match providerLinks.",
"type": "array",
"items": {
"type": "object",
"properties": {
"providerLinkId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerLinkQueries": {
"description": "resource.ResourceQueries to match the Provider Links. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyProviderLink": {
"description": "Match provider links with any value. true to match Assets with any provider links, false to match Assets with no provider links",
"type": "boolean"
},
"matchCreatedDate": {
"description": "Matches createdDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCreatedDate": {
"description": "Match createdDates with any value. true to match Assets with any created date, false to match ProgramOfferings with no created date",
"type": "boolean"
},
"matchPublished": {
"description": "Match boolean value for published.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchPublishedDate": {
"description": "Matches publishedDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyPublishedDate": {
"description": "Match publishedDates with any value. true to match Assets with any published date, false to match ProgramOfferings with no published date",
"type": "boolean"
},
"matchPrincipalCreditString": {
"description": "List of PrincipalCreditString strings to match. Boolean OR performed among multiple principalCreditStrings.",
"type": "array",
"items": {
"type": "object",
"properties": {
"principalCreditStrings": {
"description": "principalCreditStrings to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyPrincipalCreditString": {
"description": "Match principalCreditStrings with any value. true to match Assets with any principal credit string, false to match ProgramOfferings with no principal credit string",
"type": "boolean"
},
"matchCompositionIds": {
"description": "List of Composition Ids for this query to match composition.",
"type": "array",
"items": {
"type": "object",
"properties": {
"compositionId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"compositionQueries": {
"description": "repository.CompositionQueries to match the Composition. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyComposition": {
"description": "Match composition with any value. true to match Assets with any composition, false to match Assets with no composition",
"type": "boolean"
},
"matchRepositoryIds": {
"description": "List of Repository Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"repositoryId": {
"description": "Repository id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"repositoryQueries": {
"description": "RepositoryQueries to match Repository. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Asset:6640@base.url",
"uri": "http://base.url/open/campusapi/repository/asset/repository.Asset%3A6640%40base.url",
"displayName": "Display Name of this Asset",
"description": "The description of this Asset",
"genusTypeId": "type.Type:defaultAssetType@base.url",
"recordTypeIds": [ "type.Type:exampleAssetRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Asset",
"brandingId": "asset.Asset:5506@Asset",
"license": "The license that applies to this 5506",
"title": "This is the Title",
"publicDomain": true,
"copyright": "This is the Copyright",
"copyrightRegistration": "This is the string for CopyrightRegistration",
"distributeVerbatim": true,
"distributeAlterations": true,
"distributeCompositions": true,
"sourceId": "resource.Resource:9576@base.url",
"providerLinkIds": [ "resource.Resource:1110@base.url", "..." ],
"createdDate": "2021-07-21T23:15:30.000Z",
"published": true,
"publishedDate": "2021-07-21T23:15:30.000Z",
"principalCreditString": "This is the PrincipalCreditString",
"compositionId": "repository.Composition:8073@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Asset form metadata.
Get form metadata for creating a new Asset.
get /assets/metadata
Get form metadata for creating a new Asset.
Query Parameters
- genusType: (string)
specify a particular asset type to create
Example:
type.Type%3AexampleAssetType%40dxtera.org
- recordType: (array of )
specify support for one or more asset record types
Example:
[ "type.Type%3AexampleAssetRecordType%40campusapi.org", "..." ]
- repositoryId: (string)
specify in which repository to create this asset
Example:
repository.Repository%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Asset",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this asset, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this asset",
"linked": false
},
"description": {
"description": "The description of this asset.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this asset",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this asset. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this asset.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this asset",
"linked": false
},
"brandingIds": {
"description": "The branding of this asset. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Asset.Asset:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this asset",
"linked": false
},
"license": {
"description": "The licensing that applies to this asset.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this asset",
"linked": false
},
"title": {
"description": "The proper title of this asset.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this asset.",
"linked": false
},
"publicDomain": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:publicDomain@dxtera.org",
"existingValue": false,
"elementLabel": "Public Domain",
"instructions": "Enter true or false.",
"linked": false
},
"copyright": {
"description": "The copyright statement and of this asset which identifies the current copyright holder.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:copyright@dxtera.org",
"existingValue": "The existing copyright",
"elementLabel": "Copyright",
"instructions": "Enter a copyright for this asset.",
"linked": false
},
"copyrightRegistration": {
"description": "The copyright registration information for this asset.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:copyrightRegistration@dxtera.org",
"existingValue": "The existing copyright registration",
"elementLabel": "Copyright Registration",
"instructions": "Enter a copyright registration for this asset.",
"linked": false
},
"distributeVerbatim": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:distributeVerbatim@dxtera.org",
"existingValue": false,
"elementLabel": "Distribute Verbatim",
"instructions": "Enter true or false.",
"linked": false
},
"distributeAlterations": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:distributeAlterations@dxtera.org",
"existingValue": false,
"elementLabel": "Distribute Alterations",
"instructions": "Enter true or false.",
"linked": false
},
"distributeCompositions": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:distributeCompositions@dxtera.org",
"existingValue": false,
"elementLabel": "Distribute Compositions",
"instructions": "Enter true or false.",
"linked": false
},
"sourceId": {
"description": "The Resource of the source of this asset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:source@dxtera.org",
"existingValue": null,
"elementLabel": "Source",
"instructions": "Enter the Id of the source for this asset.",
"linked": false
},
"providerLinkIds": {
"description": "The Resources representing the source of this asset in order from the most recent provider to the originating source.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "repository.Asset:providerLinks@dxtera.org",
"existingValue": [],
"elementLabel": "Provider Links",
"instructions": "Enter Ids for provider links of this asset.",
"linked": false
},
"createdDate": {
"description": "The created date of this asset, which is generally not related to when the object representing the asset was created.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:createdDate@dxtera.org",
"existingValue": "",
"elementLabel": "Created Date",
"instructions": "Enter the created date of this asset.",
"linked": false
},
"published": {
"description": "Tests if this asset has been published.",
"type": "boolean",
"elementId": "repository.Asset:published@dxtera.org",
"existingValue": false,
"elementLabel": "Published",
"instructions": "Enter true or false.",
"linked": false
},
"publishedDate": {
"description": "The published date of this asset.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:publishedDate@dxtera.org",
"existingValue": "",
"elementLabel": "Published Date",
"instructions": "Enter the published date of this asset.",
"linked": false
},
"principalCreditString": {
"description": "The credits of the principal people involved in the production of this asset as a display string.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:principalCreditString@dxtera.org",
"existingValue": "The existing principal credit string",
"elementLabel": "Principal Credit String",
"instructions": "Enter a principal credit string for this asset.",
"linked": false
},
"compositionId": {
"description": "The Composition corresponding to this asset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:composition@dxtera.org",
"existingValue": null,
"elementLabel": "Composition",
"instructions": "Enter the Id of the composition for this asset.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Asset
Get a particular Asset given its id.
Update a particular Asset given its id.
Delete a particular Asset given its id.
get /assets/{assetId}
Get a particular Asset given its id.
URI Parameters
- assetId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "source", "providerLinks", "composition", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "repository.Asset:6640@base.url",
"uri": "http://base.url/open/campusapi/repository/asset/repository.Asset%3A6640%40base.url",
"displayName": "Display Name of this Asset",
"description": "The description of this Asset",
"genusTypeId": "type.Type:defaultAssetType@base.url",
"recordTypeIds": [ "type.Type:exampleAssetRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Asset",
"brandingId": "asset.Asset:5506@Asset",
"license": "The license that applies to this 5506",
"title": "This is the Title",
"publicDomain": true,
"copyright": "This is the Copyright",
"copyrightRegistration": "This is the string for CopyrightRegistration",
"distributeVerbatim": true,
"distributeAlterations": true,
"distributeCompositions": true,
"sourceId": "resource.Resource:9576@base.url",
"providerLinkIds": [ "resource.Resource:1110@base.url", "..." ],
"createdDate": "2021-07-21T23:15:30.000Z",
"published": true,
"publishedDate": "2021-07-21T23:15:30.000Z",
"principalCreditString": "This is the PrincipalCreditString",
"compositionId": "repository.Composition:8073@base.url"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Asset not found" }
put /assets/{assetId}
Update a particular Asset given its id.
URI Parameters
- assetId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Asset",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this asset, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset for display.",
"type": "string"
},
"description": {
"description": "The description of this asset.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this asset. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this asset.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this asset. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this asset.",
"type": "string"
},
"title": {
"description": "The proper title of this asset.",
"type": "string"
},
"publicDomain": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"copyright": {
"description": "The copyright statement and of this asset which identifies the current copyright holder.",
"type": "string"
},
"copyrightRegistration": {
"description": "The copyright registration information for this asset.",
"type": "string"
},
"distributeVerbatim": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"distributeAlterations": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"distributeCompositions": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"sourceId": {
"description": "The Resource of the source of this asset.",
"type": "string",
"format": "osid-id"
},
"providerLinkIds": {
"description": "The Resources representing the source of this asset in order from the most recent provider to the originating source.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"createdDate": {
"description": "The created date of this asset, which is generally not related to when the object representing the asset was created.",
"type": "string",
"format": "date-time"
},
"published": {
"description": "Tests if this asset has been published.",
"type": "boolean"
},
"publishedDate": {
"description": "The published date of this asset.",
"type": "string",
"format": "date-time"
},
"principalCreditString": {
"description": "The credits of the principal people involved in the production of this asset as a display string.",
"type": "string"
},
"compositionId": {
"description": "The Composition corresponding to this asset.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Asset",
"description": "The description of this Asset",
"providerId": "resource.Resource:123@Asset",
"brandingId": "asset.Asset:4428@Asset",
"license": "The license that applies to this 4428",
"title": "This is the Title",
"publicDomain": true,
"copyright": "This is the Copyright",
"copyrightRegistration": "This is the string for CopyrightRegistration",
"distributeVerbatim": true,
"distributeAlterations": true,
"distributeCompositions": true,
"sourceId": "resource.Resource:2919@base.url",
"providerLinkIds": [ "resource.Resource:1203@base.url", "..." ],
"createdDate": "2021-07-21T23:15:30.000Z",
"published": true,
"publishedDate": "2021-07-21T23:15:30.000Z",
"principalCreditString": "This is the PrincipalCreditString",
"compositionId": "repository.Composition:9920@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Asset has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Asset not found" }
delete /assets/{assetId}
Delete a particular Asset given its id.
URI Parameters
- assetId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Asset has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Asset not found" }
Entity representing a Asset form metadata for update
Get form metadata for updating an existing Asset.
get /assets/{assetId}/metadata
Get form metadata for updating an existing Asset.
URI Parameters
- assetId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Asset",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this asset, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this asset",
"linked": false
},
"description": {
"description": "The description of this asset.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this asset",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this asset. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this asset.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this asset",
"linked": false
},
"brandingIds": {
"description": "The branding of this asset. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Asset.Asset:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this asset",
"linked": false
},
"license": {
"description": "The licensing that applies to this asset.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Asset.Asset:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this asset",
"linked": false
},
"title": {
"description": "The proper title of this asset.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this asset.",
"linked": false
},
"publicDomain": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:publicDomain@dxtera.org",
"existingValue": false,
"elementLabel": "Public Domain",
"instructions": "Enter true or false.",
"linked": false
},
"copyright": {
"description": "The copyright statement and of this asset which identifies the current copyright holder.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:copyright@dxtera.org",
"existingValue": "The existing copyright",
"elementLabel": "Copyright",
"instructions": "Enter a copyright for this asset.",
"linked": false
},
"copyrightRegistration": {
"description": "The copyright registration information for this asset.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:copyrightRegistration@dxtera.org",
"existingValue": "The existing copyright registration",
"elementLabel": "Copyright Registration",
"instructions": "Enter a copyright registration for this asset.",
"linked": false
},
"distributeVerbatim": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:distributeVerbatim@dxtera.org",
"existingValue": false,
"elementLabel": "Distribute Verbatim",
"instructions": "Enter true or false.",
"linked": false
},
"distributeAlterations": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:distributeAlterations@dxtera.org",
"existingValue": false,
"elementLabel": "Distribute Alterations",
"instructions": "Enter true or false.",
"linked": false
},
"distributeCompositions": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "repository.Asset:distributeCompositions@dxtera.org",
"existingValue": false,
"elementLabel": "Distribute Compositions",
"instructions": "Enter true or false.",
"linked": false
},
"sourceId": {
"description": "The Resource of the source of this asset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:source@dxtera.org",
"existingValue": null,
"elementLabel": "Source",
"instructions": "Enter the Id of the source for this asset.",
"linked": false
},
"providerLinkIds": {
"description": "The Resources representing the source of this asset in order from the most recent provider to the originating source.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "repository.Asset:providerLinks@dxtera.org",
"existingValue": [],
"elementLabel": "Provider Links",
"instructions": "Enter Ids for provider links of this asset.",
"linked": false
},
"createdDate": {
"description": "The created date of this asset, which is generally not related to when the object representing the asset was created.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:createdDate@dxtera.org",
"existingValue": "",
"elementLabel": "Created Date",
"instructions": "Enter the created date of this asset.",
"linked": false
},
"published": {
"description": "Tests if this asset has been published.",
"type": "boolean",
"elementId": "repository.Asset:published@dxtera.org",
"existingValue": false,
"elementLabel": "Published",
"instructions": "Enter true or false.",
"linked": false
},
"publishedDate": {
"description": "The published date of this asset.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:publishedDate@dxtera.org",
"existingValue": "",
"elementLabel": "Published Date",
"instructions": "Enter the published date of this asset.",
"linked": false
},
"principalCreditString": {
"description": "The credits of the principal people involved in the production of this asset as a display string.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:principalCreditString@dxtera.org",
"existingValue": "The existing principal credit string",
"elementLabel": "Principal Credit String",
"instructions": "Enter a principal credit string for this asset.",
"linked": false
},
"compositionId": {
"description": "The Composition corresponding to this asset.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.Asset:composition@dxtera.org",
"existingValue": null,
"elementLabel": "Composition",
"instructions": "Enter the Id of the composition for this asset.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "asset not found" }
Collection of AssetContent related to the Asset.
Get all AssetContents related to the Asset.
Create a new AssetContent for this Asset.
get /assets/{assetId}/assetContents
Get all AssetContents related to the Asset.
URI Parameters
- assetId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.AssetContent:4976@base.url",
"uri": "http://base.url/open/campusapi/repository/asset_content/repository.AssetContent%3A4976%40base.url",
"displayName": "Display Name of this AssetContent",
"description": "The description of this AssetContent",
"genusTypeId": "type.Type:defaultAssetContentType@base.url",
"recordTypeIds": [ "type.Type:exampleAssetContentRecordType@campusapi.org", "..."],
"assetId": "repository.Asset:7571@base.url",
"accessibilityType": "type.Type:2492@base.url",
"data": "<data input stream object>",
"url": "http://dxtera.org"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /assets/{assetId}/assetContents
Create a new AssetContent for this Asset.
URI Parameters
- assetId: required(string)
Query Parameters
- genusType: (string)
specify a particular assetContent type to create
Example:
type.Type%3AexampleAssetContentType%40dxtera.org
- recordType: (array of )
specify support for one or more assetContent record types
Example:
[ "type.Type%3AexampleAssetContentRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AssetContent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this asset content, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset content, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset content for display.",
"type": "string"
},
"description": {
"description": "The description of this asset content.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this asset content. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset content. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"assetId": {
"description": "The asset associated with this asset content.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"accessibilityType": {
"description": "-- could someone please write a description for this --",
"type": "string",
"format": "osid-type"
},
"data": {
"description": "The asset content data",
"type": "string",
"format": "byte[]"
},
"url": {
"description": "The URL associated with this content for web-based retrieval.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this AssetContent",
"description": "The description of this AssetContent",
"accessibilityType": "type.Type:8362@base.url",
"data": "<data input stream object>",
"url": "http://dxtera.org"
}
Entity representing a AssetContent form metadata.
Get form metadata for creating a new AssetContent.
get /assets/{assetId}/assetContents/metadata
Get form metadata for creating a new AssetContent.
URI Parameters
- assetId: required(string)
Query Parameters
- genusType: (string)
specify a particular assetContent type to create
Example:
type.Type%3AexampleAssetContentType%40dxtera.org
- recordType: (array of )
specify support for one or more assetContent record types
Example:
[ "type.Type%3AexampleAssetContentRecordType%40campusapi.org", "..." ]
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "AssetContent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this asset content, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset content, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset content for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "AssetContent.AssetContent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this asset content",
"linked": false
},
"description": {
"description": "The description of this asset content.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "AssetContent.AssetContent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this asset content",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this asset content. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset content. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"accessibilityType": {
"description": "-- could someone please write a description for this --",
"type": "string",
"type": "string",
"format": "osid-type",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.AssetContent:accessibilityType@dxtera.org",
"existingValue": null,
"elementLabel": "Accessibility Type",
"instructions": "Enter the Type id of the accessibility type for this asset content.",
"linked": false
},
"data": {
"description": "The asset content data",
"type": "string",
"format": "byte[]",
"elementId": "repository.AssetContent:data@dxtera.org",
"existingValue": "The existing binary data",
"elementLabel": "Data",
"instructions": "Enter data value.",
"linked": false
},
"url": {
"description": "The URL associated with this content for web-based retrieval.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.AssetContent:url@dxtera.org",
"existingValue": "The existing url",
"elementLabel": "URL",
"instructions": "Enter a url for this asset content.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a AssetContent
Get a particular AssetContent given its id.
Update a particular AssetContent given its id.
Delete a particular AssetContent given its id.
get /assets/{assetId}/assetContents/{assetContentId}
Get a particular AssetContent given its id.
URI Parameters
- assetId: required(string)
- assetContentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "repository.AssetContent:4976@base.url",
"uri": "http://base.url/open/campusapi/repository/asset_content/repository.AssetContent%3A4976%40base.url",
"displayName": "Display Name of this AssetContent",
"description": "The description of this AssetContent",
"genusTypeId": "type.Type:defaultAssetContentType@base.url",
"recordTypeIds": [ "type.Type:exampleAssetContentRecordType@campusapi.org", "..."],
"assetId": "repository.Asset:7571@base.url",
"accessibilityType": "type.Type:2492@base.url",
"data": "<data input stream object>",
"url": "http://dxtera.org"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "AssetContent not found" }
put /assets/{assetId}/assetContents/{assetContentId}
Update a particular AssetContent given its id.
URI Parameters
- assetId: required(string)
- assetContentId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "AssetContent",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this asset content, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset content, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset content for display.",
"type": "string"
},
"description": {
"description": "The description of this asset content.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this asset content. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset content. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"assetId": {
"description": "The asset associated with this asset content.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"accessibilityType": {
"description": "-- could someone please write a description for this --",
"type": "string",
"format": "osid-type"
},
"data": {
"description": "The asset content data",
"type": "string",
"format": "byte[]"
},
"url": {
"description": "The URL associated with this content for web-based retrieval.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this AssetContent",
"description": "The description of this AssetContent",
"accessibilityType": "type.Type:8362@base.url",
"data": "<data input stream object>",
"url": "http://dxtera.org"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The AssetContent has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "AssetContent not found" }
delete /assets/{assetId}/assetContents/{assetContentId}
Delete a particular AssetContent given its id.
URI Parameters
- assetId: required(string)
- assetContentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The AssetContent has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "AssetContent not found" }
Entity representing a AssetContent form metadata for update
Get form metadata for updating an existing AssetContent.
get /assets/{assetId}/assetContents/{assetContentId}/metadata
Get form metadata for updating an existing AssetContent.
URI Parameters
- assetId: required(string)
- assetContentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "AssetContent",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this asset content, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this asset content, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this asset content for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "AssetContent.AssetContent:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this asset content",
"linked": false
},
"description": {
"description": "The description of this asset content.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "AssetContent.AssetContent:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this asset content",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this asset content. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this asset content. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"accessibilityType": {
"description": "-- could someone please write a description for this --",
"type": "string",
"type": "string",
"format": "osid-type",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.AssetContent:accessibilityType@dxtera.org",
"existingValue": null,
"elementLabel": "Accessibility Type",
"instructions": "Enter the Type id of the accessibility type for this asset content.",
"linked": false
},
"data": {
"description": "The asset content data",
"type": "string",
"format": "byte[]",
"elementId": "repository.AssetContent:data@dxtera.org",
"existingValue": "The existing binary data",
"elementLabel": "Data",
"instructions": "Enter data value.",
"linked": false
},
"url": {
"description": "The URL associated with this content for web-based retrieval.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "repository.AssetContent:url@dxtera.org",
"existingValue": "The existing url",
"elementLabel": "URL",
"instructions": "Enter a url for this asset content.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "assetContent not found" }
/compositions
Collection of Compositions in a system, federation of systems, or in a default Repository.
Get all Compositions in the system or default Repository.
Create a new Composition in the default Repository.
get /compositions
Get all Compositions in the system or default Repository.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "children", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCompositionType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCompositionType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCompositionType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3690%40demo.dxtera.org
- repositoryId: (string)
The id string to match a repository
Example:
repository.Repository%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Composition:9677@base.url",
"uri": "http://base.url/open/campusapi/repository/composition/repository.Composition%3A9677%40base.url",
"displayName": "Display Name of this Composition",
"description": "The description of this Composition",
"genusTypeId": "type.Type:defaultCompositionType@base.url",
"recordTypeIds": [ "type.Type:exampleCompositionRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Composition",
"brandingId": "asset.Asset:6924@Composition",
"license": "The license that applies to this 6924",
"sequestered": false,
"childIds": [ "repository.Composition:1143@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /compositions
Create a new Composition in the default Repository.
Query Parameters
- genusType: (string)
specify a particular composition type to create
Example:
type.Type%3AexampleCompositionType%40dxtera.org
- recordType: (array of )
specify support for one or more composition record types
Example:
[ "type.Type%3AexampleCompositionRecordType%40campusapi.org", "..." ]
- repositoryId: (string)
specify in which repository to create this composition
Example:
repository.Repository%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Composition",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this composition, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this composition, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this composition for display.",
"type": "string"
},
"description": {
"description": "The description of this composition.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this composition. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this composition. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this composition.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this composition. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this composition.",
"type": "string"
},
"sequestered": {
"description": "Whether this composition is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
}
}
}
Example:
{
"displayName": "Display Name of this Composition",
"description": "The description of this Composition",
"providerId": "resource.Resource:123@Composition",
"brandingId": "asset.Asset:2690@Composition",
"license": "The license that applies to this 2690",
"sequestered": false,
"childIds": [ "repository.Composition:8310@base.url", "..." ]
}
Query the collection of Compositions in a system, federation of systems, or in a default repository by posting a Query object.
Submit a query using a CompositionQuery object.
post /compositions/composition-query
Submit a query using a CompositionQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "children", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CompositionQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Composition with any provider, false to match Composition with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Composition with any branding, false to match Composition with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchSequestered": {
"description": "Match containables that are sequestered. true to match any sequestered containables, false to match non-sequestered containables",
"type": "boolean"
},
"matchRepositoryIds": {
"description": "List of Repository Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"repositoryId": {
"description": "Repository id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"repositoryQueries": {
"description": "RepositoryQueries to match Repository. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Composition:9677@base.url",
"uri": "http://base.url/open/campusapi/repository/composition/repository.Composition%3A9677%40base.url",
"displayName": "Display Name of this Composition",
"description": "The description of this Composition",
"genusTypeId": "type.Type:defaultCompositionType@base.url",
"recordTypeIds": [ "type.Type:exampleCompositionRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Composition",
"brandingId": "asset.Asset:6924@Composition",
"license": "The license that applies to this 6924",
"sequestered": false,
"childIds": [ "repository.Composition:1143@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Composition form metadata.
Get form metadata for creating a new Composition.
get /compositions/metadata
Get form metadata for creating a new Composition.
Query Parameters
- genusType: (string)
specify a particular composition type to create
Example:
type.Type%3AexampleCompositionType%40dxtera.org
- recordType: (array of )
specify support for one or more composition record types
Example:
[ "type.Type%3AexampleCompositionRecordType%40campusapi.org", "..." ]
- repositoryId: (string)
specify in which repository to create this composition
Example:
repository.Repository%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Composition",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this composition, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this composition, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this composition for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this composition",
"linked": false
},
"description": {
"description": "The description of this composition.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this composition",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this composition. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this composition. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this composition.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this composition",
"linked": false
},
"brandingIds": {
"description": "The branding of this composition. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Composition.Composition:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this composition",
"linked": false
},
"license": {
"description": "The licensing that applies to this composition.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this composition",
"linked": false
},
"sequestered": {
"description": "Whether this composition is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "Composition.Composition:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this composition is sequestered",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Composition
Get a particular Composition given its id.
Update a particular Composition given its id.
Delete a particular Composition given its id.
get /compositions/{compositionId}
Get a particular Composition given its id.
URI Parameters
- compositionId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "children", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "repository.Composition:9677@base.url",
"uri": "http://base.url/open/campusapi/repository/composition/repository.Composition%3A9677%40base.url",
"displayName": "Display Name of this Composition",
"description": "The description of this Composition",
"genusTypeId": "type.Type:defaultCompositionType@base.url",
"recordTypeIds": [ "type.Type:exampleCompositionRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Composition",
"brandingId": "asset.Asset:6924@Composition",
"license": "The license that applies to this 6924",
"sequestered": false,
"childIds": [ "repository.Composition:1143@base.url", "..." ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Composition not found" }
put /compositions/{compositionId}
Update a particular Composition given its id.
URI Parameters
- compositionId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Composition",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this composition, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this composition, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this composition for display.",
"type": "string"
},
"description": {
"description": "The description of this composition.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this composition. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this composition. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this composition.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this composition. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this composition.",
"type": "string"
},
"sequestered": {
"description": "Whether this composition is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
}
}
}
Example:
{
"displayName": "Display Name of this Composition",
"description": "The description of this Composition",
"providerId": "resource.Resource:123@Composition",
"brandingId": "asset.Asset:2690@Composition",
"license": "The license that applies to this 2690",
"sequestered": false,
"childIds": [ "repository.Composition:8310@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Composition has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Composition not found" }
delete /compositions/{compositionId}
Delete a particular Composition given its id.
URI Parameters
- compositionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Composition has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Composition not found" }
Entity representing a Composition form metadata for update
Get form metadata for updating an existing Composition.
get /compositions/{compositionId}/metadata
Get form metadata for updating an existing Composition.
URI Parameters
- compositionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Composition",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this composition, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this composition, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this composition for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this composition",
"linked": false
},
"description": {
"description": "The description of this composition.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this composition",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this composition. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this composition. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this composition.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this composition",
"linked": false
},
"brandingIds": {
"description": "The branding of this composition. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Composition.Composition:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this composition",
"linked": false
},
"license": {
"description": "The licensing that applies to this composition.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Composition.Composition:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this composition",
"linked": false
},
"sequestered": {
"description": "Whether this composition is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "Composition.Composition:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this composition is sequestered",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "composition not found" }
/repositories
Collection of Repositories in a system or federation of systems.
Get all Repositories.
Create a new Repository.
get /repositories
Get all Repositories.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleRepositoryType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleRepositoryType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleRepositoryType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- assetId: (string)
Get repositories mapped to this asset.
Example:
repository.Asset%3A500%40demo.dxtera.org
- assetContentId: (string)
Get repositories mapped to this asset-content.
Example:
repository.AssetContent%3A1300%40demo.dxtera.org
- compositionId: (string)
Get repositories mapped to this composition.
Example:
repository.Composition%3A1100%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Repository:4519@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A4519%40base.url",
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"genusTypeId": "type.Type:defaultRepositoryType@base.url",
"recordTypeIds": [ "type.Type:exampleRepositoryRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /repositories
Create a new Repository.
Query Parameters
- genusType: (string)
specify a particular repository type to create
Example:
type.Type%3AexampleRepositoryType%40dxtera.org
- recordType: (array of )
specify support for one or more repository record types
Example:
[ "type.Type%3AexampleRepositoryRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Repository",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this repository, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this repository, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this repository for display.",
"type": "string"
},
"description": {
"description": "The description of this repository.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this repository. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this repository. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this repository.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this repository. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this repository.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
}
Query the collection of Repositories in a system, federation of systems, or in a default repository by posting a Query object.
Submit a query using a RepositoryQuery object.
post /repositories/repository-query
Submit a query using a RepositoryQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "RepositoryQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match Repository with any provider, false to match Repository with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match Repository with any branding, false to match Repository with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRepositoryIds": {
"description": "List of Repository Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"repositoryId": {
"description": "Repository id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"repositoryQueries": {
"description": "RepositoryQueries to match Repository. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Repository:4519@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A4519%40base.url",
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"genusTypeId": "type.Type:defaultRepositoryType@base.url",
"recordTypeIds": [ "type.Type:exampleRepositoryRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Repository form metadata.
Get form metadata for creating a new Repository.
get /repositories/metadata
Get form metadata for creating a new Repository.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Repository",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this repository, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this repository, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this repository for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this repository",
"linked": false
},
"description": {
"description": "The description of this repository.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this repository",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this repository. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this repository. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this repository.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this repository",
"linked": false
},
"brandingIds": {
"description": "The branding of this repository. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Repository.Repository:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this repository",
"linked": false
},
"license": {
"description": "The licensing that applies to this repository.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this repository",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Repositories in the Repository hierarchy. A node with no parents is an orphan. While all Repository Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-repository
get /repositories/root-repository
Get all root root-repository
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Repository:4519@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A4519%40base.url",
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"genusTypeId": "type.Type:defaultRepositoryType@base.url",
"recordTypeIds": [ "type.Type:exampleRepositoryRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Repository
Get a particular Repository given its id.
Update a particular Repository given its id.
Delete a particular Repository given its id.
get /repositories/{repositoryId}
Get a particular Repository given its id.
URI Parameters
- repositoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "repository.Repository:4519@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A4519%40base.url",
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"genusTypeId": "type.Type:defaultRepositoryType@base.url",
"recordTypeIds": [ "type.Type:exampleRepositoryRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Repository not found" }
put /repositories/{repositoryId}
Update a particular Repository given its id.
URI Parameters
- repositoryId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Repository",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this repository, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this repository, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this repository for display.",
"type": "string"
},
"description": {
"description": "The description of this repository.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this repository. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this repository. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this repository.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this repository. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this repository.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Repository has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Repository not found" }
delete /repositories/{repositoryId}
Delete a particular Repository given its id.
URI Parameters
- repositoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Repository has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Repository not found" }
Entity representing a Repository form metadata for update
Get form metadata for updating an existing Repository.
get /repositories/{repositoryId}/metadata
Get form metadata for updating an existing Repository.
URI Parameters
- repositoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Repository",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this repository, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this repository, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this repository for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this repository",
"linked": false
},
"description": {
"description": "The description of this repository.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this repository",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this repository. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this repository. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this repository.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this repository",
"linked": false
},
"brandingIds": {
"description": "The branding of this repository. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Repository.Repository:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this repository",
"linked": false
},
"license": {
"description": "The licensing that applies to this repository.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Repository.Repository:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this repository",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "repository not found" }
Get child Repositories for the given Repository in the hierarchy.
get /repositories/{repositoryId}/children
Get child Repositories for the given Repository in the hierarchy.
URI Parameters
- repositoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Repository:4519@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A4519%40base.url",
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"genusTypeId": "type.Type:defaultRepositoryType@base.url",
"recordTypeIds": [ "type.Type:exampleRepositoryRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Repository as child of the given Repository in the hierarchy.
Remove the given Repository as a child of the given Repository in the hierarchy.
put /repositories/{repositoryId}/children/{childId}
Add Repository as child of the given Repository in the hierarchy.
URI Parameters
- repositoryId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Repository has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "repository not found" }
delete /repositories/{repositoryId}/children/{childId}
Remove the given Repository as a child of the given Repository in the hierarchy.
URI Parameters
- repositoryId: required(string)
- childId: required(string)
Get parent Repositories for the given Repository in the hierarchy.
get /repositories/{repositoryId}/parents
Get parent Repositories for the given Repository in the hierarchy.
URI Parameters
- repositoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Repository:4519@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A4519%40base.url",
"displayName": "Display Name of this Repository",
"description": "The description of this Repository",
"genusTypeId": "type.Type:defaultRepositoryType@base.url",
"recordTypeIds": [ "type.Type:exampleRepositoryRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Repository@base.url",
"license": "The license that applies to this Repository"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all Assets in this Repository
get /repositories/{repositoryId}/assets
Get all Assets in this Repository
URI Parameters
- repositoryId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "source", "providerLinks", "composition", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleAssetType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleAssetType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleAssetType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Asset:6640@base.url",
"uri": "http://base.url/open/campusapi/repository/asset/repository.Asset%3A6640%40base.url",
"displayName": "Display Name of this Asset",
"description": "The description of this Asset",
"genusTypeId": "type.Type:defaultAssetType@base.url",
"recordTypeIds": [ "type.Type:exampleAssetRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Asset",
"brandingId": "asset.Asset:5506@Asset",
"license": "The license that applies to this 5506",
"title": "This is the Title",
"publicDomain": true,
"copyright": "This is the Copyright",
"copyrightRegistration": "This is the string for CopyrightRegistration",
"distributeVerbatim": true,
"distributeAlterations": true,
"distributeCompositions": true,
"sourceId": "resource.Resource:9576@base.url",
"providerLinkIds": [ "resource.Resource:1110@base.url", "..." ],
"createdDate": "2021-07-21T23:15:30.000Z",
"published": true,
"publishedDate": "2021-07-21T23:15:30.000Z",
"principalCreditString": "This is the PrincipalCreditString",
"compositionId": "repository.Composition:8073@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Asset to this Repository
Remove the given Asset from the Repository.
put /repositories/{repositoryId}/assets/{assetId}
Add the given Asset to this Repository
URI Parameters
- repositoryId: required(string)
- assetId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Asset has been added to Repository" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Asset not found" }
delete /repositories/{repositoryId}/assets/{assetId}
Remove the given Asset from the Repository.
URI Parameters
- repositoryId: required(string)
- assetId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Asset has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Asset not found" }
Get all Compositions in this Repository
get /repositories/{repositoryId}/compositions
Get all Compositions in this Repository
URI Parameters
- repositoryId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", "children", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCompositionType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCompositionType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCompositionType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Composition:9677@base.url",
"uri": "http://base.url/open/campusapi/repository/composition/repository.Composition%3A9677%40base.url",
"displayName": "Display Name of this Composition",
"description": "The description of this Composition",
"genusTypeId": "type.Type:defaultCompositionType@base.url",
"recordTypeIds": [ "type.Type:exampleCompositionRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@Composition",
"brandingId": "asset.Asset:6924@Composition",
"license": "The license that applies to this 6924",
"sequestered": false,
"childIds": [ "repository.Composition:1143@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Composition to this Repository
Remove the given Composition from the Repository.
put /repositories/{repositoryId}/compositions/{compositionId}
Add the given Composition to this Repository
URI Parameters
- repositoryId: required(string)
- compositionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Composition has been added to Repository" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Composition not found" }
delete /repositories/{repositoryId}/compositions/{compositionId}
Remove the given Composition from the Repository.
URI Parameters
- repositoryId: required(string)
- compositionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Composition has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Composition not found" }