github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/url/url.proto (about) 1 syntax = "proto3"; 2 3 package url; 4 5 option go_package = "github.com/mutagen-io/mutagen/pkg/url"; 6 7 // Kind indicates the kind of a URL. 8 enum Kind { 9 // Synchronization indicates a synchronization URL. 10 Synchronization = 0; 11 // Forwarding indicates a forwarding URL. 12 Forwarding = 1; 13 } 14 15 // Protocol indicates a location type. 16 enum Protocol { 17 // Local indicates that the resource is on the local system. 18 Local = 0; 19 // SSH indicates that the resource is accessible via SSH. 20 SSH = 1; 21 22 // Enumeration value 2 is reserved for custom protocols. 23 24 // Enumeration value 3 was previously used for the mutagen.io-based tunnel 25 // protocol. This protocol was experimental and only available as part of 26 // the v0.11.x release series. It should not be re-used. 27 28 // Enumeration values 4-10 are reserved for core protocols. 29 30 // Docker indicates that the resource is inside a Docker container. 31 Docker = 11; 32 } 33 34 // URL represents a pointer to a resource. It should be considered immutable. 35 message URL { 36 // Kind indicates the URL kind. 37 // NOTE: This field number is out of order for historical reasons. 38 Kind kind = 7; 39 // Protocol indicates a location type. 40 Protocol protocol = 1; 41 // User is the user under which a resource should be accessed. 42 string user = 2; 43 // Host is protocol-specific, but generally indicates the location of the 44 // remote. 45 string host = 3; 46 // Port indicates a TCP port via which to access the remote location, if 47 // applicable. 48 uint32 port = 4; 49 // Path indicates the path of a resource. 50 string path = 5; 51 // Environment contains captured environment variable information. It is not 52 // a required component and its contents and their behavior depend on the 53 // transport implementation. 54 map<string, string> environment = 6; 55 56 // Field 7 is already used above for the kind field. It is out of order for 57 // historical reasons. 58 59 // Parameters are internal transport parameters. These are set for URLs 60 // generated internally that require additional metadata. Parameters are not 61 // required and their behavior is dependent on the transport implementation. 62 map<string, string> parameters = 8; 63 }