Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
titleSecurity Initialization REST Methods

Initialize Security Users

  • Purpose: Allows the initialization of authorized users
  • Request:
    • POST https://host:port/durastore/security
    • POST https://host:port/duraservice/security
    • POST https://host:port/duradmin/security
    • POST https://host:port/durareport/security
  • Request Body: XML similar to:

    Code Block
    xml
    xml
    <?xml version="1.0" encoding="UTF-8"?>
    <dur:security-users schemaVersion="0.2" xmlns:dur="duracloud.org">
      <security-user>
        <username>username-0</username>
        <password>password-0</password>
        <enabled>true</enabled>
        <accountNonExpired>true</accountNonExpired>
        <credentialsNonExpired>true</credentialsNonExpired>
        <accountNonLocked>true</accountNonLocked>
        <grantedAuthorities>ROLE_USER</grantedAuthorities>
      </security-user>
      <security-user>
        <username>username-1</username>
        <password>password-1</password>
        <enabled>false</enabled>
        <accountNonExpired>false</accountNonExpired>
        <credentialsNonExpired>false</credentialsNonExpired>
        <accountNonLocked>false</accountNonLocked>
        <grantedAuthorities>ROLE_USER ROLE_ADMIN</grantedAuthorities>
      </security-user>
    </dur:security-users>
    
  • Response Code: 200 (on success)
  • Response Body: "Initialization Successful" (on success)

...

Panel
titleSpace REST Methods

Get Spaces

  • Purpose: Provides a listing of all of the spaces that a customer has created
  • Request: GET https://host:port/durastore/spaces ? (storeID)
  • Response Code: 200 (on success)
  • Response Body: XML similar to:

    Code Block
    languagehtml/xml
    <spaces>
      <space id="space1" />
      <space id="space2" />
    </spaces>
    

Get Space

  • Purpose: Provides a listing of the contents of a space along with space properties
  • Request: GET https://host:port/durastore/spaceID? (storeID) (prefix) (maxResults) (marker)
    • storeID (optional) - ID of the content storage provider to query (default is primary store)
    • prefix (optional) - Only retrieve content ids with this prefix (default is all content ids)
    • maxResults (optional) - The maximum number of content IDs to return in the list (default is 1000)
      note: the maximum allowable value for maxResults is 1000. Any larger value will be reduced to 1000.
    • marker (optional) - The content ID marking the last item in the previous set (default is the first set of ids)
  • Response Code: 200 (on success)
  • Response Body: XML similar to:

    Code Block
    languagehtml/xml
    <space id="space1">
      <item>Image 1</item>
      <item>Image 2</item>
    </space>
    
  • Response Headers: All available space properties, example:

    Code Block
    languagenone
    x-dura-meta-space-count: 65
    x-dura-meta-space-access: OPEN
    x-dura-meta-space-created: Mon, 01 Jan 2000 08:00:00 EST
    x-dura-meta-custom-property: Custom Property Value
    

Get Space Properties

  • Purpose: Provides all space properties
  • Request: HEAD https://host:port/durastore/spaceID ? (storeID)
  • Response Code: 200 (on success)
  • Response Headers: Same as for Get space (above)

Get Space ACLs

  • Purpose: Provides all space ACLs, with values of 'r' (read) and 'w' (read/write)
  • Request: HEAD https://host:port/durastore/acl/spaceID ? (storeID)
  • Response Code: 200 (on success)
  • Response Headers: All available space ACLs, example:

    Code Block
    languagenone
    x-dura-meta-acl-user0: WRITE
    x-dura-meta-acl-user1: WRITE
    x-dura-meta-acl-group-curators: READ
    

Create Space

  • Purpose: Creates a new space
  • Request: PUT https://host:port/durastore/spaceID ? (storeID)
  • Request Headers: Properties about the space, example:

    Code Block
    languagenone
    x-dura-meta-space-access: OPEN
    x-dura-meta-custom-property: Custom Property Value
    
  • Response Code: 201 (on success)
  • Response Headers: Location of the new space (i.e. the URL used to create the space), example:

    Code Block
    languagebash
    Location: https://myhost:8080/durastore/space1

Set Space Properties

  • Purpose: Updates the properties associated with a space
  • Request: POST https://host:port/durastore/spaceID ? (storeID)
  • Request Headers: Same as Create space (above)
  • Response Code: 200 (on success)
  • Response Body: "Space $spaceID updated successfully" (on success)

Set Space ACLs

  • Purpose: Updates the ACLs associated with a space
  • Request: POST https://host:port/durastore/acl/spaceID ? (storeID)
  • Request Headers: For 'user' ACLs the header prefix must be 'x-dura-meta-acl-' and for 'groups' the header prefix must be 'x-dura-meta-acl-group-'. Allowable values for ACL headers are: 'READ' and 'WRITE'.
    Example:

    Code Block
    languagenone
    x-dura-meta-acl-user0: WRITE
    x-dura-meta-acl-user1: WRITE
    x-dura-meta-acl-group-curators: READ
    
  • Response Code: 200 (on success)
  • Response Body: "Space $spaceID ACLs updated successfully" (on success)

Delete Space

  • Purpose: Deletes a space
  • Request: DELETE https://host:port/durastore/spaceID ? (storeID)
  • Response Code: 200 (on success)
  • Response Body: "Space $spaceID deleted successfully" (on success)
Panel
titleContent REST Methods

Get Content

  • Purpose: Retrieves a piece of content along with its properties
  • Request: GET https://host:port/durastore/spaceID/contentIDcontentID ? (storeID) (attachment)
    • if attachment param value is true, a Content-Disposition header is included with the response
  • Response Code: 200 (on success)
  • Response Body: The content stream
  • Response Headers: All available content properties, example:

    Code Block
    languagenone
    Content-Type: text/plain
    Content-Length: 5732
    Content-MD5: 3456709234785097473839202
    ETag: 3456709234785097473839202
    x-dura-meta-content-name: Testing Content
    x-dura-meta-content-owner: JSmith
    

Get Content Properties

  • Purpose: Retrieves the properties of a piece of content without the content itself
  • Request: HEAD https://host:port/durastore/spaceID/contentID ? (storeID)
  • Response Code: 200 (on success)
  • Response Headers: Same as Get content (above)

Store Content

  • Purpose: Adds a piece of content to the store
  • Request: PUT https://host:port/durastore/spaceID/contentID ? (storeID)
  • Request Body: Content to be added
  • Request Headers: Properties about the content, example:

    Code Block
    languagenone
    Content-Type: text/plain
    Content-MD5: 4cd56e137a93a1accb43c5d32f4afffb
    x-dura-meta-content-name: Testing Content
    x-dura-meta-content-owner: JSmith
    
  • Response Code: 201 (on success)
  • Response Headers:
    • MD5 checksum of stored content
    • ETag of stored content
    • Location of the new content (i.e. the URL used to create the content), example:

      Code Block
      languagebash
      Content-MD5: 4cd56e137a93a1accb43c5d32f4afffb
      ETag: 4cd56e137a93a1accb43c5d32f4afffb
      Location: https://myhost:8080/durastore/space1/content1
      
  • Usage Notes
    • When the optional Content-MD5 header is included, the final checksum of the stored file is compared against the MD5 value included in the header to ensure that the file was stored correctly. If the header is not included, an MD5 checksum is computed as the file is transferred to storage, and that value is used in the final comparison.

Copy Content

  • Purpose: Copies a piece of content from a source space to a destination space within a given store
  • Request: PUT https://host:port/durastore/spaceID/contentID ? (storeID)
  • Request Body: must not exist
  • Request Headers: Copy source, example:

    Code Block
    languagenone
    x-dura-meta-copy-source: space-id/content-id
    
  • Optional Request Headers: Copy source store, example:

    Code Block
    languagenone
    x-dura-meta-copy-source-store: storeId
    
  • Response Code: 201 (on success)
  • Response Headers:
    • MD5 checksum of stored content
    • ETag of stored content
    • Location of the new content (i.e. the URL used to create the content), example:

      Code Block
      languagebash
      Content-MD5: 4cd56e137a93a1accb43c5d32f4afffb
      ETag: 4cd56e137a93a1accb43c5d32f4afffb
      Location: https://myhost:8080/durastore/space1/content1
      
  • Usage Notes
    • The properties associated with the source content item are copied to the destination content item.
    • The source and destination spaces may be the same.
    • Including the optional header indicates that the copy action should retrieve the source file from a space in the specified storage provider. This allows for copying a file from one storage provider to another.

Set Content Properties

  • Purpose: Updates the properties associated with a piece of content
  • Request: POST https://host:port/durastore/spaceID/contentID ? (storeID)
  • Request Headers: Same as Store content (above)
  • Response Code: 200 (on success)
  • Response Body: "Content $contentID updated successfully"

Delete Content

  • Purpose: Removes a piece of content from the store
  • Request: DELETE https://host:port/durastore/spaceID/contentID ? (storeID)
  • Response Code: 200 (on success)
  • Response Body: "Content $contentID deleted successfully"

...

Panel
titleService REST Methods

Get Services

  • Purpose: Retrieves a listing of services, along with their configuration options
  • Request: GET https://host:port/duraservice/servicesservices ? (show)
    • Parameter options for show (optional)
      1. available (default) - Includes only services which have not been deployed but are available for deployment
      2. deployed - Includes only services which have been deployed and started
  • Response Code: 200 (on success)
  • Response Body: XML list of services (see service config xsd)

Get Service

  • Purpose: Retrieves information about a particular service including description, configuration options, and all deployments
  • Request: GET https://host:port/duraservice/serviceID
  • Response Code: 200 (on success)
  • Response Body: XML service (see service config xsd)

Get Deployed Service

  • Purpose: Retrieves information about a deployed service including description, configuration options, and a single deployment indicating the configuration options in use
  • Request: GET https://host:port/duraservice/serviceID/deploymentID
  • Response Code: 200 (on success)
  • Response Body: XML service (see service config xsd)

Get Deployed Service Properties

  • Purpose: Retrieves the runtime properties of a deployed service
  • Request: GET https://host:port/duraservice/serviceID/deploymentID/properties
  • Response Code: 200 (on success)
  • Response Body: XML service (simple xml Map serialization)

Deploy Service

  • Purpose: Deploys and starts an available service
  • Request: PUT https://host:port/duraservice/serviceIDserviceID ? (serviceHost)
    • Parameter value for serviceHost (optional) should indicate the services host on which the service should be deployed. Default is the primary customer host.
  • Request Body: XML user configuration indicating the config selections for the service (see user config portion of service config xsd)
  • Response Code: 201 (on success)
  • Response Header: Location header indicates the URL at which information about the deployed service can be retrieved (the URL for a get deployed service call) which includes the deploymentID

Update Service Configuration

  • Purpose: Updates the configuration of a deployed service
  • Request: POST https://host:port/duraservice/serviceID/deploymentID
  • Request Body: Updated XML user configuration indicating the config selections for the service (see user config portion of service config xsd)
  • Response Code: 200 (on success)

UnDeploy Service

  • Purpose: Stops and Undeploys a deployed service
  • Request: DELETE https://host:port/duraservice/serviceID/deploymentID
  • Response Code: 200 (on success)

...

Panel
titleReporter: Storage Report REST Methods

Get Latest Storage Report

  • Purpose: Provides the most current storage report in XML format
  • Request: GET https://host:port/duraboss/report/storage
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the storage report XSD

Get Storage Report List

  • Purpose: Provides a list of all storage report IDs
  • Request: GET https://host:port/duraboss/report/storage/list
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the storage report XSD

Get Storage Report

  • Purpose: Provides a specific storage report based on the provided report ID
  • Request: GET https://host:port/duraboss/report/storage/reportID
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the storage report XSD

Get Storage Report Info

  • Purpose: Provides a information about the current status of the storage reporting system
  • Request: GET https://host:port/duraboss/report/storage/info
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the storage report XSD

Start Storage Report

  • Purpose: Starts a storage report if one is not already running
  • Request: POST https://host:port/duraboss/report/storage
  • Response Code: 200 (on success)
  • Response Body: "Report Started" (on success), or ""Report Already In Progress" (if a report is already in progress)

Cancel Storage Report

  • Purpose: Cancels a running storage report
  • Request: DELETE https://host:port/duraboss/report/storage
  • Response Code: 200 (on success)
  • Response Body: "Storage report cancelled"

Schedule Storage Report

  • Purpose: Schedules a time for a storage report to be run
  • Request: POST https://host:port/duraboss/report/storage/scheduleschedule ? (startTime) (frequency)
    • startTime: time (in milliseconds since the epoch) to begin the next storage report
    • frequency: time (in milliseconds) to wait between running reports (minimum value is 600000)
  • Response Code: 200 (on success)
  • Response Body: "Storage reports scheduled" (on success)

Cancel Storage Report Schedule

  • Purpose: Cancels all entries on the storage report schedule
  • Request: DELETE https://host:port/duraboss/report/storage/schedule
  • Response Code: 200 (on success)
  • Response Body: "Storage Reports schedule cancelled"
Panel
titleReporter: Service Report REST Methods

Get Deployed Services Report

  • Purpose: Provides a listing of the services which are currently deployed
  • Request: GET https://host:port/duraboss/report/service/deployed
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the service report XSDs

Get Completed Services Report

  • Purpose: Provides a listing of the most recent completed services
  • Request: GET https://host:port/duraboss/report/serviceservice ? (limit)
    • Parameter value for limit (optional) should indicate the maximum number of services to return in the report (default is 20, max is 1000)
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the service report XSDs

Get Completed Services Report List

  • Purpose: Provides a listing of all service report IDs
  • Request: GET https://host:port/duraboss/report/service/list
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the service report XSDs

Get Services Report

  • Purpose: Provides a specific services report based on the provided report ID
  • Request: GET https://host:port/duraboss/report/service/reportID
  • Response Code: 200 (on success)
  • Response Body: XML, defined by the service report XSDs

...

Panel
titleContent Manifest REST Methods

Get Content Manifest

  • Purpose: Requests the content manifest for the provided spaceId, in the requested format, as of the provided date, and for the provided storeID
  • Request: GET https://host:port/duraboss/manifest/spaceIdspaceId ? (format) (date) (storeID)
    • Parameter options for format (optional)
      1. tsv (default) - Produces content manifest in tab-separated-value format
      2. bagit - Produces content manifest in BagIt format
    • Parameter options for date (optional, current datetime is default)
      1. Any formatted date of the form: 'yyyy-MM-dd'T'HH:mm:ss.sss' or 'yyyy-MM' or any form in between these two
    • Parameter options for storeID (optional, default is primary store)
  • Response Code: 200 (on success)
  • Response Body: Plain text content manifest in the requested format