Table of Contents

  1. Introduction
  2. Methods
    1. addDatastream
    2. addRelationship
    3. compareDatastreamChecksum
    4. export
    5. getDatastream
    6. getDatastreamHistory
    7. getDatastreams
    8. getNextPID
    9. getObjectXML
    10. getRelationships
    11. ingest
    12. modifyDatastreamByReference
    13. modifyDatastreamByValue
    14. modifyObject
    15. purgeDatastream
    16. purgeObject
    17. purgeRelationship
    18. setDatastreamState
    19. setDatastreamVersionable
  3. WSDL
  1. Introduction

    The Fedora Management service defines an open interface for administering the repository, including creating, modifying, and deleting digital objects, or components within digital objects. The Management service interacts with the underlying repository system to read content from and write content to the digital object and datastream storage areas. The Management service exposes a set of operations that enable a client to view and manipulate digital objects from an abstract perspective, meaning that a client does not need to know anything about underlying storage formats, storage media, or storage management schemes for objects. Also, the underlying repository system handles the details of storing datastream content within the repository, as well as mediating connectivity for datastreams that reference external content.
  2. Methods

    1. addDatastream

      Creates a new datastream in the object.

      Parameters:
      • pid: The PID of the object.
      • dsID: The datastream ID (64 characters max). If null, Fedora will generate the value.
      • altIDs: Alternate identifiers for the datastream.
      • dsLabel: The label for the datastream.
      • versionable: Enable versioning of the datastream.
      • MIMEType: The mime-type of the datastream.
      • formatURI: The format URI of the datastream.
      • dsLocation: Location of managed or external datastream content.
      • controlGroup: One of "X", "M", "R", or "E" (Inline XML, Managed Content, Redirect, or External Referenced).
      • dsState: One of "A", "D", or "I" (Active, Deleted, or Inactive).
      • checksumType: The algorithm used to compute the checksum. One of "DEFAULT", "DISABLED", "MD5", "SHA-1", "SHA-256", "SHA-385", "SHA-512", "HAVAL", "TIGER", "WHIRLPOOL".
      • checksum: The value of the checksum represented as a hexadecimal string.
      • logMessage: A log message.
      Returns: the datastreamID of the newly added datastream.
    2. addRelationship

      Creates a new relationship in the object. Adds the specified relationship to the object's RELS-EXT datastream. If the Resource Index is enabled, the relationship will be added to the Resource Index.

      Parameters:
      • pid: The PID of the object.
      • relationship: The predicate.
      • object: The object.
      • isLiteral: A boolean value indicating whether the object is a literal.
      • datatype: The datatype of the literal. Optional.
      Returns: true if and only if the relationship was added.
    3. compareDatastreamChecksum

      Verifies that the datastream content has not changed since the checksum was initially computed.

      Parameters:
      • pid: The PID of the object.
      • dsID: The datastream ID.
      • versionDate: A dateTime indicating the version of the datastream to verify. If null, Fedora will use the most recent version.
      Returns: the checksum if there is no difference, a message indicating checksum failure otherwise.
    4. export

      Exports the entire digital object in the specified XML format, and encoded appropriately for the specified export context.

      Parameters:
      • pid: The pid of the object.
      • format: The XML format to export, e.g. "info:fedora/fedora-system:FOXML-1.1", "info:fedora/fedora-system:FOXML-1.0", "info:fedora/fedora-system:METSFedoraExt-1.1", or "info:fedora/fedora-system:ATOM-1.0".
      • context: The export context, which determines how datastream URLs and content are represented. One of "public", "migrate", or "archive".
      Returns: the digital object in the requested XML format.
    5. getDatastream

      Gets the specified datastream.

      Parameters:
      • pid: The pid of the object.
      • dsID: The datastream ID.
      • asOfDateTime: the date/time stamp specifying the desired view of the object. If null, the current view of the object (the most recent time) is assumed.
      Returns: the specified datastream.
    6. getDatastreamHistory

      Gets all versions of a datastream, sorted from most to least recent.

      Parameters:
      • pid: The pid of the object.
      • dsID: The datastream ID.
      Returns: all versions of a datastream, sorted from most to least recent.
    7. getDatastreams

      Gets all versions of a datastream, sorted from most to least recent.

      Parameters:
      • pid: The pid of the object.
      • dsID: The datastream ID.
      Returns: all versions of a datastream, sorted from most to least recent.
    8. getNextPID

      Retrieves the specified number of next available pid(s) for a given pid namespace.

      Parameters:
      • numPIDs: The number of pids to retrieve.
      • pidNamespace: The namespace of the requested pid(s).
      Returns: An array of the requested next available pid(s).
    9. getObjectXML

      Gets the serialization of the digital object to XML appropriate for persistent storage in the repository, ensuring that any URLs that are relative to the local repository are stored with the Fedora local URL syntax. The Fedora local URL syntax consists of the string "local.fedora.server" standing in place of the actual "hostname:port" on the URL). Managed Content (M) datastreams are stored with internal identifiers in dsLocation. Also, within selected inline XML datastreams (i.e., WSDL and SERVICE_PROFILE) any URLs that are relative to the local repository will also be stored with the Fedora local URL syntax.

      Parameters:
      • pid: The PID of the object.
      Returns: The digital object in Fedora's internal storage format.
    10. getRelationships

      Get the relationships asserted in the object's RELS-EXT datastream that match the given criteria.

      Parameters:
      • pid: The PID of the object.
      • relationship: The predicate to match. A null value matches all predicates.
      Returns: An array of RelationshipTuples, each containing the subject, predicate and object matching the search criteria.
    11. ingest

      Creates a new digital object in the repository. The object's initial state will be A (active). If the XML document does not specify the OBJID attribute of the root element, the repository will generate and return a new pid for the object resulting from this request. That pid will have the namespace of the repository. If the XML document specifies a pid, it will be assigned to the digital object provided that 1. it conforms to the Fedora pid Syntax, 2. it uses a namespace that matches the "retainPIDs" value configured for the repository, and 3. it does not collide with an existing pid of an object in the repository.

      Parameters:
      • objectXML: The digital object in an XML submission format.
      • format: The XML format of objectXML, e.g. "info:fedora/fedora-system:FOXML-1.1", "info:fedora/fedora-system:FOXML-1.0", "info:fedora/fedora-system:METSFedoraExt-1.1", or "info:fedora/fedora-system:ATOM-1.0".
      • logMessage: A log message.
      Returns: The pid of the newly created object.
    12. modifyDatastreamByReference

      Parameters:
      • pid: The PID of the object.
      • dsID: The datastream ID.
      • altIDs: Alternate identifiers for the datastream, if any.
      • dsLabel: The label for the datastream.
      • MIMEType: The mime type
      • formatURI: Optional format URI of the datastream.
      • dsLocation: Location of managed or external datastream content.
      • checksumType: The algorithm used to compute the checksum. One of "DEFAULT", "DISABLED", "MD5", "SHA-1", "SHA-256", "SHA-385", "SHA-512", "HAVAL", "TIGER", "WHIRLPOOL".
      • checksum: The value of the checksum represented as a hexadecimal string.
      • logMessage: A log message.
      • force: Force the update even if it would break a data contract.
      Returns: The timestamp of the operation according to the server, in ISO8601 format.
    13. modifyDatastreamByValue

      Modifies an existing datastream in an object, by value. This operation is only valid for Inline XML datastreams (i.e. controlGroup "X").

      Parameters:
      • pid: The PID of the object.
      • dsID: The datastream ID.
      • altIDs: Alternate identifiers for the datastream, if any.
      • dsLabel: The label for the datastream.
      • MIMEType: The mime type
      • formatURI: Optional format URI of the datastream.
      • dsContent: The content of the datastream..
      • checksumType: The algorithm used to compute the checksum. One of "DEFAULT", "DISABLED", "MD5", "SHA-1", "SHA-256", "SHA-385", "SHA-512", "HAVAL", "TIGER", "WHIRLPOOL".
      • checksum: The value of the checksum represented as a hexadecimal string.
      • logMessage: A log message.
      • force: Force the update even if it would break a data contract.
      Returns: The timestamp of the operation according to the server, in ISO8601 format.
    14. modifyObject

      Modify an object.

      Parameters:
      • pid: The PID of the object.
      • state: The new state, "A", "I" or "D". Null means leave unchanged.
      • label: the new label. Null means leave unchanged.
      • ownerId: The ownerId for the object.
      • logMessage: A log message.
      Returns: The timestamp of the operation according to the server, in ISO8601 format.
    15. purgeDatastream

      Permanently removes one or more versions of a datastream from an object.

      Parameters:
      • pid: The PID of the object.
      • dsID: The datastream ID.
      • startDT: The (inclusive) start date-time stamp of the range. If null, this is taken to be the lowest possible value, and thus, the entire version history up to the endDT be purged.
      • endDT: The (inclusive) ending date-time stamp of the range. If null, this is taken to be the greatest possible value, and thus, the entire version history back to the startDT will be purged.
      • logMessage: A log message.
      • force: Force the update even if it would break a data contract.
      Returns: The creation date/time of each deleted datastream.
    16. purgeObject

      Permanently removes an object from the repository.

      Parameters:
      • pid: The PID of the object.
      • logMessage: A log message.
      • force: Force the update even if it would break a dependency.
      Returns: The timestamp of the operation according to the server, in ISO8601 format.
    17. purgeRelationship

      Delete the specified relationship. This method will remove the specified relationship(s) from the RELS-EXT datastream. If the Resource Index is enabled, this will also delete the corresponding triples from the Resource Index.

      Parameters:
      • pid: The PID of the object.
      • relationship: The predicate, null matches any predicate.
      • object: The object, null matches any object.
      • isLiteral: A boolean value indicating whether the object is a literal.
      • datatype: The datatype of the literal. Optional.
      Returns: .
    18. setDatastreamState

      Sets the state of a datastream to the specified state value.

      Parameters:
      • pid: The PID of the object.
      • dsID: The datastream ID.
      • dsState: One of "A", "D", or "I" (Active, Deleted, or Inactive).
      • logMessage: A log message.
      Returns: The timestamp of the operation according to the server, in ISO8601 format.
    19. setDatastreamVersionable

      Selectively turn versioning on or off for selected datastream. When versioning is disabled, subsequent modifications to the datastream replace the current datastream contents and no versioning history is preserved.

      Parameters:
      • pid: The PID of the object.
      • dsID: The datastream ID.
      • versionable: Enable versioning of the datastream.
      • logMessage: A log message.
      Returns: The timestamp of the operation according to the server, in ISO8601 format.
  3. WSDL

    1. Offline For reference, an offline copy of the API-M WSDL is available here.
    2. Online When running your own Fedora server, an online copy of the API-M WSDL will be made publicly available at /wsdl?api=API-M. For example: http://localhost:8080/fedora/wsdl?api=API-M