Syncs

A Sync represents a file synchronization job between two locations (local-remote, remote-remote, local-child_site, etc). It can be scheduled, run manually, or triggered by custom logic. Syncs track their runs, status, and configuration.

List Syncs

SDK Method

\Files\Model\Sync::list;

Return Object

Sync[]

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Additional Arguments

Example Request

try {
  $syncs = \Files\Model\Sync::list();
  foreach ($syncs as $sync) {
    // Operate on $sync
  }
} catch (\Files\NotAuthenticated\InvalidUsernameOrPasswordException $e) {
  echo 'Authentication Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
} catch (\Files\FilesException $e) {
  echo 'Unknown Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
}

Show Sync

SDK Method

\Files\Model\Sync::find;

Return Object

Sync

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Method Arguments

ArgumentDescription
id
int64
Required
Sync ID.

Example Request

try {
  $sync = \Files\Model\Sync::find($id);
  // Operate on $sync
} catch (\Files\NotAuthenticated\InvalidUsernameOrPasswordException $e) {
  echo 'Authentication Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
} catch (\Files\FilesException $e) {
  echo 'Unknown Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
}

Create Sync

SDK Method

\Files\Model\Sync::create;

Return Object

Sync

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Method Arguments

ArgumentDefaultDescription
delete_empty_folders
boolean
falseDelete empty folders after sync?
description
string
Description for this sync job
dest_path
string
""Absolute destination path for the sync
dest_remote_server_id
int64
Remote server ID for the destination (if remote)
disabled
boolean
falseIs this sync disabled?
exclude_patterns
array(string)
Array of glob patterns to exclude
holiday_region
string
Skip the sync if there is a formal, observed holiday for this region.
include_patterns
array(string)
Array of glob patterns to include
interval
string
If trigger is daily, this specifies how often to run this sync. One of: day, week, week_end, month, month_end, quarter, quarter_end, year, year_end
keep_after_copy
boolean
trueKeep files after copying?
name
string
Name for this sync job
recurring_day
int64
If trigger type is daily, this specifies a day number to run in one of the supported intervals: week, month, quarter, year.
recurring_days
array(int64)
If trigger type is daily, this specifies one or more day numbers to run in one of the supported intervals: week, month, quarter, year.
schedule_id
int64
If trigger is custom_schedule, the reusable Schedule used instead of the sync's schedule fields.
schedule_days_of_week
array(int64)
If trigger is custom_schedule, Custom schedule description for when the sync should be run. 0-based days of the week. 0 is Sunday, 1 is Monday, etc.
schedule_time_zone
string
Time zone for the schedule. If not set, times are interpreted as UTC.
schedule_times_of_day
array(string)
Times of day to run in HH:MM format. For custom_schedule, run at these times on specified days of week. For daily, run at these times on the scheduled interval date.
src_path
string
""Absolute source path for the sync
src_remote_server_id
int64
Remote server ID for the source (if remote)
sync_interval_minutes
int64
Frequency in minutes between syncs. If set, this value must be greater than or equal to the remote_sync_interval value for the site's plan. If left blank, the plan's remote_sync_interval will be used. This setting is only used if trigger is empty.
trigger
string
Trigger type: daily, custom_schedule, or manual
Possible values: daily, custom_schedule, manual
trigger_file
string
Some MFT services request an empty file (known as a trigger file) to signal the sync is complete and they can begin further processing. If trigger_file is set, a zero-byte file will be sent at the end of the sync.
always_write_trigger_file
boolean
falseIf true, the trigger file will be sent at the end of a successful sync even when no files were transferred.
workspace_id
int64
0Workspace ID this sync belongs to

Example Request

try {
  $sync = \Files\Model\Sync::create([
    'delete_empty_folders' => true
  ]);
  // Operate on $sync
} catch (\Files\NotAuthenticated\InvalidUsernameOrPasswordException $e) {
  echo 'Authentication Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
} catch (\Files\FilesException $e) {
  echo 'Unknown Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
}

Dry Run Sync

SDK Method

$sync->dryRun;

Return Object

No return value.

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Example Request

try {
  // Find the sync object by its id.
  $sync = \Files\Model\Sync::find(id);
  $sync->dryRun();
} catch (\Files\NotAuthenticated\InvalidUsernameOrPasswordException $e) {
  echo 'Authentication Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
} catch (\Files\FilesException $e) {
  echo 'Unknown Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
}

Manually Run Sync

SDK Method

$sync->manualRun;

Return Object

No return value.

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Example Request

try {
  // Find the sync object by its id.
  $sync = \Files\Model\Sync::find(id);
  $sync->manualRun();
} catch (\Files\NotAuthenticated\InvalidUsernameOrPasswordException $e) {
  echo 'Authentication Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
} catch (\Files\FilesException $e) {
  echo 'Unknown Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
}

Update Sync

SDK Method

$sync->update;

Return Object

Sync

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Method Arguments

ArgumentDescription
delete_empty_folders
boolean
Delete empty folders after sync?
description
string
Description for this sync job
dest_path
string
Absolute destination path for the sync
dest_remote_server_id
int64
Remote server ID for the destination (if remote)
disabled
boolean
Is this sync disabled?
exclude_patterns
array(string)
Array of glob patterns to exclude
holiday_region
string
Skip the sync if there is a formal, observed holiday for this region.
include_patterns
array(string)
Array of glob patterns to include
interval
string
If trigger is daily, this specifies how often to run this sync. One of: day, week, week_end, month, month_end, quarter, quarter_end, year, year_end
keep_after_copy
boolean
Keep files after copying?
name
string
Name for this sync job
recurring_day
int64
If trigger type is daily, this specifies a day number to run in one of the supported intervals: week, month, quarter, year.
recurring_days
array(int64)
If trigger type is daily, this specifies one or more day numbers to run in one of the supported intervals: week, month, quarter, year.
schedule_id
int64
If trigger is custom_schedule, the reusable Schedule used instead of the sync's schedule fields.
schedule_days_of_week
array(int64)
If trigger is custom_schedule, Custom schedule description for when the sync should be run. 0-based days of the week. 0 is Sunday, 1 is Monday, etc.
schedule_time_zone
string
Time zone for the schedule. If not set, times are interpreted as UTC.
schedule_times_of_day
array(string)
Times of day to run in HH:MM format. For custom_schedule, run at these times on specified days of week. For daily, run at these times on the scheduled interval date.
src_path
string
Absolute source path for the sync
src_remote_server_id
int64
Remote server ID for the source (if remote)
sync_interval_minutes
int64
Frequency in minutes between syncs. If set, this value must be greater than or equal to the remote_sync_interval value for the site's plan. If left blank, the plan's remote_sync_interval will be used. This setting is only used if trigger is empty.
trigger
string
Trigger type: daily, custom_schedule, or manual
Possible values: daily, custom_schedule, manual
trigger_file
string
Some MFT services request an empty file (known as a trigger file) to signal the sync is complete and they can begin further processing. If trigger_file is set, a zero-byte file will be sent at the end of the sync.
always_write_trigger_file
boolean
If true, the trigger file will be sent at the end of a successful sync even when no files were transferred.

Example Request

try {
  // Find the sync object by its id.
  $sync = \Files\Model\Sync::find(id);
  $sync->update([
    'delete_empty_folders' => true
  ]);
} catch (\Files\NotAuthenticated\InvalidUsernameOrPasswordException $e) {
  echo 'Authentication Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
} catch (\Files\FilesException $e) {
  echo 'Unknown Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
}

Delete Sync

SDK Method

$sync->delete;

Return Object

No return value.

Authorization Requirement

Requires either a Site-Wide API key or User API key or session from a User with Site Admin permissions.

Example Request

try {
  // Find the sync object by its id.
  $sync = \Files\Model\Sync::find(id);
  $sync->delete();
} catch (\Files\NotAuthenticated\InvalidUsernameOrPasswordException $e) {
  echo 'Authentication Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
} catch (\Files\FilesException $e) {
  echo 'Unknown Error Occurred (' . get_class($e) . '): ', $e->getMessage(), "\n";
}

The Sync Object

Some of the methods above return a Sync object. The attributes of this object are listed below.

AttributeDescription
id
int64
Sync ID
name
string
Name for this sync job
description
string
Description for this sync job
site_id
int64
Site ID this sync belongs to
workspace_id
int64
Workspace ID this sync belongs to
user_id
int64
User who created or owns this sync
src_path
string
Absolute source path for the sync
dest_path
string
Absolute destination path for the sync
src_remote_server_id
int64
Remote server ID for the source (if remote)
dest_remote_server_id
int64
Remote server ID for the destination (if remote)
src_site_id
int64
Source site ID if syncing from a child or partner site
dest_site_id
int64
Destination site ID if syncing to a child or partner site
two_way
boolean
Is this a two-way sync?
keep_after_copy
boolean
Keep files after copying?
delete_empty_folders
boolean
Delete empty folders after sync?
disabled
boolean
Is this sync disabled?
trigger
string
Trigger type: daily, custom_schedule, or manual
Possible values: daily, custom_schedule, manual
trigger_file
string
Some MFT services request an empty file (known as a trigger file) to signal the sync is complete and they can begin further processing. If trigger_file is set, a zero-byte file will be sent at the end of the sync.
always_write_trigger_file
boolean
If true, the trigger file will be sent at the end of a successful sync even when no files were transferred.
include_patterns
array(string)
Array of glob patterns to include
exclude_patterns
array(string)
Array of glob patterns to exclude
created_at
date-time
When this sync was created
updated_at
date-time
When this sync was last updated
sync_interval_minutes
int64
Frequency in minutes between syncs. If set, this value must be greater than or equal to the remote_sync_interval value for the site's plan. If left blank, the plan's remote_sync_interval will be used. This setting is only used if trigger is empty.
interval
string
If trigger is daily, this specifies how often to run this sync. One of: day, week, week_end, month, month_end, quarter, quarter_end, year, year_end
recurring_day
int64
If trigger type is daily, this specifies a day number to run in one of the supported intervals: week, month, quarter, year.
recurring_days
array(int64)
If trigger type is daily, this specifies one or more day numbers to run in one of the supported intervals: week, month, quarter, year.
schedule_id
int64
If trigger is custom_schedule, the reusable Schedule used instead of the sync's schedule fields.
schedule_days_of_week
array(int64)
If trigger is custom_schedule, Custom schedule description for when the sync should be run. 0-based days of the week. 0 is Sunday, 1 is Monday, etc.
schedule_times_of_day
array(string)
Times of day to run in HH:MM format. For custom_schedule, run at these times on specified days of week. For daily, run at these times on the scheduled interval date.
schedule_time_zone
string
Time zone for the schedule. If not set, times are interpreted as UTC.
holiday_region
string
Skip the sync if there is a formal, observed holiday for this region.
latest_sync_run
SyncRun
The latest run of this sync