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.

Resource Schema

Optional

PropertyDescription
name
String
Name for this sync job
description
String
Description for this sync job
workspace_id
Int64
Workspace ID this sync belongs to
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)
keep_after_copy
Bool
Keep files after copying?
delete_empty_folders
Bool
Delete empty folders after sync?
disabled
Bool
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
Bool
If true, the trigger file will be sent at the end of a successful sync even when no files were transferred.
include_patterns
List
Array of glob patterns to include
exclude_patterns
List
Array of glob patterns to exclude
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
List
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
List
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
List
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.

Read Only

PropertyDescription
id
Int64
Sync ID
site_id
Int64
Site ID this sync belongs to
user_id
Int64
User who created or owns this sync
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
Bool
Is this a two-way sync?
created_at
String
When this sync was created
updated_at
String
When this sync was last updated
latest_sync_run
String
The latest run of this sync

Example Resource

resource "files_sync" "example_sync" {
  delete_empty_folders      = true
  description               = "example"
  dest_path                 = "example"
  dest_remote_server_id     = 1
  disabled                  = true
  exclude_patterns          = ["example"]
  holiday_region            = "us_dc"
  include_patterns          = ["example"]
  interval                  = "week"
  keep_after_copy           = true
  name                      = "example"
  recurring_day             = 25
  recurring_days            = [1, 15]
  schedule_id               = 1
  schedule_days_of_week     = [0, 2, 4]
  schedule_time_zone        = "Eastern Time (US & Canada)"
  schedule_times_of_day     = ["06:30", "14:30"]
  src_path                  = "example"
  src_remote_server_id      = 1
  sync_interval_minutes     = 1
  trigger                   = "example"
  trigger_file              = "example"
  always_write_trigger_file = true
  workspace_id              = 1
}

Resource Import

This Resource supports importing using the following syntax:

Example Import Command

# Syncs can be imported by specifying the id.
terraform import files_sync.example_sync 1

Data Source Schema

Required

PropertyDescription
id
Int64
Sync ID

Read Only

PropertyDescription
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
Bool
Is this a two-way sync?
keep_after_copy
Bool
Keep files after copying?
delete_empty_folders
Bool
Delete empty folders after sync?
disabled
Bool
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
Bool
If true, the trigger file will be sent at the end of a successful sync even when no files were transferred.
include_patterns
List
Array of glob patterns to include
exclude_patterns
List
Array of glob patterns to exclude
created_at
String
When this sync was created
updated_at
String
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
List
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
List
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
List
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
String
The latest run of this sync

Example Data Source

data "files_sync" "example_sync" {
  id = 1
}