Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/supervisor-api/info.proto
2492 views
// 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";

option go_package = "github.com/gitpod-io/gitpod/supervisor/api";
option java_package = "io.gitpod.supervisor.api";

service InfoService {
    rpc WorkspaceInfo(WorkspaceInfoRequest) returns (WorkspaceInfoResponse) {
        option (google.api.http) = {
            get: "/v1/info/workspace"
        };
    }
}

message WorkspaceInfoRequest {}

message WorkspaceInfoResponse {
    message GitpodAPI {
        // endpoint is the websocket URL on which the token-accessible Gitpod API is served on
        string endpoint = 1;
        // host is the host of the endpoint. Use this host to ask supervisor a token.
        string host = 2;
    }

    // workspace_id is the workspace ID of this workspace.
    string workspace_id = 1;

    // instance_id is the instance ID of this workspace.
    string instance_id = 2;

    // checkout_location is the path where we initialized the workspace content
    string checkout_location = 3;

    // workspace_location is the location of the IDE workspace
    oneof workspace_location {
        // file means the workspace root is a file describing the workspace layout.
        string workspace_location_file = 4;
        // folder means the workspace root is a simple folder.
        string workspace_location_folder = 5;
    };

    // user_home is the path to the user's home.
    string user_home = 6;

    // GitpodAPI provides information to reach the Gitpod server API.
    GitpodAPI gitpod_api = 7;

    // gitpod_host provides Gitpod host URL.
    string gitpod_host = 8;

    // workspace_context_url is an URL for which the workspace was created.
    string workspace_context_url = 9;

    message Repository {
        // owner is the repository owner
        string owner = 1;
        // name is the repository name
        string name = 2;
    }
    // repository is a repository from which this workspace was created
    Repository repository = 10;

    // workspace_cluster_host provides the cluster host under which this workspace is served, e.g. ws-eu11.gitpod.io
    string workspace_cluster_host = 11;

    // workspace_url is an URL for which the workspace is accessed.
    string workspace_url = 12;

    // ide_alias is an alias of IDE to be run. Possible values: "code", "code-latest", "theia"
    string ide_alias = 13;

    // ide_port is the port on which the IDE is to be run
    uint32 ide_port = 14;

    message WorkspaceClass {
        // id is the id of the workspace class
        string id = 1;

        // display_name is the display_name of the workspace class
        string display_name = 2;

        // description is the description of the workspace class
        string description = 3;
    }
    // workspace_class denotes the class of the workspace
    WorkspaceClass workspace_class = 15;

    // owner_id is user id who owns the workspace
    string owner_id = 16;

    // debug_workspace_type indicates whether it is a regular or prebuild debug workspace
    DebugWorkspaceType debug_workspace_type = 17;

    // configcat_enabled controls whether configcat is enabled
    bool configcat_enabled = 18;

    // DEPRECATED default_workspace_image is the default image of the workspace
    reserved 19;
}

enum DebugWorkspaceType {
  noDebug = 0;
  regular = 1;
  prebuild = 2;
}