Flight Deck FIMS API Reference

The Framework for Interoperable Media Services or FIMS, is an open standard for service oriented architecture (SOA). This approach replaces the tightly coupled devices and functions found in traditional systems. FIMS allows you to use a set of media services that are interoperable, interchangeable and reusable.

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

To use the FIMS API, you must have Signiant Manager installed, a familiarity with using an REST or SOAP API, and an understanding of the FIMS architecture.

An example set of REST functions are included in the Signiant Manager installation bundle, separate from the Manager installer, in the /support/fims_samples directory.

For more information about the FIMS project, see the FIMS GitHub Organization

Job Queuing

The FIMS API supports the job and Agent queues as Signiant Resource Controls. These controls allow for the queuing of concurrent jobs and transfers within the system, as well as automated bandwidth provisioning.

Job Callback Functions (Webhooks)

Each submitted job can include a notification callback as a webhook message through the job replyTo or faultTo fields:

  • The replyTo URL is sent job status changes
  • The faultTo URL is sent job error messages

The TransferFaultType object includes details about failure notifications and the innerFaultType element contains the return code for the job.

When a notification cannot be delivered, the notification is queued and retried for up to 12 hours.

When there are multiple notifications going to the same URL, these notifications are added to the queue and attempted once the first notification has been delivered or has expired.

Job Maintenance

The maintenance function removes deleted FIMS jobs and the associated job resource IDs. To learn more about maintenance, see Understanding Maintenance.

Supported FIMS Functionality

The Signiant FIMS SOAP API supports the following functions:

  • TransferMedia
  • MediaServiceStatus QueryJob
  • MediaServiceStatus ManageJob

The Signiant FIMS REST API supports the following endpoints:

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

Jobs submitted with the FIMS API are controlled by the Signiant Resource controls when applied.

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 or Create a Transfer Job functions are used to create FIMS jobs. This section describes the supported FIMS job attributes.

Job Status

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

Supported Value Value Description
new A new job is created.
canceled The job has been canceled via the Manager interface or through the API.
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 function, 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 as soon as they are received by the Manager.

To specify a job start time, use the startJob prompt with the bms.StartJobByTimeType function.

The bms.StartJobByTimeType format is YYYY-MM-DDTHH:MM:ss+-HH:MM00

Note: +-HH:00 is the GMT offset for the job start time. For example, including 2020-04-20T12:00-04:00 creates a job for April 20, 2020 at noon GMT, adjusted to 8:00 AM local time.

To optionally specify that you want the job to start when submitted to the API, use the bms.StartJobByNoWaitType xsi.type in the startJob object:

Copy
{
  "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://example.com/transfers/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.startJob": {
      "@xsi.type": "bms.StartJobByNoWaitType"
    },

    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://example.com/c:/transfers/MediaIn"
            }
          ]
        }
      ]
    }
  }
}

To optionally specify when FIMS transfer jobs are started:

  • use startJob and sig.StartJobByTimeTypein the sig.fimsMapping object
  • 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: 2020-09-30T12:00-04:00).

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

Copy
{
  "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://example.com/X:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.startJob": {
      "@xsi.type": "bms.StartJobByTimeType",
      "bms.time": "2020-09-02T18:00:00Z"
    },
    "profiles": {
      "transferProfile": [
        {
          "name": "Transfer Profile",
          "description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://example.com/C:/storage/MediaIn"
            }
          ],
          "bms.location": "https://agent.example.com/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:

Copy
{
   "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:/storage/MediaOut"
                           } ]
                        },
                        "bms.packageSize" : 44947460
                     } ]
                  }
               } ]
            }
         } ]
      },
      "bms.priority" : "low",
      "bms.startJob" : {
           "@xsi.type" : "bms.StartJobByTimeType",
       "bms.time" : "2020-09-29T18:00:00Z"
       },
      "profiles" : {
         "transferProfile" : [ {
        "name" : "Transfer Profile",
        "description" : "Highspeed Transfer Delivery",
        "transferAtom" : [ {
           "bms.destination" : "file://targetagent.example.com/C:/storage/MediaIn"
        } ],
        "bms.location" : "https://sourceagent.example.com/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": "2020/09/29 21:30:00" },

            } ]
        } ]

        } ]
    }
    }
}

MediaServiceStatus QueryJob / Retrieve a Transfer Job

The MediasServiceStatus QueryJob service or Retrieve a Transfer Job REST call allow you to query the jobs submitted with the FIMS API. Use QueryJobRequestByIdType to query one or many resourceIDs.

Note: QueryJobRequestByFilterType is not supported. JobInfoSelectionType only supports 'all'

MediaServiceStatus ManageJob/Manage Jobs (Control Jobs)

The MediasServiceStatus ManageJob service/Manage Jobs (Control Jobs) allows you to control jobs submitted through the FIMS API. 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 Temporarily stop a job from running.
cancel Stop a running job or removes the job from a job queue
cleanup Delete a job on the Signiant Manager
resume Resume a paused job
restart Restart a job
modify_priority Modify the priority of any queued job

The stop command is not supported.

The MediaServiceStatus ManageQueue service is not supported. All jobs submitted may be controlled by Resource Controls.

Signiant FIMS API Examples

This section uses code examples and REST examples to create, manage, list and retrieve jobs. The REST examples used in this guide are available in the Signiant Manager installer bundle in /support/fims_samples.

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

Using the 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 modify 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-V_1_1_0.xsd

Accessing the Signiant FIMS REST API

Use the following URL:

http://signiant_manager_name/signiant_fims_transfer_service/transferservice/service_URI

The table below details the URLs for the TransferService services.

The following table lists the Job Filter Criteria:

URL 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.

Parameter Description Values
JobInfoSelectionType Return only mandatory attributes or all attributes of a job all or mandatory
toDate Jobs to be listed 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

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.

In order to specify the location of source files and folders to transfer - use the URL format for files. The URL 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 URL format can be used to specify CIFs locations as well.

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

To specify file and folder values:

The following is the format of the URL 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

URL format file path examples:

  • Windows JSON example of a standard file path:

bms.file: file://agent.example.com/c:/transfers/MediaOut

  • Windows JSON example of UNC path:

bms.file: file://agent.example.com///nas-storage.example.com/main/storage/MediaOut

  • Linux JSON example of a standard Linux file path:

bms.file: file://agent.example.com//storage/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 Job Group.

By default the FIMS API uses a preset workflow and Job Group for the submitted jobs. Signiant Extension Group attributes are not 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>

To view the default FIMS JSON and to export this a template, use the Manager

  1. Open the FIMS_Workflow job template in the job template canvas.
  2. Right-click the FIMS_Transfer_Start component and select Create FIMS JSON. You can view the JSON within the viewer or Export to a file 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:

Copy
curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <Username>" -H "X-FIMS-Password: <Password>" -H "Content-Type: application/json" --data @SigniantFIMSCreateJob.json http://manager.example.com/signiant_fims_transfer_service/transferservice/job

REST Create Job JSON Content (SigniantFIMSCreateJob.json)

Copy
{
  "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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

Create Job Response

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

Managing a Job

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

Copy
curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <Username>" -H "X-FIMS-Password: <Password>" -H "Content-Type: application/json" --data @SigniantFIMSCancelJob.json http://manager.example.com/signiant_fims_transfer_service/transferservice/job/<job_id>/manage

REST Create Job Response

Copy
{
  "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

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

Use the following Curl command to clean up a job:

Copy
curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <username>" -H "X-FIMS-Password:
<password>" -H "Content-Type: application/json" --data @SigniantFIMSCleanupJob.
json http://manager.example.com/signiant_fims_transfer_
service/transferservice/job/<jobid>/manage

REST Cleanup Job Response

Copy
{
  "tms.transferJob": {
    "bms.resourceID": "1437658544440713",
    "bms.status": "cleaned",
    "bms.serviceProviderJobID": "FIMS_1437658604953"
  }
}

Retrieving Job Details

Use the following Curl command to retrieve a job:

Copy
curl -X GET -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <Username>" -H "X-FIMS-Password: <Password>" -H "Content-Type: application/json"  http://manager.example.com/signiant_fims_transfer_service/transferservice/job/<jobid>

REST Job Details Response

Copy
{
  "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://agent1.example.com/C:/storage/MediaOut"
                          },
                          {
                            "@xsi.type": "bms.SimpleFileLocatorType",
                            "bms.file": "file://agent2.example.com/C:/storage/MediaIn/"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2020-03-26T13:50:53.000-04:00",
    "bms.jobCompletedTime": "2020-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://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

Receiving And Viewing Notifications

To invoke a Perl-based web server that accepts and displays received FIMS notifications, use the following command. This code is included in the Signiant Manager bundle directory in /support/fims_samples.

RESTServer.pl 8088

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.

Finding Prompt Variable Values

To find prompt variable values:

  1. In the Signiant Manager, right-click a component and select Edit Component.
  2. In the Component Editor, select a prompt and click Advanced Options.
  3. In the Prompt Editor, the variable values are displayed in the Values and Labels fields.

Submitting Non-FIMS Transfer Jobs

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

Copy
{
  "transferJob": {
    "bms.resourceID": 1426773850,
    "bms.notifyAt": {
      "bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://192.168.0.1: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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "name": "Transfer Profile",
          "description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://agent.example.com/C:/storage/MediaIn/"
            }
          ],
          "bms.location": "https://manager.example.com.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://<manager>/signiant_fims_transfer_service/TransferMediaPort/wsdl/resource=signiantMediaService-V1_1_0.xsd

How To Use The Signiant Extension Schema

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

  1. In Jobs select Templates.
  2. Select your workflow and click Open Canvas.
  3. Right-click on the start component and select Show Web Services Info.

The Signiant Extension Schema provides type definitions that allow you to invoke any workflow 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 workflow 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 URL and inserts the value into the specified workflow component value for the source agent.
targetAgent Extracts the host name from the TransferAtom destination type URL 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 URL 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 URL 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

Copy
"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 URL which includes the Job Template Library name and Job Template name.

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

Copy
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:

Copy
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:

Copy
"bms.location": "https://<signiant_manager&#95;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: 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 job group, which 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:

Copy
"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, for 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

Copy
"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

Common Error Messages

The following table provides descriptions of the common error messages.

Error Description Explanation
INF_S00_003 N/A Check the Jboss log (signiant.log) for errors.
INF_S00_003 The username or password you entered is incorrect. The header contained an invalid username or password.
INF_S00_003 Insufficient permissions error The user does not have access to the specified job group or job template library or 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 or valid JSON sent to the wrong service.
DAT_S00_001 The supplied jobID already exists The jobId in the JSON was already used for a transfer on this Signiant Manager.
DAT_S00_002 Missing priority The mandatory priority field is not specified.
DAT_S00_003 Agent is not valid The source or target agent name is incorrect.

The following is an example of an Error Response.

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

Troubleshooting Notes

The following list includes details which may help resolve some issues:

  • When referencing a custom workflow, both the source and target Agents must be set.

  • 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 rom 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.

  • Use the following format to specify a source or destination path:

Copy
bms.file: "file://agent.example.com//<folderName>/<filename>"
bms.destination: "file://agent.example.com//<folderName>"
  • Use the following format to specify a source or destination UNC path:
Copy
bms.file: "file://agent.example.com///<FileServerHostname>/<UNCShare>/<folderName>/<filename>"
bms.destination: "file://agent.example.com///<FileServerHostname>/UNCShare>/<folderName>"

REST Examples

REST Create Job Request for Standard FIMS Job

Copy
RestClient.post "http://manager.example.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"=>"password", "X-FIMS-UserName"=>"username"

REST Create Job JSON Content

Copy
{
  "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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

REST Create Job Response

Copy
# => 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

Copy
RestClient.post `http://manager.example.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`=>`password`, `X-FIMS-UserName`=>`username`

REST Create Job JSON Content

Copy
{
  "transferJob": {
    "bms.resourceID": 1426773887,
    "bms.notifyAt": {
      "bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://192.168.0.1: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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "@name": "Transfer Profile",
          "@description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

REST Create Job Response

Copy
# => 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

Copy
{:method=>"POST"@0,
 :URL=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"1044",
   "Content-Type"=>"text/json",
   "Host"=>"192.168.0.1:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773887",
    "bms.notifyAt": {
      "bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://192.168.0.1: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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2020-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://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

REST Create Job Notification of Job Fault

Copy
{
  "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": "2020-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:/storage/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

Copy
 {"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

Copy
RestClient.post `http://manager.example.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`=>`password`, `X-FIMS-UserName`=>`username`

REST Create for MediaMover Job JSON Content

Copy
{
  "transferJob": {
    "bms.resourceID": 1426773850,
    "bms.notifyAt": {
      "bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://192.168.0.1: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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "profiles": {
      "transferProfile": [
        {
          "name": "Transfer Profile",
          "description": "Highspeed Transfer Delivery",
          "transferAtom": [
            {
              "bms.destination": "file://agent2.example.com.com/C:/storage/MediaIn/"
            }
          ],
          "bms.location": "https://manager.example.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

Copy
# => 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

Copy
#######
{:method=>"POST"@0,
 :URL=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"1941",
   "Content-Type"=>"text/json",
   "Host"=>"192.168.0.1:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773850",
    "bms.notifyAt": {
      "bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://192.168.0.1: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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2020-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://manager.example.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://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

REST Create for MediaMover Job Notification of Job Running

Copy
{:method=>"POST"@0,
 :URL=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"1949",
   "Content-Type"=>"text/json",
   "Host"=>"192.168.0.1:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773850",
    "bms.notifyAt": {
      "bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://192.168.0.1: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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2020-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://manager.example.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://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

REST Create for MediaMover Job Notification of Job Completed

Copy
{:method=>"POST"@0,
 :URL=>{:path=>"/TransferMediaNotificationPort"@5},
 :version=>"1.1"@41,
 :headers=>
  {"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
   "Content-Length"=>"1949",
   "Content-Type"=>"text/json",
   "Host"=>"192.168.0.1:8088",
   "Connection"=>"Keep-Alive",
   "User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
  "transferJob": {
    "bms.resourceID": "1426773850",
    "bms.notifyAt": {
      "bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
      "bms.faultTo": "http://192.168.0.1: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://agent1.example.com/C:/storage/MediaOut"
                          }
                        ]
                      },
                      "bms.packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "bms.priority": "low",
    "bms.jobStartedTime": "2020-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://manager.example.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://agent2.example.com/C:/storage/MediaIn/"
            }
          ]
        }
      ]
    }
  }
}

FIMS Failed Status Response

Copy
"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

Copy
#!/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

For information about the Signiant Flight CLI Utility, read the Signiant Flight Documentation.

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.

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:
Copy
<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 #workfile# and #chkptfile#.
  • 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 &amp; 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: 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. **
  • 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.

Copy
{
  "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:/storage/source/",
                            "type": "SimpleFileLocatorType"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "profiles": [
      {
        "transferProfile": [
          {
            "name": "Transfer Profile",
            "transferAtom": [
              { "destination": "file://agent2.example.com/D:/storage/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:/storage/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": ["2020/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.

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:
Copy
<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

File List

  • Description: List of files and/or 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. A combination of absolute and relative paths is not supported. If this list contains a path to a single file, and that path ends with ._manifest_, then it is considered to be a manifest file and is read by the component to determine the actual list of files/folders to be transferred. A UNC path to the manifest file is supported on Windows. The manifest path must be an absolute path. This is a mandatory prompt.

  • REST/SOAP Variable Value:

Copy
<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: FlightDownloadReference.sourceOptions.fileList

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: 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. **
  • 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.

Copy
{"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:/storage/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": [""2020/08/29 12:55:00""]
                }
            ]
        }]}]
    }]}],
    "priority": "low"
}}

Using Media Mover

For more information about Media Mover read the Media Mover documentation.

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:
Copy
 <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 #workfile# and #chkptfile#.
  • 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 &amp; 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: 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: 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: _ No Encryption- signed: 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: 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 Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256.

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:
Copy
 <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: 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.

  • REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps) Where: HH:MM: A time value, first value is start, second is stop SMTWTFS: The days of the week, the values for this part should be Y or N, depending on whether you want to use the control on a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN bps: any number

Note: 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.

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 (#MediaAgg">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:
Copy
<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 #workfile# and #chkptfile#.
  • 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 &amp; 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: 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: 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:

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;.

  • 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

  • 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:
_ No Encryption - signed: 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 -: 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 Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256.

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. 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: 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.

Copy
{
  "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:/storage/test.zip"
                          }
                        ]
                      },
                      "packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "priority": "low",
    "profiles": [
      {
        "transferProfile": [
          {
            "name": "Transfer Profile",
            "description": "Highspeed Transfer Delivery",
            "transferAtom": [
              {
                "destination": "file://agent2.example.com/C:/storage/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": ["2020/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": ["2020/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).

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:
Copy
 <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 #workfile# and #chkptfile#.
  • 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 &amp; 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: 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: 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:

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;.

  • 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

  • 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:
_ No Encryption - signed: 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 -: 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 Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256.

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. 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: 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.

Copy
{
  "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:/storage/test.zip"
                          }
                        ]
                      },
                      "packageSize": 44947460
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "priority": "low",
    "profiles": [
      {
        "transferProfile": [
          {
            "name": "Transfer Profile",
            "description": "Highspeed Transfer Delivery",
            "transferAtom": [
              {
                "destination": "file://agent2.example.com/C:/storage/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": ["2020/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": ["2020/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:
Copy
<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 #workfile# and #chkptfile#.
  • 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: 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: 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:

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;.

  • 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

  • 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:
_ No Encryption - signed: 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: 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 Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256

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. 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: 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
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