CampusAPI Repository Services API documentation version 0.1.2
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) |
dataIds | The asset content data. References an array of transport.DataInputSt objects. | string(osid‑id)[] |
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 2020 DXtera Institute. Based on the Open Service Interface Defitions: 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
- 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:7150@base.url",
"uri": "http://base.url/open/campusapi/repository/asset/repository.Asset%3A7150%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:3302@Asset",
"license": "The license that applies to this 3302",
"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:5937@base.url",
"providerLinkIds": [ "resource.Resource:9095@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:9944@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:9189@Asset",
"license": "The license that applies to this 9189",
"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:4000@base.url",
"providerLinkIds": [ "resource.Resource:8801@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:7586@base.url"
}
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 asset given its id.
Update a given asset.
Delete a given asset.
get /assets/{assetId}
Get a asset given its id.
URI Parameters
- assetId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "repository.Asset:7150@base.url",
"uri": "http://base.url/open/campusapi/repository/asset/repository.Asset%3A7150%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:3302@Asset",
"license": "The license that applies to this 3302",
"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:5937@base.url",
"providerLinkIds": [ "resource.Resource:9095@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:9944@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 given asset.
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:9189@Asset",
"license": "The license that applies to this 9189",
"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:4000@base.url",
"providerLinkIds": [ "resource.Resource:8801@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:7586@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 given asset.
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 assetContents in a system, federation of systems, or in a default repository.
Get all assetContents in the system or default repository.
Create a new assetContent in the default repository.
get /assets/{assetId}/assetContents
Get all assetContents in the system or default repository.
URI Parameters
- assetId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.AssetContent:572@base.url",
"uri": "http://base.url/open/campusapi/repository/asset_content/repository.AssetContent%3A572%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:1300@base.url",
"accessibilityType": "type.Type:3795@base.url",
"data": "..DataInputStream..",
"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 in the default repository.
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: assetContent
Example:
{
"displayName": "Display Name of this AssetContent",
"description": "The description of this AssetContent",
"accessibilityType": "type.Type:609@base.url",
"data": "..DataInputStream..",
"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 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", "..." ]
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": "array",
"elementId": "repository.AssetContent:data@dxtera.org",
"existingValue": [],
"elementLabel": "Data",
"instructions": "Enter Ids for data of this asset content.",
"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 assetContent given its id.
Update a given assetContent.
Delete a given assetContent.
get /assets/{assetId}/assetContents/{assetContentId}
Get a 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:572@base.url",
"uri": "http://base.url/open/campusapi/repository/asset_content/repository.AssetContent%3A572%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:1300@base.url",
"accessibilityType": "type.Type:3795@base.url",
"data": "..DataInputStream..",
"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 given assetContent.
URI Parameters
- assetId: required(string)
- assetContentId: required(string)
Body
Media type: application/json
Type: assetContent
Example:
{
"displayName": "Display Name of this AssetContent",
"description": "The description of this AssetContent",
"accessibilityType": "type.Type:609@base.url",
"data": "..DataInputStream..",
"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 given assetContent.
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": "array",
"elementId": "repository.AssetContent:data@dxtera.org",
"existingValue": [],
"elementLabel": "Data",
"instructions": "Enter Ids for data of this asset content.",
"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
- 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:911@base.url",
"uri": "http://base.url/open/campusapi/repository/composition/repository.Composition%3A911%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:277@Composition",
"license": "The license that applies to this 277",
"sequestered": false,
"childIds": [ "repository.Composition:6376@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:3898@Composition",
"license": "The license that applies to this 3898",
"sequestered": false,
"childIds": [ "repository.Composition:6311@base.url", "..." ]
}
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 composition given its id.
Update a given composition.
Delete a given composition.
get /compositions/{compositionId}
Get a composition given its id.
URI Parameters
- compositionId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "repository.Composition:911@base.url",
"uri": "http://base.url/open/campusapi/repository/composition/repository.Composition%3A911%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:277@Composition",
"license": "The license that applies to this 277",
"sequestered": false,
"childIds": [ "repository.Composition:6376@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 given composition.
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:3898@Composition",
"license": "The license that applies to this 3898",
"sequestered": false,
"childIds": [ "repository.Composition:6311@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 given composition.
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
- 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:602@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A602%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"
}
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:602@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A602%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 repository given its id.
Update a given repository.
Delete a given repository.
get /repositories/{repositoryId}
Get a repository given its id.
URI Parameters
- repositoryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "repository.Repository:602@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A602%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 given repository.
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 given repository.
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:602@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A602%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:602@base.url",
"uri": "http://base.url/open/campusapi/repository/repository/repository.Repository%3A602%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)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Asset:7150@base.url",
"uri": "http://base.url/open/campusapi/repository/asset/repository.Asset%3A7150%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:3302@Asset",
"license": "The license that applies to this 3302",
"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:5937@base.url",
"providerLinkIds": [ "resource.Resource:9095@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:9944@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)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "repository.Composition:911@base.url",
"uri": "http://base.url/open/campusapi/repository/composition/repository.Composition%3A911%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:277@Composition",
"license": "The license that applies to this 277",
"sequestered": false,
"childIds": [ "repository.Composition:6376@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" }