Get desktop application:
View/edit binary Protocol Buffers messages
Synchronization manages the lifecycle of synchronization sessions.
Create creates a new session.
CreateRequest encodes a request for session creation.
Prompter is the prompter identifier to use for creating sessions.
Specification is the creation specification.
CreateResponse encodes a session creation response.
Session is the resulting session identifier.
List returns metadata for existing sessions.
ListRequest encodes a request for session metadata.
Selection is the session selection criteria.
PreviousStateIndex is the previously seen state index. 0 may be provided to force an immediate state listing.
ListResponse encodes session metadata.
StateIndex is the state index associated with the session metadata.
SessionStates are the session metadata states.
Flush flushes sessions.
FlushRequest encodes a request to flush sessions.
Prompter is the prompter to use for status message updates.
Selection is the session selection criteria.
SkipWait indicates whether or not the operation should avoid blocking.
FlushResponse indicates completion of flush operation(s).
(message has no fields)
Pause pauses sessions.
PauseRequest encodes a request to pause sessions.
Prompter is the prompter to use for status message updates.
Selection is the session selection criteria.
PauseResponse indicates completion of pause operation(s).
(message has no fields)
Resume resumes paused or disconnected sessions.
ResumeRequest encodes a request to resume sessions.
Prompter is the prompter identifier to use for resuming sessions.
Selection is the session selection criteria.
ResumeResponse indicates completion of resume operation(s).
(message has no fields)
Reset resets sessions' histories.
ResetRequest encodes a request to reset sessions.
Prompter is the prompter identifier to use for resetting sessions.
Selection is the session selection criteria.
ResetResponse indicates completion of reset operation(s).
(message has no fields)
Terminate terminates sessions.
TerminateRequest encodes a request to terminate sessions.
Prompter is the prompter to use for status message updates.
Selection is the session selection criteria.
TerminateResponse indicates completion of termination operation(s).
(message has no fields)
Configuration encodes session configuration parameters. It is used for create commands to specify configuration options, for loading global configuration options, and for storing a merged configuration inside sessions. It should be considered immutable.
Synchronization parameters (fields 11-20). NOTE: These run from field indices 11-20 (rather than 1-10, which are reserved for symbolic link configuration parameters) due to the historical order in which these fields were added. Field 17 (the digest algorithm) is also listed out of its chronological order of addition due to its relative importance in the configuration.
Used in:
, ,SynchronizationMode specifies the synchronization mode that should be used in synchronization.
HashingAlgorithm specifies the content hashing algorithm used to track content and perform differential transfers.
MaximumEntryCount specifies the maximum number of filesystem entries that endpoints will tolerate managing. A zero value indicates no limit.
MaximumStagingFileSize is the maximum (individual) file size that endpoints will stage. A zero value indicates no limit.
ProbeMode specifies the filesystem probing mode.
ScanMode specifies the synchronization root scanning mode.
StageMode specifies the file staging mode.
SymbolicLinkMode specifies the symbolic link mode.
WatchMode specifies the filesystem watching mode.
WatchPollingInterval specifies the interval (in seconds) for poll-based file monitoring. A value of 0 specifies that the default interval should be used.
IgnoreSyntax specifies the syntax and semantics to use for ignores. NOTE: This field is out of order due to the historical order in which it was added.
DefaultIgnores specifies the ignore patterns brought in from the global configuration. DEPRECATED: This field is no longer used when loading from global configuration. Instead, ignores provided by global configuration are simply merged into the ignore list of the main configuration. However, older sessions still use this field.
Ignores specifies the ignore patterns brought in from the create request.
IgnoreVCSMode specifies the VCS ignore mode that should be used in synchronization.
PermissionsMode species the manner in which permissions should be propagated between endpoints.
DefaultFileMode specifies the default permission mode to use for new files in "portable" permission propagation mode.
DefaultDirectoryMode specifies the default permission mode to use for new files in "portable" permission propagation mode.
DefaultOwner specifies the default owner identifier to use when setting ownership of new files and directories in "portable" permission propagation mode.
DefaultGroup specifies the default group identifier to use when setting ownership of new files and directories in "portable" permission propagation mode.
CompressionAlgorithm specifies the compression algorithm to use when communicating with the endpoint. This only applies to remote endpoints.
CreationSpecification contains the metadata required for a new session.
Used in:
Alpha is the alpha endpoint URL for the session.
Beta is the beta endpoint URL for the session.
Configuration is the base session configuration. It is the result of merging the global configuration (unless disabled), any manually specified configuration file, and any command line configuration parameters.
ConfigurationAlpha is the alpha-specific session configuration. It is determined based on command line configuration parameters.
ConfigurationBeta is the beta-specific session configuration. It is determined based on command line configuration parameters.
Name is the name for the session object.
Labels are the labels for the session object.
Paused indicates whether or not to create the session pre-paused.
EndpointState encodes the current state of a synchronization endpoint. It is mutable within the context of the daemon, so it should be accessed and modified in a synchronized fashion. Outside of the daemon (e.g. when returned via the API), it should be considered immutable.
Used in:
Connected indicates whether or not the controller is currently connected to the endpoint.
Scanned indicates whether or not at least one scan has been performed on the endpoint.
Directories is the number of synchronizable directory entries contained in the last snapshot from the endpoint.
Files is the number of synchronizable file entries contained in the last snapshot from the endpoint.
SymbolicLinks is the number of synchronizable symbolic link entries contained in the last snapshot from the endpoint.
TotalFileSize is the total size of all synchronizable files referenced by the last snapshot from the endpoint.
ScanProblems is the list of non-terminal problems encountered during the last scanning operation on the endpoint. This list may be a truncated version of the full list if too many problems are encountered to report via the API, in which case ExcludedScanProblems will be non-zero.
ExcludedScanProblems is the number of problems that have been excluded from ScanProblems due to truncation. This value can be non-zero only if ScanProblems is non-empty.
TransitionProblems is the list of non-terminal problems encountered during the last transition operation on the endpoint. This list may be a truncated version of the full list if too many problems are encountered to report via the API, in which case ExcludedTransitionProblems will be non-zero.
ExcludedTransitionProblems is the number of problems that have been excluded from TransitionProblems due to truncation. This value can be non-zero only if TransitionProblems is non-empty.
StagingProgress is the rsync staging progress. It is non-nil if and only if the endpoint is currently staging files.
ScanMode specifies the mode for synchronization root scanning.
Used in:
ScanMode_ScanModeDefault represents an unspecified scan mode. It should be converted to one of the following values based on the desired default behavior.
ScanMode_ScanModeFull specifies that full scans should be performed on each synchronization cycle.
ScanMode_ScanModeAccelerated specifies that scans should attempt to use watch-based acceleration.
Session represents a synchronization session configuration and persistent state. It is mutable within the context of the daemon, so it should be accessed and modified in a synchronized fashion. Outside of the daemon (e.g. when returned via the API), it should be considered immutable.
The identifier, version, creationTime, and creatingVersion* fields are considered the "header" fields for all session versions. A message composed purely of these fields is guaranteed to be compatible with all future session versions. This can be used to dispatch session decoding to more specific message structures once multiple session version formats are implemented.
Used in:
Identifier is the (unique) session identifier. It is static. It cannot be empty.
Version is the session version. It is static.
CreationTime is the creation time of the session. It is static. It cannot be nil.
CreatingVersionMajor is the major version component of the version of Mutagen which created the session. It is static.
CreatingVersionMinor is the minor version component of the version of Mutagen which created the session. It is static.
CreatingVersionPatch is the patch version component of the version of Mutagen which created the session. It is static.
Alpha is the alpha endpoint URL. It is static. It cannot be nil.
Beta is the beta endpoint URL. It is static. It cannot be nil.
Configuration is the flattened session configuration. It is static. It cannot be nil.
ConfigurationAlpha are the alpha-specific session configuration overrides. It is static. It may be nil for existing sessions loaded from disk, but it is not considered valid unless non-nil, so it should be replaced with an empty default value in-memory if a nil on-disk value is detected.
ConfigurationBeta are the beta-specific session configuration overrides. It is static. It may be nil for existing sessions loaded from disk, but it is not considered valid unless non-nil, so it should be replaced with an empty default value in-memory if a nil on-disk value is detected.
Name is a user-friendly name for the session. It may be empty and is not guaranteed to be unique across all sessions. It is only used as a simpler handle for specifying sessions. It is static.
Labels are the session labels. They are static.
Paused indicates whether or not the session is marked as paused.
NOTE: Fields 11, 12, 13, and 14 are used above. They are out of order for historical reasons.
StageMode specifies the mode for file staging.
Used in:
StageMode_StageModeDefault represents an unspecified staging mode. It should be converted to one of the following values based on the desired default behavior.
StageMode_StageModeMutagen specifies that files should be staged in the Mutagen data directory.
StageMode_StageModeNeighboring specifies that files should be staged in a directory which neighbors the synchronization root.
StageMode_StageModeInternal specified that files should be staged in a directory contained within a synchronization root. This mode will only function if the synchronization root already exists.
State encodes the current state of a synchronization session. It is mutable within the context of the daemon, so it should be accessed and modified in a synchronized fashion. Outside of the daemon (e.g. when returned via the API), it should be considered immutable.
Used in:
Session is the session metadata. If the session is paused, then the remainder of the fields in this structure should be ignored.
Status is the session status.
LastError is the last error to occur during synchronization. It is cleared after a successful synchronization cycle.
SuccessfulCycles is the number of successful synchronization cycles to occur since successfully connecting to the endpoints.
Conflicts are the content conflicts identified during reconciliation. This list may be a truncated version of the full list if too many conflicts are encountered to report via the API, in which case ExcludedConflicts will be non-zero.
ExcludedConflicts is the number of conflicts that have been excluded from Conflicts due to truncation. This value can be non-zero only if conflicts is non-empty.
AlphaState encodes the state of the alpha endpoint. It is always non-nil.
BetaState encodes the state of the beta endpoint. It is always non-nil.
Status encodes the status of a synchronization session.
Used in:
Status_Disconnected indicates that the session is unpaused but not currently connected or connecting to either endpoint.
Status_HaltedOnRootEmptied indicates that the session is halted due to the root emptying safety check.
Status_HaltedOnRootDeletion indicates that the session is halted due to the root deletion safety check.
Status_HaltedOnRootTypeChange indicates that the session is halted due to the root type change safety check.
Status_ConnectingAlpha indicates that the session is attempting to connect to the alpha endpoint.
Status_ConnectingBeta indicates that the session is attempting to connect to the beta endpoint.
Status_Watching indicates that the session is watching for filesystem changes.
Status_Scanning indicates that the session is scanning the filesystem on each endpoint.
Status_WaitingForRescan indicates that the session is waiting to retry scanning after an error during the previous scanning operation.
Status_Reconciling indicates that the session is performing reconciliation.
Status_StagingAlpha indicates that the session is staging files on alpha.
Status_StagingBeta indicates that the session is staging files on beta.
Status_Transitioning indicates that the session is performing transition operations on each endpoint.
Status_Saving indicates that the session is recording synchronization history to disk.
Version specifies a session version, providing default behavior that can vary without affecting existing sessions.
Used in:
,Invalid is the default session version and represents an unspecfied and invalid version. It is used as a sanity check to ensure that version is set for a session.
Version1 represents session version 1.
WatchMode specifies the mode for filesystem watching.
Used in:
WatchMode_WatchModeDefault represents an unspecified watch mode. It should be converted to one of the following values based on the desired default behavior.
WatchMode_WatchModePortable specifies that native recursive watching should be used to monitor paths on systems that support it if those paths fall under the home directory. In these cases, a watch on the entire home directory is established and filtered for events pertaining to the specified path. On all other systems and for all other paths, poll-based watching is used.
WatchMode_WatchModeForcePoll specifies that only poll-based watching should be used.
WatchMode_WatchModeNoWatch specifies that no watching should be used (i.e. no events should be generated).