Versions Compared

Key

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

...

Panel
titleTask REST Methods
Info

Tasks are used to perform storage provider actions which cannot be performed in a generic manner across multiple providers.

Get Tasks

  • Purpose: Provides a listing of all of the supported tasks for a given provider. Note that if no storeID parameter is included, the task listing is provided for the primary storage provider.
  • Request: GET https://host:port/durastore/task ? (storeID)
  • Response Code: 200 (on success)
  • Response Body: XML similar to:

    Code Block
    languagehtml/xml
    <list>
      <string>task1</string>
      <string>task2</string>
    </list>
    

Perform Task

  • Purpose: Performs a particular task. Note that most tasks can be performed by only one storage provider type.
  • Request: POST https://host:port/durastore/task/taskName ? (storeID)
  • Request Body: Parameters for task. Each task will expect parameters in a specific format, see task listing for more details.
  • Response Code: 200 (on success)
  • Response Body: Response value for task, format varies by task.
Tasks

taskName

Storage Provider

Name

Description

Request Body

Response Body

enable-streaming

Amazon S3

Enable Streaming task

Enables RTMP streaming for all files within a DuraCloud space through the use of Amazon's Cloudfront streaming capability. This task may take up to 15 minutes to complete.

Name of the space for which streaming is to be enabled

Text indicating the results of the task, including the streaming host

disable-streaming

Amazon S3

Disable Streaming task

Disables streaming by removing the ability for Cloudfront to access files within a space. This does not remove the streaming distribution, only disables its use, so enabling streaming on the same space again can be performed much more quickly. Some content in the space may continue to be available for streaming up to 24 hours after streaming has been disabled.

Name of the space for which streaming is to be disabled

Text indicating the results of the task

delete-streaming

Amazon S3

Delete Streaming task

Removes a streaming distribution created by the enable-streaming task. This task should be performed after performing the disable-streaming task. This task may take up to 15 minutes to complete, after which no content in the space will be available for streaming.

Name of the space for which streaming is to be deleted

Text indicating the results of the task

noop

Amazon S3

Test task

Provides a simple way to test the calling of tasks

Body content is ignored

Text indicating successful task completion

restore-contentAmazon GlacierRestore Content taskProvides the capability to request that specific content items stored in Glacier be retrieved. Content items which are retrieved are made available 3-5 hours after this request is made, and remains available for 2 weeks.Name of the space and the content item in the form: spaceID/contentIDText indicating that a restore action has been initiated (or that a restore is already in progress, in the case of duplicate requests.)

...

DurAdmin

Purpose: DuraService DurAdmin is the user-facing application through which DuraCloud manages servicesexposes DuraStore and DuraService functionality. The DuraService DurAdmin REST API provides the means by which services available in the DuraCloud service repository are deployed, configured, and undeployed.Resources: XML schema which define the service configuration can be found on the Downloads pageDurAdmin is initialized.

Panel
titleInitialization REST Methods

Initialize

Services

Application

  • Purpose: Initializes the DuraService applicationAllows the initialization of duradmin
  • Request: POST https://host:port/duraserviceduradmin/init
  • Request Body: XML similar to:

    Code Block
    xml
    xml
     <servicesConfig><duradminConfig>
      <durastoreHost>[host]</durastoreHost>
       <primaryServiceInstance>
          <host>[PRIMARY-SERVICE-INSTANCE-HOST<durastorePort>[port]</host>durastorePort>
      <durastoreContext>durastore</durastoreContext>
        <servicesAdminPort>[PRIMARY-SERVICES-ADMIN-PORT<duraserviceHost>[host]</servicesAdminPort>duraserviceHost>
          <servicesAdminContext>[PRIMARY-SERVICES-ADMIN-CONTEXT<duraservicePort>[port]</servicesAdminContext>duraservicePort>
       <duraserviceContext>duraservice</duraserviceContext>
    </primaryServiceInstance>
       <userStorage>
         <host>[USER-STORAGE-HOST-NAME]</host>
         <port>[USER-STORAGE-PORT]</port>
         <context>[USER-STORAGE-CONTEXT]</context>
         <msgBrokerUrl>[USER-STORAGE-MSG-BROKER-URL]</msgBrokerUrl>
       </userStorage>
       <serviceStorage>
         <host>[SERVICES-STORAGE-HOST-NAME]</host>
         <port>[SERVICES-STORAGE-PORT]</port>
         <context>[SERVICES-STORAGE-CONTEXT]</context>
         <spaceId>[SERVICES-STORAGE-SPACE-ID]</spaceId>
       </serviceStorage>
       <serviceCompute>
         <type>AMAZON_EC2</type>
         <imageId>[MACHINE-IMAGE-ID]</imageId>
         <computeProviderCredential>
           <username>[USERNAMEduradminConfig>
    
  • Response Code: 200 (on success)
  • Response Body: "Initialization Successful" (on success)

Is Initialized

  • Purpose: Performs a check to determine if the DurAdmin application has been initialized
  • Request: GET https://host:port/duradmin/init
  • Response Code: 200 (if the application has been initialized), 503 (if the application has NOT been initialized)
  • Response Body: Text indicating whether initialization has occurred.

DuraBoss

Purpose: DuraBoss provides administrative control over a variety of activities that run over the storage and services managed by DuraCloud. DuraBoss consists of four major applications:

  • Reporter - generates reports relating to the status of the storage and services within DuraCloud
  • Executor - manages actions which automate functions within DuraCloud, primarily the scheduling and running of DuraCloud services
  • Auditor - maintains audit logs for all spaces within DuraCloud, ensuring that all additions, update, and deletions are recorded and made available
  • Manifest - provides manifests in various formats for the content that resides in DuraCloud spaces

Resources: XML schema which defines the expected transfer data for storage and service reporting can be found on the Downloads page

Panel
titleInitialization REST Methods

Initialize Application

  • Purpose: Allows the initialization of duraboss
  • Request: POST https://host:port/duraboss/init
  • Request Body: XML similar to:

    Code Block
    xml
    xml
    <durabossConfig>
      <reporterEnabled>[true|false]</reporterEnabled>
      <executorEnabled>[true|false]</executorEnabled>
      <auditorEnabled>[true|false]</auditorEnabled>
      <durastoreHost>[host]</durastoreHost>
      <durastorePort>[port]</durastorePort>
      <durastoreContext>durastore</durastoreContext>
      <notificationConfig>
        <type>EMAIL</type>
        <username>[username for notification system]</username>
        <password>[password for notification <password>[PASSWORDsystem]</password>
         </computeProviderCredential>
       </serviceCompute>
     </servicesConfig>
    
  • Response Code: 200 (on success)
  • Response Body: "Initialization Successful" (on success)

Is Initialized

  • Purpose: Performs a check to determine if the DuraService application has been initialized
  • Request: GET https://host:port/duraservice/init
  • Response Code: 200 (if the application has been initialized), 503 (if the application has NOT been initialized)
  • Response Body: Text indicating whether initialization has occurred.
Panel
titleService REST Methods

Get Services

  • Purpose: Retrieves a listing of services, along with their configuration options
  • Request: GET https://host:port/duraservice/services ? (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/serviceID ? (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)

DurAdmin

Purpose: DurAdmin is the user-facing application through which DuraCloud exposes DuraStore and DuraService functionality. The DurAdmin REST API provides the means by which DurAdmin is initialized.

...

titleInitialization REST Methods

Initialize Application

...

Request Body: XML similar to:

...

<duradminConfig>
  <durastoreHost>[host]</durastoreHost>
  <durastorePort>[port]</durastorePort>
  <durastoreContext>durastore</durastoreContext>
  <duraserviceHost>[host]</duraserviceHost>
  <duraservicePort>[port]</duraservicePort>
  <duraserviceContext>duraservice</duraserviceContext>
</duradminConfig>

...

Is Initialized

  • Purpose: Performs a check to determine if the DurAdmin application has been initialized
  • Request: GET https://host:port/duradmin/init
  • Response Code: 200 (if the application has been initialized), 503 (if the application has NOT been initialized)
  • Response Body: Text indicating whether initialization has occurred.

DuraBoss

Purpose: DuraBoss provides administrative control over a variety of activities that run over the storage and services managed by DuraCloud. DuraBoss consists of four major applications:

  • Reporter - generates reports relating to the status of the storage and services within DuraCloud
  • Executor - manages actions which automate functions within DuraCloud, primarily the scheduling and running of DuraCloud services
  • Auditor - maintains audit logs for all spaces within DuraCloud, ensuring that all additions, update, and deletions are recorded and made available
  • Manifest - provides manifests in various formats for the content that resides in DuraCloud spaces

Resources: XML schema which defines the expected transfer data for storage and service reporting can be found on the Downloads page

...

titleInitialization REST Methods

Initialize Application

...

Request Body: XML similar to:

...

<durabossConfig>
  <reporterEnabled>[true|false]</reporterEnabled>
  <executorEnabled>[true|false]</executorEnabled>
  <auditorEnabled>[true|false]</auditorEnabled>
  <durastoreHost>[host]</durastoreHost>
  <durastorePort>[port]</durastorePort>
  <durastoreContext>durastore</durastoreContext>
  <duraserviceHost>[host]</duraserviceHost>
  <duraservicePort>[port]</duraservicePort>
  <duraserviceContext>duraservice</duraserviceContext>
  <notificationConfig>
    <type>EMAIL</type>
    <username>[username for notification system]</username>
    <password>[password for notification system]</password>
    <originator>[from email address]</originator>
    <admin>[administrator email address]</admin>
  </notificationConfig>
</durabossConfig>

...

Is Initialized

  • Purpose: Performs a check to determine if the DuraBoss application has been initialized
  • Request: GET https://host:port/duraboss/init
  • Response Code: 200 (if the application has been initialized), 503 (if the application has NOT been initialized)
  • Response Body: Text indicating whether initialization has occurred.
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/schedule ? (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/service ? (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
titleExecutor REST Methods

Get Executor Status

  • Purpose: Provides a status of the Executor, which is the collected status of all Action Handlers
  • Request: GET https://host:port/duraboss/exec
    <originator>[from email address]</originator>
        <admin>[administrator email address]</admin>
      </notificationConfig>
    </durabossConfig>
    
  • Response Code: 200 (on success)
  • Response Body: XML serialization of status map
Get Supported Executor Actions
  • "Initialization Successful" (on success)

Is Initialized

  • Purpose: Provides a listing of the actions which the Executor can performPerforms a check to determine if the DuraBoss application has been initialized
  • Request: GET https://host:port/duraboss/exec/action
  • Response Code: 200 (on success)
  • Response Body: XML serialization of the action set
  • init
  • Response Code: 200 (if the application has been initialized), 503 (if the application has NOT been initialized)
  • Response Body: Text indicating whether initialization has occurred.
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
Executor Actions

Action Name

Description

Request Body

start-bit-integrity

Instructs the bit integrity handler to begin the process at a given time and at a given frequency

start-time,frequency (where start-time is epoch date in milliseconds and frequency is number of milliseconds)

cancel-bit-integrity

Instructs the bit integrity handler to stop performing bit integrity checks and gracefully shut down

None

start-streaming

Starts the streaming service, so that media streaming can begin

None

stop-streaming

Shuts down the streaming service, stops streaming of all media

None

start-streaming-space

Begin streaming all content in the given space

Name of the space to stream

stop-streaming-space

Stop streaming content in the given space

Name of the space to end streaming

Perform an Executor Action

  • Purpose: Performs a specific Executor action based on the provided actionName
  • Request: POST https://host:port/duraboss/report/execstorage/actionNamereportID
  • Response Code: 200 (on success)

Shutdown Executor

  • 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
  • Purpose: Requests that the Executor perform a graceful shutdown
  • Request: DELETE https://host:port/duraboss/report/storage/execinfo
  • Response Code: 200 (on success)
Panel
titleAuditor REST Methods
  • 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

Create Initial Audit Log

  • Purpose: Requests the creation of initial audit logs, and removal of any existing audit logs
  • Request: POST https://host:port/duraboss/audit
  • Response Code: 202 (on acceptance)

Get Audit Logs

  • Purpose: Provides a listing of the audit logs for the provided spaceId
  • Request: GET https://host:port/duraboss/auditreport/spaceIdstorage
  • Response Code: 200 (on success)
  • Response Body: Plain text listing of audit log contentIds

Shutdown Auditor

  • (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 reportPurpose: Requests that the Auditor perform a graceful shutdown
  • Request: DELETE https://host:port/duraboss/auditreport/storage
  • Response Code: 200 (on success)
  • Response Body: Plain text of "auditor shutting down"
Panel
titleContent Manifest REST Methods
  • "Storage report cancelled"

Schedule Storage Report

  • Purpose: Schedules a time for a storage report to be run
  • Request: POST

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: GEThttps://host:port/duraboss/report/manifeststorage/spaceId schedule ? (formatstartTime) (datefrequency) (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)
    • 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: Plain text content manifest in the requested format"Storage Reports schedule cancelled"