2023-10-06 14:52:15 +03:00

76 lines
2.3 KiB
Protocol Buffer

// Copyright (c) 2020 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";
import "status.proto";
import "info.proto";
option go_package = "github.com/gitpod-io/gitpod/supervisor/api";
option java_package = "io.gitpod.supervisor.api";
// ControlService provides workspace-facing, misc control related services
service ControlService {
// ExposePort exposes a port
rpc ExposePort(ExposePortRequest) returns (ExposePortResponse) {}
// CreateSSHKeyPair Create a pair of SSH Keys and put them in ~/.ssh/authorized_keys, this will only be generated once in the entire workspace lifecycle
rpc CreateSSHKeyPair(CreateSSHKeyPairRequest) returns (CreateSSHKeyPairResponse) {
option (google.api.http) = {
get: "/v1/ssh_keys/create"
};
}
// CreateDebugEnv creates a debug workspace envs
rpc CreateDebugEnv(CreateDebugEnvRequest) returns (CreateDebugEnvResponse) {}
}
message ExposePortRequest {
// local port
uint32 port = 1;
// external port if missing the the same as port
reserved 2;
}
message ExposePortResponse {}
message CreateSSHKeyPairRequest {}
message CreateSSHKeyPairResponse {
// Return privateKey for ws-proxy or web socket tunnels
string private_key = 1;
// Return hostKey used by client to verify fingerprint
SSHPublicKey host_key = 2;
// Return userName used by client to authenticate
string user_name = 3;
}
message SSHPublicKey {
string type = 1;
string value = 2;
}
message CreateDebugEnvRequest {
// workspace_type indicates whether it is a regular or prebuild workspace
DebugWorkspaceType workspace_type = 1;
// content_source indicates where the workspace content came from
ContentSource content_source = 2;
// workspace_url is an URL for which the workspace is accessed.
string workspace_url = 3;
// JSON serialized tasks to run
string tasks = 4;
// checkout_location is the path where we initialized the workspace content
string checkout_location = 5;
// workspace_location is the location of the IDE workspace
string workspace_location = 6;
// logLevel to use in a debug workspace.
string logLevel = 7;
}
message CreateDebugEnvResponse {
repeated string envs = 1;
}