mirror of
https://github.com/gitpod-io/gitpod.git
synced 2025-12-08 17:36:30 +00:00
81 lines
2.2 KiB
Protocol Buffer
81 lines
2.2 KiB
Protocol Buffer
// Copyright (c) 2021 Gitpod GmbH. All rights reserved.
|
|
// Licensed under the GNU Affero General Public License (AGPL).
|
|
// See License.AGPL.txt in the project root for license information.
|
|
|
|
syntax = "proto3";
|
|
|
|
package supervisor;
|
|
|
|
import "google/api/annotations.proto";
|
|
|
|
option go_package = "github.com/gitpod-io/gitpod/supervisor/api";
|
|
option java_package = "io.gitpod.supervisor.api";
|
|
|
|
service PortService {
|
|
// Tunnel notifies clients to install listeners on remote machines.
|
|
// After that such clients should call EstablishTunnel to forward incoming connections.
|
|
rpc Tunnel(TunnelPortRequest) returns (TunnelPortResponse) {
|
|
option (google.api.http) = {
|
|
post : "/v1/port/tunnel/{port}"
|
|
body : "*"
|
|
};
|
|
}
|
|
|
|
// CloseTunnel notifies clients to remove listeners on remote machines.
|
|
rpc CloseTunnel(CloseTunnelRequest) returns (CloseTunnelResponse) {
|
|
option (google.api.http) = {
|
|
delete : "/v1/port/tunnel/{port}"
|
|
};
|
|
}
|
|
|
|
// EstablishTunnel actually establishes the tunnel for an incoming connection on a remote machine.
|
|
rpc EstablishTunnel(stream EstablishTunnelRequest)
|
|
returns (stream EstablishTunnelResponse);
|
|
|
|
// AutoTunnel controls enablement of auto tunneling
|
|
rpc AutoTunnel(AutoTunnelRequest) returns (AutoTunnelResponse) {
|
|
option (google.api.http) = {
|
|
post : "/v1/port/tunnel/auto/{enabled}"
|
|
};
|
|
}
|
|
|
|
// RetryAutoExpose retries auto exposing the give port
|
|
rpc RetryAutoExpose(RetryAutoExposeRequest) returns (RetryAutoExposeResponse) {
|
|
option (google.api.http) = {
|
|
post : "/v1/port/ports/exposed/retry/{port}"
|
|
};
|
|
}
|
|
}
|
|
enum TunnelVisiblity {
|
|
none = 0;
|
|
host = 1;
|
|
network = 2;
|
|
}
|
|
message TunnelPortRequest {
|
|
uint32 port = 1;
|
|
uint32 target_port = 2;
|
|
TunnelVisiblity visibility = 3;
|
|
string client_id = 4;
|
|
}
|
|
message TunnelPortResponse {}
|
|
|
|
message CloseTunnelRequest { uint32 port = 1; }
|
|
message CloseTunnelResponse {}
|
|
|
|
message EstablishTunnelRequest {
|
|
oneof output {
|
|
TunnelPortRequest desc = 1;
|
|
bytes data = 2;
|
|
};
|
|
}
|
|
|
|
message EstablishTunnelResponse { bytes data = 1; }
|
|
|
|
message AutoTunnelRequest { bool enabled = 1; }
|
|
message AutoTunnelResponse {}
|
|
|
|
message RetryAutoExposeRequest {
|
|
uint32 port = 1;
|
|
}
|
|
message RetryAutoExposeResponse {}
|