github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/forwarding/session.proto (about) 1 syntax = "proto3"; 2 3 package forwarding; 4 5 option go_package = "github.com/mutagen-io/mutagen/pkg/forwarding"; 6 7 import "google/protobuf/timestamp.proto"; 8 9 import "forwarding/configuration.proto"; 10 import "forwarding/version.proto"; 11 import "url/url.proto"; 12 13 // Session represents a forwarding session configuration and persistent state. 14 // It is mutable within the context of the daemon, so it should be accessed and 15 // modified in a synchronized fashion. Outside of the daemon (e.g. when returned 16 // via the API), it should be considered immutable. 17 message Session { 18 // The identifier, version, creationTime, and creatingVersion* fields are 19 // considered the "header" fields for all session versions. A message 20 // composed purely of these fields is guaranteed to be compatible with all 21 // future session versions. This can be used to dispatch session decoding to 22 // more specific message structures once multiple session version formats 23 // are implemented. 24 25 // Identifier is the (unique) session identifier. It is static. It cannot be 26 // empty. 27 string identifier = 1; 28 // Version is the session version. It is static. 29 Version version = 2; 30 // CreationTime is the creation time of the session. It is static. It cannot 31 // be nil. 32 google.protobuf.Timestamp creationTime = 3; 33 // CreatingVersionMajor is the major version component of the version of 34 // Mutagen which created the session. It is static. 35 uint32 creatingVersionMajor = 4; 36 // CreatingVersionMinor is the minor version component of the version of 37 // Mutagen which created the session. It is static. 38 uint32 creatingVersionMinor = 5; 39 // CreatingVersionPatch is the patch version component of the version of 40 // Mutagen which created the session. It is static. 41 uint32 creatingVersionPatch = 6; 42 43 // The remaining fields are those currently used by session version 1. 44 45 // Source is the source endpoint URL. It is static. It cannot be nil. 46 url.URL source = 7; 47 // Destination is the destination endpoint URL. It is static. It cannot be 48 // nil. 49 url.URL destination = 8; 50 // Configuration is the flattened session configuration. It is static. It 51 // cannot be nil. 52 Configuration configuration = 9; 53 // ConfigurationSource are the source-specific session configuration 54 // overrides. It is static. 55 Configuration configurationSource = 10; 56 // ConfigurationDestination are the destination-specific session 57 // configuration overrides. It is static. 58 Configuration configurationDestination = 11; 59 // Name is a user-friendly name for the session. It may be empty and is not 60 // guaranteed to be unique across all sessions. It is only used as a simpler 61 // handle for specifying sessions. It is static. 62 string name = 12; 63 // Labels are the session labels. They are static. 64 map<string, string> labels = 13; 65 // Paused indicates whether or not the session is marked as paused. 66 bool paused = 14; 67 }