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  }