Signiant Support

12.1 Signiant FIMS Compliant API Developer's Guide Print


CHAPTER 1 Overview
Intended Audience
Prerequisites
Basic FIMS Introduction
The Signiant FIMS Compliant API
Queue Support
Notifications (Callbacks)
Maintenance
CHAPTER 2 Signiant Supported FIMS Functionality
TransferMedia Service/Create a Transfer Job
MediaServiceStatus QueryJob/Retrieve a Transfer Job
MediaServiceStatus ManageJob/Manage Jobs (Control Jobs)
Not Supported Functionality
CHAPTER 3 Using the Signiant FIMS Implementation
How To Use The Following Examples
Accessing The Signiant FIMS WSDL And Schema (SOAP)
Accessing the Signiant FIMS REST API (supports TransferService)
JSON Samples
Modifying the JSON
Default Workflows
Create a Job
How To Manage A Job
How To Get Job Details
How To Receive And View Notifications
CHAPTER 4 Submitting Non-FIMS Transfer Jobs
The Signiant Extension Schema
Generating Code From The Signiant Extension Schema
How To Use The Signiant Extension Schema
Specifying a Job Template
CHAPTER 5 Troubleshooting
Common Error Messages
Troubleshooting Hints and Details
CHAPTER 6 REST Examples
REST Create Job Request for Standard FIMS Job
REST Create Job JSON Content
REST Create Job Response
REST Create Job Request for Standard FIMS Job with Notifications Requested
REST Create Job JSON Content
REST Create Job Response
REST Create Job Notification of Job Started
REST Create Job Notification of Job Fault
REST Create Job Notification of Job Completed
REST Create Job Request for MediaMover Job with Notifications Requested
REST Create for MediaMover Job JSON Content
REST Create for MediaMover Job Response
REST Create for MediaMover Job Notification of Job Started
REST Create for MediaMover Job Notification of Job Running
REST Create for MediaMover Job Notification of Job Completed
FIMS Failed Status Response
RESTServer.pl
CHAPTER 7 Using Flight
Flight Uploads Workflow Prompts
Flight Uploads JSON Example
Flight Downloads Prompts
Flight Downloads JSON Example
CHAPTER 8 Using Media Mover
MediaDropBox Prompts
MediaTrigger Prompts
MediaAggregator Prompts
MediaAggregator JSON Example
MediaDistributor Prompts
MediaDistributor JSON Example
MediaReplicator Prompts
Time Zone Values

Overview

Intended Audience

This guide is written for developers and system integrators.

Prerequisites

We expect that you have the following:

  • Knowledge of Signiant Workflows. (Refer to the Workflow Development Developer's Guide.)
  • An understanding of how to use the Signiant Manager. (Refer to the Manager User's Guide.)
  • The Signiant Manager installed.
  • Basic knowledge of FIMS. (Refer to fims.tv.)
  • Familiar with REST and/or Simple Object Access Protocol (SOAP).

Basic FIMS Introduction

The Framework for Interoperable Media Services (FIMS) - is an open standard for Service Oriented Architecture (SOA). An SOA-based approach replaces the tightly coupled devices and functions found in traditional systems with a set of "Media Services" that are interoperable, interchangeable and reusable. The interfaces between these different services and the centralized system that runs them are defined by FIMS.

For more information about FIMS, refer to fims.tv.

The Signiant FIMS Compliant API

The Signiant FIMS Compliant API is based on the FIMS 1.1 (and 1.0.7) standard. This service allows an orchestration system to invoke a Signiant workflow using a FIMS compliant API.

There is Signiant FIMS SOAP Compliant API and a Signiant FIMS REST Compliant API - both of these APIs are documented in this guide. In addition see /support/fims_samples in the Signiant Manager installation directory for a package of usable REST samples.

Queue Support

The FIMS interface supports the concept of job queues and agent queues in the form of Signiant Resource Controls. These controls allow for the queuing of concurrent jobs and transfers within the system, as well as automated bandwidth provisioning. Refer to the Signiant Manager documentation for details on Signiant Resource Controls.

All jobs submitted through the FIMS interface can be controlled via resource controls defined in the system; there is no difference between a FIMS submitted job and any other job. For more information on resource controls see "Understanding Resource Controls" in the Manager User's Guide.

Notifications (Callbacks)

Each submitted job can have a notification callback association. If valid URLs are specified in the job's replyTo and/or faultTo field, callbacks will be emitted for job errors (faultTo) and all job state transformations (replyTo). The TransferFaultType object contains details about fault notifications and the innerFaultType element contains the return code for the job. When a notification cannot be delivered, the notification is added to a queue and a retry attempt is made every two minutes for a maximum of 12 hours. When there are multiple notifications for the same URL, these notifications are added to the queue and attempted once the first notification has been delivered or has expired.

Maintenance

The Signiant Manager and Agents maintenance function removes deleted FIMS jobs and the associated job resource IDs. To learn more about maintenance, read "Understanding Maintenance" in the Manager User's Guide.


Signiant Supported FIMS Functionality

The Signiant FIMS Compliant SOAP API supports the following FIMS interfaces:

  • TransferMedia
  • MediaServiceStatus QueryJob
  • MediaServiceStatus ManageJob

The Signiant FIMS Compliant REST API supports the following FIMS interfaces:

  • Create a Transfer Job - /job - POST
  • Retrieve a Transfer Job - /job/{jobId} - GET
  • Retrieve All Transfer Jobs - /job/ - GET
  • Retrieve a list of Specific Transfer Jobs - /job?jobId={jobid}&jobId={jobId} - GET
  • Retrieve a Filtered List Transfer Jobs - /job?(See list Job Filter Criteria table below) - GET
  • Manage Jobs (Control Jobs) - /job/{jobId}/manage - POST
  • Get Minimal Job for current Status - /job/{jobId}/manage - GET

When applicable, jobs submitted with the FIMS interface are controlled by the Signiant Resource controls.

The following tables detail these services including the supported and not supported operations for each service.

TransferMedia Service/Create a Transfer Job

The TransferMedia service/Create a Transfer Job is used to submit FIMS jobs. This section describes the supported FIMS job attributes.

Job Status

The following table describes the values that can be represented by the JobStatusType on a FIMS job.

Supported Value Value Description

new

A new job is created.

canceled

The job has been canceled - either in the management console or through the FIMS interface.

running

The job is currently running.

queued

The job is currently queued by a Signiant Resource Control.

completed

The job is complete.

failed

The job has failed and is no longer running.

Job Priority

Submitted jobs are queued (if configured) based on the priority in the TransferJob. If more than one job in the queue has the same priority, the finishBefore value can be used to prioritize the jobs (otherwise a FIFO order is maintained).

The priority of a job (the queue position) can be modified by using the MediaServiceStatus manageJob interface, using the modify_priority command.

The job priority (queue position) can be modified using the MediaServiceStatus ManageJob service and the Modify_Priority operation. When set to immediate priority level, the job is not started automatically - it sets the job as having the highest priority in the queue.

The following table describes the job priority level.

Job Priority Level Description

Low

Job initially allocated to the end of the queue.

Medium

Job initially allocated to be executed before any low priority jobs but after any existing medium priority jobs.

High

Job initially allocated before any medium and low priority jobs but after existing high priority jobs.

Urgent

Job initially allocated to be executed before any high, medium and low priority jobs but after existing urgent jobs.

Immediate

Job should be executed as soon as the request is received.

Elements Not Represented On The Transfer Job

The following elements are not represented on the transferJob.

Elements Not Supported Element Description

estimatedCompletionDuration

Not provided.

tasks

Not supported.

queueReference

While jobs can be queued in the system, a reference to the queue is not provided.

currentQueuePosition

Not provided.

Scheduling Job Start

By default FIMS jobs are started immediately.

To optionally specify when a job is started, use startJob with bms.StartJobByTimeType.

The bms.StartJobByTimeType format is YYYY-MM-DDTHH:MM:ss+-HH:MM00 where +-HH:00 is the GMT offset (for example: 2015-09-30T12:00-04:00). (Refer to the second example below to see how bms.StartJobByTimeType is configured.)

To optionally specify that you want the job to start immediately, use bms.StartJobByNoWaitType.

The following example shows bms.StartJobByNowWaitType in a standard FIMS job:

{
   "transferJob" : {
      "bms.resourceID" : "5",
      "bms.bmObjects" : {
         "bms.bmObject" : [ {
            "bms.bmContents" : {
               "bms.bmContent" : [ {
                  "bms.bmContentFormats" : {
                     "bms.bmContentFormat" : [ {
                        "bms.bmEssenceLocators" : {
                           "bms.bmEssenceLocator" : [ {
                              "@xsi.type" : "bms.SimpleFileLocatorType",
                              "bms.file" : "file://testserver.com/f:/tmp/MediaOut"
                           } ]
                        },
                        "bms.packageSize" : 44947460
                     } ]
                  }
               } ]
            }
         } ]
      },
      "bms.priority" : "low",
      "bms.startJob" : {
           "@xsi.type" : "bms.StartJobByNoWaitType"
       },

      "profiles" :  {
         "transferProfile" : [ {
            "@name" : "Transfer Profile",
            "@description" : "Highspeed Transfer Delivery",
            "transferAtom" : [ {
               "bms.destination" : "file://testserver.com/C:/tmp/MediaIn"
            } ]
         } ]
      } 
   }
}
										

To optionally specify when FIMS non-FIMS transfer jobs are started, do one of the following:

  • use startJob and sig.StartJobByTimeTypein the sig.fimsMapping sectionor
  • use startJob and Schedule._sp_start_at

The bms.StartJobByTimeType format is YYYY-MM-DDTHH:MM:ss+-HH:MM00 where +-HH:00 is the GMT offset (for example: 2015-09-30T12:00-04:00).

The following example shows the Media Mover transfer job using startJob and sig.StartJobByTimeType mapping:

{
   "transferJob" : {
      "bms.resourceID" : "5",
      "bms.bmObjects" : {
         "bms.bmObject" : [ {
            "bms.bmContents" : {
               "bms.bmContent" : [ {
                  "bms.bmContentFormats" : {
                     "bms.bmContentFormat" : [ {
                        "bms.bmEssenceLocators" : {
                           "bms.bmEssenceLocator" : [ {
                              "@xsi.type" : "bms.SimpleFileLocatorType",
                              "bms.file" : "file://testserver.com/X:/tmp/MediaOut"
                           } ]
                        },
                        "bms.packageSize" : 44947460
                     } ]
                  }
               } ]
            }
         } ]
      },
      "bms.priority" : "low",
      "bms.startJob" : {
           "@xsi.type" : "bms.StartJobByTimeType",
	   "bms.time" : "2015-09-02T18:00:00Z"
       },
      "profiles" : {
	     "transferProfile" : [ {
		"name" : "Transfer Profile",
		"description" : "Highspeed Transfer Delivery",
		"transferAtom" : [ {
		   "bms.destination" : "file://testserver.com/C:/tmp/MediaIn"
		} ],
		"bms.location" : "https://sourceAgentName/template/Media_Mover_Workflows/component/MediaDistributor",

		"bms.ExtensionGroup": [  {
		    "sig.SigniantExtensionGroup": [ {
			    "sig.jobContextParameters":  [ {
				    "sig.jobName": "JobName_1",
				    "sig.jobGroup" : "MediaDistributor"
			    } ],
			    "sig.fimsMapping" : [  {
				    "sig.sourceAgent" : ["MediaDistributor.Source.SourceAgent"],
				    "sig.targetAgent" : ["MediaDistributor.Target.TargetAgents"],
				    "sig.BMEssenceLocatorType" : ["MediaDistributor.Source.SourceData"],
				    "sig.destination" : ["MediaDistributor.Target.TargetDirectory"],
				    "sig.priority" : ["MediaDistributor.Schedule.priority"],
				    "sig.StartJobByTimeType" : ["MediaDistributor.Schedule._sp_start_at"]
			    } ] ,
			    "sig.jobVariables" : [
				{ "sig.JobVariableName" : "MediaDistributor.Schedule._sp_interrupt_on_failure", "sig.JobVariableValue" : "no"},
				{ "sig.JobVariableName" : "MediaDistributor.Target.PathMappingOptions", "sig.JobVariableValue" : "job date"}
			    ]
		    } ]
		} ]

	    } ]
	} 
    }
}					
														

The following example shows the Media Mover transfer job using startJob and Schedule._sp_start_at:

{
   "transferJob" : {
      "bms.resourceID" : "5",
      "bms.bmObjects" : {
         "bms.bmObject" : [ {
            "bms.bmContents" : {
               "bms.bmContent" : [ {
                  "bms.bmContentFormats" : {
                     "bms.bmContentFormat" : [ {
                        "bms.bmEssenceLocators" : {
                           "bms.bmEssenceLocator" : [ {
                              "@xsi.type" : "bms.SimpleFileLocatorType",
                              "bms.file" : "file://testserver.com/F:/tmp/MediaOut"
                           } ]
                        },
                        "bms.packageSize" : 44947460
                     } ]
                  }
               } ]
            }
         } ]
      },
      "bms.priority" : "low",
      "bms.startJob" : {
           "@xsi.type" : "bms.StartJobByTimeType",
	   "bms.time" : "2015-09-29T18:00:00Z"
       },
      "profiles" : {
	     "transferProfile" : [ {
		"name" : "Transfer Profile",
		"description" : "Highspeed Transfer Delivery",
		"transferAtom" : [ {
		   "bms.destination" : "file://testserver.com/C:/tmp/MediaIn"
		} ],
		"bms.location" : "https://sourceAgentName/template/Media_Mover_Workflows/component/MediaDistributor",

		"bms.ExtensionGroup": [  {
		    "sig.SigniantExtensionGroup": [ {
			    "sig.jobContextParameters":  [ {
				    "sig.jobName": "JobName_1",
				    "sig.jobGroup" : "MediaDistributor"
			    } ],
			    "sig.fimsMapping" : [  {
				    "sig.sourceAgent" : ["MediaDistributor.Source.SourceAgent"],
				    "sig.targetAgent" : ["MediaDistributor.Target.TargetAgents"],
				    "sig.BMEssenceLocatorType" : ["MediaDistributor.Source.SourceData"],
				    "sig.destination" : ["MediaDistributor.Target.TargetDirectory"],
				    "sig.priority" : ["MediaDistributor.Schedule.priority"],
			    } ] ,
			    "sig.jobVariables" : [
				{ "sig.JobVariableName" : "MediaDistributor.Schedule._sp_interrupt_on_failure", "sig.JobVariableValue" : "no"},
				{ "sig.JobVariableName" : "MediaDistributor.Target.PathMappingOptions", "sig.JobVariableValue" : "job date"}
				{ "sig.JobVariableName": "MediaDistributor.Schedule._sp_frequency" , "sig.JobVariableValue": "Once" }, 
				{ "sig.JobVariableName": "MediaDistributor.Schedule._sp_start_at" , "sig.JobVariableValue": "2015/09/29 21:30:00" }, 
			    ]
		    } ]
		} ]

	    } ]
	} 
    }
}					
									

MediaServiceStatus QueryJob/Retrieve a Transfer Job

The MediasServiceStatus QueryJob service/Retrieve a Transfer Job allows you to query the jobs submitted with the FIMS interface. The first table details the supported options for the service and the second table details the options not supported with the MediaServiceStatus QueryJob service.

Supported Option Option Description

QueryJobRequestByIdType

One or many resourceIDs may be submitted to be retrieved.

Option Not Supported Option Description

QueryJobRequestByFilterType

Filtering on job attributes is not supported.

JobInfoSelectionType

(Mandatory) Only all is supported.

MediaServiceStatus ManageJob/Manage Jobs (Control Jobs)

The MediasServiceStatus ManageJob service/Manage Jobs (Control Jobs) allows you to control jobs submitted through the FIMS interface. The first table details the supported commands for the service and the second table details the commands not supported with the MediaServiceStatus ManageJob service.

Supported Command Command Description

pause

Use pause to manage the job priority.

cancel

Cancels a running job or removes the job from a job queue.

cleanup

Used to clean up or delete a job on the Signiant Manager.

resume

Use to resume a job when required.

restart

Restarts a running job or a completed job.

modify_priority

Modifies the priority of any queued job.

Note: these commands apply only to jobs submitted through the FIMS interface.

Command Not Supported Alternative Command

stop

Use cancel instead of stop.

Not Supported Functionality

The MediaServiceStatus ManageQueue service is not supported by the Signiant FIMS implementation.

All jobs submitted may be controlled by the Signiant Resource Control even though you cannot yet manage the services through the FIMS interface.


Using the Signiant FIMS Implementation

This chapter uses code examples and REST samples to demonstrate how to use the Signiant FIMS implementation to create, manage, list and retrieve jobs. For REST examples, see REST Examples. The REST examples used in this guide are available in the Signiant Manger installation directory in /support/fims_samples.

These examples use Curl, a command line tool used to initiate HTTP requests. To download and install Curl on Windows, see CURL 7.41.0.

The following sections and examples are based on the default FIMS configuration.

For details on the FIMS Rest API, refer to fims.tv.

How To Use The Following Examples

You must edit the JSON and make the following updates:

  • Manager hostname
  • Source agent hostname/agent group name
  • Target agent hostname/agent group name
  • Source path
  • Target path

You must edit the REST header to update your security credentials:

  • X_FIMS_USERNAME
  • X_FIMS_PASSWORD

Accessing The Signiant FIMS WSDL And Schema (SOAP)

The WSDL for the Transfer Service end point to submit jobs can be obtained from the following URL:

  • http://signiant_manager_name/signiant_fims_transfer_service/TransferMediaPort?wsdl

The WSDL for the Transfer Service end point to query and control jobs can be obtained from the following URL:

  • http://signiant_manager_name/signiant_fims_transfer_service/ TransferMediaStatusPort?wsdl

The Signiant schema extension can be obtained from the following URL:

  • https://signiant manager_name/signiant_fims_transfer_service/TransferMediaPort?wsdl&resource=signiantMediaService-V1_0_7.xsd

Accessing the Signiant FIMS REST API (supports TransferService)

Use the following URL:

  • http://signiant_manager_name/signiant_fims_transfer_service/transferservice/service_URI

The table below details the URI's for the TransferService services.

URI Description HTTP Method Request Body Success Body Failure Body

.../job

Create a Transfer Job

POST

tms: transferJob

tms: transferJob

tms: TransferFaultType

.../job/{jobId}

Retrieve a Transfer Job

GET

-

tms: transferJob

tms: TransferFaultType

.../job/

Retrieve All Transfer Jobs

GET

-

bms: JobsType

tms: TransferFaultType

.../job?jobId={jobid}&jobId={jobId}...

Retrieve a list of Specific Transfer Jobs

GET

-

bms: JobsType

tms: TransferFaultType

.../job? (See the Job Filter Criteria table below)

Retrieve a Filtered List of Transfer Jobs

GET

-

bms: QueryJobResponseType

tms: FaultMsg

.../job/{jobId}/manage

Manage Jobs (Control Jobs)

POST

bms: ManageJobRequestType

tms: transferJob *1

tms: FaultMsg

.../job/{jobId}/manage

Get Minimal Job for current status

GET

-

tms: transferJob (minimum attributes)

tms: FaultMsg

The HTTP Response Header for .../job is location:(urlForJob).

The {jobID} parameter described above is the unique identifier for a job.

The following table lists the Job Filter Criteria:

Parameter Description Values

JobInfoSelectionType

Return only mandatory attributes or all attributes of a job

all or mandatory

toDate

Jobs to be listed shall have started on or before the date specified in this field

dateTime

fromDate

Jobs to be listed shall have started on or after the date specified in this field

dateTime

includeQueued

A flag to indicate job or jobs in the queue

true, false

includeFinished

A flag to indicate job or jobs in the 'Completed', 'Stopped' or 'Cleaned' state

true, false

includeActive

A flag to indicate job or jobs in the 'Running', 'Paused' or 'Unknown' state

true, false

includeFailed

A flag to indicate job or jobs in the 'Failed' state

true, false

maxNumberResults

Maximum number of results to be listed

Positive Integer Value

The following table describes the notifications that can be generated for the Transfer Service. The notifications and faults are generated by the service and sent to the orchestration system that invoked the service. The URL for notification or fault is contained in the replyTo and faultTo of the submitted job.

Description HTTP Method Body Generation Events

Transfer Job events related to state change, creation, deletion and progress

POST

tms: transferJob

Create Job

Job Progress

Manage Job

 

Transfer Job Failures

POST

tms: TransferFaultNotificationType

Create Job

Job Failure

 

For more details on the supported URI's and the URI details, visit: fims.tv.

JSON Samples

The following table describes the JSON samples used in the Curl examples. These samples are located in the Signiant Manager installation directory in /support/fims_samples.

File Description

SigniantFIMSCreateJob.json

Transfer utilizing FIMS default workflow.

SigniantFIMSCreateJobWithExtension.json

Transfer using custom workflow. Shows specification of:

  • Custom job template library
  • Custom start component
  • Custom job group
  • Custom job name
  • Custom prompts

The sample sig.fimsMapping and sig.jobVariables match with a Job Template library of Media_Mover_Workflows and the MediaDistributor start component.

 

SignianFIMSCancelJob.json

Cancel an existing job.

REST_Server.pl

Receives and displays REST calls.

Modifying the JSON

Specifying the source data

Use the bmEssenceLocatorType to specify the physical location of the files and/or folders to be transferred. The FIMS interface supports all the three types of essence locators: SimpleFileLocatorType, ListFileLocatorType and FolderLocatorType.

How to specify file and folder values

In order to specify the location of files and folders to transfer - use the URI format for files. The URI must specify the agent name and the location of the files and/or folders to be transferred. The files and agent must be co-located (SAN, Local disk, NAS, etc.). The URI format can be used to specify CIFs locations as well.

The following is the format of the URI for the file location on the bmEssenceLocatorType:

file://agent name/file location

Where:

  • agent name: specifies the name of the Signiant agent (from the agent listing page) or the agent group name (from the agent details)
  • file location: the location of the data to transfer

URI format file path examples:

  • Windows JSON example of a standard file path:
    "bms.file" : "file://agent.ott.signiant.com/C:/tmp/MediaOut"

     

  • Windows JSON example of UNC path:
    "bms.file": "file://agent.ott.signiant.com///server.ott.signiant.com/Home/users/sysuser/file.exe"

     

Linux JSON example of a standard Linux file path:
"bms.file" : "file://agent.ott.signiant.com//tmp/MediaOut"

The SimpleFileLocatorType specifies the location of a single file to transfer.

Default Workflows

Signiant jobs are created from configured workflows in the system. These workflows are templates that contain variables and default values that are used when creating a job in the system. When a job is created from a workflow it is stored in a logical container known as a Job Group.

By default the FIMS interface uses a preconfigured workflow and Job Group for the submitted jobs. No Signiant Extension Group attributes are required when submitting jobs to the default workflow.

The default values in the workflow can be modified based on your requirements.

  • Default workflow: FIMS_Workflow
  • Default job group: FIMS_Workflow
  • Default job name: FIMS_timestamp (Where timestamp is the current time to guarantee that job names are unique.)

To view the default FIMS JSON and to export this as a template do the following in the SIgniant Manager:

  1. Open the FIMS_Workflow job template in the canvas.
  2. Right-click FIMS_Transfer_Start and select Create FIMS JSON. You can view the JSON within the viewer or click Export to create a template of the FIMS JSON which you can use to view FIMS variables and to customize your FIMS implementation.

Create a Job

Use the following Curl command to create a job:

curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <YourUsername>" -H "X-FIMS-Password: <YourPassword>" -H "Content-Type: application/json" --data @SigniantFIMSCreateJob.json http://<YourManagerHostname>/signiant_fims_transfer_service/transferservice/job

REST Create Job JSON Content (SigniantFIMSCreateJob.json)

{
  "transferJob": {
    "bms.resourceID": 1426773837,
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
		 }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}			
	

Create Job Response

# => 200 OK | application/json 124 bytes
{"tms.transferJob"=>
  {"bms.resourceID"=>"1426773837",
   "bms.status"=>"running",
   "bms.serviceProviderJobID"=>"FIMS_1426773847566"}}
			
How To Manage A Job

The example below shows how to cancel a job. Use the following Curl command to manage (cancel) a job:

curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <YourUsername>" -H "X-FIMS-Password: <YourPassword>" -H "Content-Type: application/json" --data @SigniantFIMSCancelJob.json http://<YourManagerHostname>/signiant_fims_transfer_service/transferservice/job/<YourJobID>/manage

REST Create Job Response

 
{
  "tms.transferJob": {
    "bms.resourceID": "80",
    "bms.status": "canceled",
    "bms.serviceProviderJobID": "FIMS_1427392901082"
  }
}

How To Cleanup a Job

To delete or cleanup a job on the Signiant Manager, use the manage request and the cleanup job command.

Json Cleanup

 
{
      "jobID" : "1437658544440713",
      "jobCommand" : "cleanup"  
}
						

Use the following Curl command to cleanup a job:

curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <YourUsername>" -H "X-FIMS-Password:
<YourPassword>" -H "Content-Type: application/json" --data @SigniantFIMSCleanupJob.
json http://<YourManagerHostname>/signiant_fims_transfer_
service/transferservice/job/<YourJobID>/manage
								

REST Cleanup Job Response

{
  "tms.transferJob": {
    "bms.resourceID": "1437658544440713",
    "bms.status": "cleaned",
    "bms.serviceProviderJobID": "FIMS_1437658604953"
  }
}				
		
How To Get Job Details

Use the following Curl command to retrieve a job:

curl -X GET -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <YourUsername>" -H "X-FIMS-Password: <YourPassword>" -H "Content-Type: application/json" http://<YourManagerHostname>/signiant_fims_transfer_service/transferservice/job/<YourJobID>

REST Job Details Response

{
  "tms.transferJob": {
    "bms.resourceID": "1427392239722417",
    "bms.status": "completed",
    "bms.serviceProviderJobID": "FIMS_1427392251829",
    "bms.operationName": "Transfer",
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          },
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent2.signiant.com/C:/tmp/MediaIn//MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2015-03-26T13:50:53.000-04:00",
    "bms.jobCompletedTime": "2015-03-26T13:50:57.000-04:00",
    "bms.processed": {
      "@xsi.type": "bms.ProcessedInfoByBytesType",
      "bms.percentageProcessedCompleted": 100,
      "bms.processedBytesCount": 2218710
    },
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.ott.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

How To Receive And View Notifications

To invoke a Perl-based web server that accepts and displays received FIMS notifications, use the following command. (See REST Examples for details on this Perl-based web server. This code is included in the Signiant Manger installation directory in /support/fims_samples.)

RESTServer.pl 8088

This command demonstrates that notifications on Port 8088 are occurring correctly.

Note: Your job must include a notification section which provides details on where to send the notification. These details must include the IP address and port where the RESTServer.pl is running.


Submitting Non-FIMS Transfer Jobs

In the previous chapter you learned how to submit a job to the default workflow. In this chapter, we build on this knowledge and show you how to submit a job to any workflow using the FIMS interface. In order to do this, you'll be using the Signiant Extension Schema to map standard elements to Signiant workflow variables and to provide arbitrary parameters to workflows.

For information on managing when a job starts see: Scheduling Job Start.

The Signiant Extension Schema

The Signiant Extension Schema allows you to specify your own workflow values at runtime rather than using the configured default FIMS configuration. For example, you can invoke a custom workflow or use the Media Mover distribute workflow with your own variable values.

You do this by specifying the values you need in the transfer request payload.

Signiant Extension Schema Example

{
  "transferJob": {
    "bms.resourceID": 1426773850,
    "bms.notifyAt": {
      "bms.replyTo": "http://10.0.12.88:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://10.0.12.88:8089/TransferMediaNotificationPort"
    },
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "name": "Transfer Profile",
          "description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ],
          "bms.location": "https://mymanager.signiant.com/template/Media_Mover_Workflows/component/MediaDistributor",
          "bms.ExtensionGroup": [
            {
              "sig.SigniantExtensionGroup": [
                {
                  "sig.jobContextParameters": [
                    {
                      "sig.jobName": "JobName_1_1426773850",
                      "sig.jobGroup": "MediaDistributor"
                    }
                  ],
                  "sig.fimsMapping": [
                    {
                      "sig.sourceAgent": [
                       "MediaDistributor.Source.SourceAgent"
                      ],
                      "sig.targetAgent": [
                        "MediaDistributor.Target.TargetAgents"
                      ],
                      "sig.BMEssenceLocatorType": [
                        "MediaDistributor.Source.SourceData"
                      ],
                      "sig.destination": [
                        "MediaDistributor.Target.TargetDirectory"
                      ],
                      "sig.priority": [
                        "MediaDistributor.Schedule.priority"
                      ]
                    }
                  ],
                  "sig.jobVariables": [
                    {
                      "sig.JobVariableName": "MediaDistributor.Schedule._sp_interrupt_on_failure",
                      "sig.JobVariableValue": "no"
                    },
                    {
                      "sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
                      "sig.JobVariableValue": "job date"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  }
}

 

Generating Code From The Signiant Extension Schema

To assist the FIMS developer with the integration of the Signiant FIMS extension schema into the development environment, Signiant provides an XSD version of its FIMS extension schema. The XSD can be downloaded from:

https://signiant manager_name/signiant_fims_transfer_service/TransferMediaPort?wsdl&resource=signiantMediaService-V1_0_7.xsd

How To Use The Signiant Extension Schema

To use the Signiant Extension Schema, you must know the correct workflow variable names. To determine these variables, do the following in the Signiant Manager:

  1. In Jobs select Templates.
  2. Select your workflow and click Open Canvas.
  3. Right-click on the start component (first component to the farthest left of the workflow).

    In the menu that displays, select Show Web Services Info.

  4. The WebServicesInfo window is displayed. The screenshot below shows the Name column. The Name column displays the variables that are mapped to FIMS elements or used in the JobVariableType.

     

The Signiant Extension Schema provides type definitions that allow you to invoke any worklfow by mapping standard FIMS attributes to workflow variables and to specify arbitrary parameters to jobs. There are three categories of type definitions that you can use:

  • FIMSAttributeMapping: specifies the workflow component variable name that a FIMS standard element maps to.
  • JobVariable: specifies a worklfow component variable and associated value.
  • JobContextParameters: specifies values concerning the environment in which a job executes.

All or none of these types can be specified to provide information to submit a job. These types are then added to the SigniantExtensionGroup type, which in turn is added to the TransferProfile ExtensionGroup.

Mapping FIMS standard elements to Job Template variables

The FIMSAttributeMappingType specifies the Job Template variable that a FIMS standard element value must be mapped to. For example in the MediaDistributor Job Template below, the variable for the source agent is MediaDistributor.Source.SourceAgent. To specify the mapping use the element sourceAgent and set the value to MediaDistributor.Source.SourceAgent.

The following table details the FIMSAttributeMappingType elements:

Element Value

sourceAgent

Extracts the host name from the BMEssenceLocator type URI and inserts the value into the specified workflow component value for the source agent.

targetAgent

Extracts the host name from the TransferAtom destination type URI and inserts the value into the specified workflow component value for the target agent.

BMEssenceLocatorType

Extracts the file name or folder portion of the BMEssenceLocator type URI and inserts the value into the specified workflow component value for the source data.

destination

Extracts the file name or folder portion of the TransferAtom destination type URI and inserts the value into the specified workflow component value for the target location.

priority

Extracts the TransferJobType priority value and inserts the value into the specified workflow component value for priority.

finishBefore

Extracts the TransferJobType finishBefore value and inserts the value into the specified workflow component value for finishBefore.

FIMSAttributeMapping Example

"sig.fimsMapping": [
                    {
                      "sig.sourceAgent": [
                        "MediaDistributor.Source.SourceAgent"
                      ],
                      "sig.targetAgent": [
                        "MediaDistributor.Target.TargetAgents"
                      ],
                      "sig.BMEssenceLocatorType": [
                        "MediaDistributor.Source.SourceData"
                      ],
                      "sig.destination": [
                        "MediaDistributor.Target.TargetDirectory"
                      ],
                      "sig.priority": [
                        "MediaDistributor.Schedule.priority"
                      ]
                    }
]
 

Specifying a Job Template

All jobs are created using Job Templates within Job Template libraries. To specify a workflow to use (other than the default FIMS configuration), you must specify which Job Template Library to use within the submitted job.

The desired Job Template Library name must be specified in the job's TransferProfileType location value in the request payload. The format of the value should be a URI which includes the Job Template Library name and Job Template name.

The following example shows the URI format to specify a Job Template Library name and Job Template name:

https://signiant manager_name/template/template_name/component/startcomponent_name

Where:

  • template_name: is the actual name of the Job Template Library, for example Media_Mover_Workflows.
  • startcomponent name: is the name of the Job Template for the desired Job Template Library.

The following is an example for the TransferProfileType location that specifies the use of the Media Mover Media Distributor Job Template Library:

https://<signiant_manager_name/template>/Media_Mover_Workflow/component/MediaDistributor

The following is an example of how to specify a Job Template Library at runtime:

"bms.location": "https://<signiant_manager_name/template>/template/Media_Mover_Workflows/component/MediaDistributor",

Specifying a Job Group and Job Name

The JobContextVariables are specified values to control the environment in which the job executes. Currently there are two values that can be specified:

  • jobName: this specifies the Signiant Job Name. The name must be unique and can contain only alphanumeric characters and underscores. The jobName is limited to 32 characters.
  • jobGroup: the name of the logical container to create the job. The Job Group must exist in the Signiant system and the user specified in the FIMS job submission must have access to the specified job group.

The following shows an example of setting the jobName and jobGroup values:

JobName and JobGroup Example

"sig.jobContextParameters": [
                    {
                      "sig.jobName": "JobName_1_1426773850",
                      "sig.jobGroup": "MediaDistributor"
                    }
                  ],

Specifying Job Variables

The JobVariable type allows any workflow component variable to be added to a submitted FIMS job. These variables should not include the subset from the FIMSAttributeMapping type.

The following describes elements of the JobVariable type:

  • JobVariableName: workflow component variable name. Example: MediaDistributor.Source.SourceData.
  • JobVariableValue: the required value for the workflow component variable.

The SigniantExtensionGroup Type allows you to add JobVariable, JobContextVariables, and/or FIMSAttributeMapping to a job. Any or all of the elements can be added to the SigniantExtensionGroup as required.

JobVariable Example

"sig.jobVariables": [
                    {
                      "sig.JobVariableName": "MediaDistributor.Schedule._sp_interrupt_on_failure",
                      "sig.JobVariableValue": "no"
                    },
                    {
                      "sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
                      "sig.JobVariableValue": "job date"
                    },
  { 
     "sig.JobVariableName": [ " MediaDistributor.Transport.BandwidthThrottleByTimeOfDay" ],
    "sig.JobVariableValue": [ "00:00;00:00;YYYYYYY;1875000;"
  }
        ]

 

Once the SigniantExtensionGroup is populated with the required values, the extension group is then added to the TransferProfileType ExtensionGroup as an any element.


Troubleshooting

This chapter provides you with troubleshooting details including common error messages and general troubleshooting information for commonly asked questions.

Common Error Messages

The following table provides descriptions of the common error messages.

Error Description Explanation

INF_S00_003

N/A

Typically a JSON formatting error. Check the Jboss log (signiant.log) for errors.

INF_S00_003

The username or password you entered is incorrect.

The username and/or password supplied in the header of the request did not authenticate correctly with the Signiant Manager.

INF_S00_003

Insufficient permissions error.

Might be that the specified user does not have access to the specified job group or job template library. Could also indicate that the job group or job template library does not exist.

DAT_S00_001

Missing ResourceID or invalid request format.

This is typically a JSON formatting error. Check the Jboss log (signiant.log) for errors. This is often caused by the inconsistent use of namespaces with the JSON. Either no namespaces should be specified or all properties where a namespace is applicable must have a namespace specified. Could also indicate that a valid JSON sent to the wrong service.

DAT_S00_001

The supplied jobID already exists.

The resourceID in the JSON was already used for a transfer on this Signiant Manager.

DAT_S00_002

Missing priority.

The priority field is mandatory and is not completed. (The finishBefore field is optional.)

DAT_S00_003

Agent is not valid.

Either the source or target agent specified for the transfer does not match.

The following is an example of an Error Response.

# => 422 ClientError | application/json 93 bytes
{
  "fault": {
    "bms.code": "DAT_S00_0001",
    "bms.description": "The supplied jobID already exists"
  }
}

Troubleshooting Hints and Details

The following list includes details which may help answer some of your questions:

  • When referencing a custom workflow, both the source and target agents must be set.
  • Use the following format to specify a source or destination path:
    • bms.file:
      file://<YourAgentHostname>//<YourFolder>/<YourFile>
    • bms.destination:
      file://<YourAgentHostname>//<YourFolder>
  • Use the following format, to specify a source or destination UNC path:
    • bms.file:
      file://<YourAgentHostname>///<YourFileServerHostname>/<YourShare>/<YourFolder>/<YourFile>
    • bms.destination:
      file://<YourAgentHostname>///<YourFileServerHostname>/<YourShare>/<YourFolder>
  • Specified paths must be absolute. Relative paths are not supported by the out-of-the-box FIMS sample or Media Mover workflows.
  • Most of the JSON properties are mandatory - for any random parsing errors, review the known working sample and modify from this point. Typically, specific errors are not generated to indicate which property is missing.
  • Whereas the bms.packageSize property is mandatory, the specified value is irrelevant.
  • The terms JobID and ResourceID are used interchangeably in FIMS. Both terms refer to the identification string set during the create job call.
  • Specifying a namespace (for example, bms) for parameters is optional, but is a recommended practice. If you choose to specify only some namespaces, you will see JSON parsing errors. You must either specify all of the namespaces or specify no namespaces.

REST Examples

This chapter details REST examples for the Signiant FIMS implementation.

REST Create Job Request for Standard FIMS Job

RestClient.post "http://mymanager.signiant.com/signiant_fims_transfer_service/transferservice/job", 574 byte(s) length, "Accept"=>"*/*; q=0.5, application/xml", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"574", "Content-Type"=>"application/json", "X-FIMS-Password"=>"yourpassword", "X-FIMS-UserName"=>"yourname"

REST Create Job JSON Content

{
  "transferJob": {
    "bms.resourceID": 1426773837,
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}					

REST Create Job Response

# => 200 OK | application/json 124 bytes
{"tms.transferJob"=>
  {"bms.resourceID"=>"1426773837",
   "bms.status"=>"running",
   "bms.serviceProviderJobID"=>"FIMS_1426773847566"}}
					

REST Create Job Request for Standard FIMS Job with Notifications Requested

RestClient.post "http://mymanager.signiant.com/signiant_fims_transfer_service/transferservice/job", 729 byte(s) length, "Accept"=>"*/*; q=0.5, application/xml", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"729", "Content-Type"=>"application/json", "X-FIMS-Password"=>"yourpassword", "X-FIMS-UserName"=>"yourname"

REST Create Job JSON Content

{
  "transferJob": {
    "bms.resourceID": 1426773887,
    "bms.notifyAt": {
      "bms.replyTo": "http://10.0.12.88:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://10.0.12.88:8089/TransferMediaNotificationPort"
    },
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}
		

REST Create Job Response

# => 200 OK | application/json 124 bytes
{"tms.transferJob"=>
  {"bms.resourceID"=>"1426773887",
   "bms.status"=>"running",
   "bms.serviceProviderJobID"=>"FIMS_1426773897458"}}
					

REST Create Job Notification of Job Started

{:method=>"POST"@0,
 :uri=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"1044",
   "Content-Type"=>"text/json",
   "Host"=>"10.0.12.88:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773887",
    "bms.notifyAt": {
      "bms.replyTo": "http://10.0.12.88:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://10.0.12.88:8089/TransferMediaNotificationPort"
    },
    "bms.status": "running",
    "bms.serviceProviderJobID": "FIMS_1426773897458",
    "bms.operationName": "Transfer",
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2015-03-19T10:04:58.000-04:00",
    "bms.jobElapsedTime": "PT4.507S",
    "bms.processed": {
      "@xsi.type": "bms.ProcessedInfoByBytesType",
      "bms.percentageProcessedCompleted": 0,
      "bms.processedBytesCount": 0
    },
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

REST Create Job Notification of Job Fault

{
  "transferFaultNotificationType": {
    "transferJob": {
      "bms.resourceID": "1437658544440713",
      "bms.notifyAt": {
        "bms.replyTo": "http://10.0.76.60:8088/TransferMediaNotificationPort",
        "bms.faultTo": "http://10.0.76.60:8089/TransferMediaNotificationFailedPort"
      },
      "bms.status": "failed",
      "bms.serviceProviderJobID": "FIMS_1437658604953",
      "bms.operationName": "Transfer",
      "bms.bmObjects": {
        "bms.bmObject": [
          {
            "bms.bmContents": {
              "bms.bmContent": [
                {
                  "bms.bmContentFormats": {
                   "bms.bmContentFormat": [
                      {
                        "bms.bmEssenceLocators": {
                          "bms.bmEssenceLocator": [
                            {
                              "@xsi.type": "bms.SimpleFileLocatorType",
                              "bms.file": "file://agent1.example.com/J:/var"
                            }
                          ]
                        },
                        "bms.packageSize": 44947460
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      },
      "bms.priority": "low",
      "bms.jobStartedTime": "2015-07-23T09:36:46.000-04:00",
      "bms.jobElapsedTime": "PT2.703S",
      "bms.processed": {
        "@xsi.type": "bms.ProcessedInfoByBytesType",
        "bms.percentageProcessedCompleted": 0,
        "bms.processedBytesCount": 0
      },
      "profiles": {
        "transferProfile": [
          {
            "@name": "Transfer Profile",
            "@description": "Highspeed Transfer Delivery",
            "transferAtom": [
              {
                "bms.destination": "file://agent2.example.com/C:/tmp/MediaIn"
              }
            ]
          }
        ]
      }
    },
    "fault": {
      "bms.code": "SVC_S00_0009",
      "bms.description": "Non-zero exit code from the Source initialization command\r\nExecution of job component 'FIMS_Transfer' is suppressed.\r\nFinished job component: FIMS_Transfer_Start.GROUP_FIMS_Transfer.FIMS_Transfer - with errors.\r\n",
      "bms.innerFault": [
        {
          "bms.code": "24"
        }
      ]
    }
  }
}
									

REST Create Job Notification of Job Completed

 {"tms.transferJob": {
   "bms.resourceID": "11",
   "bms.notifyAt": {
      "bms.replyTo": "http://agent1.example.com:8080/FIMSResponse/response.jsp",
      "bms.faultTo": "http://agent1.example.com:8080/FIMSResponse/response.jsp"
   },
   "bms.status": "completed",
   "bms.serviceProviderJobID": "test",
   "bms.operationName": "Transfer",
   "bms.bmObjects": {"bms.bmObject": [{"bms.bmContents": {"bms.bmContent": [{"bms.bmContentFormats": {"bms.bmContentFormat": [ {
      "bms.bmEssenceLocators": {"bms.bmEssenceLocator": [
                  {
            "@xsi.type": "bms.SimpleFileLocatorType",
            "bms.file": "file://agent1.example.com/C:/Source"
         },
                  {
            "@xsi.type": "bms.SimpleFileLocatorType",
            "bms.file": "file://agent1.example.com/C:/target"
         }
      ]},
      "bms.packageSize": 123456
   }]}}]}}]},
   "bms.priority": "low",
   "bms.jobStartedTime": "2017-01-20T15:49:01.000+01:00",
   "bms.jobCompletedTime": "2017-01-20T15:49:05.000+01:00",
   "bms.processed": {
      "@xsi.type": "bms.ProcessedInfoByBytesType",
      "bms.percentageProcessedCompleted": 100,
      "bms.processedBytesCount": 705730
   },
   "profiles": {"transferProfile": [ {
      "bms.location": "https://agent1.example.com/template/FIMS_Workflow/component/FIMS_Transfer_Start",
      "bms.ExtensionGroup": {"sig.SigniantExtensionGroup": [ {
         "sig.jobContextParameters": {
            "sig.jobName": "test1",
            "sig.jobGroup": "Default"
         },
         "sig.jobVariables": {
            "sig.JobVariableName": "FIMS_Transfer_Start.targetDirectory",
            "sig.JobVariableValue": "c:/target/2"
         }
      }]},
      "transferAtom": [{"bms.destination": "file://agent1.example.com/c:/target/1"}]
   }]}
}}
						

REST Create Job Request for MediaMover Job with Notifications Requested

RestClient.post "http://mymanager.signiant.com/signiant_fims_transfer_service/transferservice/job", 1536 byte(s) length, "Accept"=>"*/*; q=0.5, application/xml", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"1536", "Content-Type"=>"application/json", "X-FIMS-Password"=>"yourpassword", "X-FIMS-UserName"=>"yourname"					
												

REST Create for MediaMover Job JSON Content

{
  "transferJob": {
    "bms.resourceID": 1426773850,
    "bms.notifyAt": {
      "bms.replyTo": "http://10.0.12.88:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://10.0.12.88:8089/TransferMediaNotificationPort"
    },
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "name": "Transfer Profile",
          "description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ],
          "bms.location": "https://myManager.signiant.com/template/Media_Mover_Workflows/component/MediaDistributor",
          "bms.ExtensionGroup": [
            {
              "sig.SigniantExtensionGroup": [
                {
                  "sig.jobContextParameters": [
                    {
                      "sig.jobName": "JobName_1_1426773850",
                      "sig.jobGroup": "MediaDistributor"
                    }
                  ],
                  "sig.fimsMapping": [
                    {
                      "sig.sourceAgent": [
                        "MediaDistributor.Source.SourceAgent"
                      ],
                      "sig.targetAgent": [
                        "MediaDistributor.Target.TargetAgents"
                      ],
                      "sig.BMEssenceLocatorType": [
                        "MediaDistributor.Source.SourceData"
                      ],
                      "sig.destination": [
                        "MediaDistributor.Target.TargetDirectory"
                      ],
                      "sig.priority": [
                        "MediaDistributor.Schedule.priority"
                      ]
                    }
                  ],
                  "sig.jobVariables": [
                    {
                      "sig.JobVariableName": "MediaDistributor.Schedule._sp_interrupt_on_failure",
                      "sig.JobVariableValue": "no"
                    },
                    {
                      "sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
                      "sig.JobVariableValue": "job date"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  }
}
					

REST Create for MediaMover Job Response

# => 200 OK | application/json 126 bytes
{"tms.transferJob"=>
  {"bms.resourceID"=>"1426773850",
   "bms.status"=>"running",
   "bms.serviceProviderJobID"=>"JobName_1_1426773850"}}
					

REST Create for MediaMover Job Notification of Job Started

#######
{:method=>"POST"@0,
 :uri=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"1941",
   "Content-Type"=>"text/json",
   "Host"=>"10.0.12.88:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773850",
    "bms.notifyAt": {
      "bms.replyTo": "http://10.0.12.88:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://10.0.12.88:8089/TransferMediaNotificationPort"
    },
    "bms.status": "running",
    "bms.serviceProviderJobID": "JobName_1_1426773850",
    "bms.operationName": "Transfer",
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2015-03-19T10:04:21.000-04:00",
    "bms.jobElapsedTime": "PT4.522S",
    "bms.processed": {
      "@xsi.type": "bms.ProcessedInfoByBytesType",
      "bms.percentageProcessedCompleted": 0,
      "bms.processedBytesCount": 0
    },
    "profiles": {
      "transferProfile": [
        {
          "bms.location": "https://myManager.signiant.com/template/Media_Mover_Workflows/component/MediaDistributor",
          "bms.ExtensionGroup": {
            "sig.SigniantExtensionGroup": [
              {
                "sig.jobContextParameters": {
                  "sig.jobName": "JobName_1_1426773850",
                  "sig.jobGroup": "MediaDistributor",
                },
                "sig.fimsMapping": {
                  "sig.sourceAgent": "MediaDistributor.Source.SourceAgent",
                  "sig.targetAgent": "MediaDistributor.Target.TargetAgents",
                  "sig.BMEssenceLocatorType": "MediaDistributor.Source.SourceData",
                  "sig.destination": "MediaDistributor.Target.TargetDirectory",
                  "sig.priority": "MediaDistributor.Schedule.priority",
                },
                "sig.jobVariables": {
                  "sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
                  "sig.JobVariableValue": "job date",
                },
              }
            ]
          },
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}
			

REST Create for MediaMover Job Notification of Job Running

{:method=>"POST"@0,
 :uri=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"1949",
   "Content-Type"=>"text/json",
   "Host"=>"10.0.12.88:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773850",
    "bms.notifyAt": {
      "bms.replyTo": "http://10.0.12.88:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://10.0.12.88:8089/TransferMediaNotificationPort"
    },
    "bms.status": "running",
    "bms.serviceProviderJobID": "JobName_1_1426773850",
    "bms.operationName": "Transfer",
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2015-03-19T10:04:21.000-04:00",
    "bms.jobElapsedTime": "PT11.814S",
    "bms.processed": {
      "@xsi.type": "bms.ProcessedInfoByBytesType",
      "bms.percentageProcessedCompleted": 89,
      "bms.processedBytesCount": 2218710
    },
    "profiles": {
      "transferProfile": [
        {
          "bms.location": "https://myManager.signiant.com/template/Media_Mover_Workflows/component/MediaDistributor",
          "bms.ExtensionGroup": {
            "sig.SigniantExtensionGroup": [
              {
                "sig.jobContextParameters": {
                  "sig.jobName": "JobName_1_1426773850",
                  "sig.jobGroup": "MediaDistributor",
                },
                "sig.fimsMapping": {
                  "sig.sourceAgent": "MediaDistributor.Source.SourceAgent",
                  "sig.targetAgent": "MediaDistributor.Target.TargetAgents",
                  "sig.BMEssenceLocatorType": "MediaDistributor.Source.SourceData",
                  "sig.destination": "MediaDistributor.Target.TargetDirectory",
                  "sig.priority": "MediaDistributor.Schedule.priority",
                },
                "sig.jobVariables": {
                  "sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
                  "sig.JobVariableValue": "job date",
                },
              }
            ]
          },
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}					

REST Create for MediaMover Job Notification of Job Completed

{:method=>"POST"@0,
 :uri=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"2089",
   "Content-Type"=>"text/json",
   "Host"=>"10.0.12.88:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773850",
    "bms.notifyAt": {
      "bms.replyTo": "http://10.0.12.88:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://10.0.12.88:8089/TransferMediaNotificationPort"
    },
    "bms.status": "completed",
    "bms.serviceProviderJobID": "JobName_1_1426773850",
    "bms.operationName": "Transfer",
    "bms.bmObjects": {
      "bms.bmObject": [
        {
          "bms.bmContents": {
            "bms.bmContent": [
              {
                "bms.bmContentFormats": {
                  "bms.bmContentFormat": [
                    {
                      "bms.bmEssenceLocators": {
                        "bms.bmEssenceLocator": [
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent1.signiant.com/C:/tmp/MediaOut"
                          },
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://myagent2.signiant.com/C:/tmp/MediaIn//MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2015-03-19T10:04:21.000-04:00",
    "bms.jobCompletedTime": "2015-03-19T10:04:35.000-04:00",
    "bms.processed": {
      "@xsi.type": "bms.ProcessedInfoByBytesType",
      "bms.percentageProcessedCompleted": 100,
      "bms.processedBytesCount": 2218710
    },
    "profiles": {
      "transferProfile": [
        {
          "bms.location": "https://myManager.signiant.com/template/Media_Mover_Workflows/component/MediaDistributor",
          "bms.ExtensionGroup": {
            "sig.SigniantExtensionGroup": [
              {
                "sig.jobContextParameters": {
                  "sig.jobName": "JobName_1_1426773850",
                  "sig.jobGroup": "MediaDistributor",
                },
                "sig.fimsMapping": {
                  "sig.sourceAgent": "MediaDistributor.Source.SourceAgent",
                  "sig.targetAgent": "MediaDistributor.Target.TargetAgents",
                  "sig.BMEssenceLocatorType": "MediaDistributor.Source.SourceData",
                  "sig.destination": "MediaDistributor.Target.TargetDirectory",
                  "sig.priority": "MediaDistributor.Schedule.priority",
                },
                "sig.jobVariables": {
                  "sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
                  "sig.JobVariableValue": "job date",
                },
               }
            ]
          },
          "transferAtom": [
            {
              "bms.destination": "file://myagent2.signiant.com/C:/tmp/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}			
		

FIMS Failed Status Response

"bms.status": "failed","bms.statusDescription": "Non-zero exit code from the Source initialization command\r\nExecution of job component 'FIMS_Transfer' is suppressed.\r\nFinished job component: FIMS_Transfer_Start.GROUP_FIMS_Transfer.FIMS_Transfer - with errors.\r\n",					
						

RESTServer.pl

#!/usr/signiant/dds/bin/perl/bin/perl

use strict;
use Socket;
use IO::Socket;

# Simple web server in Perl
# Serves out .html files, echos form data

sub parse_form {
    my $data = $_[0];
    my %data;
    foreach (split /&/, $data) {
        my ($key, $val) = split /=/;
        $val =~ s/\+/ /g;
        $val =~ s/%(..)/chr(hex($1))/eg;
        $data{$key} = $val;}
    return %data; }

# Setup and create socket

my $port = shift;
defined($port) or die "Usage: $0 portno\n";

my $DOCUMENT_ROOT = $ENV{'HOME'} . "/public_html";
my $server = new IO::Socket::INET(Proto => 'tcp',
                                  LocalPort => $port,
                                  Listen => SOMAXCONN,
                                  Reuse => 1);
$server or die "Unable to create server socket: $!" ;

# Await requests and handle them as they arrive

while (my $client = $server->accept()) {
    $client->autoflush(1);
    my %request = ();
    my %data;

    {

#-------- Read Request ---------------

        local $/ = Socket::CRLF;
        while (<$client>) {
            chomp; # Main http request
            if (/\s*(\w+)\s*([^\s]+)\s*HTTP\/(\d.\d)/) {
                $request{METHOD} = uc $1;
                $request{URL} = $2;
                $request{HTTP_VERSION} = $3;
            } # Standard headers
            elsif (/:/) {
                (my $type, my $val) = split /:/, $_, 2;
                $type =~ s/^\s+//;
                foreach ($type, $val) {
                        s/^\s+//;
                        s/\s+$//;
                }
                $request{lc $type} = $val;
            } # POST data
            elsif (/^$/) {
                read($client, $request{CONTENT}, $request{'content-length'})
                    if defined $request{'content-length'};
                last;
            }
        }
    }

#-------- SORT OUT METHOD ---------------

    if ($request{METHOD} eq 'GET') {
        if ($request{URL} =~ /(.*)\?(.*)/) {
                $request{URL} = $1;
                $request{CONTENT} = $2;
                %data = parse_form($request{CONTENT});
        } else {
                %data = ();
        }
        $data{"_method"} = "GET";
    } elsif ($request{METHOD} eq 'POST') {
                %data = parse_form($request{CONTENT});
                $data{"_method"} = "POST";
    } else {
        $data{"_method"} = "ERROR";
    }

#------- Serve file ----------------------

        my $localfile = $DOCUMENT_ROOT.$request{URL};

# Send Response
        if (open(FILE, "<$localfile")) {
            print $client "HTTP/1.0 200 OK", Socket::CRLF;
            print $client "Content-type: text/html", Socket::CRLF;
            print $client Socket::CRLF;
            my $buffer;
            while (read(FILE, $buffer, 4096)) {
                print $client $buffer;
            }
            $data{"_status"} = "200";
        }
        else {
            print $client "HTTP/1.0 404 Not Found", Socket::CRLF;
            print $client Socket::CRLF;
            print $client "<html><body>404 Not Found</body></html>";
            $data{"_status"} = "404";
        }
        close(FILE);

# Log Request
        print ($DOCUMENT_ROOT.$request{URL},"\n");
        foreach (keys(%data)) {
                print (" $_ = $data{$_}\n"); }

# ----------- Close Connection and loop ------------------

    close $client;
}

 


Using Flight

This chapter details how to use FIMS with the Flight Workflow. This chapter assumes you have read the Flight Workflow User's Guide and have installed and configured the Signiant Flight CLI Utility. For information about the Signiant Flight CLI Utility, read the Signiant Flight CLI Guide.

Flight Uploads Workflow Prompts

The following sections provide the prompt names, descriptions, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Flight Uploads. For a JSON example, See Flight Uploads JSON Example.

Source Content

The following are the Source prompts for the Flight Uploads workflow:

Source Agent

  • Description: The agent where the files are uploaded from. This can be a single agent or a load-balanced agent group. This is a mandatory prompt.
  • REST/SOAP Variable Value: The hostname of any agent or alias in the system.
  • JSON Variable Name:Flight_Upload.sourceOptions.sourceAgent

Source Data

  • Description: List of files/folders to be transferred. This is a list of absolute paths (or paths relative to the Base Folder) and may be in SigListXML format or comma-separated. If this list contains a path to a single file, and that path ends with ._manifest_, then it is considered a manifest file and is read by the job to determine the actual list of files/folders to be transferred. UNC paths are supported. If the Base Folder is specified, then these paths are considered relative to the Base Folder. A combination of absolute and relative paths is not supported. UNC paths are supported on Windows. This is a mandatory prompt.
  • REST/SOAP Variable Value:
    <siglist type="filedir">
    	 <el v="c:\Temp" t="d"></el>
    	<el v="e:\dist\source\test.txt" t="f"></el>
    </siglist>
    The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
  • JSON Variable Name: Flight_Upload.sourceOptions.sourceData

Delete Source Files After Upload

  • Description: Set Yes or No. When set to Yes, files or folders are removed from the source after a successful transfer.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: Flight_Upload.sourceOptions.deleteSourceFilesAfterUpload

Delete Empty Source Folders After Upload

  • Description: Set to Yes or No. When set to Yes, the empty source folder is deleted after the files and folders are uploaded.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: Flight_Upload.sourceOptions.deleteEmptySourceFoldersAfterUpload

Source Content Filters

The following list details the Source Content Filters prompts for the Flight Uploads workflow:

Include File Patterns

  • Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names and types. For example, if you type *.doc, *.ppt, in the prompt, the transfer includes files with these extensions.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt..
  • JSON Variable Name: Flight_Upload.sourceSelectionOptions.includeFilePatterns

Exclude File Patterns

  • Description: Allows users to specify which files are excluded from the transfer. Use a comma to separate multiple filters. If the source directory for this job is also being used as the target directory for another job, you should add #work_file#* and #chkpt_file#*.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: Flight_Upload.sourceSelectionOptions.excludeFilePatterns

Exclude Subdirectories

  • Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
  • REST/SOAP Variable Value: None, All or Specified
  • JSON Variable Name: Flight_Upload.sourceSelectionOptions.excludeSubdirectories

Subdirectories to Exclude

  • Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior changes to anchor the exclude folder path.

    For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)

    If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.

    To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:

    * (matches zero or more characters)

    ? (matches any single character)

    [...] (matches any one of the enclosed characters - for example, [ch] would match the characters "c" or "h")

    A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.

  • REST/SOAP Variable Value: Comma separated list
  • JSON Variable Name: Flight_Upload.sourceSelectionOptions.subdirectoriestoExclude

File Date Filter

  • Description: Used to filter files based on date or unit of time.
  • REST/SOAP Variable Value: -(filterType)(blankspace)(comparison)(blankspace)"(value)"

    where

    • - filterType can have these values: ['none','none'], ['modified','when file was last modified'], ['accessed','when file was last accessed'], ['created','when file was created']
    • (comparison) can have these values: ['gt','before' or 'more than'], ['lt','after' or 'within'], ['ge','before or on'], ['le','after or on']
    • (value) can have these values: Date in the form of "YYYY/MM/DD" or Number, followed by these letters: ['s','seconds'], ['m','minutes'], ['h','hours'], ['d','days'], ['w','weeks'], ['M','months'], ['y','years']
  • JSON Variable Name: Flight_Upload.sourceSelectionOptions.fileDateFilter

File Readiness Check Type

  • Description: Specify the check type used by an agent to determine if a file is ready to be transferred. Depending on your configuration, you may or may not want to enable the File Readiness Check Type option:

    For Windows agents and local Windows file systems, there is no need to use a file readiness check, because the core file in use is sufficient.

    For Windows agent and NAS Windows file systems, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in the event the NAS file system does not properly support file locking.

    For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.

  • REST/SOAP Variable Value: Choose one of the following:
    • None: files that are in use are skipped by default.
    • Consecutive Seek (recommended) : reads the last few bytes at the end of the file, waits for the time specified in the Readiness Check Delay prompt and checks again. If the last few bytes match in both cases the file is sent. This is very useful with large files where the MD5 option would simply take too long.
    • MD5 Hash: use an MD5 hash to compute a hash on all files under the dropbox folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.
    • Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time and size are transferred.
  • JSON Variable Name: Flight_Upload.sourceSelectionOptions.fileReadinessCheckType

Readiness Check Delay

  • Description: The amount of time (in seconds) to pause between the two phases of the specified File Readiness Check Type ("MD5 Hash", "Consecutive Seek", or "Date/Time & Size") for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds.
  • REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
  • JSON Variable Name: Flight_Upload.sourceSelectionOptions.readinessCheckDelay

Target Storage

The following list details the Target Storage prompts for the Flight Uploads workflow:

Cloud Vendor

  • Description: Set to Amazon S3 or Microsoft Azure to define the cloud storage you're using. This is a mandatory prompt.
  • REST/SOAP Variable Value: Amazon S3 or Microsoft Azure
  • JSON Variable Name: Flight_Upload.targetOptions.cloudVendor

Storage Specification Mechanism

  • Description:Set to Flight Storage Config ID or Cloud Vendor Credentials. When set to Flight Storage Config ID, the object storage and access credentials are managed using https://manage.signiant.com. When set to Cloud Vendor Credentials, the credentials are specified in the job. If you use Flight Storage Config ID, you must enter this value below in Flight Storage Config ID. If you use Cloud Vendor Credentials, you must specify either the Amazon S3 or Microsoft Azure properties.
  • REST/SOAP Variable Value: Flight Storage Config ID or Cloud Vendor Credentials
  • JSON Variable Name: Flight_Upload.targetOptions.storageSpecificationMechanism

Flight Storage Config ID

  • Description: Enter the Flight Storage Config ID. You must enter this value if you set the Storage Specification Mechanism to Flight Storage Config ID.
  • REST/SOAP Variable Value: Enter the Flight Storage Config ID
  • JSON Variable Name: Flight_Upload.targetOptions.flightStorageConfigID

Folder Structure Preservation

  • Description: Specify how to manage folder structure during the upload of files and folders. Set to: Preserve Top-Level Folders and Subfolders, Preserve Subfolders Only, or Flatten Folder Structure. The workflow transfer can: preserve the structure of all uploaded folders including the base folder (Preserve Top-Level Folders and Subfolders), preserve the structure of the subfolders only and not the base folder (Preserve Subfolders Only) or flatten all content so that no folder structure is transferred to the object container (Flatten Folder Structure). Note: if Source Data is a manifest file, Folder Structure Preservation must be set to Flatten Folder Structure.
  • REST/SOAP Variable Value: Preserve Top-Level Folders and Subfolders, Preserve Subfolders Only, or Flatten Folder Structure
  • JSON Variable Name: Flight_Upload.targetOptions.folderStructurePreservation

Optional Target Subfolder

  • Description: By default all uploaded content is placed relative to the root of the object storage. When an Optional Target Subfolder is specified, all content is placed relative to this subfolder rather than the root. This subfolder is created if it does not exist.
  • REST/SOAP Variable Value: Enter the subfolder name and path.
  • JSON Variable Name: Flight_Upload.targetOptions.optionalTargetSubfolder

Flight Service

The following list details the Flight Service prompts for the Flight Uploads workflow:

Flight Service Primary Entry Point

  • Description: Set to your primary direct end point server. This specifies the specific locations or regions that the Flight CLI connects to when performing the upload. It is generally recommended that the Flight Service Primary Entry Point be at the location that is geographically closest to where the object storage container is located, not necessarily the point that is closest to the source Signiant Agent.
  • REST/SOAP Variable Value: Enter the Flight Service Primary Entry Point.
  • JSON Variable Name: Flight_Upload.flightServiceOptions.flightServicePrimaryEntryPoint

Flight Service Backup Entry Point

  • Description: Set to the backup entry point server. This list includes the regional server aliases. This attribute can be specified as a geographic region spanning multiple Signiant Flight clusters, providing further high-availability and fault-tolerance. The Flight Service Backup Entry Point is provided for high-availability, in the unlikely event that the primary endpoint is not available, the backup is used.
  • REST/SOAP Variable Value: Enter the Flight Service Backup Entry Point.
  • JSON Variable Name: Flight_Upload.flightServiceOptions.flightServiceBackupEntryPoint

Flight API Key

  • Description: The Signiant Flight API Key. You must create the Signiant Flight API Key using the Signiant Console. Use https://manage.signiant.com to access the Signiant Console.
  • REST/SOAP Variable Value:  Enter the Signiant Flight API Key
  • JSON Variable Name: Flight_Upload.flightServiceOptions.flightAPIKey

Amazon S3 Credentials

The following list details the Amazon S3 Credentials prompts for the Flight Uploads workflow:

AWS Access Key

  • Description: Your AWS Access Key.
  • REST/SOAP Variable Value: Enter your AWS Access Key
  • JSON Variable Name: Flight_Upload.amazonS3.aWSAccessKey

AWS Secret Key

  • Description: Your AWS Secret Key.
  • REST/SOAP Variable Value: Enter your AWS Secret Key
  • JSON Variable Name: Flight_Upload.amazonS3.aWSSecretKey

S3 Bucket

  • Description: Your S3 Bucket name. This is the folder into which the files are placed. This location must exist; it is not created automatically.
  • REST/SOAP Variable Value: Enter your S3 Bucket name
  • JSON Variable Name: Flight_Upload.amazonS3.s3Bucket

Microsoft Azure Credentials

The following list details the Microsoft Azure Credentials prompts for the Flight Uploads workflow:

Azure Storage Account Name

  • Description: Your Azure Storage Account Name.
  • REST/SOAP Variable Value: Enter your Azure Storage Account Name
  • JSON Variable Name: Flight_Upload.microsoftAzure.azureStorageAccountName

Azure Access Key

  • Description: Your Azure Access Key.
  • REST/SOAP Variable Value: Enter your Azure Access Key
  • JSON Variable Name: Flight_Upload.microsoftAzure.azureAccessKey

Azure Container

  • Description: Your Azure Container name. This is the folder into which the files are placed. This location must exist, it is not created automatically.
  • REST/SOAP Variable Value: Enter your Azure Container name
  • JSON Variable Name: Flight_Upload.microsoftAzure.azureContainer

Encryption Options

The following list details the Encryption Options prompts for the Flight Uploads workflow:

Encrypt Uploaded Files

  • Description: Set to Yes or No. All Flight transfers are encrypted in transit and when Encrypt Uploaded Files is set to Yes, all content uploaded to the cloud is encrypted. This allows you to choose an extra measure of security for sensitive material. The Encryption Key is required to decrypt this content.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: Flight_Upload.encryption.encryptUploadedFiles

Encryption Key

  • Description: Enter your Encryption Key. This is used when encrypting the content. The Encryption Key must be a 64-character hex string (0....9,A-F).
  • REST/SOAP Variable Value: Enter your Encryption Key.
  • JSON Variable Name: Flight_Upload.encryption.encryptionKey

Initialization Vector

  • Description: Enter your Initialization Vector. This is used when uploading content. The Initialization Vector must be a 32-character hex string (0...9, A-F).
  • REST/SOAP Variable Value: Enter your Initialization Vector.
  • JSON Variable Name: Flight_Upload.encryption.initializationVector

Transport Options

The following list details the Transport Options prompts for the Flight Uploads workflow:

Protocol

  • Description: Specifies either to use a specific protocol (UDP, TCP, HTTP) for the file transfer, or to use all protocols (All). All means to try UDP first, then TCP, and finally HTTP. The default value is All.
  • REST/SOAP Variable Value: udp, tcp, httpor all.
  • JSON Variable Name: Flight_Upload.transport.protocol

Bandwidth Throttle

  • Description: Allows you to specify the amount of bandwidth the job uses. Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
  • REST/SOAP Variable Value: Any number, the value of which is in Bps.
  • JSON Variable Name: Flight_Upload.transport.bandwidthThrottle

Transport Restart Attempts

  • Description: The number of restarts on a transfer failure before the component exits in error. If zero, then no restarts are attempted. The component will not retry on invalid storage credentials or other conditions under which a retry has no chance of succeeding. The default value is 3.
  • REST/SOAP Variable Value: Any number.
  • JSON Variable Name: Flight_Upload.transport.transportRestartAttempts

Transport Port Usage

  • Description: Set to single or range. By default the transfer uses a single port (49221) for firewall efficiency. For enhanced throughput, set to Range. If outbound firewall rules are set, then a port range of (49221-49420) must be added to the firewall. The default value is single.
  • REST/SOAP Variable Value: single or range
  • JSON Variable Name: Flight_Upload.transport.transportPortUsage

Relay Agents

  • Description: If the network connection to the Flight Server must be routed via a Signiant relay agent (typically for DMZ navigation), then enter one or more relay agents through which the network connection is to be routed. If multiple relay agents are entered, all routes to the Flight Server will be tried, and the quickest to respond is used.
  • REST/SOAP Variable Value: The hostname of any agent or alias in the system. Space separated list.
  • JSON Variable Name: Flight_Upload.transport.relayAgents

HTTP Proxy

  • Description: If you have an outbound HTTP proxy, specify the proxy server URL and port. This is required for the component key check. This proxy will not be used for HTTP fallback transfers. The specified value should be in the format: http://<host>:<port>
  • REST/SOAP Variable Value: http://<host>:<port>
  • JSON Variable Name: Flight_Upload.transport.HTTPProxy

Notification and Logging

The following list details the Notification and Logging prompts for the Flight Uploads workflow:

Success Email Condition

  • Description: The circumstances in which an email is sent. Choose from: Never - no email is sent, Always - an email is always sent when a job runs, or On Transfer - an email is sent only when the transfer occurs.
  • REST/SOAP Variable Value: never, always, or on transfer
  • JSON Variable Name: Flight_Upload.notificationandLoggingOptions.successEmailCondition

Email To

  • Description: The email address(es) who receive the logging report. Separate multiple email addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailTo

Email Cc

  • Description: The email address(es) who receive who receive a carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailCc

Email Bcc

  • Description: The email address(es) who receive who receive a blind carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailBcc

Email Failure Report To

  • Description: The email address(es) who receive failure reports. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailFailureReportTo

Log Detail Level

  • Description: Set the amount of information based on severity, that is logged during the transfer. The options are: Error, Warn, Info, or Debug. The default is Info. Debug provides the greatest level of detail while Error provides the least.
  • REST/SOAP Variable Value: error, warn, info, or debug
  • JSON Variable Name: Flight_Upload.notificationandLoggingOptions._sp_log_severity

Create File Delivery Log

  • Description: Set to Yes or No to optionally create the Delivery Log.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: Flight_Upload.notificationandLoggingOptions.createFileDeliveryLog

Job Schedule

The following list provides Job Schedule prompt details for the Flight Uploads workflow:

Frequency

  • Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.

    The options are:

    • None: use for jobs that run only at irregular, user defined times.
    • Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval.
    • Monthend: run the job once every last day of the month.
    • Once: run the job only once, when first created.

     

  • REST/SOAP Variable Value: Possible values are: None, Any number, representing "Every X minutes", Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month", Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
  • JSON Variable Name: Flight_Upload.Schedule._sp_frequency

Start Date/Time

  • Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
  • JSON Variable Name: Flight_Upload.Schedule._sp_start_at

Time Zone

  • Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
  • REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see: Time Zone Values in Using Media Mover.
  • JSON Variable Name: Flight_Upload.Schedule.timezone

Interrupt on Failure

  • Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: Flight_Upload.Schedule._sp_interrupt_on_failure

Priority

  • Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The default value is Medium. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). This is a mandatory prompt.
  • REST/SOAP Variable Value: 1, 2, 3, 4, or 5
  • JSON Variable Name: Flight_Upload.Schedule.priority

Finish Before

  • Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
  • JSON Variable Name: Flight_Upload.Schedule.finishBefore

Flight Uploads JSON Example

The following is an example of the Flight Upload JSON.

{"transferJob": {
    "resourceID": "123456",
    "notifyAt":     {
        "replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
        "faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
    },
    "bmObjects": {"bmObject": [{"bmContents": {"bmContent": [{"bmContentFormats": {"bmContentFormat": [    {
        "packageSize": 123456,
        "bmEssenceLocators": {"bmEssenceLocator": [        {
            "file": "file://agent1.example.com/C:/tmp/source/",
            "type": "SimpleFileLocatorType"
        }]}
    }]}}]}}]},
    "profiles": [{"transferProfile": [    {
        "name": "Transfer Profile",
        "transferAtom": [{"destination": "file://agent2.example.com/D:/tmp/target"}],
        "description": "Highspeed Transfer Delivery",
        "location": ["https://manager.example.com/template/Flight_Reference_Workflows/component/Flight_Upload"],
        "ExtensionGroup": [{"SigniantExtensionGroup": [        {
            "jobContextParameters": [            {
                "jobName": ["FIMS_Flight_Upload_123456"],
                "jobGroup": ["Default"]
            }],
            "jobVariables":             [
                                {
                    "JobVariableName": ["Flight_Upload.sourceOptions.sourceAgent"],
                    "JobVariableValue": ["agent1.example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceOptions.sourceData"],
                    "JobVariableValue": ["<siglist type=\"filedir\"> <el v=\"C:/tmp/source\" t=\"d\"></el> <el v=\"e:/dist/source/test.txt\" t=\"f\"></el> </siglist>"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceOptions.deleteSourceFilesAfterUpload"],
                    "JobVariableValue": ["no"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceOptions.deleteEmptySourceFoldersAfterUpload"],
                    "JobVariableValue": ["no"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceSelectionOptions.includeFilePatterns"],
                    "JobVariableValue": ["*"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceSelectionOptions.excludeFilePatterns"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceSelectionOptions.excludeSubdirectories"],
                    "JobVariableValue": ["Specified"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceSelectionOptions.subdirectoriestoExclude"],
                    "JobVariableValue": ["dir1, dir2"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceSelectionOptions.fileDateFilter"],
                    "JobVariableValue": ["-modified lt \"2d\""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceSelectionOptions.fileReadinessCheckType"],
                    "JobVariableValue": ["None"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.sourceSelectionOptions.readinessCheckDelay"],
                    "JobVariableValue": ["10"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.targetOptions.cloudVendor"],
                    "JobVariableValue": ["s3"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.targetOptions.storageSpecificationMechanism"],
                    "JobVariableValue": ["configid"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.targetOptions.flightStorageConfigID"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.targetOptions.folderStructurePreservation"],
                    "JobVariableValue": ["preserveall"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.targetOptions.optionalTargetSubfolder"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.flightServiceOptions.flightServicePrimaryEntryPoint"],
                    "JobVariableValue": ["us-east-1-am.cloud.signiant.com"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.flightServiceOptions.flightServiceBackupEntryPoint"],
                    "JobVariableValue": ["none"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.flightServiceOptions.flightAPIKey"],
                    "JobVariableValue": ["asdf234edgg43reafd"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.amazonS3.aWSAccessKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.amazonS3.aWSSecretKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.amazonS3.s3Bucket"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.microsoftAzure.azureStorageAccountName"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.microsoftAzure.azureAccessKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.microsoftAzure.azureContainer"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.encryption.encryptUploadedFiles"],
                    "JobVariableValue": ["no"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.encryption.encryptionKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.encryption.initializationVector"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Upload.transport.protocol"],
                    "JobVariableValue": ["all"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.transport.bandwidthThrottle"],
                    "JobVariableValue": ["500000"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.transport.transportRestartAttempts"],
                    "JobVariableValue": ["3"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.transport.transportPortUsage"],
                    "JobVariableValue": ["range"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.transport.relayAgents"],
                    "JobVariableValue": ["agent2.example.com agent1.example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.transport.hTTPProxy"],
                    "JobVariableValue": ["proxy"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.notificationandLoggingOptions.successEmailCondition"],
                    "JobVariableValue": ["Never"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.notificationandLoggingOptions.emailTo"],
                    "JobVariableValue": ["user@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.notificationandLoggingOptions.emailCc"],
                    "JobVariableValue": ["user2@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.notificationandLoggingOptions.emailBcc"],
                    "JobVariableValue": ["user3@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.notificationandLoggingOptions.emailFailureReportTo"],
                    "JobVariableValue": ["user4@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.notificationandLoggingOptions._sp_log_severity"],
                    "JobVariableValue": ["2"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.notificationandLoggingOptions.createFileDeliveryLog"],
                    "JobVariableValue": ["yes"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.Schedule._sp_frequency"],
                    "JobVariableValue": ["None"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.Schedule._sp_start_at"],
                    "JobVariableValue": ["%now%"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.Schedule.timezone"],
                    "JobVariableValue": ["America/New_York"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.Schedule._sp_interrupt_on_failure"],
                    "JobVariableValue": ["no"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.Schedule.priority"],
                    "JobVariableValue": ["2"]
                },
                                {
                    "JobVariableName": ["Flight_Upload.Schedule.finishBefore"],
                    "JobVariableValue": ["2015/08/29 12:55:00"]
                }
            ]
        }]}]
    }]}],
    "priority": "low"
}}		
								

 

Flight Downloads Prompts

The following lists provide the prompt names, prompt details, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Flight Downloads workflow. For a JSON example, see Flight Downloads JSON Example.

Source Content

The following list provides Source prompt details for the Flight Downloads workflow:

Cloud Vendor

  • Description: Set to Amazon S3 or Microsoft Azure to define the cloud storage you're using. This is a mandatory prompt.
  • REST/SOAP Variable Value: Amazon S3 or Microsoft Azure
  • JSON Variable Name: Flight_Download.sourceOptions.cloudVendor

Storage Specification Mechanism

  • Description: Set to Flight Storage Config ID or Cloud Vendor Credentials. When set to Flight Storage Config ID, the object storage and access credentials are managed using https://manage.signiant.com. When set to Cloud Vendor Credentials, the credentials are specified in the job. If set to Flight Storage Config ID, you must enter this value below in Flight Storage Config ID. If set to Cloud Vendor Credentials, you must specify either the Amazon S3 or Microsoft Azure properties.
  • REST/SOAP Variable Value: Flight Storage Config ID or Cloud Vendor Credentials
  • JSON Variable Name: Flight_Download.sourceOptions.storageSpecificationMechanism

Flight Storage Config ID

  • Description: Enter your Flight Storage Config ID. You must enter this value if Storage Specification Mechanism is set to Flight Storage Config ID.
  • REST/SOAP Variable Value: Enter the Flight Storage Config ID
  • JSON Variable Name: Flight_Download.sourceOptions.flightStorageConfigID

Source Data

  • Description: List of files/folders to be transferred. This is a list of absolute paths (or paths relative to the Base Folder) and may be in SigListXML format or comma-separated. If this list contains a path to a single file, and that path ends with ._manifest_, then it is considered a manifest file and is read by the component to determine the actual list of files/folders to be transferred. UNC paths are supported. If the Base Folder input is specified, then these paths are considered relative to the Base Folder. A combination of absolute and relative paths is not supported. UNC paths are supported on Windows. This is a mandatory prompt.
  • REST/SOAP Variable Value:
    <siglist type="filedir">
    	<el v="c:\Temp" t="d"></el>
    	<el v="e:\dist\source\test.txt" t="f"></el>
    </siglist>

     

    The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
  • JSON Variable Name: Flight_Download.sourceOptions.sourceData

Target Storage

The following list provides Target prompt details for the Flight Downloads workflow:

Target Agents

  • Description: Agent where files are downloaded. This is a mandatory prompt.
  • REST/SOAP Variable Value: The hostname of any agent or alias in the system.
  • JSON Variable Name: Flight_Download.targetOptions.targetAgent

Target Folder

  • Description: Destination folder for the downloaded files. This is a mandatory prompt.
  • REST/SOAP Variable Value: Any valid path on the Signiant Manager, for example: c:\Temp (Windows) or /usr/tmp (UNIX).
  • JSON Variable Name: Flight_Download.targetOptions.targetFolder

Flight Service

The following list details the Flight Service prompts for the Flight Downloads workflow:

Flight Service Primary Entry Point

  • Description: Set your primary direct end point server. This specifies the specific locations or regions that the Flight CLI connects to when performing the upload. It is generally recommended that the Flight Service Primary Entry Point be at the location that is geographically closest to where the object storage container is located, not necessarily the point that is closest to the source Signiant Agent.
  • REST/SOAP Variable Value: Enter the Flight Service Primary Entry Point.
  • JSON Variable Name: Flight_Download.flightServiceOptions.flightServicePrimaryEntryPoint

Flight Service Backup Entry Point

  • Description: Set the backup entry point server. This list includes the regional server aliases. This attribute can be specified as a geographic region spanning multiple Signiant Flight clusters, providing further high-availability and fault-tolerance. The Flight Service Backup Entry Point is provided for high-availability, in the unlikely event that the primary endpoint is not available, the backup is used.
  • REST/SOAP Variable Value: Enter the Flight Service Backup Entry Point.
  • JSON Variable Name: Flight_Download.flightServiceOptions.flightServiceBackupEntryPoint

Flight API Key

  • Description: The Signiant Flight API Key. You must create the Signiant Flight API Key using the Signiant Console. Use https://manage.signiant.com to access the Signiant Console.
  • REST/SOAP Variable Value:  Enter the Signiant Flight API Key
  • JSON Variable Name: Flight_Download.flightServiceOptions.flightAPIKey

Amazon S3 Credentials

The following list details the Amazon S3 Credentials prompts for the Flight Downloads workflow:

AWS Access Key

  • Description: Your AWS Access Key.
  • REST/SOAP Variable Value: Enter your AWS Access Key
  • JSON Variable Name: Flight_Download.amazonS3.aWSAccessKey

AWS Secret Key

  • Description: Your AWS Secret Key.
  • REST/SOAP Variable Value: Enter your AWS Secret Key
  • JSON Variable Name: Flight_Download.amazonS3.aWSSecretKey

S3 Bucket

  • Description: Your S3 Bucket name. This is the folder into which the files are placed. This location must exist; it is not created automatically.
  • REST/SOAP Variable Value: Enter your S3 Bucket name
  • JSON Variable Name: Flight_Download.amazonS3.s3Bucket

Microsoft Azure Credentials

The following list details the Microsoft Azure Credentials prompts for the Flight Downloads workflow:

Azure Storage Account Name

  • Description: Your Azure Storage Account Name.
  • REST/SOAP Variable Value: Enter your Azure Storage Account Name
  • JSON Variable Name: Flight_Download.microsoftAzure.azureStorageAccountName

Azure Access Key

  • Description: Your Azure Access Key.
  • REST/SOAP Variable Value: Enter your Azure Access Key
  • JSON Variable Name: Flight_Download.microsoftAzure.azureAccessKey

Azure Container

  • Description: Your Azure Container name. This is the folder into which the files are placed. This location must exist, it is not created automatically.
  • REST/SOAP Variable Value: Enter your Azure Container name
  • JSON Variable Name: Flight_Download.microsoftAzure.azureContainer

Decryption Options

The following list details the Decryption Options prompts for the Flight Downloads workflow:

Decrypt Download Files

  • Description: Set to Yes or No to control file decryption. When set to Yes, content that has been encrypted by the FlightUpload component is decrypted.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: Flight_Download.decryption.decryptDownloadedFiles

Decryption Key

  • Description: Enter the Decryption Key to use when decrypting the downloaded content. This must be a 64-character hex string (0...9, AF).
  • REST/SOAP Variable Value: Enter your Decryption Key
  • JSON Variable Name: Flight_Download.decryption.decryptionKey

Initialization Vector

  • Description: Enter the Initialization Vector to use when decrypting the downloaded content. This must be a 32-character hex string (0...9, AF).
  • REST/SOAP Variable Value: Enter your Initialization Vector.
  • JSON Variable Name: Flight_Download.decryption.initializationVector

Transport Options

The following list provides Transport Options prompt details for the Flight Downloads workflow:

Protocol

  • Description: Specifies either to use a specific protocol (UDP, TCP, HTTP) for the file transfer, or to use all protocols (All). All means to try UDP first, then TCP, and finally HTTP. The default value is All.
  • REST/SOAP Variable Value: udp, tcp, httpor all.
  • JSON Variable Name: Flight_Download.transport.protocol

Bandwidth Throttle

  • Description: Allows you to specify the amount of bandwidth the job uses. Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
  • REST/SOAP Variable Value: Any number, the value of which is in Bps.
  • JSON Variable Name: Flight_Download.transport.bandwidthThrottle

Transport Restart Attempts

  • Description: The number of restarts on a transfer failure before the component exits in error. If zero, then no restarts are attempted. The component will not retry on invalid storage credentials or other conditions under which a retry has no chance of succeeding. The default value is 3.
  • REST/SOAP Variable Value: Any number.
  • JSON Variable Name: Flight_Download.transport.transportRestartAttempts

Transport Port Usage

  • Description: Set to single or range. By default the transfer uses a single port (49221) for firewall efficiency. For enhanced throughput, set to Range. If outbound firewall rules are set, then a port range of (49221-49420) must be added to the firewall. The default value is single.
  • REST/SOAP Variable Value: single or range
  • JSON Variable Name: Flight_Download.transport.transportPortUsage

Relay Agents

  • Description: If the network connection to the Flight Server must be routed via a Signiant relay agent (typically for DMZ navigation), then select one or more relay agents through which the network connection is to be routed. If multiple relay agents are selected, all routes to the Flight Server will be tried, and the quickest to respond will be used.
  • REST/SOAP Variable Value: The hostname of any agent or alias in the system. Space separated list.
  • JSON Variable Name: Flight_Download.transport.relayAgents

HTTP Proxy

  • Description: If you have an outbound HTTP proxy, specify the proxy server URL and port. This is required for the component key check. This proxy will not be used for HTTP fallback transfers. The specified value should be in the format: http://<host>:<port>
  • REST/SOAP Variable Value: http://<host>:<port>
  • JSON Variable Name: Flight_Download.transport.HTTPProxy

Notification and Logging

The following list details the Notification and Logging prompts for the Flight Uploads workflow:

Success Email Condition

  • Description: The circumstances in which an email is sent. Choose from: Never - no email is sent, Always - an email is always sent when a job runs, or On Transfer - an email is sent only when the transfer occurs.
  • REST/SOAP Variable Value: never, always, or on transfer
  • JSON Variable Name: Flight_Download.notificationandLoggingOptions.successEmailCondition

Email To

  • Description: The email address(es) who receive the logging report. Separate multiple email addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailTo

Email Cc

  • Description: The email address(es) who receive who receive a carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailCc

Email Bcc

  • Description: The email address(es) who receive who receive a blind carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailBcc

Email Failure Report To

  • Description: The email address(es) who receive failure reports. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Comma-separated list of email addresses
  • JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailFailureReportTo

Log Detail Level

  • Description: Select the amount of information based on severity, that is logged during the transfer. The options are: Error, Warn, Info, or Debug. The default is Info. Debug provides the greatest level of detail while Error provides the least.
  • REST/SOAP Variable Value: error, warn, info, or debug
  • JSON Variable Name: Flight_Download.notificationandLoggingOptions._sp_log_severity

Create File Delivery Log

  • Description: Set to Yes or No to optionally create the Delivery Log.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: Flight_Download.notificationandLoggingOptions.createFileDeliveryLog

Job Schedule

The following list provides Schedule prompt details for the Flight Downloads workflow:

Frequency

  • Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
    • None: use for jobs that run only at irregular, user defined times.
    • Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Any number, representing "Every X minutes".
    • Monthend: run the job once every last day of the month. Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
    • Once: run the job only once, when first created. Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month"
  • REST/SOAP Variable Value: Possible values are: None, Any number, representing "Every X minutes", Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month", Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
  • JSON Variable Name: Flight_Download.Schedule._sp_frequency

Start Date/Time

  • Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
  • JSON Variable Name: Flight_Download.Schedule._sp_start_at

Time Zone

  • Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
  • REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see: Time Zone Values in Using Media Mover.
  • JSON Variable Name: Flight_Download.Schedule.timezone

Interrupt on Failure

  • Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: FlightDownloadReference.Schedule._sp_interrupt_on_failure

Priority

  • Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The default value is Medium. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). This is a mandatory prompt.
  • REST/SOAP Variable Value: 1, 2, 3, 4, or 5
  • JSON Variable Name: Flight_Download.Schedule.priority

Finish Before

  • Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
  • JSON Variable Name: Flight_Download.Schedule.finishBefore

Flight Downloads JSON Example

The following is an example of the Flight Downloads JSON.

{"transferJob": {
    "resourceID": "123456",
    "notifyAt":     {
        "replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
        "faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
    },
    "bmObjects": {"bmObject": [{"bmContents": {"bmContent": [{"bmContentFormats": {"bmContentFormat": [    {
        "packageSize": 123456,
        "bmEssenceLocators": {"bmEssenceLocator": [        {
            "file": "file://agent1.example.com/C:/Flight/baseFolder/",
            "type": "SimpleFileLocatorType"
        }]}
    }]}}]}}]},
    "profiles": [{"transferProfile": [    {
        "name": "Transfer Profile",
        "transferAtom": [{"destination": "file://agent2.example.com/C:/tmp/targetAcquired"}],
        "description": "Highspeed Transfer Delivery",
        "location": ["https://manager.example.com/template/Flight_Reference_Workflows/component/Flight_Download"],
        "ExtensionGroup": [{"SigniantExtensionGroup": [        {
            "jobContextParameters": [            {
                "jobName": ["FIMS_Flight_Download_123456"],
                "jobGroup": [""]
            }],
            "jobVariables":             [
                                {
                    "JobVariableName": ["Flight_Download.sourceOptions.cloudVendor"],
                    "JobVariableValue": ["s3"]
                },
                                {
                    "JobVariableName": ["Flight_Download.sourceOptions.storageSpecificationMechanism"],
                    "JobVariableValue": ["configid"]
                },
                                {
                    "JobVariableName": ["Flight_Download.sourceOptions.flightStorageConfigID"],
                    "JobVariableValue": ["asdf234edgg43reafd"]
                },
                                {
                    "JobVariableName": ["Flight_Download.sourceOptions.sourceData"],
                    "JobVariableValue": [""c:\\Flight\\baseFolder"]
                },
                                {
                    "JobVariableName": ["Flight_Download.targetOptions.targetAgent"],
                    "JobVariableValue": ["agent2.example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Download.targetOptions.targetFolder"],
                    "JobVariableValue": [""c:\\tmp\\targetAquired"]
                },
                                {
                    "JobVariableName": ["Flight_Download.flightServiceOptions.flightServicePrimaryEntryPoint"],
                    "JobVariableValue": ["us-east-1-am.cloud.signiant.com"]
                },
                                {
                    "JobVariableName": ["Flight_Download.flightServiceOptions.flightServiceBackupEntryPoint"],
                    "JobVariableValue": ["none"]
                },
                                {
                    "JobVariableName": ["Flight_Download.flightServiceOptions.flightAPIKey"],
                    "JobVariableValue": ["asdf234edgg43reafd"]
                },
                                {
                    "JobVariableName": ["Flight_Download.amazonS3.aWSAccessKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.amazonS3.aWSSecretKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.amazonS3.s3Bucket"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.microsoftAzure.azureStorageAccountName"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.microsoftAzure.azureAccessKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.microsoftAzure.azureContainer"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.decryption.decryptDownloadedFiles"],
                    "JobVariableValue": ["no"]
                },
                                {
                    "JobVariableName": ["Flight_Download.decryption.decryptionKey"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.decryption.initializationVector"],
                    "JobVariableValue": [""]
                },
                                {
                    "JobVariableName": ["Flight_Download.transport.protocol"],
                    "JobVariableValue": ["all"]
                },
                                {
                    "JobVariableName": ["Flight_Download.transport.bandwidthThrottle"],
                    "JobVariableValue": ["500000"]
                },
                                {
                    "JobVariableName": ["Flight_Download.transport.transportRestartAttempts"],
                    "JobVariableValue": ["3"]
                },
                                {
                    "JobVariableName": ["Flight_Download.transport.transportPortUsage"],
                    "JobVariableValue": ["range"]
                },
                                {
                    "JobVariableName": ["Flight_Download.transport.relayAgents"],
                    "JobVariableValue": ["agent2.example.com agent1.example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Download.transport.httpProxy"],
                    "JobVariableValue": ["proxy"]
                },
                                {
                    "JobVariableName": ["Flight_Download.notificationandLoggingOptions.successEmailCondition"],
                    "JobVariableValue": ["Never"]
                },
                                {
                    "JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailTo"],
                    "JobVariableValue": ["user@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailCc"],
                    "JobVariableValue": ["user2@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailBcc"],
                    "JobVariableValue": ["user3@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailFailureReportTo"],
                    "JobVariableValue": ["user4@example.com"]
                },
                                {
                    "JobVariableName": ["Flight_Download.notificationandLoggingOptions._sp_log_severity"],
                    "JobVariableValue": ["2"]
                },
                                {
                    "JobVariableName": ["Flight_Download.notificationandLoggingOptions.createFileDeliveryLog"],
                    "JobVariableValue": ["yes"]
                },
                                {
                    "JobVariableName": ["Flight_Download.Schedule._sp_frequency"],
                    "JobVariableValue": ["None"]
                },
                                {
                    "JobVariableName": ["Flight_Download.Schedule._sp_start_at"],
                    "JobVariableValue": ["%now%"]
                },
                                {
                    "JobVariableName": ["Flight_Download.Schedule.timezone"],
                    "JobVariableValue": ["America/New_York"]
                },
                                {
                    "JobVariableName": ["Flight_Download.Schedule._sp_interrupt_on_failure"],
                    "JobVariableValue": ["no"]
                },
                                {
                    "JobVariableName": ["Flight_Download.Schedule.priority"],
                    "JobVariableValue": ["2"]
                },
                                {
                    "JobVariableName": ["Flight_Download.Schedule.finishBefore"],
                    "JobVariableValue": [""2015/08/29 12:55:00""]
                }
            ]
        }]}]
    }]}],
    "priority": "low"
}}		
							

Using Media Mover

This chapter details how to use FIMS with Media Mover. This chapter assumes you have read the Media Mover User's Guide.

MediaDropBox Prompts

The following sections provide the prompt names, description, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaDropBox).

Drop Box Specification

The following are the Drop Box Specification prompts for the MediaDropBox:

Drop Box Agent

  • Description: The agent(s) from which you are transferring the data. This is a mandatory prompt.
  • REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
  • JSON Variable Name: MediaDropBox.Source.DropBoxAgent

Drop Box Directory

  • Description: The source folder used for the files to be transferred. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format:
    • Windows root drives, e.g., C:\ApplicationData
    • UNIX root drives, e.g., /home
    • Windows UNC path names, e.g., \\machine1\applicationdata
    Leaving the Source Data prompt empty will use the agent's default folder.
  • REST/SOAP Variable Value:
     <siglist type="filedir">
    	<el v="c:\Temp" t="d"></el>
    	<el v="e:\dist\source\test.txt" t="f"></el>
    </siglist>							
    									
    The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
  • JSON Variable Name: MediaDropBox.Source.DropBoxDirectory

Include File Patterns

  • Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type *.doc, *.ppt, in the prompt, the transfer wills include files with these extensions.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaDropBox.Source.IncludeFiles

Exclude File Patterns

  • Description: Allows users to specify which files are excluded from the transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #work_file#* and #chkpt_file#*.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaDropBox.Source.ExcludeFiles

Exclude Subdirectories

  • Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
  • REST/SOAP Variable Value: None, All or Specified
  • JSON Variable Name: MediaDropBox.Source.ExcludeSubdirectories

Subdirectories to Exclude

  • Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.

    For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)

    If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.

    To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:

    * (matches zero or more characters)

    ? (matches any single character)

    [...] (matches any one of the enclosed characters - for example, [ch] would match the characters "c" or "h")

    A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.

  • REST/SOAP Variable Value: Comma separated list
  • JSON Variable Name: MediaDropBox.Source.ExcludeSubDirList

File Readiness Check Type

  • Description: Specify the check type used by an agent to determine if a file is ready to be transferred. Depending on your configuration, you may or may not want to enable the File Readiness Check Type option:

    For Windows agents and local Windows file systems, there is no need to use the file readiness check, because the core file in use behavior is sufficient.

    For Windows agent and NAS Windows file system, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in the event the NAS file system does not properly support file locking.

    For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.

  • REST/SOAP Variable Value: Choose one of the following:

    None: files that are in use are skipped by default.

    Consecutive Seek (recommended): reads the last few bytes at the end of the file, waits for the time specified in the Readiness Check Delay prompt and checks again. If the last few bytes match in both cases the file is sent. Very useful with large files where the MD5 option would simply take too long.

    MD5 Hash: use an MD5 hash to compute a hash on all files under the drop-box folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.

    Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time and size are transferred.

  • JSON Variable Name: MediaDropBox.Source.FileReadinessCheckType

Readiness Check Delay

  • Description: The amount of time (in seconds) to pause between the two phases of the specified file readiness check type ("MD5 Hash", "Consecutive Seek", or "Date/Time & Size") for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds.
  • REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
  • JSON Variable Name: MediaDropBox.Source.FileReadinessCheckDelay

Source Deletions After Successful Transfer

  • Description: Specifies removal of files or folders from the Drop Box Folder after a successful transfer. The options are:
    • None (none): do not delete any source files or empty folders.
    • Transferred Files (xfrdfiles): remove the files.
    • Empty Folders (emptydirs): remove folders that are left over after the source files have been removed.
    • Transferred Files and Empty Directories (xfrdfiles_and_emptydirs): remove both transferred files and empty folders.
    • Transferred Files and Directories (xfrdfiles_and_dirs): remove both transferred files and all folders immediately after transfer.
    There are certain requirements with the empty folders options: the folders must contain no files (they may contain other empty folders that will be removed as well). The folder cannot have been modified within the previous 5 minutes; if it has, it will not be removed.
  • REST/SOAP Variable Value: none, xfrdfiles, emptydirs, xfrdfiles_and_emptydirs or xfrdfiles_and_dirs
  • JSON Variable Name: MediaDropBox.Source.sourceDeletionsAfterSuccessfulTransfer

Source Directories to Exclude from Deletion Scan

  • Description: Allows you to specify a comma separated list of directories that you do not want to delete.
  • REST/SOAP Variable Value: Comma separated list of directories.
  • JSON Variable Name: MediaDropBox.Source.sourceDirectoriestoExcludefromDeletionScan

Skip Source File Not Found On Send

  • Description: Allows you to skip files that are not found during a transfer. This is a mandatory prompt. The default value is Yes.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Source.skipSourceFileNotFoundOnSend

Destination Specification

The following list details the Destination Specification prompts:

Target Agents

  • Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
  • REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
  • JSON Variable Name: MediaDropBox.Target.TargetAgents

TargetDirectory

  • Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \\machine1\applicationdata.
  • REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
  • JSON Variable Name: MediaDropBox.Target.TargetDirectory

Directory Mapping Options

  • Description: Only applicable if items are added to the TargetDirectory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or TargetDirectory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
  • REST/SOAP Variable Value: Source Host or Job Date/Time
  • JSON Variable Name: MediaDropBox.Target.PathMappingOptions

Maximum Job Date-Time Directories

  • Description: If the Directory Mapping Option Job Date/Time has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 exist at any given time. Selectable values range from 1 through 1000 plus a value of "Unlimited", which instructs the job to never prune the job date/time directories.
  • REST/SOAP Variable Value: The following possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, -1
  • JSON Variable Name: MediaDropBox.Target.maximumJobDateTimeDirectories

Remove Expired Files on Target

  • Description: Specifies whether files on the destination are deleted when they reach the end of a user-specified expiration period (see Expiration Period (Days), below). Once the files are transferred to the target location, the directory is examined for files that have a modified time greater than the expiry time specified. Files that match the criteria are removed. The expiry time is specified in days. The removal of the expired files is done at Target Initialization.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Target.RemoveTargetFiles

Remove Expired Directories on Target

  • Description: Specifies whether directories on the destination are deleted when they reach the end of the user-specified expiration period (see Expiration Period below). Once the files are transferred to the target location, the directory is examined for a modified time greater than the expiry time specified. Directories that match the criteria are removed. The expiry time is specified in days. The removal of the expired folders is done at Target Initialization.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Target.removeExpiredDirectoriesonTarget

Expiration Period

  • Description: When Remove Expired Files on Target or Remove Expired Directories on Target is set to Yes, this prompt is used to specify the number of days files can exist on the destination before they are removed.
  • REST/SOAP Variable Value: 1 to 365 (days)
  • JSON Variable Name: MediaDropBox.Target.expirationPeriod

Transport Options

The following list provides Transport Options prompt details:

Use UDP Control Channel

  • Description: Allows you to specify that job control information is communicated using UDP instead of TCP. This includes both the communication between the Signiant Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). The default is No.

    This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the Signiant Manager is controlled separately as part of agent configuration.

    When set to Yes, all file transfers are also forced to utilize UDP WAN acceleration (this overrides the Use WAN Accelerator setting). It is not possible to have job control using TCP and data transfer using UDP.

    This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, we recommend that this prompt is set to No.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Transport._sp_udp

Use WAN Accelerator

  • Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.

    When running a job with Use WAN Accelerator set to Yes, with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Transport.UseWANAccelerator

WAN Accelerator Aggressiveness

  • Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
    • High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
    • Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the Bandwidth Floor.
    • Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
  • REST/SOAP Variable Value: high, medium or low
  • JSON Variable Name: MediaDropBox.Transport.WANAcceleratorAggressiveness

Bandwidth Ceiling

  • Description: The maximum rate at which the source sends data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.). "0" specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster, because when the ceiling is set, the transfer immediately starts at that rate, rather than ramping up.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaDropBox.Transport.BandwidthCeiling

Bandwidth Floor

  • Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used. "0" specifies auto-detection for the best bandwidth rate.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaDropBox.Transport.BandwidthFloor

Bandwidth Throttle by Time of Day (in GMT time)

  • Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.

    For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon ("+") to add more bandwidth throttles, or the "x" to delete a throttle.

    Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps)

    Where:

    • HH:MM: is a time value, first value is start, second is stop
    • SMTWTFS: are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
    • bps: any number

     

    You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.

  • JSON Variable Name: MediaDropBox.Transport.BandwidthThrottleByTimeOfDay

Advanced Options

The following list provides Advanced Options prompt details:

Encryption Level

  • Description: The encryption level selected dictates how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.

    Allows specification of the encryption level from the following values:

    • High (high): Cipher=AES256-SHA, Keysize=256/256 (high)
    • Med (med): Cipher=RC4-SHA, Keysize=128/128
    • Low (low): Cipher=DES-CBC-SHA, Keysize=56/56
    • No Encryption - signed (none): This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
    • No Encryption - unsigned (off): This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol. This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.

    The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done "in-stream" and not on disk prior to sending.

  • REST/SOAP Variable Value: high, med, low, none or off
  • JSON Variable Name: MediaDropBox.Options._sp_encryption

Delivery Mode

  • Description: Specifies the file transfer mode. The options are:
    • Fast: Do not create temporary work files. This mode is optimized for speed. (fast)
    • Normal: Use temporary work files during transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency. (nor)
    • Log File Name: Log file names transferred. Logs are stored on the Signiant Manager. (unsigned)
    • Certify File Delivery: Create agent certified delivery log of files transferred. (yes)
  • REST/SOAP Variable Value: fast, nor, unsigned or yes
  • JSON Variable Name: MediaDropBox.Options.deliveryMode

Compress Files

  • Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Options.CompressFiles

Follow Symbolic Links

  • Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.

    Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the "follow symbolic links" option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Options.followSymbolicLinks

Incremental Transfer

  • Description: If set to Yes, only changed bytes of files are transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Options.IncrementalTransfer

Verify for sufficient disk space before Job transfers start

  • Description: Select Yes to check the remote disk space on the target agent before the job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Options.verifyforsufficientdiskspacebeforeJobtransfersstart

Verify if target directory exists

  • Description: Select Yes to verify that the target directory exists on the target agent before the job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDropBox.Options.verifytargetdirectoryexists

Notifications and Logging

The following list provides Notifications and Logging prompt details:

Email Condition

  • Description: The circumstances in which an e-mail is sent. Choose from the following:
    • Always: An e-mail is always sent when a job runs.
    • Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
    • On Transfer: An e-mail is sent only when the transfer occurs.
    • Never: No e-mail is sent.
  • REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
  • JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailCondition

Email To

  • Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailTo

Email Cc

  • Description: Specifies the email address(es) of the recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailCc

Email Bcc

  • Description: Specifies the email address(es) of the recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailBcc

Email Job Failure Report To

  • Description: The email address of the person who receives the failure report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDropBox.NotificationAndLogging.emailJobFailureReportTo

Log Detail Level

  • Description: The type of logging information for this job. Choose from 0 (Error), 1 (Warn) (warning), 2 (Info) (Information) or 3 (Debug). Debug provides the greatest level of detail while Error provides the least. The default value is Info.
  • REST/SOAP Variable Value: 0, 1, 2, or 3
  • JSON Variable Name: MediaTrigger.NotificationAndLogging._sp_log_severity

SNMP

The following list provides SNMP prompt details:

SNMP Trap Receivers

  • Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
  • REST/SOAP Variable Value: Any hostname or IP address.
  • JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapReceivers

SNMP Trap Community String

  • Description: The SNMP community string (i.e. password) to be sent in the trap.
  • REST/SOAP Variable Value: Any string.
  • JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapCommunityString

SNMP Trap Types

  • Description: The job completion status on which to send SNMP traps. The options are: Job Success or Job Failure.
  • REST/SOAP Variable Value: Success, Failure or both
  • JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapTypes

Schedule

The following list provides Schedule prompt details:

Frequency

  • Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
    • None: use for jobs that run only at irregular, user defined times.
    • Hourly, Daily, Weekly, Monthly, Yearly: - run the job once every selected interval.
    • Monthend: run the job once every last day of the month.
    • Once: run the job only once, when first created.
  • REST/SOAP Variable Value: Possible values: None, Any number, representing "Every X minutes", Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month", Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
  • JSON Variable Name: MediaTrigger.Schedule._sp_frequency

Start Date/Time

  • Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
  • JSON Variable Name: MediaTrigger.Schedule._sp_start_at

Time Zone

  • Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
  • REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see: Time Zone Values.
  • JSON Variable Name: MediaTrigger.Schedule.timezone

Interrupt on Failure

  • Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Schedule._sp_interrupt_on_failure

Priority

  • Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
  • REST/SOAP Variable Value: 1, 2, 3, 4, or 5
  • JSON Variable Name: MediaTrigger.Schedule.priority

Finish Before

  • Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
  • JSON Variable Name: MediaTrigger.Schedule.finishBefore

MediaTrigger Prompts

The following lists provide the prompt names, prompt details, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaTrigger).

Source Specification

The following list provides Source Specification prompt details:

Source Agent

  • Description: The agent from which you are transferring the data. This is a mandatory prompt.
  • REST/SOAP Variable Value: The hostname for any agent or alias in the system.
  • JSON Variable Name: MediaTrigger.Source.SourceAgent

Source Directory

  • Description: The source folder used for the files to be transferred. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. This is a mandatory prompt. The source folder specified may be in the following format:
    • Windows root drives, e.g., C:\ApplicationData
    • UNIX root drives, e.g., /home
    • Windows UNC path names, e.g., \\machine1\applicationdata
    Leaving the Source Data prompt empty will use the agent's default folder.
  • REST/SOAP Variable Value:
    
     
    <siglist type="filedir">
    	<el v="c:\Temp" t="d"></el>
    	<el v="e:\dist\source\test.txt" t="f"></el>
    </siglist>							
    									

     

    The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
  • JSON Variable Name: MediaTrigger.Source.SourceData

Skip Source Files Not Found On Send

  • Description: Allows you to skip files that are not found during a transfer. The default value is Yes. This is a mandatory prompt.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Source.skipSourceFileNotFoundOnSend

Destination Specification

The following list provides Destination Specification prompt details:

Target Agents

  • Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
  • REST/SOAP Variable Value: The hostname of any agent or alias in the system.
  • JSON Variable Name: MediaTrigger.Target.TargetAgents

Target Directory

  • Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example:
    • Windows root drives, e.g., C:\ApplicationData
    • UNIX root drives, e.g., /home
    • Windows UNC path names, e.g., \\machine1\applicationdata
  • REST/SOAP Variable Value: Any valid path on the Signiant Manager, for example: c:\Temp (Windows) or /usr/tmp (UNIX).
  • JSON Variable Name: MediaTrigger.Target.TargetDirectory

Directory Mapping Options

  • Description: Only applicable if items are added to the Target Directory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or Target Directory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
  • REST/SOAP Variable Value: Source Host or Job Date/Time
  • JSON Variable Name: MediaTrigger.Target.PathMappingOptions

Maximum Job Date-Time Directories

  • Description: If the Directory Mapping Option "Job Date/Time" has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 will exist at any given time. Selectable values range from 1 through 1000 plus a value of "Unlimited", which instructs the job to never prune the job date/time directories.
  • REST/SOAP Variable Value: The following possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, -1
  • JSON Variable Name: MediaTrigger.Target.maximumJobDateTimeDirectories

Transport Options

The following list provides Transport Options prompt details:

Use UDP Control Channel

  • Description: Allows you to specify that job control information is communicated using UDP instead of TCP. This includes both the communication between the Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default Use UDP Channel is set to No.

    This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.

    When Use UDP Control Channel is set to "Yes", all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. It is not possible to have job control using TCP and data transfer using UDP.

    This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that Use UDP Control Channel be set to No.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Transport._sp_udp

Use WAN Accelerator

  • Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and attempts to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.

    When running a job with Use WAN Accelerator set to Yes, with a low bandwidth ceiling, or flow, or low throughput, the transfer is switched to TCP. (The cutoff value is 57200 bits/second.)

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Transport.UseWANAccelerator

WAN Accelerator Aggressiveness

  • Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
    • High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
    • Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
    • Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
  • REST/SOAP Variable Value: high, medium or low
  • JSON Variable Name: MediaTrigger.Transport.wANAcceleratorAggressiveness

Bandwidth Ceiling

  • Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.). "0" specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaTrigger.Transport.BandwidthCeiling

Bandwidth Floor

  • Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used. "0" specifies auto-detection for the best bandwidth rate.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaTrigger.Transport.BandwidthFloor

Bandwidth Throttle by Time of Day (in GMT time)

  • Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.

    For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon ("+") to add more bandwidth throttles, or the "x" to delete a throttle.

    Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps)

    Where:

    • HH:MM: is a time value, first value is start, second is stop
    • SMTWTFS: are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
    • bps: any number

     

    You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.

  • JSON Variable Name: MediaTrigger.Transport.BandwidthThrottleByTimeOfDay

Advanced Options

The following list provides Advanced Options prompt details:

Verify for sufficient disk space before Job transfers start

  • Description: Select Yes to check the remote disk space on the target agent before the job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Options.verifyforsufficientdiskspacebeforeJobtransfersstart

Verify if Target Directory Exists

  • Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Options.verifytargetdirectoryexists

Notifications and Logging

The following list provides Notifications and Logging prompt details:

Email Condition

  • Description: The circumstances in which an e-mail is sent. Choose from the following:
    • Always: An e-mail is always sent when a job runs.
    • Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
    • On Transfer: An e-mail is sent only when the transfer occurs.
    • Never: No e-mail is sent.
  • REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
  • JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailCondition

Email To

  • Description: The email address of the person to receive the logging report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailTo

Email Cc

  • Description: Specifies the email address(es) to receive a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailCc

Email Bcc

  • Description: Specifies the email address(es) to receive a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailBcc

Email Job Failure Report To

  • Description: The email address of the person to receive the failure report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaTrigger.NotificationAndLogging.emailJobFailureReportTo

Log Detail Level

  • Description: The type of logging information for this job. Choose from Error, Warn (warning), Info (Information) or Debug. Debug provides the greatest level of detail while Error provides the least. The options are: 0 error, 1 warn, 2 info, or 3 debug. The default value is Info.
  • REST/SOAP Variable Value: 0, 1, 2, or 3
  • JSON Variable Name: MediaTrigger.NotificationAndLogging._sp_log_severity

SNMP

The following list provides SNMP prompt details:

SNMP Trap Receivers

  • Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
  • REST/SOAP Variable Value: Any hostname or IP address.
  • JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapReceivers

SNMP Trap Community String

  • Description: The SNMP community string (i.e. password) to be sent in the trap.
  • REST/SOAP Variable Value: Any string.
  • JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapCommunityString

SNMP Trap Types

  • Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
  • REST/SOAP Variable Value: Success, Failure or both
  • JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapTypes

Schedule

The following list provides Schedule prompt details:

Frequency

  • Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
    • None: use for jobs that run only at irregular, user defined times.
    • Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Any number, representing "Every X minutes".
    • Monthend: run the job once every last day of the month. Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
    • Once: run the job only once, when first created. Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month"
  • REST/SOAP Variable Value:Possible values: None, Any number, representing "Every X minutes", Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month", Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
  • JSON Variable Name: MediaTrigger.Schedule._sp_frequency

Start Date/Time

  • Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
  • JSON Variable Name: MediaTrigger.Schedule._sp_start_at

Time Zone

  • Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
  • REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see: Time Zone Values.
  • JSON Variable Name: MediaTrigger.Schedule.timezone

Interrupt on Failure

  • Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaTrigger.Schedule._sp_interrupt_on_failure

Priority

  • Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
  • REST/SOAP Variable Value: 1, 2, 3, 4, or 5
  • JSON Variable Name: MediaTrigger.Schedule.priority

Finish Before

  • Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
  • JSON Variable Name: MediaTrigger.Schedule.finishBefore

MediaAggregator Prompts

The following lists provide the prompt names, prompt details, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaAggregator). See MediaAggregator JSON Example.

Source Specification

The following list provides Source Specification prompt details:

Source Agents

  • Description: The agent(s) from which you are transferring data. This is a mandatory prompt.
  • REST/SOAP Variable Value: Hostname of any agent or alias in the system.
  • JSON Variable Name: MediaAggregator.Source.SourceAgents

Source Data

  • Description: The source folder used for the files to be transferred. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format:
    • Windows root drives, e.g., C:\ApplicationData
    • UNIX root drives, e.g., /home
    • Windows UNC path names, e.g., \\machine1\applicationdata
    Leaving the Source Data prompt empty will use the agent's default folder.
  • REST/SOAP Variable Value:
     <siglist type="filedir">
    	<el v="c:\Temp" t="d"></el>
    	<el v="e:\dist\source\test.txt" t="f"></el>
    </siglist>							
    									

     

    The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
  • JSON Variable Name: MediaAggregator.Source.SourceData

Include File Patterns

  • Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type *.doc, *.ppt, in the prompt, the transfer wills include files with these extensions.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaAggregator.Source.IncludeFiles

Exclude File Patterns

  • Description: Allows users to specify which files are excluded from the transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #work_file#* and #chkpt_file#*.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaAggregator.Source.ExcludeFiles

Exclude Subdirectories

  • Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
  • REST/SOAP Variable Value: None, All or Specified
  • JSON Variable Name: MediaAggregator.Source.ExcludeSubdirectories

Subdirectories to Exclude

  • Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.

    For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)

    If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.

    To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:

    * (matches zero or more characters)

    ? (matches any single character)

    [...] (matches any one of the enclosed characters - for example, [ch] would match the characters "c" or "h")

    A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.

  • REST/SOAP Variable Value: Comma separated list
  • JSON Variable Name: MediaAggregator.Source.ExcludeSubDirList

Readiness Check Type

  • Description:

    Specify the check type used by an agent to determine if a file is ready to be transferred. Depending on your configuration, you may or may not want to enable the file readiness check option.

    For Windows agents and local Windows file systems, there is no need to use the File Readiness Check, because the core file in use behavior is sufficient.

    For Windows agent and NAS Windows file system, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in the event the NAS file system does not properly support file locking.

    For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.

  • REST/SOAP Variable Value: Choose one of the following:

    None: files that are in use are skipped by default.

    Consecutive Seek (recommended): reads the last few bytes at the end of the file, waits for the time specified in the Readiness Check Delay prompt and checks again. If the last few bytes match in both cases the file is sent. Very useful with large files where the MD5 option would simply take too long.

    MD5 Hash: use an MD5 hash to compute a hash on all files under the drop-box folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.

    Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time and size are transferred.

  • JSON Variable Name: MediaAggregator.Source.FileReadinessCheckType

Readiness Check Delay

  • Description:The amount of time (in seconds) to pause between the two phases of the specified file readiness check type ("MD5 Hash", "Consecutive Seek", or "Date/Time & Size") for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds.
  • REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
  • JSON Variable Name: MediaAggregator.Source.FileReadinessCheckDelay

Source Deletions After Successful Transfer

  • Description: Specifies removal of files or folders from the Drop Box Folder after a successful transfer. The options are:
    • None: do not delete any source files or empty folders. (none)
    • Transferred Files: remove the files. (xfrdfiles)
    • Empty Folders: remove folders that are left over after the source files have been removed. (emptydirs)
    • Transferred Files and Empty Directories: remove both transferred files and empty folders. (xfrdfiles_and_emptydirs)
    • Transferred Files and Directories: remove both transferred files and all folders immediately after transfer. (xfrdfiles_and_dirs)
    There are certain requirements with the empty folders options: the folders must contain no files (they may contain other empty folders that will be removed as well). The folder cannot have been modified within the previous 5 minutes; if it has, it will not be removed.
  • REST/SOAP Variable Value: none, xfrdfiles, emptydirs, xfrdfiles_and_emptydirs or xfrdfiles_and_dirs
  • JSON Variable Name: MediaAggregator.Source.sourceDeletionsAfterSuccessfulTransfer

Source Directories to Exclude from Deletion Scan

  • Description: Allows you to specify a comma-separated list of directories that you do not want to delete.
  • REST/SOAP Variable Value: Comma-separated list of directories.
  • JSON Variable Name: MediaAggregator.Source.sourceDirectoriestoExcludefromDeletionScan

Skip Source File Not Found On Send

  • Description: Allows you to skip files that are not found during a transfer. This is a mandatory prompt. The default value is Yes.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Source.skipSourceFileNotFoundOnSend

Destination Specification

The following list details the Destination Specification prompts:

Target Agents

  • Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
  • REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
  • JSON Variable Name: MediaAggregator.Target.TargetAgents

TargetDirectory

  • Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \\machine1\applicationdata.
  • REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
  • JSON Variable Name: MediaAggregator.Target.TargetDirectory

Directory Mapping Options

  • Description: Only applicable if items are added to the TargetDirectory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or TargetDirectory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
  • REST/SOAP Variable Value: Source Host or Job Date/Time
  • JSON Variable Name: MediaAggregator.Target.PathMappingOptions

Maximum Job Date-Time Directories

  • Description: If the Directory Mapping Option "Job Date/Time" has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 will exist at any given time. Selectable values range from 1 through 1000 plus a value of "Unlimited", which instructs the job to never prune the job date/time directories.
  • REST/SOAP Variable Value: Any number
  • JSON Variable Name: MediaAggregator.Target.maximumJobDateTimeDirectories

Remove Expired Files on Target

  • Description: Specifies whether files on the destination are deleted when they reach the end of a user-specified expiration period (see Expiration Period (Days), below). Once the files are transferred to the target location, the directory is examined for files that have a modified time greater than the expiry time specified. Files that match the criteria are removed. The expiry time is specified in days. The removal of the expired files is done at Target Initialization.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Target.RemoveTargetFiles

Remove Expired Directories on Target

  • Description: Specifies whether directories on the destination are deleted when they reach the end of the user-specified expiration period (see Expiration Period below). Once the files are transferred to the target location, the directory is examined for a modified time greater than the expiry time specified. Directories that match the criteria are removed. The expiry time is specified in days. The removal of the expired folders is done at Target Initialization.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Target.removeExpiredDirectoriesonTarget

Expiration Period

  • Description: Specifies the number of days files can exist on the destination before they are removed, if Remove Expired Files on Target is set to Yes.
  • REST/SOAP Variable Value: 1 to 365 (days)
  • JSON Variable Name: MediaAggregator.Target.expirationPeriod

Transport Options

The following list provides Transport Options prompt details:

Use UDP Control Channel

  • Description: Allows you to specify that job control information will be communicated using UDP instead of TCP. This includes both the communication between the Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default "Use UDP Channel" is set to No.

    This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.

    When Use UDP Control Channel is set to "Yes", all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. Thus it is not possible to have job control using TCP and data transfer using UDP.

    This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that Use UDP Control Channel be set to "No".

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Transport._sp_udp

Use WAN Accelerator

  • Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.

    When running a job with Use WAN Accelerator set to "Yes", with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: Yes or No
  • JSON Variable Name: MediaAggregator.Transport.UseWANAccelerator

WAN Accelerator Aggressiveness

  • Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
    • High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
    • Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
    • Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
  • REST/SOAP Variable Value: high, medium or low
  • JSON Variable Name: MediaAggregator.Transport.wANAcceleratorAggressiveness

Bandwidth Ceiling

  • Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.). "0" specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaAggregator.Transport.BandwidthCeiling

Bandwidth Floor

  • Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used. "0" specifies auto-detection for the best bandwidth rate.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaAggregator.Transport.BandwidthFloor

Bandwidth Throttle by Time of Day (in GMT time)

  • Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.

    For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon ("+") to add more bandwidth throttles, or the "x" to delete a throttle.

    Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps)

    Where:

    • HH:MM is a time value, first value is start, second is stop
    • SMTWTFS are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
    • bps - any number

     

    You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.

  • JSON Variable Name: MediaAggregator.Transport.BandwidthThrottleByTimeOfDay

Advanced Options

The following list provides Advanced Options prompt details:

Encryption Level

  • Description: The encryption level selected will dictate how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.

    Allows specification of the encryption level from the following values:

    • High (high): Cipher=AES256-SHA, Keysize=256/256
    • Medium (med): Cipher=RC4-SHA, Keysize=128/128
    • Low (low): Cipher=DES-CBC-SHA, Keysize=56/56
    • No Encryption - signed (none): This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
    • No Encryption - unsigned (off): This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol. This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.

    The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done "in-stream" and not on disk prior to sending.

  • REST/SOAP Variable Value: high, med, low, none or off
  • JSON Variable Name: MediaAggregator.Options._sp_encryption

Delivery Mode

  • Description: Specifies the file transfer mode. The options are:
    • Fast: Do not create temporary work files. This mode is optimized for speed.
    • Normal: Use temporary work files during the transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency.
    • Log File Name: Log file names transferred. Logs are stored on the Manager.
    • Certify File Delivery: Create an agent certified delivery log of files transferred.
  • REST/SOAP Variable Value: fast, no, unsigned or yes
  • JSON Variable Name: MediaAggregator.Options.deliveryMode

Compress Files

  • Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Options.CompressFiles

Follow Symbolic Links

  • Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.

    Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the "follow symbolic links" option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Options.followSymbolicLinks

Incremental Transfer

  • Description: If set to Yes, only changed bytes of files are transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Options.IncrementalTransfer

Verify for sufficient disk space before Job transfers start

  • Description: Select Yes to check the remote disk space on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Options.verifyforsufficientdiskspacebeforeJobtransfersstart

Verify if target directory exists

  • Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Options.verifytargetdirectoryexists

Notifications and Logging

The following list provides Notifications and Logging prompt details:

Email Condition

  • Description: The circumstances in which an e-mail is sent. Choose from the following:
    • Always: An e-mail is always sent when a job runs.
    • Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
    • On Transfer: An e-mail is sent only when the transfer occurs.
    • Never: No e-mail is sent.
  • REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
  • JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailCondition

Email To

  • Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailTo

Email Cc

  • Description: Specifies the email address(es) of the recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailCc

Email Bcc

  • Description: Specifies the email address(es) of the recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailBcc

Email Job Failure Report To

  • Description: The email address of the person who receives the failure report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaAggregator.NotificationAndLogging.emailJobFailureReportTo

Log Detail Level

  • Description: The type of logging information for this job. Choose from Error, Warn (warning), Info (Information) or Debug. Debug provides the greatest level of detail while Error provides the least. The options are: 0 error, 1 warn, 2 info, or 3 debug. The default value is Info.
  • REST/SOAP Variable Value: 0, 1, 2, or 3
  • JSON Variable Name: MediaAggregator.NotificationAndLogging._sp_log_severity

SNMP

The following list provides SNMP prompt details:

SNMP Trap Receivers

  • Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
  • REST/SOAP Variable Value: Any hostname or IP address.
  • JSON Variable Name: MediaAggregator.sNMPProperties.sNMPTrapReceivers

SNMP Trap Community String

  • Description: The SNMP community string (i.e. password) to be sent in the trap.
  • REST/SOAP Variable Value: Any string.
  • JSON Variable Name: MediaAggregator.sNMPProperties.sNMPTrapCommunityString

SNMP Trap Types

  • Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
  • REST/SOAP Variable Value: Success, Failure or both
  • JSON Variable Name: MediaAggregator.sNMPProperties.sNMPTrapTypes

Schedule

The following list provides Schedule prompt details:

Frequency

  • Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
    • None: use for jobs that run only at irregular, user defined times.
    • Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval.
    • Monthend: run the job once every last day of the month.
    • Once: run the job only once, when first created.
  • REST/SOAP Variable Value: Possible values: None, Any number, representing "Every X minutes", Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month", Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
  • JSON Variable Name: MediaAggregator.Schedule._sp_frequency

Start Date/Time

  • Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
  • JSON Variable Name: MediaAggregator.Schedule._sp_start_at

Time Zone

  • Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
  • REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see: Time Zone Values.
  • JSON Variable Name: MediaAggregator.Schedule.timezone

Interrupt on Failure

  • Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaAggregator.Schedule._sp_interrupt_on_failure

Priority

  • Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
  • REST/SOAP Variable Value: 1, 2, 3, 4, 5
  • JSON Variable Name: MediaAggregator.Schedule.priority

Finish Before

  • Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
  • JSON Variable Name: MediaAggregator.Schedule.finishBefore

MediaAggregator JSON Example

The following is an example of the MediaAggregator JSON.

{
    "transferJob": {
        "resourceID": "61",
        "notifyAt": {
            "replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
            "faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
        },
        "bmObjects": {
            "bmObject": [
                {
                    "bmContents": {
                        "bmContent": [
                            {
                                "bmContentFormats": {
                                    "bmContentFormat": [
                                        {
                                            "bmEssenceLocators": {
                                                "bmEssenceLocator": [
                                                    {
                                                        "type": "SimpleFileLocatorType",
                                                        "file": "file://agent1.example.com/C:/tmp/test.zip"
                                                    }
                                                ]
                                            },
                                            "packageSize": 44947460
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        },
        "priority": "low",
        "profiles": [
            {
                "transferProfile": [
                    {
                        "name": "Transfer Profile",
                        "description": "Highspeed Transfer Delivery",
                        "transferAtom": [
                            {
                                "destination": "file://agent2.example.com/C:/tmp/target"
                            }
                        ],
                        "location": [
                            "https://manager.example.com/template/Media_Mover_Workflows/component/MediaAggregator"
                        ],
                        "ExtensionGroup": [
                            {
                                "SigniantExtensionGroup": [
                                    {
                                        "jobContextParameters": [
                                            {
                                                "jobName": [
                                                    "FIMS_jobName_061"
                                                ],
                                                "jobGroup": [
                                                    "Default"
                                                ]
                                            }
                                        ],
                                        "jobVariables": [
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.SourceAgents"
                                                ],
                                                "JobVariableValue": [
                                                    "agent1.example.com"
                                                ]
                                            },
											{
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.SourceData"
                                                ],
                                                "JobVariableValue": [
                                                    "D:\\Backgrounds"
                                                ]
                                            },
											{
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.IncludeFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "*"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.ExcludeFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "zimg*"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.ExcludeSubdirectories"
                                                ],
                                                "JobVariableValue": [
                                                    "None"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.ExcludeSubDirList"
                                                ],
                                                "JobVariableValue": [
                                                    "excludeMe"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.FileReadinessCheckType"
                                                ],
                                                "JobVariableValue": [
                                                    "Date/Time & Size"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.FileReadinessCheckDelay"
                                                ],
                                                "JobVariableValue": [
                                                    "10"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.sourceDeletionsAfterSuccessfulTransfer"
                                                ],
                                                "JobVariableValue": [
                                                    "emptydirs"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.sourceDirectoriestoExcludefromDeletionScan"
                                                ],
                                                "JobVariableValue": [
                                                    "notToBeDeleted"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Source.skipSourceFileNotFoundOnSend"
                                                ],
                                                "JobVariableValue": [
                                                    "yes"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Target.TargetAgent"
                                                ],
                                                "JobVariableValue": [
                                                    "agent2.example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Target.TargetDirectory"
                                                ],
                                                "JobVariableValue": [
                                                    "c:\\tmp\\Here"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Target.PathMappingOptions"
                                                ],
                                                "JobVariableValue": [
                                                    "Job Date/Time"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Target.maximumJobDateTimeDirectories"
                                                ],
                                                "JobVariableValue": [
                                                    "10"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Target.RemoveTargetFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Target.removeExpiredDirectoriesonTarget"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Target.expirationPeriod"
                                                ],
                                                "JobVariableValue": [
                                                    "30"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Transport._sp_udp"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Transport.UseWANAccelerator"
                                                ],
                                                "JobVariableValue": [
                                                    "yes"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Transport.wANAcceleratorAggressiveness"
                                                ],
                                                "JobVariableValue": [
                                                    "medium"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Transport.BandwidthCeiling"
                                                ],
                                                "JobVariableValue": [
                                                    "1250000"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Transport.BandwidthFloor"
                                                ],
                                                "JobVariableValue": [
                                                    "250000"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Transport.BandwidthThrottleByTimeOfDay"
                                                ],
                                                "JobVariableValue": [
                                                    "09:00;23:00;YYYYYYY;625000;"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Options._sp_encryption"
                                                ],
                                                "JobVariableValue": [
                                                    "off"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Options.deliveryMode"
                                                ],
                                                "JobVariableValue": [
                                                    "unsigned"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Options.CompressFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Options.followSymbolicLinks"
                                                ],
                                                "JobVariableValue": [
                                                    "yes"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Options.IncrementalTransfer"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Options.verifyforsufficientdiskspacebeforeJobtransfersstart"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Options.verifytargetdirectoryexists"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.NotificationAndLogging.EmailCondition"
                                                ],
                                                "JobVariableValue": [
                                                    "Always"
                                                ]
                                            },
											{
                                                "JobVariableName": [
                                                    "MediaAggregator.NotificationAndLogging.EmailTo"
                                                ],
                                                "JobVariableValue": [
                                                    "user@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.NotificationAndLogging.EmailCc"
                                                ],
                                                "JobVariableValue": [
                                                    "user2@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.NotificationAndLogging.EmailBcc"
                                                ],
                                                "JobVariableValue": [
                                                    "user3@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.NotificationAndLogging.emailJobFailureReportTo"
                                                ],
                                                "JobVariableValue": [
                                                    "user@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.NotificationAndLogging._sp_log_severity"
                                                ],
                                                "JobVariableValue": [
                                                    "2"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.sNMPProperties.sNMPTrapReceivers"
                                                ],
                                                "JobVariableValue": [
                                                    "192.168.1.205"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.sNMPProperties.sNMPTrapCommunityString"
                                                ],
                                                "JobVariableValue": [
                                                    "cString"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.sNMPProperties.sNMPTrapTypes"
                                                ],
                                                "JobVariableValue": [
                                                    "Success,Failure"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Schedule._sp_frequency"
                                                ],
                                                "JobVariableValue": [
                                                    "Once"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Schedule._sp_start_at"
                                                ],
                                                "JobVariableValue": [
                                                    "2015/08/18 10:00:00"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Schedule.timezone"
                                                ],
                                                "JobVariableValue": [
                                                    "America/New_York"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Schedule._sp_interrupt_on_failure"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Schedule.priority"
                                                ],
                                                "JobVariableValue": [
                                                    "2"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaAggregator.Schedule.finishBefore"
                                                ],
                                                "JobVariableValue": [
                                                    "2015/08/27 10:00:00"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    }
}				
					
					

MediaDistributor Prompts

The following sections provide the prompt names, description, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaDistributor). See MediaDistributor JSON Example for an example of the JSON.

Source Specification

The following list provides Source Specification prompt details:

Source Agents

  • Description: The agent(s) from which you are transferring data. This is a mandatory prompt.
  • REST/SOAP Variable Value: Hostname of any agent or alias in the system.
  • JSON Variable Name: MediaDistributor.Source.SourceAgent

Source Data

  • Description: The source folder used for the files to be transferred. This is a mandatory prompt. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format:
    • Windows root drives, e.g., C:\ApplicationData
    • UNIX root drives, e.g., /home
    • Windows UNC path names, e.g., \\machine1\applicationdata
    Leaving the Source Data prompt empty will use the agent's default folder.
  • REST/SOAP Variable Value:
     <siglist type="filedir">
    	<el v="c:\Temp" t="d"></el>
    	<el v="e:\dist\source\test.txt" t="f"></el>
    </siglist>							
    									
    The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
  • JSON Variable Name: MediaDistributor.Source.SourceData

Include File Patterns

  • Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type *.doc, *.ppt, in the prompt, the transfer includes files with these extensions.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaDistributor.Source.IncludeFiles

Exclude File Patterns

  • Description: Allows users to specify which files are excluded from transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #work_file#* and #chkpt_file#*.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaDistributor.Source.ExcludeFiles

Exclude Subdirectories

  • Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
  • REST/SOAP Variable Value: None, All or Specified
  • JSON Variable Name: MediaDistributor.Source.ExcludeSubdirectories

Subdirectories to Exclude

  • Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.

    For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)

    If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.

    To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:

    * (matches zero or more characters)

    ? (matches any single character)

    [...] (matches any one of the enclosed characters - for example, [ch] would match the characters "c" or "h")

    A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.

  • REST/SOAP Variable Value: Comma separated list
  • JSON Variable Name: MediaDistributor.Source.ExcludeSubDirList

File Readiness Check Type

  • Description: Specify the kind of check type an agent uses to determine if a file is ready to be transferred (i.e., the file is not in use). For some configurations, you may or may not wish to select the file readiness check option:
    • For Windows agents and local Windows file systems, there is no need to use the file readiness check, because the core file in use· behavior is sufficient.
    • For Windows agent and NAS Windows file system, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in case the NAS file system does not properly support file locking.
    • For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.
  • REST/SOAP Variable Value: Choose one of the following:
    • None: files that are in use are skipped by default.
    • Consecutive Seek (recommended): reads the last few bytes at the end of the file, waits for delay period number of seconds and checks again. If the last few bytes match in both cases the file is sent. Very useful on large files where the MD5 option would simply take too long.
    • MD5 Hash: use an MD5 hash to compute a hash on all files under the drop-box folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.
    • Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time & size are transferred.
  • JSON Variable Name: MediaDistributor.Source.FileReadinessCheckType

Readiness Check Delay

  • Description:The amount of time (in seconds) to pause between the two phases of the specified file readiness check type ("MD5 Hash", "Consecutive Seek", or "Date/Time & Size") for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds.
  • REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
  • JSON Variable Name: MediaDistributor.Source.FileReadinessCheckDelay

Source Deletions After Successful Transfer

  • Description: Specifies removal of files or folders from the Drop Box Folder after a successful transfer. The options are:
    • None: do not delete any source files or empty folders. (none)
    • Transferred Files: remove the files. (xfrdfiles)
    • Empty Folders: remove folders that are left over after the source files have been removed. (emptydirs)
    • Transferred Files and Empty Directories: remove both transferred files and empty folders. (xfrdfiles_and_emptydirs)
    • Transferred Files and Directories: remove both transferred files and all folders immediately after transfer. (xfrdfiles_and_dirs)
    There are certain requirements with the empty folders options: the folders must contain no files (they may contain other empty folders that will be removed as well). The folder cannot have been modified within the previous 5 minutes; if it has, it will not be removed.
  • REST/SOAP Variable Value: none, xfrdfiles, emptydirs, xfrdfiles_and_emptydirs or xfrdfiles_and_dirs
  • JSON Variable Name: MediaDistributor.Source.sourceDeletionsAfterSuccessfulTransfer

Source Directories to Exclude from Deletion Scan

  • Description: Allows you to specify a comma-separated list of directories that you do not want to delete.
  • REST/SOAP Variable Value: Comma-separated list of directories.
  • JSON Variable Name: MediaDistributor.Source.sourceDirectoriestoExcludefromDeletionScan

Skip Source File Not Found On Send

  • Description: Allows you to skip files that are not found during a transfer. This is a mandatory prompt. The default value is Yes.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Source.skipSourceFileNotFoundOnSend

Destination Specification

The following list details the Destination Specification prompts:

Target Agents

  • Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
  • REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
  • JSON Variable Name: MediaDistributor.Target.TargetAgents

TargetDirectory

  • Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \\machine1\applicationdata.
  • REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
  • JSON Variable Name: MediaDistributor.Target.TargetDirectory

Directory Mapping Options

  • Description: Only applicable if items are added to the TargetDirectory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or TargetDirectory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
  • REST/SOAP Variable Value: Source Host or Job Date/Time
  • JSON Variable Name: MediaDistributor.Target.PathMappingOptions

Maximum Job Date-Time Directories

  • Description: If the Directory Mapping Option "Job Date/Time" has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 will exist at any given time. Selectable values range from 1 through 1000 plus a value of "Unlimited", which instructs the job to never prune the job date/time directories.
  • REST/SOAP Variable Value: Any number
  • JSON Variable Name: MediaDistributor.Target.maximumJobDateTimeDirectories

Remove Expired Files on Target

  • Description: Specifies whether files on the destination are deleted when they reach the end of a user-specified expiration period (see Expiration Period (Days), below). Once the files are transferred to the target location, the directory is examined for files that have a modified time greater than the expiry time specified. Files that match the criteria are removed. The expiry time is specified in days. The removal of the expired files is done at Target Initialization.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Target.RemoveTargetFiles

Remove Expired Directories on Target

  • Description: Specifies whether directories on the destination are deleted when they reach the end of the user-specified expiration period (see Expiration Period below). Once the files are transferred to the target location, the directory is examined for a modified time greater than the expiry time specified. Directories that match the criteria are removed. The expiry time is specified in days. The removal of the expired folders is done at Target Initialization.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Target.removeExpiredDirectoriesonTarget

Expiration Period

  • Description: Specifies the number of days files can exist on the destination before they are removed, if Remove Expired Files on Destination is set to Yes.
  • REST/SOAP Variable Value: 1 to 365 (days)
  • JSON Variable Name: MediaDistributor.Target.expirationPeriod

Transport Options

The following list provides Transport Options prompt details:

Use UDP Control Channel

  • Description: Allows you to specify that job control information will be communicated using UDP instead of TCP. This includes both the communication between the Signiant Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default Use UDP Channel is set to No.

    This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.

    When Use UDP Control Channel is set to "Yes", all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. Thus it is not possible to have job control using TCP and data transfer using UDP.

    This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that Use UDP Control Channel be set to "No".

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Transport._sp_udp

Use WAN Accelerator

  • Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.

    When running a job with "Use WAN Accelerator" set to "Yes", with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Transport.UseWANAccelerator

WAN Accelerator Aggressiveness

  • Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
    • high: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
    • medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
    • low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
  • REST/SOAP Variable Value: high, medium or low
  • JSON Variable Name: MediaDistributor.Transport.WANAcceleratorAggressiveness

Bandwidth Ceiling

  • Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.). "0" specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaDistributor.Transport.BandwidthCeiling

Bandwidth Floor

  • Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used. "0" specifies auto-detection for the best bandwidth rate.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaDistributor.Transport.BandwidthFloor

Bandwidth Throttle by Time of Day (in GMT time)

  • Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.

    For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon ("+") to add more bandwidth throttles, or the "x" to delete a throttle.

    Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps)

    Where:

    • HH:MM is a time value, first value is start, second is stop
    • SMTWTFS are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
    • bps any number

    You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.

  • JSON Variable Name: MediaDistributor.Transport.BandwidthThrottleByTimeOfDay

Advanced Options

The following list provides Advanced Options prompt details:

Encryption Level

  • Description: The encryption level selected will dictate how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.

    Allows specification of the encryption level from the following values:

    • High (high): Cipher=AES256-SHA, Keysize=256/256
    • Medium (med): Cipher=RC4-SHA, Keysize=128/128
    • Low (low): Cipher=DES-CBC-SHA, Keysize=56/56
    • No Encryption - signed (none): This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
    • No Encryption - unsigned (off): This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol. This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.

    The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done "in-stream" and not on disk prior to sending.

  • REST/SOAP Variable Value: high, med, low, none or off
  • JSON Variable Name: MediaDistributor.Options._sp_encryption

Delivery Mode

  • Description: Specifies the file transfer mode. The options are:
    • Fast: Do not create temporary work files. This mode is optimized for speed.
    • Normal: Use temporary work files during transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency.
    • Log File Name: Log file names transferred. Logs are stored on the Manager.
    • Certify File Delivery: Create agent certified delivery log of files transferred.
  • REST/SOAP Variable Value: Fast, No, Unsigned or Yes
  • JSON Variable Name: MediaDistributor.Options.deliveryMode

Compress Files

  • Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Options.CompressFiles

Follow Symbolic Links

  • Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.

    Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the "follow symbolic links" option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Options.followSymbolicLinks

Incremental Transfer

  • Description: If set to Yes, only changed bytes of files will be transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Options.IncrementalTransfer

Verify for sufficient disk space before Job transfers start

  • Description: Select Yes to check the remote disk space on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Options.verifyforsufficientdiskspacebeforeJobtransfersstart

Verify if target directory exists

  • Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Options.verifytargetdirectoryexists

Notifications and Logging

The following list provides Notifications and Logging prompt details:

Email Condition

  • Description: The circumstances in which an e-mail is sent. Choose from the following:
    • Always: An e-mail is always sent when a job runs.
    • Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
    • On Transfer: An e-mail is sent only when the transfer occurs.
    • Never: No e-mail is sent.
  • REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
  • JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailCondition

Email To

  • Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailTo

Email Cc

  • Description: Specifies the email address(es) of recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailCc

Email Bcc

  • Description: Specifies the email address(es) of recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailCc

Email Job Failure Report To

  • Description: The email address of the person of recipient(s) of the failure report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaDistributor.NotificationAndLogging.emailJobFailureReportTo

Log Detail Level

  • Description: The type of logging information for this job. Choose from Error, Warn (warning), Info (Information) or Debug. Debug provides the greatest level of detail while Error provides the least. The options are: 0 error, 1 warn, 2 info, or 3 debug. The default value is Info.
  • REST/SOAP Variable Value: 0, 1, 2, or 3
  • JSON Variable Name: MediaDistributor.NotificationAndLogging._sp_log_severity

SNMP

The following list provides SNMP prompt details:

SNMP Trap Receivers

  • Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
  • REST/SOAP Variable Value: Any hostname or IP address.
  • JSON Variable Name: MediaDistributor.sNMPProperties.sNMPTrapReceivers

SNMP Trap Community String

  • Description: The SNMP community string (i.e. password) to be sent in the trap.
  • REST/SOAP Variable Value: Any string.
  • JSON Variable Name: MediaDistributor.sNMPProperties.sNMPTrapCommunityString

SNMP Trap Types

  • Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
  • REST/SOAP Variable Value: Success, Failure or both
  • JSON Variable Name: MediaDistributor.sNMPProperties.sNMPTrapTypes

Schedule

The following list provides Schedule prompt details:

Frequency

  • Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
    • None: use for jobs that run only at irregular, user defined times.
    • Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval.
    • Monthend: run the job once every last day of the month.
    • Once: run the job only once, when first created.
  • REST/SOAP Variable Value: Possible values: None, Any number, representing "Every X minutes", Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month", Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
  • JSON Variable Name: MediaDistributor.Schedule._sp_frequency

Start Date/Time

  • Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
  • JSON Variable Name: MediaDistributor.Schedule._sp_start_at

Time Zone

  • Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
  • REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see Time Zone Values.
  • JSON Variable Name: MediaDistributor.Schedule.timezone

Interrupt on Failure

  • Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaDistributor.Schedule._sp_interrupt_on_failure

Priority

  • Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority.The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
  • REST/SOAP Variable Value: 1, 2, 3, 4, 5
  • JSON Variable Name: MediaDistributor.Schedule.priority

Finish Before

  • Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
  • JSON Variable Name: MediaDistributor.Schedule.finishBefore

MediaDistributor JSON Example

The following is an example of the MediaDistributor JSON.

{
    "transferJob": {
        "resourceID": "61",
        "notifyAt": {
            "replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
            "faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
        },
        "bmObjects": {
            "bmObject": [
                {
                    "bmContents": {
                        "bmContent": [
                            {
                                "bmContentFormats": {
                                    "bmContentFormat": [
                                        {
                                            "bmEssenceLocators": {
                                                "bmEssenceLocator": [
                                                    {
                                                        "type": "SimpleFileLocatorType",
                                                        "file": "file://agent1.example.com/C:/tmp/test.zip"
                                                    }
                                                ]
                                            },
                                            "packageSize": 44947460
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        },
        "priority": "low",
        "profiles": [
            {
                "transferProfile": [
                    {
                        "name": "Transfer Profile",
                        "description": "Highspeed Transfer Delivery",
                        "transferAtom": [
                            {
                                "destination": "file://agent2.example.com/C:/tmp/target"
                            }
                        ],
                        "location": [
                            "https://manager.example.com/template/Media_Mover_Workflows/component/MediaDistributor"
                        ],
                        "ExtensionGroup": [
                            {
                                "SigniantExtensionGroup": [
                                    {
                                        "jobContextParameters": [
                                            {
                                                "jobName": [
                                                    "FIMS_jobName_061"
                                                ],
                                                "jobGroup": [
                                                    "Default"
                                                ]
                                            }
                                        ],
                                        "jobVariables": [
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.SourceAgent"
                                                ],
                                                "JobVariableValue": [
                                                    "agent1.example.com"
                                                ]
                                            },
											{
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.SourceData"
                                                ],
                                                "JobVariableValue": [
                                                    "D:\\Backgrounds"
                                                ]
                                            },
											{
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.IncludeFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "*"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.ExcludeFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "zimg*"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.ExcludeSubdirectories"
                                                ],
                                                "JobVariableValue": [
                                                    "None"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.ExcludeSubDirList"
                                                ],
                                                "JobVariableValue": [
                                                    "excludeMe"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.FileReadinessCheckType"
                                                ],
                                                "JobVariableValue": [
                                                    "Date/Time & Size"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.FileReadinessCheckDelay"
                                                ],
                                                "JobVariableValue": [
                                                    "10"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.sourceDeletionsAfterSuccessfulTransfer"
                                                ],
                                                "JobVariableValue": [
                                                    "emptydirs"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.sourceDirectoriestoExcludefromDeletionScan"
                                                ],
                                                "JobVariableValue": [
                                                    "notToBeDeleted"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Source.skipSourceFileNotFoundOnSend"
                                                ],
                                                "JobVariableValue": [
                                                    "yes"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Target.TargetAgents"
                                                ],
                                                "JobVariableValue": [
                                                    "agent2.example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Target.TargetDirectory"
                                                ],
                                                "JobVariableValue": [
                                                    "c:\\tmp\\Here"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Target.PathMappingOptions"
                                                ],
                                                "JobVariableValue": [
                                                    "Job Date/Time"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Target.maximumJobDateTimeDirectories"
                                                ],
                                                "JobVariableValue": [
                                                    "10"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Target.RemoveTargetFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Target.removeExpiredDirectoriesonTarget"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Target.expirationPeriod"
                                                ],
                                                "JobVariableValue": [
                                                    "30"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Transport._sp_udp"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Transport.UseWANAccelerator"
                                                ],
                                                "JobVariableValue": [
                                                    "yes"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Transport.wANAcceleratorAggressiveness"
                                                ],
                                                "JobVariableValue": [
                                                    "medium"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Transport.BandwidthCeiling"
                                                ],
                                                "JobVariableValue": [
                                                    "1250000"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Transport.BandwidthFloor"
                                                ],
                                                "JobVariableValue": [
                                                    "250000"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Transport.BandwidthThrottleByTimeOfDay"
                                                ],
                                                "JobVariableValue": [
                                                    "09:00;23:00;YYYYYYY;625000;"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Options._sp_encryption"
                                                ],
                                                "JobVariableValue": [
                                                    "off"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Options.deliveryMode"
                                                ],
                                                "JobVariableValue": [
                                                    "unsigned"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Options.CompressFiles"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Options.followSymbolicLinks"
                                                ],
                                                "JobVariableValue": [
                                                    "yes"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Options.IncrementalTransfer"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Options.verifyforsufficientdiskspacebeforeJobtransfersstart"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Options.verifytargetdirectoryexists"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.NotificationAndLogging.EmailCondition"
                                                ],
                                                "JobVariableValue": [
                                                    "Always"
                                                ]
                                            },
											{
                                                "JobVariableName": [
                                                    "MediaDistributor.NotificationAndLogging.EmailTo"
                                                ],
                                                "JobVariableValue": [
                                                    "user@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.NotificationAndLogging.EmailCc"
                                                ],
                                                "JobVariableValue": [
                                                    "user1@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.NotificationAndLogging.EmailBcc"
                                                ],
                                                "JobVariableValue": [
                                                    "user2@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.NotificationAndLogging.emailJobFailureReportTo"
                                                ],
                                                "JobVariableValue": [
                                                    "user@example.com"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.NotificationAndLogging._sp_log_severity"
                                                ],
                                                "JobVariableValue": [
                                                    "2"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.sNMPProperties.sNMPTrapReceivers"
                                                ],
                                                "JobVariableValue": [
                                                    "192.168.1.205"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.sNMPProperties.sNMPTrapCommunityString"
                                                ],
                                                "JobVariableValue": [
                                                    "cString"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.sNMPProperties.sNMPTrapTypes"
                                                ],
                                                "JobVariableValue": [
                                                    "Success,Failure"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Schedule._sp_frequency"
                                                ],
                                                "JobVariableValue": [
                                                    "Once"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Schedule._sp_start_at"
                                                ],
                                                "JobVariableValue": [
                                                    "2015/08/18 10:00:00"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Schedule.timezone"
                                                ],
                                                "JobVariableValue": [
                                                    "America/New_York"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Schedule._sp_interrupt_on_failure"
                                                ],
                                                "JobVariableValue": [
                                                    "no"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Schedule.priority"
                                                ],
                                                "JobVariableValue": [
                                                    "2"
                                                ]
                                            },
                                            {
                                                "JobVariableName": [
                                                    "MediaDistributor.Schedule.finishBefore"
                                                ],
                                                "JobVariableValue": [
                                                    "2015/08/27 10:00:00"
                                                ]
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
				
							

MediaReplicator Prompts

The following sections provide the prompt names, description, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaReplicator).

Source Specification

The following list provides Source Specification prompt details:

Source Agents

  • Description: The agent(s) from which you are transferring data. This is a mandatory prompt.
  • REST/SOAP Variable Value: Hostname of any agent or alias in the system.
  • JSON Variable Name: MediaReplicator.Source.SourceAgent

Source Data

  • Description: The source folder used for the files to be transferred. This is a mandatory prompt. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format:
    • Windows root drives, e.g., C:\ApplicationData
    • UNIX root drives, e.g., /home
    • Windows UNC path names, e.g., \\machine1\applicationdata
    Leaving the Source Data prompt empty will use the agent's default folder.
  • REST/SOAP Variable Value:
     <siglist type="filedir">
    	<el v="c:\Temp" t="d"></el>
    	<el v="e:\dist\source\test.txt" t="f"></el>
    </siglist>							
    									
    The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
  • JSON Variable Name: MediaReplicator.Source.SourceData

Include File Patterns

  • Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type *.doc, *.ppt, in the prompt, the transfer wills include files with these extensions.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaReplicator.Source.IncludeFiles

Exclude File Patterns

  • Description: Allows users to specify which files are excluded from transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #work_file#* and #chkpt_file#*.
  • REST/SOAP Variable Value: Any string that represents filtering. For example, *.doc, *.png, file*.*, *file*.txt.
  • JSON Variable Name: MediaReplicator.Source.ExcludeFiles

Exclude Subdirectories

  • Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
  • REST/SOAP Variable Value: None, All or Specified
  • JSON Variable Name: MediaReplicator.Source.ExcludeSubdirectories

Subdirectories to Exclude

  • Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.

    For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)

    If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.

    To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:

    * (matches zero or more characters)

    ? (matches any single character)

    [...] (matches any one of the enclosed characters - for example, [ch] would match the characters "c" or "h")

    A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.

  • REST/SOAP Variable Value: Comma separated list
  • JSON Variable Name: MediaReplicator.Source.ExcludeSubDirList

Skip Source File Not Found On Send

  • Description: Allows you to skip files that are not found during a transfer. The default value is Yes. This is a mandatory prompt.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Source.skipSourceFileNotFoundOnSend

Destination Specification

The following list details the Destination Specification prompts:

Target Agents

  • Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
  • REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
  • JSON Variable Name: MediaReplicator.Target.TargetAgents

TargetDirectory

  • Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \\machine1\applicationdata.
  • REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
  • JSON Variable Name: MediaReplicator.Target.TargetDirectory

Transport Options

The following list provides Transport Options prompt details:

Use UDP Control Channel

  • Description: Allows you to specify that job control information will be communicated using UDP instead of TCP. This includes both the communication between the Signiant Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default Use UDP Channel is set to No.

    This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.

    When Use UDP Control Channel is set to "Yes", all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. Thus it is not possible to have job control using TCP and data transfer using UDP.

    This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that "Use UDP Control Channel" be set to "No".

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Transport._sp_udp

Use WAN Accelerator

  • Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.

    When running a job with Use WAN Accelerator set to Yes, with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Transport.UseWANAccelerator

WAN Accelerator Aggressiveness

  • Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
    • High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
    • Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
    • Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
  • REST/SOAP Variable Value: high, medium or low
  • JSON Variable Name: MediaReplicator.Transport.WANAcceleratorAggressiveness

Bandwidth Ceiling

  • Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.). "0" specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaReplicator.Transport.BandwidthCeiling

Bandwidth Floor

  • Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used. "0" specifies auto-detection for the best bandwidth rate.
  • REST/SOAP Variable Value: Any number. This number represents Bps.
  • JSON Variable Name: MediaReplicator.Transport.BandwidthFloor

Bandwidth Throttle by Time of Day (in GMT time)

  • Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.

    For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon ("+") to add more bandwidth throttles, or the "x" to delete a throttle.

    Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.

    Note that bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.

  • REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps)

    Where:

    • HH:MM is a time value, first value is start, second is stop
    • SMTWTFS are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
    • bps any number

    You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.

  • JSON Variable Name: MediaReplicator.Transport.BandwidthThrottleByTimeOfDay

Advanced Options

The following list provides Advanced Options prompt details:

Encryption Level

  • Description: The encryption level selected dictates how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.

    Allows specification of the encryption level from the following values:

    • High (high): Cipher=AES256-SHA, Keysize=256/256
    • Medium (medium): Cipher=RC4-SHA, Keysize=128/128
    • Low (low): Cipher=DES-CBC-SHA, Keysize=56/56
    • No Encryption - signed (none): This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
    • No Encryption - unsigned (off): This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol). This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.

    The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done "in-stream" and not on disk prior to sending.

  • REST/SOAP Variable Value: high, medium, low, none or off
  • JSON Variable Name: MediaReplicator.Options._sp_encryption

Delivery Mode

  • Description: Specifies the file transfer mode. The options are:
    • Fast: Do not create temporary work files. This mode is optimized for speed.
    • Normal: Use temporary work files during transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency.
    • Log File Name: Log file names transferred. Logs are stored on the Manager.
    • Certify File Delivery: Create agent certified delivery log of files transferred.
  • REST/SOAP Variable Value: Fast, No, Unsigned or Yes
  • JSON Variable Name: MediaReplicator.Options.deliveryMode

Compress Files

  • Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Options.CompressFiles

Follow Symbolic Links

  • Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.

    Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the "follow symbolic links" option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.

  • REST/SOAP Variable Value: Yes or No
  • JSON Variable Name: MediaReplicator.Options.followSymbolicLinks

Incremental Transfer

  • Description: If set to Yes, only changed bytes of files are transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Options.IncrementalTransfer

Synchronize Target with Source

  • Description: The Synchronize option enables the agent synchronizing transfer mode which involves a deletion phase on the target agent. If enabled, all content in the target folder matching the source file/folder inclusion criteria, but that did not exist in the source folder, is deleted. For example, if source inclusions is simply * (or blank, which equates to *) then all content in the target folder that did not exist in the source will be deleted following the transfer phase. However, if source inclusions is *.txt then only the .txt files in the target folder that did not exist in the source folder will be deleted following the transfer.

    Be very careful when enabling the synchronize option due to the fact that it deletes content at the target end. This deleted data is not recoverable via Signiant.

    Enabling this option is incompatible with the Follow Symbolic Links option.

  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Options.synchronizeTargetwithSource

Verify for sufficient disk space before Job transfers start

  • Description: Select Yes to check the remote disk space on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Options.verifyforsufficientdiskspacebeforeJobtransfersstart

Verify if target directory exists

  • Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Options.verifytargetdirectoryexists

Notifications and Logging

The following list provides Notifications and Logging prompt details:

Email Condition

  • Description: The circumstances in which an e-mail is sent. Choose from the following:
    • Always: An e-mail is always sent when a job runs.
    • Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
    • On Transfer: An e-mail is sent only when the transfer occurs.
    • Never: No e-mail is sent.
  • REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
  • JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailCondition

Email To

  • Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailTo

Email Cc

  • Description: Specifies the email address(es) of recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailCc

Email Bcc

  • Description: Specifies the email address(es) of recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailBcc

Email Job Failure Report To

  • Description: The email address of the person who receives the failure report. Separate multiple addresses with a comma.
  • REST/SOAP Variable Value: Any email address or addresses separated with commas.
  • JSON Variable Name: MediaReplicator.NotificationAndLogging.emailJobFailureReportTo

Log Detail Level

  • Description: The type of logging information for this job. Choose from 0 error, 1 warn, 2 info, or 3 debug. Debug provides the greatest level of detail while Error provides the least. The default value is Info.
  • REST/SOAP Variable Value: 0, 1, 2, or 3
  • JSON Variable Name: MediaReplicator.NotificationAndLogging._sp_log_severity

SNMP

The following list provides SNMP prompt details:

SNMP Trap Receivers

  • Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
  • REST/SOAP Variable Value: Any hostname or IP address.
  • JSON Variable Name: MediaReplicator.sNMPProperties.sNMPTrapReceivers

SNMP Trap Community String

  • Description: The SNMP community string (i.e. password) to be sent in the trap.
  • REST/SOAP Variable Value: Any string.
  • JSON Variable Name: MediaReplicator.sNMPProperties.sNMPTrapCommunityString

SNMP Trap Types

  • Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
  • REST/SOAP Variable Value: Success, Failure or both
  • JSON Variable Name: MediaReplicator.sNMPProperties.sNMPTrapTypes

Schedule

The following list provides Schedule prompt details:

Frequency

  • Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
    • None: use for jobs that run only at irregular, user defined times.
    • Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval.
    • Monthend: run the job once every last day of the month.
    • Once: run the job only once, when first created.
  • REST/SOAP Variable Value: Possible values: None, Any number, representing "Every X minutes", Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing "Every X Y of the month", Any (number)(blankspace)(letter) "4 D", representing: H -> Hour(s), D -> Day(s), W -> Week(s), M -> Month(s), Y -> Year(s).
  • JSON Variable Name: MediaReplicator.Schedule._sp_frequency

Start Date/Time

  • Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
  • JSON Variable Name: MediaReplicator.Schedule._sp_start_at

Time Zone

  • Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
  • REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see: Time Zone Values.
  • JSON Variable Name: MediaReplicator.Schedule.timezone

Interrupt on Failure

  • Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
  • REST/SOAP Variable Value: yes or no
  • JSON Variable Name: MediaReplicator.Schedule._sp_interrupt_on_failure

Priority

  • Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
  • REST/SOAP Variable Value: 1, 2, 3, 4, 5
  • JSON Variable Name: MediaReplicator.Schedule.priority

Finish Before

  • Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
  • REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
  • JSON Variable Name: MediaReplicator.Schedule.finishBefore

Time Zone Values

The possible REST/SOAP Variable Values for the Time Zone prompt are listed in the following table.

REST/SOAP Value

Time Zone

 

Etc/GMT+12

(GMT-12:00) International Date Line West

Pacific/Apia

(GMT-11:00) Midway Island, Samoa

Pacific/Honolulu

(GMT-10:00) Hawaii

America/Anchorage

(GMT-09:00) Alaska

America/Los_Angeles

(GMT-08:00) Pacific Time (US & Canada); Tijuana

America/Phoenix

(GMT-07:00) Arizona

America/Denver

(GMT-07:00) Mountain Time (US & Canada)

America/Chihuahua

(GMT-07:00) Chihuahua, La Paz, Mazatlan

America/Managua

(GMT-06:00) Central America

America/Regina

(GMT-06:00) Saskatchewan

America/Mexico_City

(GMT-06:00) Guadalajara, Mexico City, Monterrey

America/Chicago

(GMT-06:00) Central Time (US & Canada)

America/Indianapolis

(GMT-05:00) Indiana (East)

America/Bogota

(GMT-05:00) Bogota, Lima, Quito

America/New_York

(GMT-05:00) Eastern Time (US & Canada)

America/Caracas

(GMT-04:00) Caracas, La Paz

America/Santiago

(GMT-04:00) Santiago

America/Halifax

(GMT-04:00) Atlantic Time (Canada)

America/St_Johns

(GMT-03:30) Newfoundland

America/Buenos_Aires

(GMT-03:00) Buenos Aires, Georgetown

America/Godthab

(GMT-03:00) Greenland

America/Sao_Paulo

(GMT-03:00) Brasilia

America/Noronha

(GMT-02:00) Mid-Atlantic

Atlantic/Cape_Verde

(GMT-01:00) Cape Verde Is

Atlantic/Azores

(GMT-01:00) Azores

Africa/Casablanca

(GMT) Casablanca, Monrovia

Europe/London

(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London

Africa/Lagos

(GMT+01:00) West Central Africa

Europe/Berlin

(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna

Europe/Paris

(GMT+01:00) Brussels, Copenhagen, Madrid, Paris

Europe/Sarajevo

(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb

Europe/Belgrade

(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague

Africa/Johannesburg

(GMT+02:00) Harare, Pretoria

Asia/Jerusalem

(GMT+02:00) Jerusalem

Europe/Istanbul

(GMT+02:00) Athens, Istanbul, Minsk

Europe/Helsinki

(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius

Africa/Cairo

(GMT+02:00) Cairo

Europe/Bucharest

(GMT+02:00) Bucharest

Africa/Nairobi

(GMT+03:00) Nairobi

Asia/Riyadh

(GMT+03:00) Kuwait, Riyadh

Europe/Moscow

(GMT+03:00) Moscow, St. Petersburg, Volgograd

Asia/Baghdad

(GMT+03:00) Baghdad

Asia/Tehran

(GMT+03:30) Tehran

Asia/Muscat

(GMT+04:00) Abu Dhabi, Muscat

Asia/Tbilisi

(GMT+04:00) Baku, Tbilisi, Yerevan

Asia/Kabul

(GMT+04:30) Kabul

Asia/Karachi

(GMT+05:00) Islamabad, Karachi, Tashkent

Asia/Yekaterinburg

(GMT+05:00) Ekaterinburg

Asia/Calcutta

(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi

Asia/Katmandu

(GMT+05:45) Kathmandu

Asia/Colombo

(GMT+06:00) Sri Jayawardenepura

Asia/Dhaka

(GMT+06:00) Astana, Dhaka

Asia/Novosibirsk

(GMT+06:00) Almaty, Novosibirsk

Asia/Rangoon

(GMT+06:30) Rangoon

Asia/Bangkok

(GMT+07:00) Bangkok, Hanoi, Jakarta

Asia/Krasnoyarsk

(GMT+07:00) Krasnoyarsk

Australia/Perth

(GMT+08:00) Perth

Asia/Taipei

(GMT+08:00) Taipei

Asia/Singapore

(GMT+08:00) Kuala Lumpur, Singapore

Asia/Hong_Kong

(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi

Asia/Irkutsk

(GMT+08:00) Irkutsk, Ulaan Bataar

Asia/Tokyo

(GMT+09:00) Osaka, Sapporo, Tokyo

Asia/Seoul

(GMT+09:00) Seoul

Asia/Yakutsk

(GMT+09:00) Yakutsk

Australia/Darwin

(GMT+09:30) Darwin

Australia/Adelaide

(GMT+09:30) Adelaide

Pacific/Guam

(GMT+10:00) Guam, Port Moresby

Australia/Brisbane

(GMT+10:00) Brisbane

Asia/Vladivostok

(GMT+10:00) Vladivostok

Australia/Hobart

(GMT+10:00) Hobart

Australia/Sydney

(GMT+10:00) Canberra, Melbourne, Sydney

Asia/Magadan

(GMT+11:00) Magadan, Solomon Is., New Caledonia

Pacific/Fiji

(GMT+12:00) Fiji, Kamchatka, Marshall Is

Pacific/Auckland

(GMT+12:00) Auckland, Wellington

Pacific/Tongatapu

(GMT+13:00) Nuku'alofa