2022-06-30 21:26:38 +05:30

4463 lines
163 KiB
Go

// Copyright (c) 2022 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.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.0
// protoc v3.20.1
// source: core.proto
package api
import (
api "github.com/gitpod-io/gitpod/content-service/api"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type StopWorkspacePolicy int32
const (
StopWorkspacePolicy_NORMALLY StopWorkspacePolicy = 0
StopWorkspacePolicy_IMMEDIATELY StopWorkspacePolicy = 1
)
// Enum value maps for StopWorkspacePolicy.
var (
StopWorkspacePolicy_name = map[int32]string{
0: "NORMALLY",
1: "IMMEDIATELY",
}
StopWorkspacePolicy_value = map[string]int32{
"NORMALLY": 0,
"IMMEDIATELY": 1,
}
)
func (x StopWorkspacePolicy) Enum() *StopWorkspacePolicy {
p := new(StopWorkspacePolicy)
*p = x
return p
}
func (x StopWorkspacePolicy) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StopWorkspacePolicy) Descriptor() protoreflect.EnumDescriptor {
return file_core_proto_enumTypes[0].Descriptor()
}
func (StopWorkspacePolicy) Type() protoreflect.EnumType {
return &file_core_proto_enumTypes[0]
}
func (x StopWorkspacePolicy) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StopWorkspacePolicy.Descriptor instead.
func (StopWorkspacePolicy) EnumDescriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{0}
}
type AdmissionLevel int32
const (
// WORKSPACE_ADMIT_OWNER_ONLY means the workspace can only be accessed using the owner token
AdmissionLevel_ADMIT_OWNER_ONLY AdmissionLevel = 0
// WORKSPACE_ADMIT_EVERYONE means the workspace (including ports) can be accessed by everyone.
AdmissionLevel_ADMIT_EVERYONE AdmissionLevel = 1
)
// Enum value maps for AdmissionLevel.
var (
AdmissionLevel_name = map[int32]string{
0: "ADMIT_OWNER_ONLY",
1: "ADMIT_EVERYONE",
}
AdmissionLevel_value = map[string]int32{
"ADMIT_OWNER_ONLY": 0,
"ADMIT_EVERYONE": 1,
}
)
func (x AdmissionLevel) Enum() *AdmissionLevel {
p := new(AdmissionLevel)
*p = x
return p
}
func (x AdmissionLevel) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AdmissionLevel) Descriptor() protoreflect.EnumDescriptor {
return file_core_proto_enumTypes[1].Descriptor()
}
func (AdmissionLevel) Type() protoreflect.EnumType {
return &file_core_proto_enumTypes[1]
}
func (x AdmissionLevel) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use AdmissionLevel.Descriptor instead.
func (AdmissionLevel) EnumDescriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{1}
}
// PortVisibility defines who may access a workspace port which is guarded by an authentication in the proxy
type PortVisibility int32
const (
// private (default) means the port is accessible by the workspace owner only, unless the workspace's admission is
// set to everyone.
PortVisibility_PORT_VISIBILITY_PRIVATE PortVisibility = 0
// public means the port is accessible by everybody using the workspace port URL
PortVisibility_PORT_VISIBILITY_PUBLIC PortVisibility = 1
)
// Enum value maps for PortVisibility.
var (
PortVisibility_name = map[int32]string{
0: "PORT_VISIBILITY_PRIVATE",
1: "PORT_VISIBILITY_PUBLIC",
}
PortVisibility_value = map[string]int32{
"PORT_VISIBILITY_PRIVATE": 0,
"PORT_VISIBILITY_PUBLIC": 1,
}
)
func (x PortVisibility) Enum() *PortVisibility {
p := new(PortVisibility)
*p = x
return p
}
func (x PortVisibility) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (PortVisibility) Descriptor() protoreflect.EnumDescriptor {
return file_core_proto_enumTypes[2].Descriptor()
}
func (PortVisibility) Type() protoreflect.EnumType {
return &file_core_proto_enumTypes[2]
}
func (x PortVisibility) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use PortVisibility.Descriptor instead.
func (PortVisibility) EnumDescriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{2}
}
// WorkspaceConditionBool is a trinary bool: true/false/empty
type WorkspaceConditionBool int32
const (
WorkspaceConditionBool_FALSE WorkspaceConditionBool = 0
WorkspaceConditionBool_TRUE WorkspaceConditionBool = 1
WorkspaceConditionBool_EMPTY WorkspaceConditionBool = 2
)
// Enum value maps for WorkspaceConditionBool.
var (
WorkspaceConditionBool_name = map[int32]string{
0: "FALSE",
1: "TRUE",
2: "EMPTY",
}
WorkspaceConditionBool_value = map[string]int32{
"FALSE": 0,
"TRUE": 1,
"EMPTY": 2,
}
)
func (x WorkspaceConditionBool) Enum() *WorkspaceConditionBool {
p := new(WorkspaceConditionBool)
*p = x
return p
}
func (x WorkspaceConditionBool) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (WorkspaceConditionBool) Descriptor() protoreflect.EnumDescriptor {
return file_core_proto_enumTypes[3].Descriptor()
}
func (WorkspaceConditionBool) Type() protoreflect.EnumType {
return &file_core_proto_enumTypes[3]
}
func (x WorkspaceConditionBool) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use WorkspaceConditionBool.Descriptor instead.
func (WorkspaceConditionBool) EnumDescriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{3}
}
// WorkspacePhase is a simple, high-level summary of where the workspace is in its lifecycle.
// The phase is not intended to be a comprehensive rollup of observations of the workspace state,
// nor is it intended to be a comprehensive state machine.
// (based on https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)
type WorkspacePhase int32
const (
// Unknown indicates an issue within the workspace manager in that it cannot determine the actual phase of
// a workspace. This phase is usually accompanied by an error.
WorkspacePhase_UNKNOWN WorkspacePhase = 0
// Pending means the workspace does not yet consume resources in the cluster, but rather is looking for
// some space within the cluster. If for example the cluster needs to scale up to accomodate the
// workspace, the workspace will be in Pending state until that happened.
WorkspacePhase_PENDING WorkspacePhase = 1
// Creating means the workspace is currently being created. That includes downloading the images required
// to run the workspace over the network. The time spent in this phase varies widely and depends on the current
// network speed, image size and cache states.
WorkspacePhase_CREATING WorkspacePhase = 2
// Initializing is the phase in which the workspace is executing the appropriate workspace initializer (e.g. Git
// clone or backup download). After this phase one can expect the workspace to either be Running or Failed.
WorkspacePhase_INITIALIZING WorkspacePhase = 3
// Running means the workspace is able to actively perform work, either by serving a user through Theia,
// or as a headless workspace.
WorkspacePhase_RUNNING WorkspacePhase = 4
// Interrupted is an exceptional state where the container should be running but is temporarily unavailable.
// When in this state, we expect it to become running or stopping anytime soon.
WorkspacePhase_INTERRUPTED WorkspacePhase = 7
// Stopping means that the workspace is currently shutting down. It could go to stopped every moment.
WorkspacePhase_STOPPING WorkspacePhase = 5
// Stopped means the workspace ended regularly because it was shut down.
WorkspacePhase_STOPPED WorkspacePhase = 6
)
// Enum value maps for WorkspacePhase.
var (
WorkspacePhase_name = map[int32]string{
0: "UNKNOWN",
1: "PENDING",
2: "CREATING",
3: "INITIALIZING",
4: "RUNNING",
7: "INTERRUPTED",
5: "STOPPING",
6: "STOPPED",
}
WorkspacePhase_value = map[string]int32{
"UNKNOWN": 0,
"PENDING": 1,
"CREATING": 2,
"INITIALIZING": 3,
"RUNNING": 4,
"INTERRUPTED": 7,
"STOPPING": 5,
"STOPPED": 6,
}
)
func (x WorkspacePhase) Enum() *WorkspacePhase {
p := new(WorkspacePhase)
*p = x
return p
}
func (x WorkspacePhase) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (WorkspacePhase) Descriptor() protoreflect.EnumDescriptor {
return file_core_proto_enumTypes[4].Descriptor()
}
func (WorkspacePhase) Type() protoreflect.EnumType {
return &file_core_proto_enumTypes[4]
}
func (x WorkspacePhase) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use WorkspacePhase.Descriptor instead.
func (WorkspacePhase) EnumDescriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{4}
}
// WorkspaceFeatureFlag enable non-standard behaviour in workspaces
type WorkspaceFeatureFlag int32
const (
// NOOP feature flag is just here because I don't want privileged to be 0
WorkspaceFeatureFlag_NOOP WorkspaceFeatureFlag = 0
// FullWorkspaceBackup does away with the /workspace host mount. All workspace content lives
// in the ephemeral container storage. We initlialize workspaces using content layer served by
// the registry facade and back them up using regular "hardlink backups".
WorkspaceFeatureFlag_FULL_WORKSPACE_BACKUP WorkspaceFeatureFlag = 4
// FixedResources ensures this workspace is not subject to ws-daemon's dynamic resource limits.
// In this sence it's akin to "guaranteed" (as compared to burstable) resources for workspaces.
WorkspaceFeatureFlag_FIXED_RESOURCES WorkspaceFeatureFlag = 5
// PERSISTENT_VOLUME_CLAIM feature flag for enabling PVC\Snapshot feature support
WorkspaceFeatureFlag_PERSISTENT_VOLUME_CLAIM WorkspaceFeatureFlag = 7
)
// Enum value maps for WorkspaceFeatureFlag.
var (
WorkspaceFeatureFlag_name = map[int32]string{
0: "NOOP",
4: "FULL_WORKSPACE_BACKUP",
5: "FIXED_RESOURCES",
7: "PERSISTENT_VOLUME_CLAIM",
}
WorkspaceFeatureFlag_value = map[string]int32{
"NOOP": 0,
"FULL_WORKSPACE_BACKUP": 4,
"FIXED_RESOURCES": 5,
"PERSISTENT_VOLUME_CLAIM": 7,
}
)
func (x WorkspaceFeatureFlag) Enum() *WorkspaceFeatureFlag {
p := new(WorkspaceFeatureFlag)
*p = x
return p
}
func (x WorkspaceFeatureFlag) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (WorkspaceFeatureFlag) Descriptor() protoreflect.EnumDescriptor {
return file_core_proto_enumTypes[5].Descriptor()
}
func (WorkspaceFeatureFlag) Type() protoreflect.EnumType {
return &file_core_proto_enumTypes[5]
}
func (x WorkspaceFeatureFlag) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use WorkspaceFeatureFlag.Descriptor instead.
func (WorkspaceFeatureFlag) EnumDescriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{5}
}
// WorkspaceType specifies the purpose/use of a workspace. Different workspace types are handled differently by all parts of the system.
type WorkspaceType int32
const (
// Regular workspaces are your off-the-mill workspaces intended for users. They are directly user-facing and hence are most important.
WorkspaceType_REGULAR WorkspaceType = 0
// Prebuild workspaces are workspaces used to pre-build the content of other workspaces. They run headless and have no direct user-interaction.
WorkspaceType_PREBUILD WorkspaceType = 1
// Probe workspaces are used to perform end-to-end health checks on the system. They require little to no resources, run headless and never
// interact with users directly.
WorkspaceType_PROBE WorkspaceType = 2
// Imagebuild workspaces build a workspace, incl. their Gitpod layer. They run headless and have no direct user-interaction.
WorkspaceType_IMAGEBUILD WorkspaceType = 4
)
// Enum value maps for WorkspaceType.
var (
WorkspaceType_name = map[int32]string{
0: "REGULAR",
1: "PREBUILD",
2: "PROBE",
4: "IMAGEBUILD",
}
WorkspaceType_value = map[string]int32{
"REGULAR": 0,
"PREBUILD": 1,
"PROBE": 2,
"IMAGEBUILD": 4,
}
)
func (x WorkspaceType) Enum() *WorkspaceType {
p := new(WorkspaceType)
*p = x
return p
}
func (x WorkspaceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (WorkspaceType) Descriptor() protoreflect.EnumDescriptor {
return file_core_proto_enumTypes[6].Descriptor()
}
func (WorkspaceType) Type() protoreflect.EnumType {
return &file_core_proto_enumTypes[6]
}
func (x WorkspaceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use WorkspaceType.Descriptor instead.
func (WorkspaceType) EnumDescriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{6}
}
// MetadataFilter describes conditions for matching a set of workspaces.
// The values of the fields have to match exactly, and set values must match.
type MetadataFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// owner is the ID of the Gitpod user to whom we'll bill this workspace and who we consider responsible for its content
Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`
// meta_id is the workspace ID of this currently running workspace instance on the "meta pool" side
MetaId string `protobuf:"bytes,2,opt,name=meta_id,json=metaId,proto3" json:"meta_id,omitempty"`
// annotations must be a subset of the annotations of a workspace's metadata
Annotations map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *MetadataFilter) Reset() {
*x = MetadataFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MetadataFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MetadataFilter) ProtoMessage() {}
func (x *MetadataFilter) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MetadataFilter.ProtoReflect.Descriptor instead.
func (*MetadataFilter) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{0}
}
func (x *MetadataFilter) GetOwner() string {
if x != nil {
return x.Owner
}
return ""
}
func (x *MetadataFilter) GetMetaId() string {
if x != nil {
return x.MetaId
}
return ""
}
func (x *MetadataFilter) GetAnnotations() map[string]string {
if x != nil {
return x.Annotations
}
return nil
}
// GetWorkspacesRequest requests a list of running workspaces
type GetWorkspacesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// MustMatch can specify an exactly matching filter for listing workspaces.
// If not set, or all fields are empty, all workspaces are returned.
MustMatch *MetadataFilter `protobuf:"bytes,1,opt,name=must_match,json=mustMatch,proto3" json:"must_match,omitempty"`
}
func (x *GetWorkspacesRequest) Reset() {
*x = GetWorkspacesRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetWorkspacesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetWorkspacesRequest) ProtoMessage() {}
func (x *GetWorkspacesRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetWorkspacesRequest.ProtoReflect.Descriptor instead.
func (*GetWorkspacesRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{1}
}
func (x *GetWorkspacesRequest) GetMustMatch() *MetadataFilter {
if x != nil {
return x.MustMatch
}
return nil
}
// GetWorkspacesResponse is the response to a get w
type GetWorkspacesResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// status are the status of all running workspaces
Status []*WorkspaceStatus `protobuf:"bytes,1,rep,name=status,proto3" json:"status,omitempty"`
}
func (x *GetWorkspacesResponse) Reset() {
*x = GetWorkspacesResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetWorkspacesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetWorkspacesResponse) ProtoMessage() {}
func (x *GetWorkspacesResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetWorkspacesResponse.ProtoReflect.Descriptor instead.
func (*GetWorkspacesResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{2}
}
func (x *GetWorkspacesResponse) GetStatus() []*WorkspaceStatus {
if x != nil {
return x.Status
}
return nil
}
// StartWorkspaceRequest requests that the workspace manager starts a workspace in its cluster
type StartWorkspaceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is a unique identifier of this workspace. No other workspace with the same name must be managed by this workspace manager
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// service_prefix is the unique ID/name that's prepended before the services associated with a workspace.
// For example if the service_prefix is foobar there will be the services foobar-theia and foobar-ports.
// If this field is empty the workspace ID becomes the service prefix.
ServicePrefix string `protobuf:"bytes,2,opt,name=service_prefix,json=servicePrefix,proto3" json:"service_prefix,omitempty"`
// Metadata is data associated with this workspace that's required for other parts of Gitpod to function
Metadata *WorkspaceMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
// Spec is the configuration of the workspace that's required for the ws-manager to start the workspace
Spec *StartWorkspaceSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"`
// Type denots the kind of workspace we ought to start
Type WorkspaceType `protobuf:"varint,6,opt,name=type,proto3,enum=wsman.WorkspaceType" json:"type,omitempty"`
}
func (x *StartWorkspaceRequest) Reset() {
*x = StartWorkspaceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StartWorkspaceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StartWorkspaceRequest) ProtoMessage() {}
func (x *StartWorkspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StartWorkspaceRequest.ProtoReflect.Descriptor instead.
func (*StartWorkspaceRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{3}
}
func (x *StartWorkspaceRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *StartWorkspaceRequest) GetServicePrefix() string {
if x != nil {
return x.ServicePrefix
}
return ""
}
func (x *StartWorkspaceRequest) GetMetadata() *WorkspaceMetadata {
if x != nil {
return x.Metadata
}
return nil
}
func (x *StartWorkspaceRequest) GetSpec() *StartWorkspaceSpec {
if x != nil {
return x.Spec
}
return nil
}
func (x *StartWorkspaceRequest) GetType() WorkspaceType {
if x != nil {
return x.Type
}
return WorkspaceType_REGULAR
}
type StartWorkspaceResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// URL is the external URL of the workspace
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
// OwnerToken is the token of the workspace owner used for authentication
OwnerToken string `protobuf:"bytes,2,opt,name=owner_token,json=ownerToken,proto3" json:"owner_token,omitempty"`
}
func (x *StartWorkspaceResponse) Reset() {
*x = StartWorkspaceResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StartWorkspaceResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StartWorkspaceResponse) ProtoMessage() {}
func (x *StartWorkspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StartWorkspaceResponse.ProtoReflect.Descriptor instead.
func (*StartWorkspaceResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{4}
}
func (x *StartWorkspaceResponse) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *StartWorkspaceResponse) GetOwnerToken() string {
if x != nil {
return x.OwnerToken
}
return ""
}
// StopWorkspaceRequest requests that the workspace manager stops a workspace
type StopWorkspaceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace to stop
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Policy determines how quickly a workspace will be stopped
Policy StopWorkspacePolicy `protobuf:"varint,2,opt,name=policy,proto3,enum=wsman.StopWorkspacePolicy" json:"policy,omitempty"`
}
func (x *StopWorkspaceRequest) Reset() {
*x = StopWorkspaceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StopWorkspaceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StopWorkspaceRequest) ProtoMessage() {}
func (x *StopWorkspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StopWorkspaceRequest.ProtoReflect.Descriptor instead.
func (*StopWorkspaceRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{5}
}
func (x *StopWorkspaceRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *StopWorkspaceRequest) GetPolicy() StopWorkspacePolicy {
if x != nil {
return x.Policy
}
return StopWorkspacePolicy_NORMALLY
}
// StopWorkspaceResponse is the answer to a stop workspace request
type StopWorkspaceResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *StopWorkspaceResponse) Reset() {
*x = StopWorkspaceResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StopWorkspaceResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StopWorkspaceResponse) ProtoMessage() {}
func (x *StopWorkspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StopWorkspaceResponse.ProtoReflect.Descriptor instead.
func (*StopWorkspaceResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{6}
}
// DescribeWorkspaceRequest requests the status of a workspace
type DescribeWorkspaceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace to describe
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *DescribeWorkspaceRequest) Reset() {
*x = DescribeWorkspaceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DescribeWorkspaceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DescribeWorkspaceRequest) ProtoMessage() {}
func (x *DescribeWorkspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DescribeWorkspaceRequest.ProtoReflect.Descriptor instead.
func (*DescribeWorkspaceRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{7}
}
func (x *DescribeWorkspaceRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
// DescribeWorkspaceResponse is the answer to a workspace description request
type DescribeWorkspaceResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Status *WorkspaceStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
// LastActivity is the time when the workspace was last marked active - ISO8601 formated
LastActivity string `protobuf:"bytes,2,opt,name=lastActivity,proto3" json:"lastActivity,omitempty"`
}
func (x *DescribeWorkspaceResponse) Reset() {
*x = DescribeWorkspaceResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DescribeWorkspaceResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DescribeWorkspaceResponse) ProtoMessage() {}
func (x *DescribeWorkspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DescribeWorkspaceResponse.ProtoReflect.Descriptor instead.
func (*DescribeWorkspaceResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{8}
}
func (x *DescribeWorkspaceResponse) GetStatus() *WorkspaceStatus {
if x != nil {
return x.Status
}
return nil
}
func (x *DescribeWorkspaceResponse) GetLastActivity() string {
if x != nil {
return x.LastActivity
}
return ""
}
// SubscribeRequest requests to be notified whenever the workspace status changes
type SubscribeRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// MustMatch can specify an exactly matching filter for listening to workspaces.
// If not set, or all fields are empty, all workspace status updates or log output are returned.
MustMatch *MetadataFilter `protobuf:"bytes,1,opt,name=must_match,json=mustMatch,proto3" json:"must_match,omitempty"`
}
func (x *SubscribeRequest) Reset() {
*x = SubscribeRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubscribeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeRequest) ProtoMessage() {}
func (x *SubscribeRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead.
func (*SubscribeRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{9}
}
func (x *SubscribeRequest) GetMustMatch() *MetadataFilter {
if x != nil {
return x.MustMatch
}
return nil
}
// SubscribeResponse notifies a client when a workspace's status changes
type SubscribeResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Status *WorkspaceStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
Header map[string]string `protobuf:"bytes,3,rep,name=header,proto3" json:"header,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *SubscribeResponse) Reset() {
*x = SubscribeResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SubscribeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SubscribeResponse) ProtoMessage() {}
func (x *SubscribeResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead.
func (*SubscribeResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{10}
}
func (x *SubscribeResponse) GetStatus() *WorkspaceStatus {
if x != nil {
return x.Status
}
return nil
}
func (x *SubscribeResponse) GetHeader() map[string]string {
if x != nil {
return x.Header
}
return nil
}
// MarkActiveRequest marks a workspace as still in use
type MarkActiveRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// id is the ID of the workspace
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// closed marks a workspace as closed which will shorten its timeout
Closed bool `protobuf:"varint,2,opt,name=closed,proto3" json:"closed,omitempty"`
}
func (x *MarkActiveRequest) Reset() {
*x = MarkActiveRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MarkActiveRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MarkActiveRequest) ProtoMessage() {}
func (x *MarkActiveRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MarkActiveRequest.ProtoReflect.Descriptor instead.
func (*MarkActiveRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{11}
}
func (x *MarkActiveRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *MarkActiveRequest) GetClosed() bool {
if x != nil {
return x.Closed
}
return false
}
// MarkActiveResponse is the answer to a mark workspace active request
type MarkActiveResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *MarkActiveResponse) Reset() {
*x = MarkActiveResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MarkActiveResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MarkActiveResponse) ProtoMessage() {}
func (x *MarkActiveResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MarkActiveResponse.ProtoReflect.Descriptor instead.
func (*MarkActiveResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{12}
}
// SetTimeoutRequest configures the timeout of a workspace
type SetTimeoutRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// id is the ID of the workspace
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// duration is the new timeout duration. Must be a valid Go duration (see https://golang.org/pkg/time/#ParseDuration)
Duration string `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`
}
func (x *SetTimeoutRequest) Reset() {
*x = SetTimeoutRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SetTimeoutRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetTimeoutRequest) ProtoMessage() {}
func (x *SetTimeoutRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SetTimeoutRequest.ProtoReflect.Descriptor instead.
func (*SetTimeoutRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{13}
}
func (x *SetTimeoutRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *SetTimeoutRequest) GetDuration() string {
if x != nil {
return x.Duration
}
return ""
}
// SetTimeoutResponse is the answer to a set timeout request
type SetTimeoutResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *SetTimeoutResponse) Reset() {
*x = SetTimeoutResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SetTimeoutResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetTimeoutResponse) ProtoMessage() {}
func (x *SetTimeoutResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SetTimeoutResponse.ProtoReflect.Descriptor instead.
func (*SetTimeoutResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{14}
}
// ControlPortRequest exposes or un-exposes networking ports of a workspace
type ControlPortRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace whose port to control
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// expose controls whether to make the port publicly available or bar if from being accessible outside of the worksapce.
// If true, the port will become publicly available, if false it will become inaccessible from outside the workspace.
Expose bool `protobuf:"varint,2,opt,name=expose,proto3" json:"expose,omitempty"`
// spec defines the port under control
Spec *PortSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"`
}
func (x *ControlPortRequest) Reset() {
*x = ControlPortRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ControlPortRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ControlPortRequest) ProtoMessage() {}
func (x *ControlPortRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ControlPortRequest.ProtoReflect.Descriptor instead.
func (*ControlPortRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{15}
}
func (x *ControlPortRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ControlPortRequest) GetExpose() bool {
if x != nil {
return x.Expose
}
return false
}
func (x *ControlPortRequest) GetSpec() *PortSpec {
if x != nil {
return x.Spec
}
return nil
}
// ControlPortResponse is the answer to a workspace port control request
type ControlPortResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ControlPortResponse) Reset() {
*x = ControlPortResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ControlPortResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ControlPortResponse) ProtoMessage() {}
func (x *ControlPortResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ControlPortResponse.ProtoReflect.Descriptor instead.
func (*ControlPortResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{16}
}
// TakeSnapshotRequest creates a copy of the workspace content. This copy can be used to initialize a new workspace.
type TakeSnapshotRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace of which to take a snapshot
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// return_immediately means we're not waiting until the snapshot is done but return immediately after starting it
ReturnImmediately bool `protobuf:"varint,2,opt,name=return_immediately,json=returnImmediately,proto3" json:"return_immediately,omitempty"`
}
func (x *TakeSnapshotRequest) Reset() {
*x = TakeSnapshotRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TakeSnapshotRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TakeSnapshotRequest) ProtoMessage() {}
func (x *TakeSnapshotRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TakeSnapshotRequest.ProtoReflect.Descriptor instead.
func (*TakeSnapshotRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{17}
}
func (x *TakeSnapshotRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *TakeSnapshotRequest) GetReturnImmediately() bool {
if x != nil {
return x.ReturnImmediately
}
return false
}
// TakeSnapshotResponse is the answer to a take snapshot request
type TakeSnapshotResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// URL is the location of the snapshot encoded such that it can be passed back to a snapshot initializer.
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
}
func (x *TakeSnapshotResponse) Reset() {
*x = TakeSnapshotResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TakeSnapshotResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TakeSnapshotResponse) ProtoMessage() {}
func (x *TakeSnapshotResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TakeSnapshotResponse.ProtoReflect.Descriptor instead.
func (*TakeSnapshotResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{18}
}
func (x *TakeSnapshotResponse) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
// ControlAdmissionRequest controls the admission of users to a workspace
type ControlAdmissionRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace whoose admission to control
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// level is the new workspace admission level
Level AdmissionLevel `protobuf:"varint,2,opt,name=level,proto3,enum=wsman.AdmissionLevel" json:"level,omitempty"`
}
func (x *ControlAdmissionRequest) Reset() {
*x = ControlAdmissionRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ControlAdmissionRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ControlAdmissionRequest) ProtoMessage() {}
func (x *ControlAdmissionRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ControlAdmissionRequest.ProtoReflect.Descriptor instead.
func (*ControlAdmissionRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{19}
}
func (x *ControlAdmissionRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ControlAdmissionRequest) GetLevel() AdmissionLevel {
if x != nil {
return x.Level
}
return AdmissionLevel_ADMIT_OWNER_ONLY
}
type ControlAdmissionResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *ControlAdmissionResponse) Reset() {
*x = ControlAdmissionResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ControlAdmissionResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ControlAdmissionResponse) ProtoMessage() {}
func (x *ControlAdmissionResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ControlAdmissionResponse.ProtoReflect.Descriptor instead.
func (*ControlAdmissionResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{20}
}
// DeleteVolumeSnapshotRequest deletes volume snapshot from the cluster and cloud provider
type DeleteVolumeSnapshotRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the name of volume snapshot, which is equal to instance id of workspace it was taken from
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// volume_handle is a unique string that is used to restore volume handle in k8s from cloud provider backend
VolumeHandle string `protobuf:"bytes,2,opt,name=volume_handle,json=volumeHandle,proto3" json:"volume_handle,omitempty"`
// soft_delete controls whether manager should attempt to restore volume snapshot from handle if it doesn't exist in the cluster yet
SoftDelete bool `protobuf:"varint,3,opt,name=soft_delete,json=softDelete,proto3" json:"soft_delete,omitempty"`
}
func (x *DeleteVolumeSnapshotRequest) Reset() {
*x = DeleteVolumeSnapshotRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteVolumeSnapshotRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteVolumeSnapshotRequest) ProtoMessage() {}
func (x *DeleteVolumeSnapshotRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteVolumeSnapshotRequest.ProtoReflect.Descriptor instead.
func (*DeleteVolumeSnapshotRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{21}
}
func (x *DeleteVolumeSnapshotRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DeleteVolumeSnapshotRequest) GetVolumeHandle() string {
if x != nil {
return x.VolumeHandle
}
return ""
}
func (x *DeleteVolumeSnapshotRequest) GetSoftDelete() bool {
if x != nil {
return x.SoftDelete
}
return false
}
type DeleteVolumeSnapshotResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// was_deleted will be true if we were able to delete volume snapshot from the cluster
WasDeleted bool `protobuf:"varint,1,opt,name=was_deleted,json=wasDeleted,proto3" json:"was_deleted,omitempty"`
}
func (x *DeleteVolumeSnapshotResponse) Reset() {
*x = DeleteVolumeSnapshotResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteVolumeSnapshotResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteVolumeSnapshotResponse) ProtoMessage() {}
func (x *DeleteVolumeSnapshotResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteVolumeSnapshotResponse.ProtoReflect.Descriptor instead.
func (*DeleteVolumeSnapshotResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{22}
}
func (x *DeleteVolumeSnapshotResponse) GetWasDeleted() bool {
if x != nil {
return x.WasDeleted
}
return false
}
// BackupWorkspaceRequest backs up a running workspace
type BackupWorkspaceRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace of which to take a backup
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (x *BackupWorkspaceRequest) Reset() {
*x = BackupWorkspaceRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackupWorkspaceRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackupWorkspaceRequest) ProtoMessage() {}
func (x *BackupWorkspaceRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackupWorkspaceRequest.ProtoReflect.Descriptor instead.
func (*BackupWorkspaceRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{23}
}
func (x *BackupWorkspaceRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
// BackupWorkspaceResponse is the answer to a backup workspace request
type BackupWorkspaceResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// URL is the location of the backup
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
}
func (x *BackupWorkspaceResponse) Reset() {
*x = BackupWorkspaceResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BackupWorkspaceResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BackupWorkspaceResponse) ProtoMessage() {}
func (x *BackupWorkspaceResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BackupWorkspaceResponse.ProtoReflect.Descriptor instead.
func (*BackupWorkspaceResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{24}
}
func (x *BackupWorkspaceResponse) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
// UpdateSSHKeyRequest update ssh public key
type UpdateSSHKeyRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// keys is a set of authorized_keys
Keys []string `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"`
}
func (x *UpdateSSHKeyRequest) Reset() {
*x = UpdateSSHKeyRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateSSHKeyRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateSSHKeyRequest) ProtoMessage() {}
func (x *UpdateSSHKeyRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateSSHKeyRequest.ProtoReflect.Descriptor instead.
func (*UpdateSSHKeyRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{25}
}
func (x *UpdateSSHKeyRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *UpdateSSHKeyRequest) GetKeys() []string {
if x != nil {
return x.Keys
}
return nil
}
// UpdateSSHKeyResponse is the answer to a upload ssh key request
type UpdateSSHKeyResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *UpdateSSHKeyResponse) Reset() {
*x = UpdateSSHKeyResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateSSHKeyResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateSSHKeyResponse) ProtoMessage() {}
func (x *UpdateSSHKeyResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateSSHKeyResponse.ProtoReflect.Descriptor instead.
func (*UpdateSSHKeyResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{26}
}
// WorkspaceStatus describes a workspace status
type WorkspaceStatus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ID is the unique identifier of the workspace
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// version of the status update. Workspace instances themselves are unversioned,
// but their statuus has different versions.
// The value of this field has no semantic meaning (e.g. don't interpret it as
// as a timestemp), but it can be used to impose a partial order.
// If a.status_version < b.status_version then a was the status before b.
StatusVersion uint64 `protobuf:"varint,10,opt,name=status_version,json=statusVersion,proto3" json:"status_version,omitempty"`
// Metadata is data associated with this workspace that's required for other parts of Gitpod to function
Metadata *WorkspaceMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
// Spec is the workspace spec during runtime
Spec *WorkspaceSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"`
// the phase of a workspace is a simple, high-level summary of where the workspace is in its lifecycle
Phase WorkspacePhase `protobuf:"varint,4,opt,name=phase,proto3,enum=wsman.WorkspacePhase" json:"phase,omitempty"`
// conditions detail the current state of the workspace
Conditions *WorkspaceConditions `protobuf:"bytes,5,opt,name=conditions,proto3" json:"conditions,omitempty"`
// message is an optional human-readable message detailing the current phase
Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"`
// repo details the Git working copy status of the workspace.
// Note: this is a best-effort field and more often than not will not be present. Its absence does not
// indicate the absence of a working copy.
Repo *api.GitStatus `protobuf:"bytes,7,opt,name=repo,proto3" json:"repo,omitempty"`
// runtime contains information about the workspace's runtime environment
Runtime *WorkspaceRuntimeInfo `protobuf:"bytes,8,opt,name=runtime,proto3" json:"runtime,omitempty"`
// auth provides authentication information about the workspace. This info is primarily used by ws-proxy.
Auth *WorkspaceAuthentication `protobuf:"bytes,9,opt,name=auth,proto3" json:"auth,omitempty"`
}
func (x *WorkspaceStatus) Reset() {
*x = WorkspaceStatus{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkspaceStatus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkspaceStatus) ProtoMessage() {}
func (x *WorkspaceStatus) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WorkspaceStatus.ProtoReflect.Descriptor instead.
func (*WorkspaceStatus) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{27}
}
func (x *WorkspaceStatus) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *WorkspaceStatus) GetStatusVersion() uint64 {
if x != nil {
return x.StatusVersion
}
return 0
}
func (x *WorkspaceStatus) GetMetadata() *WorkspaceMetadata {
if x != nil {
return x.Metadata
}
return nil
}
func (x *WorkspaceStatus) GetSpec() *WorkspaceSpec {
if x != nil {
return x.Spec
}
return nil
}
func (x *WorkspaceStatus) GetPhase() WorkspacePhase {
if x != nil {
return x.Phase
}
return WorkspacePhase_UNKNOWN
}
func (x *WorkspaceStatus) GetConditions() *WorkspaceConditions {
if x != nil {
return x.Conditions
}
return nil
}
func (x *WorkspaceStatus) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
func (x *WorkspaceStatus) GetRepo() *api.GitStatus {
if x != nil {
return x.Repo
}
return nil
}
func (x *WorkspaceStatus) GetRuntime() *WorkspaceRuntimeInfo {
if x != nil {
return x.Runtime
}
return nil
}
func (x *WorkspaceStatus) GetAuth() *WorkspaceAuthentication {
if x != nil {
return x.Auth
}
return nil
}
// IDEImage configures the IDE images a workspace will use
type IDEImage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// web_ref is a reference to an OCI image used for serving the web-based IDE
WebRef string `protobuf:"bytes,1,opt,name=web_ref,json=webRef,proto3" json:"web_ref,omitempty"`
// desktop_ref is an optional reference to an OCI image used for serving desktop IDEs
DesktopRef string `protobuf:"bytes,2,opt,name=desktop_ref,json=desktopRef,proto3" json:"desktop_ref,omitempty"`
// supervisor_ref is a reference to an OCI image used as supervisor
SupervisorRef string `protobuf:"bytes,3,opt,name=supervisor_ref,json=supervisorRef,proto3" json:"supervisor_ref,omitempty"`
}
func (x *IDEImage) Reset() {
*x = IDEImage{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *IDEImage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*IDEImage) ProtoMessage() {}
func (x *IDEImage) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use IDEImage.ProtoReflect.Descriptor instead.
func (*IDEImage) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{28}
}
func (x *IDEImage) GetWebRef() string {
if x != nil {
return x.WebRef
}
return ""
}
func (x *IDEImage) GetDesktopRef() string {
if x != nil {
return x.DesktopRef
}
return ""
}
func (x *IDEImage) GetSupervisorRef() string {
if x != nil {
return x.SupervisorRef
}
return ""
}
// WorkspaceSpec is the specification of a workspace at runtime
type WorkspaceSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// workspace_image is the name of the Docker image this workspace runs
WorkspaceImage string `protobuf:"bytes,1,opt,name=workspace_image,json=workspaceImage,proto3" json:"workspace_image,omitempty"`
// deprecated_ide_image is a field present for backwards compatibility and the same
// as IDEImage.web_ref. If both fields are present, IDEImage.web_ref takes precedence.
DeprecatedIdeImage string `protobuf:"bytes,2,opt,name=deprecated_ide_image,json=deprecatedIdeImage,proto3" json:"deprecated_ide_image,omitempty"`
// headless marks this workspace a headless one - headless workspaces are not intended for users but for automation
Headless bool `protobuf:"varint,3,opt,name=headless,proto3" json:"headless,omitempty"`
// URL is the external URL of the workspace
Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
// exposed_ports lists all ports which this workspace has exposed to the outside world
ExposedPorts []*PortSpec `protobuf:"bytes,5,rep,name=exposed_ports,json=exposedPorts,proto3" json:"exposed_ports,omitempty"`
// workspace type denotes what kind of workspace this is, e.g. if it's user-facing, prebuilding content or probing the service
Type WorkspaceType `protobuf:"varint,6,opt,name=type,proto3,enum=wsman.WorkspaceType" json:"type,omitempty"`
// The intervals in which a heartbeat must be received for the workspace not to time out
Timeout string `protobuf:"bytes,7,opt,name=timeout,proto3" json:"timeout,omitempty"`
// ide_image is the name of the Docker image used as IDE
IdeImage *IDEImage `protobuf:"bytes,8,opt,name=ide_image,json=ideImage,proto3" json:"ide_image,omitempty"`
// class names the class of this workspace
Class string `protobuf:"bytes,9,opt,name=class,proto3" json:"class,omitempty"`
}
func (x *WorkspaceSpec) Reset() {
*x = WorkspaceSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkspaceSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkspaceSpec) ProtoMessage() {}
func (x *WorkspaceSpec) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WorkspaceSpec.ProtoReflect.Descriptor instead.
func (*WorkspaceSpec) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{29}
}
func (x *WorkspaceSpec) GetWorkspaceImage() string {
if x != nil {
return x.WorkspaceImage
}
return ""
}
func (x *WorkspaceSpec) GetDeprecatedIdeImage() string {
if x != nil {
return x.DeprecatedIdeImage
}
return ""
}
func (x *WorkspaceSpec) GetHeadless() bool {
if x != nil {
return x.Headless
}
return false
}
func (x *WorkspaceSpec) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *WorkspaceSpec) GetExposedPorts() []*PortSpec {
if x != nil {
return x.ExposedPorts
}
return nil
}
func (x *WorkspaceSpec) GetType() WorkspaceType {
if x != nil {
return x.Type
}
return WorkspaceType_REGULAR
}
func (x *WorkspaceSpec) GetTimeout() string {
if x != nil {
return x.Timeout
}
return ""
}
func (x *WorkspaceSpec) GetIdeImage() *IDEImage {
if x != nil {
return x.IdeImage
}
return nil
}
func (x *WorkspaceSpec) GetClass() string {
if x != nil {
return x.Class
}
return ""
}
// PortSpec describes a networking port exposed on a workspace
type PortSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// port is the outward-facing port
Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
// visibility defines the visibility of the port
Visibility PortVisibility `protobuf:"varint,3,opt,name=visibility,proto3,enum=wsman.PortVisibility" json:"visibility,omitempty"`
// url is the public-facing URL this port is available at
Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`
}
func (x *PortSpec) Reset() {
*x = PortSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PortSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PortSpec) ProtoMessage() {}
func (x *PortSpec) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PortSpec.ProtoReflect.Descriptor instead.
func (*PortSpec) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{30}
}
func (x *PortSpec) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *PortSpec) GetVisibility() PortVisibility {
if x != nil {
return x.Visibility
}
return PortVisibility_PORT_VISIBILITY_PRIVATE
}
func (x *PortSpec) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
// VolumeSnapshotInfo defines volume snapshot information
type VolumeSnapshotInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// volume_snapshot_name is the name of volume snapshot
VolumeSnapshotName string `protobuf:"bytes,1,opt,name=volume_snapshot_name,json=volumeSnapshotName,proto3" json:"volume_snapshot_name,omitempty"`
// volume_snapshot_handle is a handle that is used to restore volume snapshot
VolumeSnapshotHandle string `protobuf:"bytes,2,opt,name=volume_snapshot_handle,json=volumeSnapshotHandle,proto3" json:"volume_snapshot_handle,omitempty"`
}
func (x *VolumeSnapshotInfo) Reset() {
*x = VolumeSnapshotInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VolumeSnapshotInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeSnapshotInfo) ProtoMessage() {}
func (x *VolumeSnapshotInfo) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeSnapshotInfo.ProtoReflect.Descriptor instead.
func (*VolumeSnapshotInfo) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{31}
}
func (x *VolumeSnapshotInfo) GetVolumeSnapshotName() string {
if x != nil {
return x.VolumeSnapshotName
}
return ""
}
func (x *VolumeSnapshotInfo) GetVolumeSnapshotHandle() string {
if x != nil {
return x.VolumeSnapshotHandle
}
return ""
}
// WorkspaceCondition gives more detailed information as to the state of the workspace. Which condition actually
// has a value depends on the phase the workspace is in.
type WorkspaceConditions struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// failed contains the reason the workspace failed to operate. If this field is empty, the workspace has not failed.
Failed string `protobuf:"bytes,1,opt,name=failed,proto3" json:"failed,omitempty"`
// timeout contains the reason the workspace has timed out. If this field is empty, the workspace has not timed out.
Timeout string `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`
// pulling_images marks if the workspace is currently pulling its images. This condition can only be set during PhaseCreating
PullingImages WorkspaceConditionBool `protobuf:"varint,3,opt,name=pulling_images,json=pullingImages,proto3,enum=wsman.WorkspaceConditionBool" json:"pulling_images,omitempty"`
// snapshot contains a snapshot URL if a snapshot was produced prior to shutting the workspace down. This condition is only used for headless workspaces.
Snapshot string `protobuf:"bytes,5,opt,name=snapshot,proto3" json:"snapshot,omitempty"`
// final_backup_complete determines if the last state of the workspace has been backed up to remote storage.
// Once this is true, a new workspace with the same ID will be able to use this backup.
FinalBackupComplete WorkspaceConditionBool `protobuf:"varint,6,opt,name=final_backup_complete,json=finalBackupComplete,proto3,enum=wsman.WorkspaceConditionBool" json:"final_backup_complete,omitempty"`
// deployed indicates if a workspace container is currently deployed. If this condition is false, there is no means for the user to alter the workspace content.
Deployed WorkspaceConditionBool `protobuf:"varint,7,opt,name=deployed,proto3,enum=wsman.WorkspaceConditionBool" json:"deployed,omitempty"`
// network_not_ready indicates if a workspace container is currently experiencing a network problem.
NetworkNotReady WorkspaceConditionBool `protobuf:"varint,8,opt,name=network_not_ready,json=networkNotReady,proto3,enum=wsman.WorkspaceConditionBool" json:"network_not_ready,omitempty"`
// first_user_activity is the time when MarkActive was first called on the workspace
FirstUserActivity *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=first_user_activity,json=firstUserActivity,proto3" json:"first_user_activity,omitempty"`
// headless_task_failed indicates that a headless workspace task failed
HeadlessTaskFailed string `protobuf:"bytes,10,opt,name=headless_task_failed,json=headlessTaskFailed,proto3" json:"headless_task_failed,omitempty"`
// stopped_by_request is true if the workspace was stopped using a StopWorkspace call
StoppedByRequest WorkspaceConditionBool `protobuf:"varint,11,opt,name=stopped_by_request,json=stoppedByRequest,proto3,enum=wsman.WorkspaceConditionBool" json:"stopped_by_request,omitempty"`
// volume_snapshot contains info about volume snapshot that was used to save persistent volume
VolumeSnapshot *VolumeSnapshotInfo `protobuf:"bytes,12,opt,name=volume_snapshot,json=volumeSnapshot,proto3" json:"volume_snapshot,omitempty"`
}
func (x *WorkspaceConditions) Reset() {
*x = WorkspaceConditions{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkspaceConditions) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkspaceConditions) ProtoMessage() {}
func (x *WorkspaceConditions) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WorkspaceConditions.ProtoReflect.Descriptor instead.
func (*WorkspaceConditions) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{32}
}
func (x *WorkspaceConditions) GetFailed() string {
if x != nil {
return x.Failed
}
return ""
}
func (x *WorkspaceConditions) GetTimeout() string {
if x != nil {
return x.Timeout
}
return ""
}
func (x *WorkspaceConditions) GetPullingImages() WorkspaceConditionBool {
if x != nil {
return x.PullingImages
}
return WorkspaceConditionBool_FALSE
}
func (x *WorkspaceConditions) GetSnapshot() string {
if x != nil {
return x.Snapshot
}
return ""
}
func (x *WorkspaceConditions) GetFinalBackupComplete() WorkspaceConditionBool {
if x != nil {
return x.FinalBackupComplete
}
return WorkspaceConditionBool_FALSE
}
func (x *WorkspaceConditions) GetDeployed() WorkspaceConditionBool {
if x != nil {
return x.Deployed
}
return WorkspaceConditionBool_FALSE
}
func (x *WorkspaceConditions) GetNetworkNotReady() WorkspaceConditionBool {
if x != nil {
return x.NetworkNotReady
}
return WorkspaceConditionBool_FALSE
}
func (x *WorkspaceConditions) GetFirstUserActivity() *timestamppb.Timestamp {
if x != nil {
return x.FirstUserActivity
}
return nil
}
func (x *WorkspaceConditions) GetHeadlessTaskFailed() string {
if x != nil {
return x.HeadlessTaskFailed
}
return ""
}
func (x *WorkspaceConditions) GetStoppedByRequest() WorkspaceConditionBool {
if x != nil {
return x.StoppedByRequest
}
return WorkspaceConditionBool_FALSE
}
func (x *WorkspaceConditions) GetVolumeSnapshot() *VolumeSnapshotInfo {
if x != nil {
return x.VolumeSnapshot
}
return nil
}
// WorkspaceMetadata is data associated with a workspace that's required for other parts of the system to function
type WorkspaceMetadata struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// owner is the ID of the Gitpod user to whom we'll bill this workspace and who we consider responsible for its content
Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`
// meta_id is the workspace ID of this currently running workspace instance on the "meta pool" side
MetaId string `protobuf:"bytes,2,opt,name=meta_id,json=metaId,proto3" json:"meta_id,omitempty"`
// started_at is the time when this workspace was started. Consider this field read-only, i.e. setting in a request will have no effect.
StartedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`
// Annotations are key/value pairs that gets attached to the workspace.
// This is primarily intended for annotating headless workspace loads.
Annotations map[string]string `protobuf:"bytes,4,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// team the workspace belongs to, if the workspace is not associated with a team, this property will be empty
Team *string `protobuf:"bytes,5,opt,name=team,proto3,oneof" json:"team,omitempty"`
// project the workspace belongs to, if the workspace is not associated with a project, this property will be empty
Project *string `protobuf:"bytes,6,opt,name=project,proto3,oneof" json:"project,omitempty"`
}
func (x *WorkspaceMetadata) Reset() {
*x = WorkspaceMetadata{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkspaceMetadata) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkspaceMetadata) ProtoMessage() {}
func (x *WorkspaceMetadata) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WorkspaceMetadata.ProtoReflect.Descriptor instead.
func (*WorkspaceMetadata) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{33}
}
func (x *WorkspaceMetadata) GetOwner() string {
if x != nil {
return x.Owner
}
return ""
}
func (x *WorkspaceMetadata) GetMetaId() string {
if x != nil {
return x.MetaId
}
return ""
}
func (x *WorkspaceMetadata) GetStartedAt() *timestamppb.Timestamp {
if x != nil {
return x.StartedAt
}
return nil
}
func (x *WorkspaceMetadata) GetAnnotations() map[string]string {
if x != nil {
return x.Annotations
}
return nil
}
func (x *WorkspaceMetadata) GetTeam() string {
if x != nil && x.Team != nil {
return *x.Team
}
return ""
}
func (x *WorkspaceMetadata) GetProject() string {
if x != nil && x.Project != nil {
return *x.Project
}
return ""
}
// WorkspaceRuntimeInfo details the workspace's runtime, e.g. executing system, node other information
// about the environment the workspace runs in. This information serves a diangostic purpose only and
// should not be directly acted upon.
type WorkspaceRuntimeInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// node_name is the name of the node the workspace runs on
NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"`
// pod_name is the name of the pod the workspace runs in
PodName string `protobuf:"bytes,2,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"`
// node_ip is the IP of the node the workspace runs on
NodeIp string `protobuf:"bytes,3,opt,name=node_ip,json=nodeIp,proto3" json:"node_ip,omitempty"`
}
func (x *WorkspaceRuntimeInfo) Reset() {
*x = WorkspaceRuntimeInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkspaceRuntimeInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkspaceRuntimeInfo) ProtoMessage() {}
func (x *WorkspaceRuntimeInfo) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WorkspaceRuntimeInfo.ProtoReflect.Descriptor instead.
func (*WorkspaceRuntimeInfo) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{34}
}
func (x *WorkspaceRuntimeInfo) GetNodeName() string {
if x != nil {
return x.NodeName
}
return ""
}
func (x *WorkspaceRuntimeInfo) GetPodName() string {
if x != nil {
return x.PodName
}
return ""
}
func (x *WorkspaceRuntimeInfo) GetNodeIp() string {
if x != nil {
return x.NodeIp
}
return ""
}
// WorkspaceAuthentication contains authentication information used by ws-proxy to allow/deny access to
// workspaces and their ports.
type WorkspaceAuthentication struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Admission describes who can access the workspace and its ports.
Admission AdmissionLevel `protobuf:"varint,1,opt,name=admission,proto3,enum=wsman.AdmissionLevel" json:"admission,omitempty"`
// Owner token is the token one needs to access the workspace. Its presence is checked by ws-proxy.
OwnerToken string `protobuf:"bytes,2,opt,name=owner_token,json=ownerToken,proto3" json:"owner_token,omitempty"`
}
func (x *WorkspaceAuthentication) Reset() {
*x = WorkspaceAuthentication{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkspaceAuthentication) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkspaceAuthentication) ProtoMessage() {}
func (x *WorkspaceAuthentication) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WorkspaceAuthentication.ProtoReflect.Descriptor instead.
func (*WorkspaceAuthentication) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{35}
}
func (x *WorkspaceAuthentication) GetAdmission() AdmissionLevel {
if x != nil {
return x.Admission
}
return AdmissionLevel_ADMIT_OWNER_ONLY
}
func (x *WorkspaceAuthentication) GetOwnerToken() string {
if x != nil {
return x.OwnerToken
}
return ""
}
// StartWorkspaceSpec specifies the configuration of a workspace for a workspace start
type StartWorkspaceSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// workspace_image is the Docker image name of the workspace container
WorkspaceImage string `protobuf:"bytes,1,opt,name=workspace_image,json=workspaceImage,proto3" json:"workspace_image,omitempty"`
// deprecated_ide_image is a field present for backwards compatibility and the same
// as IDEImage.web_ref. If both fields are present, IDEImage.web_ref takes precedence.
DeprecatedIdeImage string `protobuf:"bytes,2,opt,name=deprecated_ide_image,json=deprecatedIdeImage,proto3" json:"deprecated_ide_image,omitempty"`
// feature_flags provide a means for starting variants of workspaces (e.g. a privileged one)
FeatureFlags []WorkspaceFeatureFlag `protobuf:"varint,3,rep,packed,name=feature_flags,json=featureFlags,proto3,enum=wsman.WorkspaceFeatureFlag" json:"feature_flags,omitempty"`
// initializer configures how the workspace is to be initialized
Initializer *api.WorkspaceInitializer `protobuf:"bytes,4,opt,name=initializer,proto3" json:"initializer,omitempty"`
// ports is the set of ports which ought to be exposed to the internet
Ports []*PortSpec `protobuf:"bytes,5,rep,name=ports,proto3" json:"ports,omitempty"`
// envvars are user-defined environment variables which ought to be available in the workspace
Envvars []*EnvironmentVariable `protobuf:"bytes,6,rep,name=envvars,proto3" json:"envvars,omitempty"`
// workspace_location describes where the workspace root of Theia will be
WorkspaceLocation string `protobuf:"bytes,8,opt,name=workspace_location,json=workspaceLocation,proto3" json:"workspace_location,omitempty"`
// Git configures the Git user in the workspace
Git *GitSpec `protobuf:"bytes,9,opt,name=git,proto3" json:"git,omitempty"`
// timeout optionally sets a custom workspace timeout
Timeout string `protobuf:"bytes,10,opt,name=timeout,proto3" json:"timeout,omitempty"`
// admission controlls who can access the workspace and its ports.
Admission AdmissionLevel `protobuf:"varint,11,opt,name=admission,proto3,enum=wsman.AdmissionLevel" json:"admission,omitempty"`
// ide_image is the Docker image name of the IDE image
IdeImage *IDEImage `protobuf:"bytes,12,opt,name=ide_image,json=ideImage,proto3" json:"ide_image,omitempty"`
// Class denotes the class of the workspace we ought to start
Class string `protobuf:"bytes,13,opt,name=class,proto3" json:"class,omitempty"`
// volume_snapshot to use to restore PVC from, if set
VolumeSnapshot *VolumeSnapshotInfo `protobuf:"bytes,14,opt,name=volume_snapshot,json=volumeSnapshot,proto3" json:"volume_snapshot,omitempty"`
// ssh_public_keys is user's uploaded ssh public keys
SshPublicKeys []string `protobuf:"bytes,15,rep,name=ssh_public_keys,json=sshPublicKeys,proto3" json:"ssh_public_keys,omitempty"`
}
func (x *StartWorkspaceSpec) Reset() {
*x = StartWorkspaceSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StartWorkspaceSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StartWorkspaceSpec) ProtoMessage() {}
func (x *StartWorkspaceSpec) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StartWorkspaceSpec.ProtoReflect.Descriptor instead.
func (*StartWorkspaceSpec) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{36}
}
func (x *StartWorkspaceSpec) GetWorkspaceImage() string {
if x != nil {
return x.WorkspaceImage
}
return ""
}
func (x *StartWorkspaceSpec) GetDeprecatedIdeImage() string {
if x != nil {
return x.DeprecatedIdeImage
}
return ""
}
func (x *StartWorkspaceSpec) GetFeatureFlags() []WorkspaceFeatureFlag {
if x != nil {
return x.FeatureFlags
}
return nil
}
func (x *StartWorkspaceSpec) GetInitializer() *api.WorkspaceInitializer {
if x != nil {
return x.Initializer
}
return nil
}
func (x *StartWorkspaceSpec) GetPorts() []*PortSpec {
if x != nil {
return x.Ports
}
return nil
}
func (x *StartWorkspaceSpec) GetEnvvars() []*EnvironmentVariable {
if x != nil {
return x.Envvars
}
return nil
}
func (x *StartWorkspaceSpec) GetWorkspaceLocation() string {
if x != nil {
return x.WorkspaceLocation
}
return ""
}
func (x *StartWorkspaceSpec) GetGit() *GitSpec {
if x != nil {
return x.Git
}
return nil
}
func (x *StartWorkspaceSpec) GetTimeout() string {
if x != nil {
return x.Timeout
}
return ""
}
func (x *StartWorkspaceSpec) GetAdmission() AdmissionLevel {
if x != nil {
return x.Admission
}
return AdmissionLevel_ADMIT_OWNER_ONLY
}
func (x *StartWorkspaceSpec) GetIdeImage() *IDEImage {
if x != nil {
return x.IdeImage
}
return nil
}
func (x *StartWorkspaceSpec) GetClass() string {
if x != nil {
return x.Class
}
return ""
}
func (x *StartWorkspaceSpec) GetVolumeSnapshot() *VolumeSnapshotInfo {
if x != nil {
return x.VolumeSnapshot
}
return nil
}
func (x *StartWorkspaceSpec) GetSshPublicKeys() []string {
if x != nil {
return x.SshPublicKeys
}
return nil
}
// GitSpec configures the Git available within the workspace
type GitSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The Git username
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
// The Git email address
Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
}
func (x *GitSpec) Reset() {
*x = GitSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GitSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GitSpec) ProtoMessage() {}
func (x *GitSpec) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GitSpec.ProtoReflect.Descriptor instead.
func (*GitSpec) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{37}
}
func (x *GitSpec) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *GitSpec) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
// EnvironmentVariable describes an env var as key/value pair
type EnvironmentVariable struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
// Pulls the value from a secret in the cluster.
// Use this field with great caution: if the name is wrong or Kubernetes cannot find the secret,
// your workspace will not start. Value takes precedence over this field.
Secret *EnvironmentVariable_SecretKeyRef `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"`
}
func (x *EnvironmentVariable) Reset() {
*x = EnvironmentVariable{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EnvironmentVariable) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EnvironmentVariable) ProtoMessage() {}
func (x *EnvironmentVariable) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EnvironmentVariable.ProtoReflect.Descriptor instead.
func (*EnvironmentVariable) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{38}
}
func (x *EnvironmentVariable) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *EnvironmentVariable) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
func (x *EnvironmentVariable) GetSecret() *EnvironmentVariable_SecretKeyRef {
if x != nil {
return x.Secret
}
return nil
}
// ExposedPorts describes the exposed ports of a workspace
type ExposedPorts struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// ports is the set of ports which ought to be exposed to the internet
Ports []*PortSpec `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"`
}
func (x *ExposedPorts) Reset() {
*x = ExposedPorts{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExposedPorts) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExposedPorts) ProtoMessage() {}
func (x *ExposedPorts) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExposedPorts.ProtoReflect.Descriptor instead.
func (*ExposedPorts) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{39}
}
func (x *ExposedPorts) GetPorts() []*PortSpec {
if x != nil {
return x.Ports
}
return nil
}
// SSHPublicKeys describes the user's uploaded ssh public keys, it will be used only in annotations.
type SSHPublicKeys struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// keys is the set of ssh public key
Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
}
func (x *SSHPublicKeys) Reset() {
*x = SSHPublicKeys{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SSHPublicKeys) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SSHPublicKeys) ProtoMessage() {}
func (x *SSHPublicKeys) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SSHPublicKeys.ProtoReflect.Descriptor instead.
func (*SSHPublicKeys) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{40}
}
func (x *SSHPublicKeys) GetKeys() []string {
if x != nil {
return x.Keys
}
return nil
}
// DescribeClusterRequest requests information about the cluster
type DescribeClusterRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *DescribeClusterRequest) Reset() {
*x = DescribeClusterRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DescribeClusterRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DescribeClusterRequest) ProtoMessage() {}
func (x *DescribeClusterRequest) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DescribeClusterRequest.ProtoReflect.Descriptor instead.
func (*DescribeClusterRequest) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{41}
}
// DescribeClusterResponse is the answer to a DescribeClusterRequest
type DescribeClusterResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// workspace classes that are supported by the cluster
WorkspaceClasses []*WorkspaceClass `protobuf:"bytes,1,rep,name=WorkspaceClasses,proto3" json:"WorkspaceClasses,omitempty"`
}
func (x *DescribeClusterResponse) Reset() {
*x = DescribeClusterResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DescribeClusterResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DescribeClusterResponse) ProtoMessage() {}
func (x *DescribeClusterResponse) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DescribeClusterResponse.ProtoReflect.Descriptor instead.
func (*DescribeClusterResponse) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{42}
}
func (x *DescribeClusterResponse) GetWorkspaceClasses() []*WorkspaceClass {
if x != nil {
return x.WorkspaceClasses
}
return nil
}
// WorkspaceClass describes a workspace class that is supported by the cluster
type WorkspaceClass struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"`
DisplayName string `protobuf:"bytes,2,opt,name=DisplayName,proto3" json:"DisplayName,omitempty"`
}
func (x *WorkspaceClass) Reset() {
*x = WorkspaceClass{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkspaceClass) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkspaceClass) ProtoMessage() {}
func (x *WorkspaceClass) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use WorkspaceClass.ProtoReflect.Descriptor instead.
func (*WorkspaceClass) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{43}
}
func (x *WorkspaceClass) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *WorkspaceClass) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
type EnvironmentVariable_SecretKeyRef struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SecretName string `protobuf:"bytes,1,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"`
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
}
func (x *EnvironmentVariable_SecretKeyRef) Reset() {
*x = EnvironmentVariable_SecretKeyRef{}
if protoimpl.UnsafeEnabled {
mi := &file_core_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EnvironmentVariable_SecretKeyRef) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EnvironmentVariable_SecretKeyRef) ProtoMessage() {}
func (x *EnvironmentVariable_SecretKeyRef) ProtoReflect() protoreflect.Message {
mi := &file_core_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EnvironmentVariable_SecretKeyRef.ProtoReflect.Descriptor instead.
func (*EnvironmentVariable_SecretKeyRef) Descriptor() ([]byte, []int) {
return file_core_proto_rawDescGZIP(), []int{38, 0}
}
func (x *EnvironmentVariable_SecretKeyRef) GetSecretName() string {
if x != nil {
return x.SecretName
}
return ""
}
func (x *EnvironmentVariable_SecretKeyRef) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
var File_core_proto protoreflect.FileDescriptor
var file_core_proto_rawDesc = []byte{
0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x77, 0x73,
0x6d, 0x61, 0x6e, 0x1a, 0x25, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
0x69, 0x7a, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc9, 0x01, 0x0a, 0x0e,
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14,
0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,
0x77, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x61, 0x49, 0x64, 0x12, 0x48, 0x0a,
0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x26, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64,
0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x34, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x74,
0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e,
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe3,
0x01, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63,
0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12,
0x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,
0x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72,
0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04,
0x73, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,
0x28, 0x0e, 0x32, 0x14, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04,
0x08, 0x05, 0x10, 0x06, 0x22, 0x4b, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10,
0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,
0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65,
0x6e, 0x22, 0x5a, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x6f, 0x6c,
0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61,
0x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50,
0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x17, 0x0a,
0x15, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,
0x62, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x22, 0x6f, 0x0a, 0x19, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x57, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x16, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63,
0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76,
0x69, 0x74, 0x79, 0x22, 0x48, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x74, 0x5f,
0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x73,
0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xc2, 0x01,
0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x73,
0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65,
0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
0x72, 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x02,
0x10, 0x03, 0x22, 0x3b, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x22,
0x14, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x54, 0x69, 0x6d,
0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x12,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x70,
0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,
0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22,
0x15, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x13, 0x54, 0x61, 0x6b, 0x65, 0x53, 0x6e,
0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a,
0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a,
0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74,
0x65, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x74, 0x75, 0x72,
0x6e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x22, 0x28, 0x0a, 0x14,
0x54, 0x61, 0x6b, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x56, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
0x64, 0x12, 0x2b, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x1a,
0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x73, 0x0a, 0x1b, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x6c,
0x75, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1f,
0x0a, 0x0b, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x22,
0x3f, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53,
0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x61, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64,
0x22, 0x28, 0x0a, 0x16, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,
0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17, 0x42, 0x61,
0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x39, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65,
0x79, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b,
0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x03, 0x0a, 0x0f, 0x57,
0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e,
0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25,
0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x65,
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,
0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x04, 0x73,
0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x73, 0x6d, 0x61,
0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52,
0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, 0x61,
0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57,
0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x73, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18,
0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,
0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d,
0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x32,
0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x77,
0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x75,
0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x61, 0x75,
0x74, 0x68, 0x22, 0x6b, 0x0a, 0x08, 0x49, 0x44, 0x45, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17,
0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x77, 0x65, 0x62, 0x52, 0x65, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x6b, 0x74,
0x6f, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65,
0x73, 0x6b, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x66, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x70, 0x65,
0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0d, 0x73, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x22,
0xd6, 0x02, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65,
0x63, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69,
0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65,
0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x61,
0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,
0x61, 0x74, 0x65, 0x64, 0x49, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08,
0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x78,
0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70,
0x65, 0x63, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73,
0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14,
0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65,
0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69,
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d,
0x65, 0x6f, 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x09, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67,
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,
0x49, 0x44, 0x45, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x08, 0x69, 0x64, 0x65, 0x49, 0x6d, 0x61,
0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x6d, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74,
0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69,
0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77,
0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x79, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
0x6c, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x7c, 0x0a, 0x12, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a,
0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x6f, 0x6c,
0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12,
0x34, 0x0a, 0x16, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,
0x6f, 0x74, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48,
0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x97, 0x05, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,
0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a,
0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66,
0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
0x44, 0x0a, 0x0e, 0x70, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65,
0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,
0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x0d, 0x70, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49,
0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,
0x74, 0x12, 0x51, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75,
0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52,
0x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6f, 0x6d, 0x70,
0x6c, 0x65, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64,
0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57,
0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x12,
0x49, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72,
0x65, 0x61, 0x64, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d,
0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f,
0x72, 0x6b, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x4a, 0x0a, 0x13, 0x66, 0x69,
0x72, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63,
0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65,
0x73, 0x73, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0a,
0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x61,
0x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x74, 0x6f, 0x70,
0x70, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0b,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42,
0x6f, 0x6f, 0x6c, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x42, 0x79, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f,
0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61,
0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22,
0xd7, 0x02, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x6d,
0x65, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65,
0x74, 0x61, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f,
0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
0x4b, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41,
0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x04,
0x74, 0x65, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65,
0x61, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x88, 0x01, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x42, 0x0a, 0x0a,
0x08, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x67, 0x0a, 0x14, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66,
0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19,
0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64,
0x65, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65,
0x49, 0x70, 0x22, 0x6f, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41,
0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a,
0x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f,
0x6b, 0x65, 0x6e, 0x22, 0xac, 0x05, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d,
0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
0x64, 0x5f, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x12, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x49, 0x64, 0x65,
0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x77,
0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x46, 0x65,
0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75,
0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69,
0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63,
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a,
0x65, 0x72, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x12,
0x25, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f,
0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52,
0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x6e, 0x76, 0x76, 0x61, 0x72,
0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,
0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61,
0x62, 0x6c, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x76, 0x76, 0x61, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12,
0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70,
0x61, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x03, 0x67,
0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,
0x2e, 0x47, 0x69, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x03, 0x67, 0x69, 0x74, 0x12, 0x18, 0x0a,
0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d,
0x61, 0x6e, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65,
0x6c, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x09,
0x69, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x49, 0x44, 0x45, 0x49, 0x6d, 0x61, 0x67, 0x65,
0x52, 0x08, 0x69, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c,
0x61, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73,
0x12, 0x42, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73,
0x68, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x73, 0x6d, 0x61,
0x6e, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70,
0x73, 0x68, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x73, 0x68, 0x5f, 0x70, 0x75, 0x62, 0x6c,
0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73,
0x73, 0x68, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x4a, 0x04, 0x08, 0x07,
0x10, 0x08, 0x22, 0x3b, 0x0a, 0x07, 0x47, 0x69, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a,
0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61,
0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22,
0xc3, 0x01, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56,
0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x27, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f,
0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x53, 0x65,
0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72,
0x65, 0x74, 0x1a, 0x41, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52,
0x65, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e,
0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x35, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64,
0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72,
0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0x23, 0x0a, 0x0d,
0x53, 0x53, 0x48, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a,
0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79,
0x73, 0x22, 0x18, 0x0a, 0x16, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75,
0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5c, 0x0a, 0x17, 0x44,
0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,
0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x0e, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x44,
0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0x34, 0x0a,
0x13, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x6f,
0x6c, 0x69, 0x63, 0x79, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x4c, 0x59,
0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x4c,
0x59, 0x10, 0x01, 0x2a, 0x3a, 0x0a, 0x0e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x44, 0x4d, 0x49, 0x54, 0x5f, 0x4f,
0x57, 0x4e, 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x41,
0x44, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x52, 0x59, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x2a,
0x49, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74,
0x79, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49,
0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x1a,
0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54,
0x59, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x2a, 0x38, 0x0a, 0x16, 0x57, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x00, 0x12,
0x08, 0x0a, 0x04, 0x54, 0x52, 0x55, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x50,
0x54, 0x59, 0x10, 0x02, 0x2a, 0x83, 0x01, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,
0x63, 0x65, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10,
0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12,
0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10,
0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0f,
0x0a, 0x0b, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12,
0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0b, 0x0a,
0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x85, 0x01, 0x0a, 0x14, 0x57,
0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46,
0x6c, 0x61, 0x67, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4f, 0x50, 0x10, 0x00, 0x12, 0x19, 0x0a,
0x15, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f,
0x42, 0x41, 0x43, 0x4b, 0x55, 0x50, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x49, 0x58, 0x45,
0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x53, 0x10, 0x05, 0x12, 0x1b, 0x0a,
0x17, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x4f, 0x4c, 0x55,
0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x10, 0x07, 0x22, 0x04, 0x08, 0x01, 0x10, 0x01,
0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x22, 0x04, 0x08, 0x06,
0x10, 0x06, 0x2a, 0x4b, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x00,
0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x09,
0x0a, 0x05, 0x50, 0x52, 0x4f, 0x42, 0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41,
0x47, 0x45, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x04, 0x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x32,
0xe7, 0x08, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x47, 0x65,
0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74, 0x61,
0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73,
0x70, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74, 0x6f,
0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x1c, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f,
0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0x00, 0x12, 0x58, 0x0a, 0x11, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x44,
0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,
0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63,
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x42,
0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1d,
0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72,
0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e,
0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b,
0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
0x42, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x17, 0x2e, 0x77,
0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x75,
0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
0x00, 0x30, 0x01, 0x12, 0x43, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76,
0x65, 0x12, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63,
0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x77, 0x73,
0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x54,
0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53,
0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x19, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a,
0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x2e, 0x77,
0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x54, 0x61, 0x6b, 0x65, 0x53, 0x6e, 0x61,
0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x54, 0x61,
0x6b, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x54, 0x61, 0x6b, 0x65, 0x53, 0x6e,
0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
0x12, 0x55, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12,
0x22, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f,
0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65,
0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x2e, 0x77, 0x73, 0x6d,
0x61, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62,
0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,
0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,
0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2d, 0x69,
0x6f, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2f, 0x77, 0x73, 0x2d, 0x6d, 0x61, 0x6e, 0x61,
0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_core_proto_rawDescOnce sync.Once
file_core_proto_rawDescData = file_core_proto_rawDesc
)
func file_core_proto_rawDescGZIP() []byte {
file_core_proto_rawDescOnce.Do(func() {
file_core_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_proto_rawDescData)
})
return file_core_proto_rawDescData
}
var file_core_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
var file_core_proto_msgTypes = make([]protoimpl.MessageInfo, 48)
var file_core_proto_goTypes = []interface{}{
(StopWorkspacePolicy)(0), // 0: wsman.StopWorkspacePolicy
(AdmissionLevel)(0), // 1: wsman.AdmissionLevel
(PortVisibility)(0), // 2: wsman.PortVisibility
(WorkspaceConditionBool)(0), // 3: wsman.WorkspaceConditionBool
(WorkspacePhase)(0), // 4: wsman.WorkspacePhase
(WorkspaceFeatureFlag)(0), // 5: wsman.WorkspaceFeatureFlag
(WorkspaceType)(0), // 6: wsman.WorkspaceType
(*MetadataFilter)(nil), // 7: wsman.MetadataFilter
(*GetWorkspacesRequest)(nil), // 8: wsman.GetWorkspacesRequest
(*GetWorkspacesResponse)(nil), // 9: wsman.GetWorkspacesResponse
(*StartWorkspaceRequest)(nil), // 10: wsman.StartWorkspaceRequest
(*StartWorkspaceResponse)(nil), // 11: wsman.StartWorkspaceResponse
(*StopWorkspaceRequest)(nil), // 12: wsman.StopWorkspaceRequest
(*StopWorkspaceResponse)(nil), // 13: wsman.StopWorkspaceResponse
(*DescribeWorkspaceRequest)(nil), // 14: wsman.DescribeWorkspaceRequest
(*DescribeWorkspaceResponse)(nil), // 15: wsman.DescribeWorkspaceResponse
(*SubscribeRequest)(nil), // 16: wsman.SubscribeRequest
(*SubscribeResponse)(nil), // 17: wsman.SubscribeResponse
(*MarkActiveRequest)(nil), // 18: wsman.MarkActiveRequest
(*MarkActiveResponse)(nil), // 19: wsman.MarkActiveResponse
(*SetTimeoutRequest)(nil), // 20: wsman.SetTimeoutRequest
(*SetTimeoutResponse)(nil), // 21: wsman.SetTimeoutResponse
(*ControlPortRequest)(nil), // 22: wsman.ControlPortRequest
(*ControlPortResponse)(nil), // 23: wsman.ControlPortResponse
(*TakeSnapshotRequest)(nil), // 24: wsman.TakeSnapshotRequest
(*TakeSnapshotResponse)(nil), // 25: wsman.TakeSnapshotResponse
(*ControlAdmissionRequest)(nil), // 26: wsman.ControlAdmissionRequest
(*ControlAdmissionResponse)(nil), // 27: wsman.ControlAdmissionResponse
(*DeleteVolumeSnapshotRequest)(nil), // 28: wsman.DeleteVolumeSnapshotRequest
(*DeleteVolumeSnapshotResponse)(nil), // 29: wsman.DeleteVolumeSnapshotResponse
(*BackupWorkspaceRequest)(nil), // 30: wsman.BackupWorkspaceRequest
(*BackupWorkspaceResponse)(nil), // 31: wsman.BackupWorkspaceResponse
(*UpdateSSHKeyRequest)(nil), // 32: wsman.UpdateSSHKeyRequest
(*UpdateSSHKeyResponse)(nil), // 33: wsman.UpdateSSHKeyResponse
(*WorkspaceStatus)(nil), // 34: wsman.WorkspaceStatus
(*IDEImage)(nil), // 35: wsman.IDEImage
(*WorkspaceSpec)(nil), // 36: wsman.WorkspaceSpec
(*PortSpec)(nil), // 37: wsman.PortSpec
(*VolumeSnapshotInfo)(nil), // 38: wsman.VolumeSnapshotInfo
(*WorkspaceConditions)(nil), // 39: wsman.WorkspaceConditions
(*WorkspaceMetadata)(nil), // 40: wsman.WorkspaceMetadata
(*WorkspaceRuntimeInfo)(nil), // 41: wsman.WorkspaceRuntimeInfo
(*WorkspaceAuthentication)(nil), // 42: wsman.WorkspaceAuthentication
(*StartWorkspaceSpec)(nil), // 43: wsman.StartWorkspaceSpec
(*GitSpec)(nil), // 44: wsman.GitSpec
(*EnvironmentVariable)(nil), // 45: wsman.EnvironmentVariable
(*ExposedPorts)(nil), // 46: wsman.ExposedPorts
(*SSHPublicKeys)(nil), // 47: wsman.SSHPublicKeys
(*DescribeClusterRequest)(nil), // 48: wsman.DescribeClusterRequest
(*DescribeClusterResponse)(nil), // 49: wsman.DescribeClusterResponse
(*WorkspaceClass)(nil), // 50: wsman.WorkspaceClass
nil, // 51: wsman.MetadataFilter.AnnotationsEntry
nil, // 52: wsman.SubscribeResponse.HeaderEntry
nil, // 53: wsman.WorkspaceMetadata.AnnotationsEntry
(*EnvironmentVariable_SecretKeyRef)(nil), // 54: wsman.EnvironmentVariable.SecretKeyRef
(*api.GitStatus)(nil), // 55: contentservice.GitStatus
(*timestamppb.Timestamp)(nil), // 56: google.protobuf.Timestamp
(*api.WorkspaceInitializer)(nil), // 57: contentservice.WorkspaceInitializer
}
var file_core_proto_depIdxs = []int32{
51, // 0: wsman.MetadataFilter.annotations:type_name -> wsman.MetadataFilter.AnnotationsEntry
7, // 1: wsman.GetWorkspacesRequest.must_match:type_name -> wsman.MetadataFilter
34, // 2: wsman.GetWorkspacesResponse.status:type_name -> wsman.WorkspaceStatus
40, // 3: wsman.StartWorkspaceRequest.metadata:type_name -> wsman.WorkspaceMetadata
43, // 4: wsman.StartWorkspaceRequest.spec:type_name -> wsman.StartWorkspaceSpec
6, // 5: wsman.StartWorkspaceRequest.type:type_name -> wsman.WorkspaceType
0, // 6: wsman.StopWorkspaceRequest.policy:type_name -> wsman.StopWorkspacePolicy
34, // 7: wsman.DescribeWorkspaceResponse.status:type_name -> wsman.WorkspaceStatus
7, // 8: wsman.SubscribeRequest.must_match:type_name -> wsman.MetadataFilter
34, // 9: wsman.SubscribeResponse.status:type_name -> wsman.WorkspaceStatus
52, // 10: wsman.SubscribeResponse.header:type_name -> wsman.SubscribeResponse.HeaderEntry
37, // 11: wsman.ControlPortRequest.spec:type_name -> wsman.PortSpec
1, // 12: wsman.ControlAdmissionRequest.level:type_name -> wsman.AdmissionLevel
40, // 13: wsman.WorkspaceStatus.metadata:type_name -> wsman.WorkspaceMetadata
36, // 14: wsman.WorkspaceStatus.spec:type_name -> wsman.WorkspaceSpec
4, // 15: wsman.WorkspaceStatus.phase:type_name -> wsman.WorkspacePhase
39, // 16: wsman.WorkspaceStatus.conditions:type_name -> wsman.WorkspaceConditions
55, // 17: wsman.WorkspaceStatus.repo:type_name -> contentservice.GitStatus
41, // 18: wsman.WorkspaceStatus.runtime:type_name -> wsman.WorkspaceRuntimeInfo
42, // 19: wsman.WorkspaceStatus.auth:type_name -> wsman.WorkspaceAuthentication
37, // 20: wsman.WorkspaceSpec.exposed_ports:type_name -> wsman.PortSpec
6, // 21: wsman.WorkspaceSpec.type:type_name -> wsman.WorkspaceType
35, // 22: wsman.WorkspaceSpec.ide_image:type_name -> wsman.IDEImage
2, // 23: wsman.PortSpec.visibility:type_name -> wsman.PortVisibility
3, // 24: wsman.WorkspaceConditions.pulling_images:type_name -> wsman.WorkspaceConditionBool
3, // 25: wsman.WorkspaceConditions.final_backup_complete:type_name -> wsman.WorkspaceConditionBool
3, // 26: wsman.WorkspaceConditions.deployed:type_name -> wsman.WorkspaceConditionBool
3, // 27: wsman.WorkspaceConditions.network_not_ready:type_name -> wsman.WorkspaceConditionBool
56, // 28: wsman.WorkspaceConditions.first_user_activity:type_name -> google.protobuf.Timestamp
3, // 29: wsman.WorkspaceConditions.stopped_by_request:type_name -> wsman.WorkspaceConditionBool
38, // 30: wsman.WorkspaceConditions.volume_snapshot:type_name -> wsman.VolumeSnapshotInfo
56, // 31: wsman.WorkspaceMetadata.started_at:type_name -> google.protobuf.Timestamp
53, // 32: wsman.WorkspaceMetadata.annotations:type_name -> wsman.WorkspaceMetadata.AnnotationsEntry
1, // 33: wsman.WorkspaceAuthentication.admission:type_name -> wsman.AdmissionLevel
5, // 34: wsman.StartWorkspaceSpec.feature_flags:type_name -> wsman.WorkspaceFeatureFlag
57, // 35: wsman.StartWorkspaceSpec.initializer:type_name -> contentservice.WorkspaceInitializer
37, // 36: wsman.StartWorkspaceSpec.ports:type_name -> wsman.PortSpec
45, // 37: wsman.StartWorkspaceSpec.envvars:type_name -> wsman.EnvironmentVariable
44, // 38: wsman.StartWorkspaceSpec.git:type_name -> wsman.GitSpec
1, // 39: wsman.StartWorkspaceSpec.admission:type_name -> wsman.AdmissionLevel
35, // 40: wsman.StartWorkspaceSpec.ide_image:type_name -> wsman.IDEImage
38, // 41: wsman.StartWorkspaceSpec.volume_snapshot:type_name -> wsman.VolumeSnapshotInfo
54, // 42: wsman.EnvironmentVariable.secret:type_name -> wsman.EnvironmentVariable.SecretKeyRef
37, // 43: wsman.ExposedPorts.ports:type_name -> wsman.PortSpec
50, // 44: wsman.DescribeClusterResponse.WorkspaceClasses:type_name -> wsman.WorkspaceClass
8, // 45: wsman.WorkspaceManager.GetWorkspaces:input_type -> wsman.GetWorkspacesRequest
10, // 46: wsman.WorkspaceManager.StartWorkspace:input_type -> wsman.StartWorkspaceRequest
12, // 47: wsman.WorkspaceManager.StopWorkspace:input_type -> wsman.StopWorkspaceRequest
14, // 48: wsman.WorkspaceManager.DescribeWorkspace:input_type -> wsman.DescribeWorkspaceRequest
30, // 49: wsman.WorkspaceManager.BackupWorkspace:input_type -> wsman.BackupWorkspaceRequest
16, // 50: wsman.WorkspaceManager.Subscribe:input_type -> wsman.SubscribeRequest
18, // 51: wsman.WorkspaceManager.MarkActive:input_type -> wsman.MarkActiveRequest
20, // 52: wsman.WorkspaceManager.SetTimeout:input_type -> wsman.SetTimeoutRequest
22, // 53: wsman.WorkspaceManager.ControlPort:input_type -> wsman.ControlPortRequest
24, // 54: wsman.WorkspaceManager.TakeSnapshot:input_type -> wsman.TakeSnapshotRequest
26, // 55: wsman.WorkspaceManager.ControlAdmission:input_type -> wsman.ControlAdmissionRequest
28, // 56: wsman.WorkspaceManager.DeleteVolumeSnapshot:input_type -> wsman.DeleteVolumeSnapshotRequest
32, // 57: wsman.WorkspaceManager.UpdateSSHKey:input_type -> wsman.UpdateSSHKeyRequest
48, // 58: wsman.WorkspaceManager.DescribeCluster:input_type -> wsman.DescribeClusterRequest
9, // 59: wsman.WorkspaceManager.GetWorkspaces:output_type -> wsman.GetWorkspacesResponse
11, // 60: wsman.WorkspaceManager.StartWorkspace:output_type -> wsman.StartWorkspaceResponse
13, // 61: wsman.WorkspaceManager.StopWorkspace:output_type -> wsman.StopWorkspaceResponse
15, // 62: wsman.WorkspaceManager.DescribeWorkspace:output_type -> wsman.DescribeWorkspaceResponse
31, // 63: wsman.WorkspaceManager.BackupWorkspace:output_type -> wsman.BackupWorkspaceResponse
17, // 64: wsman.WorkspaceManager.Subscribe:output_type -> wsman.SubscribeResponse
19, // 65: wsman.WorkspaceManager.MarkActive:output_type -> wsman.MarkActiveResponse
21, // 66: wsman.WorkspaceManager.SetTimeout:output_type -> wsman.SetTimeoutResponse
23, // 67: wsman.WorkspaceManager.ControlPort:output_type -> wsman.ControlPortResponse
25, // 68: wsman.WorkspaceManager.TakeSnapshot:output_type -> wsman.TakeSnapshotResponse
27, // 69: wsman.WorkspaceManager.ControlAdmission:output_type -> wsman.ControlAdmissionResponse
29, // 70: wsman.WorkspaceManager.DeleteVolumeSnapshot:output_type -> wsman.DeleteVolumeSnapshotResponse
33, // 71: wsman.WorkspaceManager.UpdateSSHKey:output_type -> wsman.UpdateSSHKeyResponse
49, // 72: wsman.WorkspaceManager.DescribeCluster:output_type -> wsman.DescribeClusterResponse
59, // [59:73] is the sub-list for method output_type
45, // [45:59] is the sub-list for method input_type
45, // [45:45] is the sub-list for extension type_name
45, // [45:45] is the sub-list for extension extendee
0, // [0:45] is the sub-list for field type_name
}
func init() { file_core_proto_init() }
func file_core_proto_init() {
if File_core_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_core_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MetadataFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetWorkspacesRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetWorkspacesResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartWorkspaceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartWorkspaceResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StopWorkspaceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StopWorkspaceResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DescribeWorkspaceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DescribeWorkspaceResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubscribeRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SubscribeResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MarkActiveRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MarkActiveResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetTimeoutRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetTimeoutResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ControlPortRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ControlPortResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TakeSnapshotRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TakeSnapshotResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ControlAdmissionRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ControlAdmissionResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteVolumeSnapshotRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteVolumeSnapshotResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackupWorkspaceRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BackupWorkspaceResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateSSHKeyRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateSSHKeyResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkspaceStatus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*IDEImage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkspaceSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PortSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VolumeSnapshotInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkspaceConditions); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkspaceMetadata); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkspaceRuntimeInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkspaceAuthentication); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StartWorkspaceSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GitSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EnvironmentVariable); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExposedPorts); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SSHPublicKeys); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DescribeClusterRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DescribeClusterResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkspaceClass); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_core_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EnvironmentVariable_SecretKeyRef); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_core_proto_msgTypes[33].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_core_proto_rawDesc,
NumEnums: 7,
NumMessages: 48,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_core_proto_goTypes,
DependencyIndexes: file_core_proto_depIdxs,
EnumInfos: file_core_proto_enumTypes,
MessageInfos: file_core_proto_msgTypes,
}.Build()
File_core_proto = out.File
file_core_proto_rawDesc = nil
file_core_proto_goTypes = nil
file_core_proto_depIdxs = nil
}