Path: blob/main/components/ws-manager-api/go/core.pb.go
2498 views
// Copyright (c) 2025 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34// Code generated by protoc-gen-go. DO NOT EDIT.5// versions:6// protoc-gen-go v1.28.17// protoc v3.20.18// source: core.proto910package api1112import (13api "github.com/gitpod-io/gitpod/content-service/api"14protoreflect "google.golang.org/protobuf/reflect/protoreflect"15protoimpl "google.golang.org/protobuf/runtime/protoimpl"16durationpb "google.golang.org/protobuf/types/known/durationpb"17timestamppb "google.golang.org/protobuf/types/known/timestamppb"18reflect "reflect"19sync "sync"20)2122const (23// Verify that this generated code is sufficiently up-to-date.24_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)25// Verify that runtime/protoimpl is sufficiently up-to-date.26_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)27)2829type StopWorkspacePolicy int323031const (32StopWorkspacePolicy_NORMALLY StopWorkspacePolicy = 033StopWorkspacePolicy_IMMEDIATELY StopWorkspacePolicy = 134StopWorkspacePolicy_ABORT StopWorkspacePolicy = 235)3637// Enum value maps for StopWorkspacePolicy.38var (39StopWorkspacePolicy_name = map[int32]string{400: "NORMALLY",411: "IMMEDIATELY",422: "ABORT",43}44StopWorkspacePolicy_value = map[string]int32{45"NORMALLY": 0,46"IMMEDIATELY": 1,47"ABORT": 2,48}49)5051func (x StopWorkspacePolicy) Enum() *StopWorkspacePolicy {52p := new(StopWorkspacePolicy)53*p = x54return p55}5657func (x StopWorkspacePolicy) String() string {58return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))59}6061func (StopWorkspacePolicy) Descriptor() protoreflect.EnumDescriptor {62return file_core_proto_enumTypes[0].Descriptor()63}6465func (StopWorkspacePolicy) Type() protoreflect.EnumType {66return &file_core_proto_enumTypes[0]67}6869func (x StopWorkspacePolicy) Number() protoreflect.EnumNumber {70return protoreflect.EnumNumber(x)71}7273// Deprecated: Use StopWorkspacePolicy.Descriptor instead.74func (StopWorkspacePolicy) EnumDescriptor() ([]byte, []int) {75return file_core_proto_rawDescGZIP(), []int{0}76}7778type TimeoutType int327980const (81TimeoutType_WORKSPACE_TIMEOUT TimeoutType = 082TimeoutType_CLOSED_TIMEOUT TimeoutType = 183)8485// Enum value maps for TimeoutType.86var (87TimeoutType_name = map[int32]string{880: "WORKSPACE_TIMEOUT",891: "CLOSED_TIMEOUT",90}91TimeoutType_value = map[string]int32{92"WORKSPACE_TIMEOUT": 0,93"CLOSED_TIMEOUT": 1,94}95)9697func (x TimeoutType) Enum() *TimeoutType {98p := new(TimeoutType)99*p = x100return p101}102103func (x TimeoutType) String() string {104return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))105}106107func (TimeoutType) Descriptor() protoreflect.EnumDescriptor {108return file_core_proto_enumTypes[1].Descriptor()109}110111func (TimeoutType) Type() protoreflect.EnumType {112return &file_core_proto_enumTypes[1]113}114115func (x TimeoutType) Number() protoreflect.EnumNumber {116return protoreflect.EnumNumber(x)117}118119// Deprecated: Use TimeoutType.Descriptor instead.120func (TimeoutType) EnumDescriptor() ([]byte, []int) {121return file_core_proto_rawDescGZIP(), []int{1}122}123124type AdmissionLevel int32125126const (127// WORKSPACE_ADMIT_OWNER_ONLY means the workspace can only be accessed using the owner token128AdmissionLevel_ADMIT_OWNER_ONLY AdmissionLevel = 0129// WORKSPACE_ADMIT_EVERYONE means the workspace (including ports) can be accessed by everyone.130AdmissionLevel_ADMIT_EVERYONE AdmissionLevel = 1131)132133// Enum value maps for AdmissionLevel.134var (135AdmissionLevel_name = map[int32]string{1360: "ADMIT_OWNER_ONLY",1371: "ADMIT_EVERYONE",138}139AdmissionLevel_value = map[string]int32{140"ADMIT_OWNER_ONLY": 0,141"ADMIT_EVERYONE": 1,142}143)144145func (x AdmissionLevel) Enum() *AdmissionLevel {146p := new(AdmissionLevel)147*p = x148return p149}150151func (x AdmissionLevel) String() string {152return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))153}154155func (AdmissionLevel) Descriptor() protoreflect.EnumDescriptor {156return file_core_proto_enumTypes[2].Descriptor()157}158159func (AdmissionLevel) Type() protoreflect.EnumType {160return &file_core_proto_enumTypes[2]161}162163func (x AdmissionLevel) Number() protoreflect.EnumNumber {164return protoreflect.EnumNumber(x)165}166167// Deprecated: Use AdmissionLevel.Descriptor instead.168func (AdmissionLevel) EnumDescriptor() ([]byte, []int) {169return file_core_proto_rawDescGZIP(), []int{2}170}171172// PortVisibility defines who may access a workspace port which is guarded by an authentication in the proxy173type PortVisibility int32174175const (176// private (default) means the port is accessible by the workspace owner only, unless the workspace's admission is177// set to everyone.178PortVisibility_PORT_VISIBILITY_PRIVATE PortVisibility = 0179// public means the port is accessible by everybody using the workspace port URL180PortVisibility_PORT_VISIBILITY_PUBLIC PortVisibility = 1181)182183// Enum value maps for PortVisibility.184var (185PortVisibility_name = map[int32]string{1860: "PORT_VISIBILITY_PRIVATE",1871: "PORT_VISIBILITY_PUBLIC",188}189PortVisibility_value = map[string]int32{190"PORT_VISIBILITY_PRIVATE": 0,191"PORT_VISIBILITY_PUBLIC": 1,192}193)194195func (x PortVisibility) Enum() *PortVisibility {196p := new(PortVisibility)197*p = x198return p199}200201func (x PortVisibility) String() string {202return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))203}204205func (PortVisibility) Descriptor() protoreflect.EnumDescriptor {206return file_core_proto_enumTypes[3].Descriptor()207}208209func (PortVisibility) Type() protoreflect.EnumType {210return &file_core_proto_enumTypes[3]211}212213func (x PortVisibility) Number() protoreflect.EnumNumber {214return protoreflect.EnumNumber(x)215}216217// Deprecated: Use PortVisibility.Descriptor instead.218func (PortVisibility) EnumDescriptor() ([]byte, []int) {219return file_core_proto_rawDescGZIP(), []int{3}220}221222// PortProtocol defines the workspace port protocol223type PortProtocol int32224225const (226// http means workspace port protocol is http227PortProtocol_PORT_PROTOCOL_HTTP PortProtocol = 0228// https means workspace port protocol is https229PortProtocol_PORT_PROTOCOL_HTTPS PortProtocol = 1230)231232// Enum value maps for PortProtocol.233var (234PortProtocol_name = map[int32]string{2350: "PORT_PROTOCOL_HTTP",2361: "PORT_PROTOCOL_HTTPS",237}238PortProtocol_value = map[string]int32{239"PORT_PROTOCOL_HTTP": 0,240"PORT_PROTOCOL_HTTPS": 1,241}242)243244func (x PortProtocol) Enum() *PortProtocol {245p := new(PortProtocol)246*p = x247return p248}249250func (x PortProtocol) String() string {251return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))252}253254func (PortProtocol) Descriptor() protoreflect.EnumDescriptor {255return file_core_proto_enumTypes[4].Descriptor()256}257258func (PortProtocol) Type() protoreflect.EnumType {259return &file_core_proto_enumTypes[4]260}261262func (x PortProtocol) Number() protoreflect.EnumNumber {263return protoreflect.EnumNumber(x)264}265266// Deprecated: Use PortProtocol.Descriptor instead.267func (PortProtocol) EnumDescriptor() ([]byte, []int) {268return file_core_proto_rawDescGZIP(), []int{4}269}270271// WorkspaceConditionBool is a trinary bool: true/false/empty272type WorkspaceConditionBool int32273274const (275WorkspaceConditionBool_FALSE WorkspaceConditionBool = 0276WorkspaceConditionBool_TRUE WorkspaceConditionBool = 1277WorkspaceConditionBool_EMPTY WorkspaceConditionBool = 2278)279280// Enum value maps for WorkspaceConditionBool.281var (282WorkspaceConditionBool_name = map[int32]string{2830: "FALSE",2841: "TRUE",2852: "EMPTY",286}287WorkspaceConditionBool_value = map[string]int32{288"FALSE": 0,289"TRUE": 1,290"EMPTY": 2,291}292)293294func (x WorkspaceConditionBool) Enum() *WorkspaceConditionBool {295p := new(WorkspaceConditionBool)296*p = x297return p298}299300func (x WorkspaceConditionBool) String() string {301return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))302}303304func (WorkspaceConditionBool) Descriptor() protoreflect.EnumDescriptor {305return file_core_proto_enumTypes[5].Descriptor()306}307308func (WorkspaceConditionBool) Type() protoreflect.EnumType {309return &file_core_proto_enumTypes[5]310}311312func (x WorkspaceConditionBool) Number() protoreflect.EnumNumber {313return protoreflect.EnumNumber(x)314}315316// Deprecated: Use WorkspaceConditionBool.Descriptor instead.317func (WorkspaceConditionBool) EnumDescriptor() ([]byte, []int) {318return file_core_proto_rawDescGZIP(), []int{5}319}320321// WorkspacePhase is a simple, high-level summary of where the workspace is in its lifecycle.322// The phase is not intended to be a comprehensive rollup of observations of the workspace state,323// nor is it intended to be a comprehensive state machine.324// (based on https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)325type WorkspacePhase int32326327const (328// Unknown indicates an issue within the workspace manager in that it cannot determine the actual phase of329// a workspace. This phase is usually accompanied by an error.330WorkspacePhase_UNKNOWN WorkspacePhase = 0331// Pending means the workspace does not yet consume resources in the cluster, but rather is looking for332// some space within the cluster. If for example the cluster needs to scale up to accomodate the333// workspace, the workspace will be in Pending state until that happened.334WorkspacePhase_PENDING WorkspacePhase = 1335// Creating means the workspace is currently being created. That includes downloading the images required336// to run the workspace over the network. The time spent in this phase varies widely and depends on the current337// network speed, image size and cache states.338WorkspacePhase_CREATING WorkspacePhase = 2339// Initializing is the phase in which the workspace is executing the appropriate workspace initializer (e.g. Git340// clone or backup download). After this phase one can expect the workspace to either be Running or Failed.341WorkspacePhase_INITIALIZING WorkspacePhase = 3342// Running means the workspace is able to actively perform work, either by serving a user through Theia,343// or as a headless workspace.344WorkspacePhase_RUNNING WorkspacePhase = 4345// Interrupted is an exceptional state where the container should be running but is temporarily unavailable.346// When in this state, we expect it to become running or stopping anytime soon.347WorkspacePhase_INTERRUPTED WorkspacePhase = 7348// Stopping means that the workspace is currently shutting down. It could go to stopped every moment.349WorkspacePhase_STOPPING WorkspacePhase = 5350// Stopped means the workspace ended regularly because it was shut down.351WorkspacePhase_STOPPED WorkspacePhase = 6352)353354// Enum value maps for WorkspacePhase.355var (356WorkspacePhase_name = map[int32]string{3570: "UNKNOWN",3581: "PENDING",3592: "CREATING",3603: "INITIALIZING",3614: "RUNNING",3627: "INTERRUPTED",3635: "STOPPING",3646: "STOPPED",365}366WorkspacePhase_value = map[string]int32{367"UNKNOWN": 0,368"PENDING": 1,369"CREATING": 2,370"INITIALIZING": 3,371"RUNNING": 4,372"INTERRUPTED": 7,373"STOPPING": 5,374"STOPPED": 6,375}376)377378func (x WorkspacePhase) Enum() *WorkspacePhase {379p := new(WorkspacePhase)380*p = x381return p382}383384func (x WorkspacePhase) String() string {385return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))386}387388func (WorkspacePhase) Descriptor() protoreflect.EnumDescriptor {389return file_core_proto_enumTypes[6].Descriptor()390}391392func (WorkspacePhase) Type() protoreflect.EnumType {393return &file_core_proto_enumTypes[6]394}395396func (x WorkspacePhase) Number() protoreflect.EnumNumber {397return protoreflect.EnumNumber(x)398}399400// Deprecated: Use WorkspacePhase.Descriptor instead.401func (WorkspacePhase) EnumDescriptor() ([]byte, []int) {402return file_core_proto_rawDescGZIP(), []int{6}403}404405// WorkspaceFeatureFlag enable non-standard behaviour in workspaces406type WorkspaceFeatureFlag int32407408const (409// NOOP feature flag is just here because I don't want privileged to be 0410WorkspaceFeatureFlag_NOOP WorkspaceFeatureFlag = 0411// WORKSPACE_CONNECTION_LIMITING feature flag for enabling network connection rate limiting412WorkspaceFeatureFlag_WORKSPACE_CONNECTION_LIMITING WorkspaceFeatureFlag = 10413// WORKSPACE_PSI feature flag for enabling pressure stall information for workspaces414WorkspaceFeatureFlag_WORKSPACE_PSI WorkspaceFeatureFlag = 11415// SSH_CA feature flag for enabling SSH CA for workspaces416WorkspaceFeatureFlag_SSH_CA WorkspaceFeatureFlag = 12417)418419// Enum value maps for WorkspaceFeatureFlag.420var (421WorkspaceFeatureFlag_name = map[int32]string{4220: "NOOP",42310: "WORKSPACE_CONNECTION_LIMITING",42411: "WORKSPACE_PSI",42512: "SSH_CA",426}427WorkspaceFeatureFlag_value = map[string]int32{428"NOOP": 0,429"WORKSPACE_CONNECTION_LIMITING": 10,430"WORKSPACE_PSI": 11,431"SSH_CA": 12,432}433)434435func (x WorkspaceFeatureFlag) Enum() *WorkspaceFeatureFlag {436p := new(WorkspaceFeatureFlag)437*p = x438return p439}440441func (x WorkspaceFeatureFlag) String() string {442return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))443}444445func (WorkspaceFeatureFlag) Descriptor() protoreflect.EnumDescriptor {446return file_core_proto_enumTypes[7].Descriptor()447}448449func (WorkspaceFeatureFlag) Type() protoreflect.EnumType {450return &file_core_proto_enumTypes[7]451}452453func (x WorkspaceFeatureFlag) Number() protoreflect.EnumNumber {454return protoreflect.EnumNumber(x)455}456457// Deprecated: Use WorkspaceFeatureFlag.Descriptor instead.458func (WorkspaceFeatureFlag) EnumDescriptor() ([]byte, []int) {459return file_core_proto_rawDescGZIP(), []int{7}460}461462// WorkspaceType specifies the purpose/use of a workspace. Different workspace types are handled differently by all parts of the system.463type WorkspaceType int32464465const (466// Regular workspaces are your off-the-mill workspaces intended for users. They are directly user-facing and hence are most important.467WorkspaceType_REGULAR WorkspaceType = 0468// Prebuild workspaces are workspaces used to pre-build the content of other workspaces. They run headless and have no direct user-interaction.469WorkspaceType_PREBUILD WorkspaceType = 1470// Imagebuild workspaces build a workspace, incl. their Gitpod layer. They run headless and have no direct user-interaction.471WorkspaceType_IMAGEBUILD WorkspaceType = 4472)473474// Enum value maps for WorkspaceType.475var (476WorkspaceType_name = map[int32]string{4770: "REGULAR",4781: "PREBUILD",4794: "IMAGEBUILD",480}481WorkspaceType_value = map[string]int32{482"REGULAR": 0,483"PREBUILD": 1,484"IMAGEBUILD": 4,485}486)487488func (x WorkspaceType) Enum() *WorkspaceType {489p := new(WorkspaceType)490*p = x491return p492}493494func (x WorkspaceType) String() string {495return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))496}497498func (WorkspaceType) Descriptor() protoreflect.EnumDescriptor {499return file_core_proto_enumTypes[8].Descriptor()500}501502func (WorkspaceType) Type() protoreflect.EnumType {503return &file_core_proto_enumTypes[8]504}505506func (x WorkspaceType) Number() protoreflect.EnumNumber {507return protoreflect.EnumNumber(x)508}509510// Deprecated: Use WorkspaceType.Descriptor instead.511func (WorkspaceType) EnumDescriptor() ([]byte, []int) {512return file_core_proto_rawDescGZIP(), []int{8}513}514515// MetadataFilter describes conditions for matching a set of workspaces.516// The values of the fields have to match exactly, and set values must match.517type MetadataFilter struct {518state protoimpl.MessageState519sizeCache protoimpl.SizeCache520unknownFields protoimpl.UnknownFields521522// owner is the ID of the Gitpod user to whom we'll bill this workspace and who we consider responsible for its content523Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`524// meta_id is the workspace ID of this currently running workspace instance on the "meta pool" side525MetaId string `protobuf:"bytes,2,opt,name=meta_id,json=metaId,proto3" json:"meta_id,omitempty"`526// annotations must be a subset of the annotations of a workspace's metadata527Annotations 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"`528}529530func (x *MetadataFilter) Reset() {531*x = MetadataFilter{}532if protoimpl.UnsafeEnabled {533mi := &file_core_proto_msgTypes[0]534ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))535ms.StoreMessageInfo(mi)536}537}538539func (x *MetadataFilter) String() string {540return protoimpl.X.MessageStringOf(x)541}542543func (*MetadataFilter) ProtoMessage() {}544545func (x *MetadataFilter) ProtoReflect() protoreflect.Message {546mi := &file_core_proto_msgTypes[0]547if protoimpl.UnsafeEnabled && x != nil {548ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))549if ms.LoadMessageInfo() == nil {550ms.StoreMessageInfo(mi)551}552return ms553}554return mi.MessageOf(x)555}556557// Deprecated: Use MetadataFilter.ProtoReflect.Descriptor instead.558func (*MetadataFilter) Descriptor() ([]byte, []int) {559return file_core_proto_rawDescGZIP(), []int{0}560}561562func (x *MetadataFilter) GetOwner() string {563if x != nil {564return x.Owner565}566return ""567}568569func (x *MetadataFilter) GetMetaId() string {570if x != nil {571return x.MetaId572}573return ""574}575576func (x *MetadataFilter) GetAnnotations() map[string]string {577if x != nil {578return x.Annotations579}580return nil581}582583// GetWorkspacesRequest requests a list of running workspaces584type GetWorkspacesRequest struct {585state protoimpl.MessageState586sizeCache protoimpl.SizeCache587unknownFields protoimpl.UnknownFields588589// MustMatch can specify an exactly matching filter for listing workspaces.590// If not set, or all fields are empty, all workspaces are returned.591MustMatch *MetadataFilter `protobuf:"bytes,1,opt,name=must_match,json=mustMatch,proto3" json:"must_match,omitempty"`592}593594func (x *GetWorkspacesRequest) Reset() {595*x = GetWorkspacesRequest{}596if protoimpl.UnsafeEnabled {597mi := &file_core_proto_msgTypes[1]598ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))599ms.StoreMessageInfo(mi)600}601}602603func (x *GetWorkspacesRequest) String() string {604return protoimpl.X.MessageStringOf(x)605}606607func (*GetWorkspacesRequest) ProtoMessage() {}608609func (x *GetWorkspacesRequest) ProtoReflect() protoreflect.Message {610mi := &file_core_proto_msgTypes[1]611if protoimpl.UnsafeEnabled && x != nil {612ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))613if ms.LoadMessageInfo() == nil {614ms.StoreMessageInfo(mi)615}616return ms617}618return mi.MessageOf(x)619}620621// Deprecated: Use GetWorkspacesRequest.ProtoReflect.Descriptor instead.622func (*GetWorkspacesRequest) Descriptor() ([]byte, []int) {623return file_core_proto_rawDescGZIP(), []int{1}624}625626func (x *GetWorkspacesRequest) GetMustMatch() *MetadataFilter {627if x != nil {628return x.MustMatch629}630return nil631}632633// GetWorkspacesResponse is the response to a get w634type GetWorkspacesResponse struct {635state protoimpl.MessageState636sizeCache protoimpl.SizeCache637unknownFields protoimpl.UnknownFields638639// status are the status of all running workspaces640Status []*WorkspaceStatus `protobuf:"bytes,1,rep,name=status,proto3" json:"status,omitempty"`641}642643func (x *GetWorkspacesResponse) Reset() {644*x = GetWorkspacesResponse{}645if protoimpl.UnsafeEnabled {646mi := &file_core_proto_msgTypes[2]647ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))648ms.StoreMessageInfo(mi)649}650}651652func (x *GetWorkspacesResponse) String() string {653return protoimpl.X.MessageStringOf(x)654}655656func (*GetWorkspacesResponse) ProtoMessage() {}657658func (x *GetWorkspacesResponse) ProtoReflect() protoreflect.Message {659mi := &file_core_proto_msgTypes[2]660if protoimpl.UnsafeEnabled && x != nil {661ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))662if ms.LoadMessageInfo() == nil {663ms.StoreMessageInfo(mi)664}665return ms666}667return mi.MessageOf(x)668}669670// Deprecated: Use GetWorkspacesResponse.ProtoReflect.Descriptor instead.671func (*GetWorkspacesResponse) Descriptor() ([]byte, []int) {672return file_core_proto_rawDescGZIP(), []int{2}673}674675func (x *GetWorkspacesResponse) GetStatus() []*WorkspaceStatus {676if x != nil {677return x.Status678}679return nil680}681682// StartWorkspaceRequest requests that the workspace manager starts a workspace in its cluster683type StartWorkspaceRequest struct {684state protoimpl.MessageState685sizeCache protoimpl.SizeCache686unknownFields protoimpl.UnknownFields687688// ID is a unique identifier of this workspace. No other workspace with the same name must be managed by this workspace manager689Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`690// service_prefix is the unique ID/name that's prepended before the services associated with a workspace.691// For example if the service_prefix is foobar there will be the services foobar-theia and foobar-ports.692// If this field is empty the workspace ID becomes the service prefix.693ServicePrefix string `protobuf:"bytes,2,opt,name=service_prefix,json=servicePrefix,proto3" json:"service_prefix,omitempty"`694// Metadata is data associated with this workspace that's required for other parts of Gitpod to function695Metadata *WorkspaceMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`696// Spec is the configuration of the workspace that's required for the ws-manager to start the workspace697Spec *StartWorkspaceSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"`698// Type denotes the kind of workspace we ought to start699Type WorkspaceType `protobuf:"varint,6,opt,name=type,proto3,enum=wsman.WorkspaceType" json:"type,omitempty"`700}701702func (x *StartWorkspaceRequest) Reset() {703*x = StartWorkspaceRequest{}704if protoimpl.UnsafeEnabled {705mi := &file_core_proto_msgTypes[3]706ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))707ms.StoreMessageInfo(mi)708}709}710711func (x *StartWorkspaceRequest) String() string {712return protoimpl.X.MessageStringOf(x)713}714715func (*StartWorkspaceRequest) ProtoMessage() {}716717func (x *StartWorkspaceRequest) ProtoReflect() protoreflect.Message {718mi := &file_core_proto_msgTypes[3]719if protoimpl.UnsafeEnabled && x != nil {720ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))721if ms.LoadMessageInfo() == nil {722ms.StoreMessageInfo(mi)723}724return ms725}726return mi.MessageOf(x)727}728729// Deprecated: Use StartWorkspaceRequest.ProtoReflect.Descriptor instead.730func (*StartWorkspaceRequest) Descriptor() ([]byte, []int) {731return file_core_proto_rawDescGZIP(), []int{3}732}733734func (x *StartWorkspaceRequest) GetId() string {735if x != nil {736return x.Id737}738return ""739}740741func (x *StartWorkspaceRequest) GetServicePrefix() string {742if x != nil {743return x.ServicePrefix744}745return ""746}747748func (x *StartWorkspaceRequest) GetMetadata() *WorkspaceMetadata {749if x != nil {750return x.Metadata751}752return nil753}754755func (x *StartWorkspaceRequest) GetSpec() *StartWorkspaceSpec {756if x != nil {757return x.Spec758}759return nil760}761762func (x *StartWorkspaceRequest) GetType() WorkspaceType {763if x != nil {764return x.Type765}766return WorkspaceType_REGULAR767}768769type StartWorkspaceResponse struct {770state protoimpl.MessageState771sizeCache protoimpl.SizeCache772unknownFields protoimpl.UnknownFields773774// URL is the external URL of the workspace775Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`776// OwnerToken is the token of the workspace owner used for authentication777OwnerToken string `protobuf:"bytes,2,opt,name=owner_token,json=ownerToken,proto3" json:"owner_token,omitempty"`778}779780func (x *StartWorkspaceResponse) Reset() {781*x = StartWorkspaceResponse{}782if protoimpl.UnsafeEnabled {783mi := &file_core_proto_msgTypes[4]784ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))785ms.StoreMessageInfo(mi)786}787}788789func (x *StartWorkspaceResponse) String() string {790return protoimpl.X.MessageStringOf(x)791}792793func (*StartWorkspaceResponse) ProtoMessage() {}794795func (x *StartWorkspaceResponse) ProtoReflect() protoreflect.Message {796mi := &file_core_proto_msgTypes[4]797if protoimpl.UnsafeEnabled && x != nil {798ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))799if ms.LoadMessageInfo() == nil {800ms.StoreMessageInfo(mi)801}802return ms803}804return mi.MessageOf(x)805}806807// Deprecated: Use StartWorkspaceResponse.ProtoReflect.Descriptor instead.808func (*StartWorkspaceResponse) Descriptor() ([]byte, []int) {809return file_core_proto_rawDescGZIP(), []int{4}810}811812func (x *StartWorkspaceResponse) GetUrl() string {813if x != nil {814return x.Url815}816return ""817}818819func (x *StartWorkspaceResponse) GetOwnerToken() string {820if x != nil {821return x.OwnerToken822}823return ""824}825826// StopWorkspaceRequest requests that the workspace manager stops a workspace827type StopWorkspaceRequest struct {828state protoimpl.MessageState829sizeCache protoimpl.SizeCache830unknownFields protoimpl.UnknownFields831832// ID is the unique identifier of the workspace to stop833Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`834// Policy determines how quickly a workspace will be stopped835Policy StopWorkspacePolicy `protobuf:"varint,2,opt,name=policy,proto3,enum=wsman.StopWorkspacePolicy" json:"policy,omitempty"`836}837838func (x *StopWorkspaceRequest) Reset() {839*x = StopWorkspaceRequest{}840if protoimpl.UnsafeEnabled {841mi := &file_core_proto_msgTypes[5]842ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))843ms.StoreMessageInfo(mi)844}845}846847func (x *StopWorkspaceRequest) String() string {848return protoimpl.X.MessageStringOf(x)849}850851func (*StopWorkspaceRequest) ProtoMessage() {}852853func (x *StopWorkspaceRequest) ProtoReflect() protoreflect.Message {854mi := &file_core_proto_msgTypes[5]855if protoimpl.UnsafeEnabled && x != nil {856ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))857if ms.LoadMessageInfo() == nil {858ms.StoreMessageInfo(mi)859}860return ms861}862return mi.MessageOf(x)863}864865// Deprecated: Use StopWorkspaceRequest.ProtoReflect.Descriptor instead.866func (*StopWorkspaceRequest) Descriptor() ([]byte, []int) {867return file_core_proto_rawDescGZIP(), []int{5}868}869870func (x *StopWorkspaceRequest) GetId() string {871if x != nil {872return x.Id873}874return ""875}876877func (x *StopWorkspaceRequest) GetPolicy() StopWorkspacePolicy {878if x != nil {879return x.Policy880}881return StopWorkspacePolicy_NORMALLY882}883884// StopWorkspaceResponse is the answer to a stop workspace request885type StopWorkspaceResponse struct {886state protoimpl.MessageState887sizeCache protoimpl.SizeCache888unknownFields protoimpl.UnknownFields889}890891func (x *StopWorkspaceResponse) Reset() {892*x = StopWorkspaceResponse{}893if protoimpl.UnsafeEnabled {894mi := &file_core_proto_msgTypes[6]895ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))896ms.StoreMessageInfo(mi)897}898}899900func (x *StopWorkspaceResponse) String() string {901return protoimpl.X.MessageStringOf(x)902}903904func (*StopWorkspaceResponse) ProtoMessage() {}905906func (x *StopWorkspaceResponse) ProtoReflect() protoreflect.Message {907mi := &file_core_proto_msgTypes[6]908if protoimpl.UnsafeEnabled && x != nil {909ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))910if ms.LoadMessageInfo() == nil {911ms.StoreMessageInfo(mi)912}913return ms914}915return mi.MessageOf(x)916}917918// Deprecated: Use StopWorkspaceResponse.ProtoReflect.Descriptor instead.919func (*StopWorkspaceResponse) Descriptor() ([]byte, []int) {920return file_core_proto_rawDescGZIP(), []int{6}921}922923// DescribeWorkspaceRequest requests the status of a workspace924type DescribeWorkspaceRequest struct {925state protoimpl.MessageState926sizeCache protoimpl.SizeCache927unknownFields protoimpl.UnknownFields928929// ID is the unique identifier of the workspace to describe930Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`931}932933func (x *DescribeWorkspaceRequest) Reset() {934*x = DescribeWorkspaceRequest{}935if protoimpl.UnsafeEnabled {936mi := &file_core_proto_msgTypes[7]937ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))938ms.StoreMessageInfo(mi)939}940}941942func (x *DescribeWorkspaceRequest) String() string {943return protoimpl.X.MessageStringOf(x)944}945946func (*DescribeWorkspaceRequest) ProtoMessage() {}947948func (x *DescribeWorkspaceRequest) ProtoReflect() protoreflect.Message {949mi := &file_core_proto_msgTypes[7]950if protoimpl.UnsafeEnabled && x != nil {951ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))952if ms.LoadMessageInfo() == nil {953ms.StoreMessageInfo(mi)954}955return ms956}957return mi.MessageOf(x)958}959960// Deprecated: Use DescribeWorkspaceRequest.ProtoReflect.Descriptor instead.961func (*DescribeWorkspaceRequest) Descriptor() ([]byte, []int) {962return file_core_proto_rawDescGZIP(), []int{7}963}964965func (x *DescribeWorkspaceRequest) GetId() string {966if x != nil {967return x.Id968}969return ""970}971972// DescribeWorkspaceResponse is the answer to a workspace description request973type DescribeWorkspaceResponse struct {974state protoimpl.MessageState975sizeCache protoimpl.SizeCache976unknownFields protoimpl.UnknownFields977978Status *WorkspaceStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`979// LastActivity is the time when the workspace was last marked active - ISO8601 formated980LastActivity string `protobuf:"bytes,2,opt,name=lastActivity,proto3" json:"lastActivity,omitempty"`981}982983func (x *DescribeWorkspaceResponse) Reset() {984*x = DescribeWorkspaceResponse{}985if protoimpl.UnsafeEnabled {986mi := &file_core_proto_msgTypes[8]987ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))988ms.StoreMessageInfo(mi)989}990}991992func (x *DescribeWorkspaceResponse) String() string {993return protoimpl.X.MessageStringOf(x)994}995996func (*DescribeWorkspaceResponse) ProtoMessage() {}997998func (x *DescribeWorkspaceResponse) ProtoReflect() protoreflect.Message {999mi := &file_core_proto_msgTypes[8]1000if protoimpl.UnsafeEnabled && x != nil {1001ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1002if ms.LoadMessageInfo() == nil {1003ms.StoreMessageInfo(mi)1004}1005return ms1006}1007return mi.MessageOf(x)1008}10091010// Deprecated: Use DescribeWorkspaceResponse.ProtoReflect.Descriptor instead.1011func (*DescribeWorkspaceResponse) Descriptor() ([]byte, []int) {1012return file_core_proto_rawDescGZIP(), []int{8}1013}10141015func (x *DescribeWorkspaceResponse) GetStatus() *WorkspaceStatus {1016if x != nil {1017return x.Status1018}1019return nil1020}10211022func (x *DescribeWorkspaceResponse) GetLastActivity() string {1023if x != nil {1024return x.LastActivity1025}1026return ""1027}10281029// SubscribeRequest requests to be notified whenever the workspace status changes1030type SubscribeRequest struct {1031state protoimpl.MessageState1032sizeCache protoimpl.SizeCache1033unknownFields protoimpl.UnknownFields10341035// MustMatch can specify an exactly matching filter for listening to workspaces.1036// If not set, or all fields are empty, all workspace status updates or log output are returned.1037MustMatch *MetadataFilter `protobuf:"bytes,1,opt,name=must_match,json=mustMatch,proto3" json:"must_match,omitempty"`1038}10391040func (x *SubscribeRequest) Reset() {1041*x = SubscribeRequest{}1042if protoimpl.UnsafeEnabled {1043mi := &file_core_proto_msgTypes[9]1044ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1045ms.StoreMessageInfo(mi)1046}1047}10481049func (x *SubscribeRequest) String() string {1050return protoimpl.X.MessageStringOf(x)1051}10521053func (*SubscribeRequest) ProtoMessage() {}10541055func (x *SubscribeRequest) ProtoReflect() protoreflect.Message {1056mi := &file_core_proto_msgTypes[9]1057if protoimpl.UnsafeEnabled && x != nil {1058ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1059if ms.LoadMessageInfo() == nil {1060ms.StoreMessageInfo(mi)1061}1062return ms1063}1064return mi.MessageOf(x)1065}10661067// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead.1068func (*SubscribeRequest) Descriptor() ([]byte, []int) {1069return file_core_proto_rawDescGZIP(), []int{9}1070}10711072func (x *SubscribeRequest) GetMustMatch() *MetadataFilter {1073if x != nil {1074return x.MustMatch1075}1076return nil1077}10781079// SubscribeResponse notifies a client when a workspace's status changes1080type SubscribeResponse struct {1081state protoimpl.MessageState1082sizeCache protoimpl.SizeCache1083unknownFields protoimpl.UnknownFields10841085Status *WorkspaceStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`1086Header 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"`1087}10881089func (x *SubscribeResponse) Reset() {1090*x = SubscribeResponse{}1091if protoimpl.UnsafeEnabled {1092mi := &file_core_proto_msgTypes[10]1093ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1094ms.StoreMessageInfo(mi)1095}1096}10971098func (x *SubscribeResponse) String() string {1099return protoimpl.X.MessageStringOf(x)1100}11011102func (*SubscribeResponse) ProtoMessage() {}11031104func (x *SubscribeResponse) ProtoReflect() protoreflect.Message {1105mi := &file_core_proto_msgTypes[10]1106if protoimpl.UnsafeEnabled && x != nil {1107ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1108if ms.LoadMessageInfo() == nil {1109ms.StoreMessageInfo(mi)1110}1111return ms1112}1113return mi.MessageOf(x)1114}11151116// Deprecated: Use SubscribeResponse.ProtoReflect.Descriptor instead.1117func (*SubscribeResponse) Descriptor() ([]byte, []int) {1118return file_core_proto_rawDescGZIP(), []int{10}1119}11201121func (x *SubscribeResponse) GetStatus() *WorkspaceStatus {1122if x != nil {1123return x.Status1124}1125return nil1126}11271128func (x *SubscribeResponse) GetHeader() map[string]string {1129if x != nil {1130return x.Header1131}1132return nil1133}11341135// MarkActiveRequest marks a workspace as still in use1136type MarkActiveRequest struct {1137state protoimpl.MessageState1138sizeCache protoimpl.SizeCache1139unknownFields protoimpl.UnknownFields11401141// id is the ID of the workspace1142Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1143// closed marks a workspace as closed which will shorten its timeout1144Closed bool `protobuf:"varint,2,opt,name=closed,proto3" json:"closed,omitempty"`1145// ignore_if_active only marks active when user never mark active, otherwise it will ignore1146IgnoreIfActive bool `protobuf:"varint,3,opt,name=ignore_if_active,json=ignoreIfActive,proto3" json:"ignore_if_active,omitempty"`1147}11481149func (x *MarkActiveRequest) Reset() {1150*x = MarkActiveRequest{}1151if protoimpl.UnsafeEnabled {1152mi := &file_core_proto_msgTypes[11]1153ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1154ms.StoreMessageInfo(mi)1155}1156}11571158func (x *MarkActiveRequest) String() string {1159return protoimpl.X.MessageStringOf(x)1160}11611162func (*MarkActiveRequest) ProtoMessage() {}11631164func (x *MarkActiveRequest) ProtoReflect() protoreflect.Message {1165mi := &file_core_proto_msgTypes[11]1166if protoimpl.UnsafeEnabled && x != nil {1167ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1168if ms.LoadMessageInfo() == nil {1169ms.StoreMessageInfo(mi)1170}1171return ms1172}1173return mi.MessageOf(x)1174}11751176// Deprecated: Use MarkActiveRequest.ProtoReflect.Descriptor instead.1177func (*MarkActiveRequest) Descriptor() ([]byte, []int) {1178return file_core_proto_rawDescGZIP(), []int{11}1179}11801181func (x *MarkActiveRequest) GetId() string {1182if x != nil {1183return x.Id1184}1185return ""1186}11871188func (x *MarkActiveRequest) GetClosed() bool {1189if x != nil {1190return x.Closed1191}1192return false1193}11941195func (x *MarkActiveRequest) GetIgnoreIfActive() bool {1196if x != nil {1197return x.IgnoreIfActive1198}1199return false1200}12011202// MarkActiveResponse is the answer to a mark workspace active request1203type MarkActiveResponse struct {1204state protoimpl.MessageState1205sizeCache protoimpl.SizeCache1206unknownFields protoimpl.UnknownFields1207}12081209func (x *MarkActiveResponse) Reset() {1210*x = MarkActiveResponse{}1211if protoimpl.UnsafeEnabled {1212mi := &file_core_proto_msgTypes[12]1213ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1214ms.StoreMessageInfo(mi)1215}1216}12171218func (x *MarkActiveResponse) String() string {1219return protoimpl.X.MessageStringOf(x)1220}12211222func (*MarkActiveResponse) ProtoMessage() {}12231224func (x *MarkActiveResponse) ProtoReflect() protoreflect.Message {1225mi := &file_core_proto_msgTypes[12]1226if protoimpl.UnsafeEnabled && x != nil {1227ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1228if ms.LoadMessageInfo() == nil {1229ms.StoreMessageInfo(mi)1230}1231return ms1232}1233return mi.MessageOf(x)1234}12351236// Deprecated: Use MarkActiveResponse.ProtoReflect.Descriptor instead.1237func (*MarkActiveResponse) Descriptor() ([]byte, []int) {1238return file_core_proto_rawDescGZIP(), []int{12}1239}12401241// SetTimeoutRequest configures the timeout of a workspace1242type SetTimeoutRequest struct {1243state protoimpl.MessageState1244sizeCache protoimpl.SizeCache1245unknownFields protoimpl.UnknownFields12461247// id is the ID of the workspace1248Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1249// duration is the new timeout duration. Must be a valid Go duration (see https://golang.org/pkg/time/#ParseDuration)1250Duration string `protobuf:"bytes,2,opt,name=duration,proto3" json:"duration,omitempty"`1251Type TimeoutType `protobuf:"varint,3,opt,name=type,proto3,enum=wsman.TimeoutType" json:"type,omitempty"`1252}12531254func (x *SetTimeoutRequest) Reset() {1255*x = SetTimeoutRequest{}1256if protoimpl.UnsafeEnabled {1257mi := &file_core_proto_msgTypes[13]1258ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1259ms.StoreMessageInfo(mi)1260}1261}12621263func (x *SetTimeoutRequest) String() string {1264return protoimpl.X.MessageStringOf(x)1265}12661267func (*SetTimeoutRequest) ProtoMessage() {}12681269func (x *SetTimeoutRequest) ProtoReflect() protoreflect.Message {1270mi := &file_core_proto_msgTypes[13]1271if protoimpl.UnsafeEnabled && x != nil {1272ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1273if ms.LoadMessageInfo() == nil {1274ms.StoreMessageInfo(mi)1275}1276return ms1277}1278return mi.MessageOf(x)1279}12801281// Deprecated: Use SetTimeoutRequest.ProtoReflect.Descriptor instead.1282func (*SetTimeoutRequest) Descriptor() ([]byte, []int) {1283return file_core_proto_rawDescGZIP(), []int{13}1284}12851286func (x *SetTimeoutRequest) GetId() string {1287if x != nil {1288return x.Id1289}1290return ""1291}12921293func (x *SetTimeoutRequest) GetDuration() string {1294if x != nil {1295return x.Duration1296}1297return ""1298}12991300func (x *SetTimeoutRequest) GetType() TimeoutType {1301if x != nil {1302return x.Type1303}1304return TimeoutType_WORKSPACE_TIMEOUT1305}13061307// SetTimeoutResponse is the answer to a set timeout request1308type SetTimeoutResponse struct {1309state protoimpl.MessageState1310sizeCache protoimpl.SizeCache1311unknownFields protoimpl.UnknownFields1312}13131314func (x *SetTimeoutResponse) Reset() {1315*x = SetTimeoutResponse{}1316if protoimpl.UnsafeEnabled {1317mi := &file_core_proto_msgTypes[14]1318ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1319ms.StoreMessageInfo(mi)1320}1321}13221323func (x *SetTimeoutResponse) String() string {1324return protoimpl.X.MessageStringOf(x)1325}13261327func (*SetTimeoutResponse) ProtoMessage() {}13281329func (x *SetTimeoutResponse) ProtoReflect() protoreflect.Message {1330mi := &file_core_proto_msgTypes[14]1331if protoimpl.UnsafeEnabled && x != nil {1332ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1333if ms.LoadMessageInfo() == nil {1334ms.StoreMessageInfo(mi)1335}1336return ms1337}1338return mi.MessageOf(x)1339}13401341// Deprecated: Use SetTimeoutResponse.ProtoReflect.Descriptor instead.1342func (*SetTimeoutResponse) Descriptor() ([]byte, []int) {1343return file_core_proto_rawDescGZIP(), []int{14}1344}13451346// ControlPortRequest exposes or un-exposes networking ports of a workspace1347type ControlPortRequest struct {1348state protoimpl.MessageState1349sizeCache protoimpl.SizeCache1350unknownFields protoimpl.UnknownFields13511352// ID is the unique identifier of the workspace whose port to control1353Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1354// expose controls whether to make the port publicly available or bar if from being accessible outside of the worksapce.1355// If true, the port will become publicly available, if false it will become inaccessible from outside the workspace.1356Expose bool `protobuf:"varint,2,opt,name=expose,proto3" json:"expose,omitempty"`1357// spec defines the port under control1358Spec *PortSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"`1359}13601361func (x *ControlPortRequest) Reset() {1362*x = ControlPortRequest{}1363if protoimpl.UnsafeEnabled {1364mi := &file_core_proto_msgTypes[15]1365ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1366ms.StoreMessageInfo(mi)1367}1368}13691370func (x *ControlPortRequest) String() string {1371return protoimpl.X.MessageStringOf(x)1372}13731374func (*ControlPortRequest) ProtoMessage() {}13751376func (x *ControlPortRequest) ProtoReflect() protoreflect.Message {1377mi := &file_core_proto_msgTypes[15]1378if protoimpl.UnsafeEnabled && x != nil {1379ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1380if ms.LoadMessageInfo() == nil {1381ms.StoreMessageInfo(mi)1382}1383return ms1384}1385return mi.MessageOf(x)1386}13871388// Deprecated: Use ControlPortRequest.ProtoReflect.Descriptor instead.1389func (*ControlPortRequest) Descriptor() ([]byte, []int) {1390return file_core_proto_rawDescGZIP(), []int{15}1391}13921393func (x *ControlPortRequest) GetId() string {1394if x != nil {1395return x.Id1396}1397return ""1398}13991400func (x *ControlPortRequest) GetExpose() bool {1401if x != nil {1402return x.Expose1403}1404return false1405}14061407func (x *ControlPortRequest) GetSpec() *PortSpec {1408if x != nil {1409return x.Spec1410}1411return nil1412}14131414// ControlPortResponse is the answer to a workspace port control request1415type ControlPortResponse struct {1416state protoimpl.MessageState1417sizeCache protoimpl.SizeCache1418unknownFields protoimpl.UnknownFields1419}14201421func (x *ControlPortResponse) Reset() {1422*x = ControlPortResponse{}1423if protoimpl.UnsafeEnabled {1424mi := &file_core_proto_msgTypes[16]1425ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1426ms.StoreMessageInfo(mi)1427}1428}14291430func (x *ControlPortResponse) String() string {1431return protoimpl.X.MessageStringOf(x)1432}14331434func (*ControlPortResponse) ProtoMessage() {}14351436func (x *ControlPortResponse) ProtoReflect() protoreflect.Message {1437mi := &file_core_proto_msgTypes[16]1438if protoimpl.UnsafeEnabled && x != nil {1439ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1440if ms.LoadMessageInfo() == nil {1441ms.StoreMessageInfo(mi)1442}1443return ms1444}1445return mi.MessageOf(x)1446}14471448// Deprecated: Use ControlPortResponse.ProtoReflect.Descriptor instead.1449func (*ControlPortResponse) Descriptor() ([]byte, []int) {1450return file_core_proto_rawDescGZIP(), []int{16}1451}14521453// TakeSnapshotRequest creates a copy of the workspace content. This copy can be used to initialize a new workspace.1454type TakeSnapshotRequest struct {1455state protoimpl.MessageState1456sizeCache protoimpl.SizeCache1457unknownFields protoimpl.UnknownFields14581459// ID is the unique identifier of the workspace of which to take a snapshot1460Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1461// return_immediately means we're not waiting until the snapshot is done but return immediately after starting it1462ReturnImmediately bool `protobuf:"varint,2,opt,name=return_immediately,json=returnImmediately,proto3" json:"return_immediately,omitempty"`1463}14641465func (x *TakeSnapshotRequest) Reset() {1466*x = TakeSnapshotRequest{}1467if protoimpl.UnsafeEnabled {1468mi := &file_core_proto_msgTypes[17]1469ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1470ms.StoreMessageInfo(mi)1471}1472}14731474func (x *TakeSnapshotRequest) String() string {1475return protoimpl.X.MessageStringOf(x)1476}14771478func (*TakeSnapshotRequest) ProtoMessage() {}14791480func (x *TakeSnapshotRequest) ProtoReflect() protoreflect.Message {1481mi := &file_core_proto_msgTypes[17]1482if protoimpl.UnsafeEnabled && x != nil {1483ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1484if ms.LoadMessageInfo() == nil {1485ms.StoreMessageInfo(mi)1486}1487return ms1488}1489return mi.MessageOf(x)1490}14911492// Deprecated: Use TakeSnapshotRequest.ProtoReflect.Descriptor instead.1493func (*TakeSnapshotRequest) Descriptor() ([]byte, []int) {1494return file_core_proto_rawDescGZIP(), []int{17}1495}14961497func (x *TakeSnapshotRequest) GetId() string {1498if x != nil {1499return x.Id1500}1501return ""1502}15031504func (x *TakeSnapshotRequest) GetReturnImmediately() bool {1505if x != nil {1506return x.ReturnImmediately1507}1508return false1509}15101511// TakeSnapshotResponse is the answer to a take snapshot request1512type TakeSnapshotResponse struct {1513state protoimpl.MessageState1514sizeCache protoimpl.SizeCache1515unknownFields protoimpl.UnknownFields15161517// URL is the location of the snapshot encoded such that it can be passed back to a snapshot initializer.1518Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`1519}15201521func (x *TakeSnapshotResponse) Reset() {1522*x = TakeSnapshotResponse{}1523if protoimpl.UnsafeEnabled {1524mi := &file_core_proto_msgTypes[18]1525ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1526ms.StoreMessageInfo(mi)1527}1528}15291530func (x *TakeSnapshotResponse) String() string {1531return protoimpl.X.MessageStringOf(x)1532}15331534func (*TakeSnapshotResponse) ProtoMessage() {}15351536func (x *TakeSnapshotResponse) ProtoReflect() protoreflect.Message {1537mi := &file_core_proto_msgTypes[18]1538if protoimpl.UnsafeEnabled && x != nil {1539ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1540if ms.LoadMessageInfo() == nil {1541ms.StoreMessageInfo(mi)1542}1543return ms1544}1545return mi.MessageOf(x)1546}15471548// Deprecated: Use TakeSnapshotResponse.ProtoReflect.Descriptor instead.1549func (*TakeSnapshotResponse) Descriptor() ([]byte, []int) {1550return file_core_proto_rawDescGZIP(), []int{18}1551}15521553func (x *TakeSnapshotResponse) GetUrl() string {1554if x != nil {1555return x.Url1556}1557return ""1558}15591560// ControlAdmissionRequest controls the admission of users to a workspace1561type ControlAdmissionRequest struct {1562state protoimpl.MessageState1563sizeCache protoimpl.SizeCache1564unknownFields protoimpl.UnknownFields15651566// ID is the unique identifier of the workspace whoose admission to control1567Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1568// level is the new workspace admission level1569Level AdmissionLevel `protobuf:"varint,2,opt,name=level,proto3,enum=wsman.AdmissionLevel" json:"level,omitempty"`1570}15711572func (x *ControlAdmissionRequest) Reset() {1573*x = ControlAdmissionRequest{}1574if protoimpl.UnsafeEnabled {1575mi := &file_core_proto_msgTypes[19]1576ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1577ms.StoreMessageInfo(mi)1578}1579}15801581func (x *ControlAdmissionRequest) String() string {1582return protoimpl.X.MessageStringOf(x)1583}15841585func (*ControlAdmissionRequest) ProtoMessage() {}15861587func (x *ControlAdmissionRequest) ProtoReflect() protoreflect.Message {1588mi := &file_core_proto_msgTypes[19]1589if protoimpl.UnsafeEnabled && x != nil {1590ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1591if ms.LoadMessageInfo() == nil {1592ms.StoreMessageInfo(mi)1593}1594return ms1595}1596return mi.MessageOf(x)1597}15981599// Deprecated: Use ControlAdmissionRequest.ProtoReflect.Descriptor instead.1600func (*ControlAdmissionRequest) Descriptor() ([]byte, []int) {1601return file_core_proto_rawDescGZIP(), []int{19}1602}16031604func (x *ControlAdmissionRequest) GetId() string {1605if x != nil {1606return x.Id1607}1608return ""1609}16101611func (x *ControlAdmissionRequest) GetLevel() AdmissionLevel {1612if x != nil {1613return x.Level1614}1615return AdmissionLevel_ADMIT_OWNER_ONLY1616}16171618type ControlAdmissionResponse struct {1619state protoimpl.MessageState1620sizeCache protoimpl.SizeCache1621unknownFields protoimpl.UnknownFields1622}16231624func (x *ControlAdmissionResponse) Reset() {1625*x = ControlAdmissionResponse{}1626if protoimpl.UnsafeEnabled {1627mi := &file_core_proto_msgTypes[20]1628ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1629ms.StoreMessageInfo(mi)1630}1631}16321633func (x *ControlAdmissionResponse) String() string {1634return protoimpl.X.MessageStringOf(x)1635}16361637func (*ControlAdmissionResponse) ProtoMessage() {}16381639func (x *ControlAdmissionResponse) ProtoReflect() protoreflect.Message {1640mi := &file_core_proto_msgTypes[20]1641if protoimpl.UnsafeEnabled && x != nil {1642ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1643if ms.LoadMessageInfo() == nil {1644ms.StoreMessageInfo(mi)1645}1646return ms1647}1648return mi.MessageOf(x)1649}16501651// Deprecated: Use ControlAdmissionResponse.ProtoReflect.Descriptor instead.1652func (*ControlAdmissionResponse) Descriptor() ([]byte, []int) {1653return file_core_proto_rawDescGZIP(), []int{20}1654}16551656// DeleteVolumeSnapshotRequest deletes volume snapshot from the cluster and cloud provider1657type DeleteVolumeSnapshotRequest struct {1658state protoimpl.MessageState1659sizeCache protoimpl.SizeCache1660unknownFields protoimpl.UnknownFields16611662// ID is the name of volume snapshot, which is equal to instance id of workspace it was taken from1663Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1664// volume_handle is a unique string that is used to restore volume handle in k8s from cloud provider backend1665VolumeHandle string `protobuf:"bytes,2,opt,name=volume_handle,json=volumeHandle,proto3" json:"volume_handle,omitempty"`1666// soft_delete controls whether manager should attempt to restore volume snapshot from handle if it doesn't exist in the cluster yet1667SoftDelete bool `protobuf:"varint,3,opt,name=soft_delete,json=softDelete,proto3" json:"soft_delete,omitempty"`1668// ws_type is the type of workspace (prebuild or regular) to which this volume snapshot belongs1669WsType WorkspaceType `protobuf:"varint,4,opt,name=ws_type,json=wsType,proto3,enum=wsman.WorkspaceType" json:"ws_type,omitempty"`1670}16711672func (x *DeleteVolumeSnapshotRequest) Reset() {1673*x = DeleteVolumeSnapshotRequest{}1674if protoimpl.UnsafeEnabled {1675mi := &file_core_proto_msgTypes[21]1676ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1677ms.StoreMessageInfo(mi)1678}1679}16801681func (x *DeleteVolumeSnapshotRequest) String() string {1682return protoimpl.X.MessageStringOf(x)1683}16841685func (*DeleteVolumeSnapshotRequest) ProtoMessage() {}16861687func (x *DeleteVolumeSnapshotRequest) ProtoReflect() protoreflect.Message {1688mi := &file_core_proto_msgTypes[21]1689if protoimpl.UnsafeEnabled && x != nil {1690ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1691if ms.LoadMessageInfo() == nil {1692ms.StoreMessageInfo(mi)1693}1694return ms1695}1696return mi.MessageOf(x)1697}16981699// Deprecated: Use DeleteVolumeSnapshotRequest.ProtoReflect.Descriptor instead.1700func (*DeleteVolumeSnapshotRequest) Descriptor() ([]byte, []int) {1701return file_core_proto_rawDescGZIP(), []int{21}1702}17031704func (x *DeleteVolumeSnapshotRequest) GetId() string {1705if x != nil {1706return x.Id1707}1708return ""1709}17101711func (x *DeleteVolumeSnapshotRequest) GetVolumeHandle() string {1712if x != nil {1713return x.VolumeHandle1714}1715return ""1716}17171718func (x *DeleteVolumeSnapshotRequest) GetSoftDelete() bool {1719if x != nil {1720return x.SoftDelete1721}1722return false1723}17241725func (x *DeleteVolumeSnapshotRequest) GetWsType() WorkspaceType {1726if x != nil {1727return x.WsType1728}1729return WorkspaceType_REGULAR1730}17311732type DeleteVolumeSnapshotResponse struct {1733state protoimpl.MessageState1734sizeCache protoimpl.SizeCache1735unknownFields protoimpl.UnknownFields17361737// was_deleted will be true if we were able to delete volume snapshot from the cluster1738WasDeleted bool `protobuf:"varint,1,opt,name=was_deleted,json=wasDeleted,proto3" json:"was_deleted,omitempty"`1739}17401741func (x *DeleteVolumeSnapshotResponse) Reset() {1742*x = DeleteVolumeSnapshotResponse{}1743if protoimpl.UnsafeEnabled {1744mi := &file_core_proto_msgTypes[22]1745ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1746ms.StoreMessageInfo(mi)1747}1748}17491750func (x *DeleteVolumeSnapshotResponse) String() string {1751return protoimpl.X.MessageStringOf(x)1752}17531754func (*DeleteVolumeSnapshotResponse) ProtoMessage() {}17551756func (x *DeleteVolumeSnapshotResponse) ProtoReflect() protoreflect.Message {1757mi := &file_core_proto_msgTypes[22]1758if protoimpl.UnsafeEnabled && x != nil {1759ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1760if ms.LoadMessageInfo() == nil {1761ms.StoreMessageInfo(mi)1762}1763return ms1764}1765return mi.MessageOf(x)1766}17671768// Deprecated: Use DeleteVolumeSnapshotResponse.ProtoReflect.Descriptor instead.1769func (*DeleteVolumeSnapshotResponse) Descriptor() ([]byte, []int) {1770return file_core_proto_rawDescGZIP(), []int{22}1771}17721773func (x *DeleteVolumeSnapshotResponse) GetWasDeleted() bool {1774if x != nil {1775return x.WasDeleted1776}1777return false1778}17791780// BackupWorkspaceRequest backs up a running workspace1781type BackupWorkspaceRequest struct {1782state protoimpl.MessageState1783sizeCache protoimpl.SizeCache1784unknownFields protoimpl.UnknownFields17851786// ID is the unique identifier of the workspace of which to take a backup1787Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1788}17891790func (x *BackupWorkspaceRequest) Reset() {1791*x = BackupWorkspaceRequest{}1792if protoimpl.UnsafeEnabled {1793mi := &file_core_proto_msgTypes[23]1794ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1795ms.StoreMessageInfo(mi)1796}1797}17981799func (x *BackupWorkspaceRequest) String() string {1800return protoimpl.X.MessageStringOf(x)1801}18021803func (*BackupWorkspaceRequest) ProtoMessage() {}18041805func (x *BackupWorkspaceRequest) ProtoReflect() protoreflect.Message {1806mi := &file_core_proto_msgTypes[23]1807if protoimpl.UnsafeEnabled && x != nil {1808ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1809if ms.LoadMessageInfo() == nil {1810ms.StoreMessageInfo(mi)1811}1812return ms1813}1814return mi.MessageOf(x)1815}18161817// Deprecated: Use BackupWorkspaceRequest.ProtoReflect.Descriptor instead.1818func (*BackupWorkspaceRequest) Descriptor() ([]byte, []int) {1819return file_core_proto_rawDescGZIP(), []int{23}1820}18211822func (x *BackupWorkspaceRequest) GetId() string {1823if x != nil {1824return x.Id1825}1826return ""1827}18281829// BackupWorkspaceResponse is the answer to a backup workspace request1830type BackupWorkspaceResponse struct {1831state protoimpl.MessageState1832sizeCache protoimpl.SizeCache1833unknownFields protoimpl.UnknownFields18341835// URL is the location of the backup1836Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`1837}18381839func (x *BackupWorkspaceResponse) Reset() {1840*x = BackupWorkspaceResponse{}1841if protoimpl.UnsafeEnabled {1842mi := &file_core_proto_msgTypes[24]1843ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1844ms.StoreMessageInfo(mi)1845}1846}18471848func (x *BackupWorkspaceResponse) String() string {1849return protoimpl.X.MessageStringOf(x)1850}18511852func (*BackupWorkspaceResponse) ProtoMessage() {}18531854func (x *BackupWorkspaceResponse) ProtoReflect() protoreflect.Message {1855mi := &file_core_proto_msgTypes[24]1856if protoimpl.UnsafeEnabled && x != nil {1857ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1858if ms.LoadMessageInfo() == nil {1859ms.StoreMessageInfo(mi)1860}1861return ms1862}1863return mi.MessageOf(x)1864}18651866// Deprecated: Use BackupWorkspaceResponse.ProtoReflect.Descriptor instead.1867func (*BackupWorkspaceResponse) Descriptor() ([]byte, []int) {1868return file_core_proto_rawDescGZIP(), []int{24}1869}18701871func (x *BackupWorkspaceResponse) GetUrl() string {1872if x != nil {1873return x.Url1874}1875return ""1876}18771878// UpdateSSHKeyRequest update ssh public key1879type UpdateSSHKeyRequest struct {1880state protoimpl.MessageState1881sizeCache protoimpl.SizeCache1882unknownFields protoimpl.UnknownFields18831884// ID is the unique identifier of the workspace1885Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1886// keys is a set of authorized_keys1887Keys []string `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"`1888}18891890func (x *UpdateSSHKeyRequest) Reset() {1891*x = UpdateSSHKeyRequest{}1892if protoimpl.UnsafeEnabled {1893mi := &file_core_proto_msgTypes[25]1894ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1895ms.StoreMessageInfo(mi)1896}1897}18981899func (x *UpdateSSHKeyRequest) String() string {1900return protoimpl.X.MessageStringOf(x)1901}19021903func (*UpdateSSHKeyRequest) ProtoMessage() {}19041905func (x *UpdateSSHKeyRequest) ProtoReflect() protoreflect.Message {1906mi := &file_core_proto_msgTypes[25]1907if protoimpl.UnsafeEnabled && x != nil {1908ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1909if ms.LoadMessageInfo() == nil {1910ms.StoreMessageInfo(mi)1911}1912return ms1913}1914return mi.MessageOf(x)1915}19161917// Deprecated: Use UpdateSSHKeyRequest.ProtoReflect.Descriptor instead.1918func (*UpdateSSHKeyRequest) Descriptor() ([]byte, []int) {1919return file_core_proto_rawDescGZIP(), []int{25}1920}19211922func (x *UpdateSSHKeyRequest) GetId() string {1923if x != nil {1924return x.Id1925}1926return ""1927}19281929func (x *UpdateSSHKeyRequest) GetKeys() []string {1930if x != nil {1931return x.Keys1932}1933return nil1934}19351936// UpdateSSHKeyResponse is the answer to a upload ssh key request1937type UpdateSSHKeyResponse struct {1938state protoimpl.MessageState1939sizeCache protoimpl.SizeCache1940unknownFields protoimpl.UnknownFields1941}19421943func (x *UpdateSSHKeyResponse) Reset() {1944*x = UpdateSSHKeyResponse{}1945if protoimpl.UnsafeEnabled {1946mi := &file_core_proto_msgTypes[26]1947ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1948ms.StoreMessageInfo(mi)1949}1950}19511952func (x *UpdateSSHKeyResponse) String() string {1953return protoimpl.X.MessageStringOf(x)1954}19551956func (*UpdateSSHKeyResponse) ProtoMessage() {}19571958func (x *UpdateSSHKeyResponse) ProtoReflect() protoreflect.Message {1959mi := &file_core_proto_msgTypes[26]1960if protoimpl.UnsafeEnabled && x != nil {1961ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))1962if ms.LoadMessageInfo() == nil {1963ms.StoreMessageInfo(mi)1964}1965return ms1966}1967return mi.MessageOf(x)1968}19691970// Deprecated: Use UpdateSSHKeyResponse.ProtoReflect.Descriptor instead.1971func (*UpdateSSHKeyResponse) Descriptor() ([]byte, []int) {1972return file_core_proto_rawDescGZIP(), []int{26}1973}19741975// WorkspaceStatus describes a workspace status1976type WorkspaceStatus struct {1977state protoimpl.MessageState1978sizeCache protoimpl.SizeCache1979unknownFields protoimpl.UnknownFields19801981// ID is the unique identifier of the workspace1982Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`1983// version of the status update. Workspace instances themselves are unversioned,1984// but their status has different versions.1985// The value of this field has no semantic meaning (e.g. don't interpret it as1986// as a timestamp), but it can be used to impose a partial order.1987// If a.status_version < b.status_version then a was the status before b.1988StatusVersion uint64 `protobuf:"varint,10,opt,name=status_version,json=statusVersion,proto3" json:"status_version,omitempty"`1989// Metadata is data associated with this workspace that's required for other parts of Gitpod to function1990Metadata *WorkspaceMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`1991// Spec is the workspace spec during runtime1992Spec *WorkspaceSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"`1993// the phase of a workspace is a simple, high-level summary of where the workspace is in its lifecycle1994Phase WorkspacePhase `protobuf:"varint,4,opt,name=phase,proto3,enum=wsman.WorkspacePhase" json:"phase,omitempty"`1995// conditions detail the current state of the workspace1996Conditions *WorkspaceConditions `protobuf:"bytes,5,opt,name=conditions,proto3" json:"conditions,omitempty"`1997// message is an optional human-readable message detailing the current phase1998Message string `protobuf:"bytes,6,opt,name=message,proto3" json:"message,omitempty"`1999// repo details the Git working copy status of the workspace.2000// Note: this is a best-effort field and more often than not will not be present. Its absence does not2001// indicate the absence of a working copy.2002Repo *api.GitStatus `protobuf:"bytes,7,opt,name=repo,proto3" json:"repo,omitempty"`2003// runtime contains information about the workspace's runtime environment2004Runtime *WorkspaceRuntimeInfo `protobuf:"bytes,8,opt,name=runtime,proto3" json:"runtime,omitempty"`2005// auth provides authentication information about the workspace. This info is primarily used by ws-proxy.2006Auth *WorkspaceAuthentication `protobuf:"bytes,9,opt,name=auth,proto3" json:"auth,omitempty"`2007// metrics contains metrics about the workspace2008InitializerMetrics *InitializerMetrics `protobuf:"bytes,11,opt,name=initializer_metrics,json=initializerMetrics,proto3" json:"initializer_metrics,omitempty"`2009}20102011func (x *WorkspaceStatus) Reset() {2012*x = WorkspaceStatus{}2013if protoimpl.UnsafeEnabled {2014mi := &file_core_proto_msgTypes[27]2015ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2016ms.StoreMessageInfo(mi)2017}2018}20192020func (x *WorkspaceStatus) String() string {2021return protoimpl.X.MessageStringOf(x)2022}20232024func (*WorkspaceStatus) ProtoMessage() {}20252026func (x *WorkspaceStatus) ProtoReflect() protoreflect.Message {2027mi := &file_core_proto_msgTypes[27]2028if protoimpl.UnsafeEnabled && x != nil {2029ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2030if ms.LoadMessageInfo() == nil {2031ms.StoreMessageInfo(mi)2032}2033return ms2034}2035return mi.MessageOf(x)2036}20372038// Deprecated: Use WorkspaceStatus.ProtoReflect.Descriptor instead.2039func (*WorkspaceStatus) Descriptor() ([]byte, []int) {2040return file_core_proto_rawDescGZIP(), []int{27}2041}20422043func (x *WorkspaceStatus) GetId() string {2044if x != nil {2045return x.Id2046}2047return ""2048}20492050func (x *WorkspaceStatus) GetStatusVersion() uint64 {2051if x != nil {2052return x.StatusVersion2053}2054return 02055}20562057func (x *WorkspaceStatus) GetMetadata() *WorkspaceMetadata {2058if x != nil {2059return x.Metadata2060}2061return nil2062}20632064func (x *WorkspaceStatus) GetSpec() *WorkspaceSpec {2065if x != nil {2066return x.Spec2067}2068return nil2069}20702071func (x *WorkspaceStatus) GetPhase() WorkspacePhase {2072if x != nil {2073return x.Phase2074}2075return WorkspacePhase_UNKNOWN2076}20772078func (x *WorkspaceStatus) GetConditions() *WorkspaceConditions {2079if x != nil {2080return x.Conditions2081}2082return nil2083}20842085func (x *WorkspaceStatus) GetMessage() string {2086if x != nil {2087return x.Message2088}2089return ""2090}20912092func (x *WorkspaceStatus) GetRepo() *api.GitStatus {2093if x != nil {2094return x.Repo2095}2096return nil2097}20982099func (x *WorkspaceStatus) GetRuntime() *WorkspaceRuntimeInfo {2100if x != nil {2101return x.Runtime2102}2103return nil2104}21052106func (x *WorkspaceStatus) GetAuth() *WorkspaceAuthentication {2107if x != nil {2108return x.Auth2109}2110return nil2111}21122113func (x *WorkspaceStatus) GetInitializerMetrics() *InitializerMetrics {2114if x != nil {2115return x.InitializerMetrics2116}2117return nil2118}21192120// IDEImage configures the IDE images a workspace will use2121type IDEImage struct {2122state protoimpl.MessageState2123sizeCache protoimpl.SizeCache2124unknownFields protoimpl.UnknownFields21252126// web_ref is a reference to an OCI image used for serving the web-based IDE2127WebRef string `protobuf:"bytes,1,opt,name=web_ref,json=webRef,proto3" json:"web_ref,omitempty"`2128// supervisor_ref is a reference to an OCI image used as supervisor2129SupervisorRef string `protobuf:"bytes,3,opt,name=supervisor_ref,json=supervisorRef,proto3" json:"supervisor_ref,omitempty"`2130}21312132func (x *IDEImage) Reset() {2133*x = IDEImage{}2134if protoimpl.UnsafeEnabled {2135mi := &file_core_proto_msgTypes[28]2136ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2137ms.StoreMessageInfo(mi)2138}2139}21402141func (x *IDEImage) String() string {2142return protoimpl.X.MessageStringOf(x)2143}21442145func (*IDEImage) ProtoMessage() {}21462147func (x *IDEImage) ProtoReflect() protoreflect.Message {2148mi := &file_core_proto_msgTypes[28]2149if protoimpl.UnsafeEnabled && x != nil {2150ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2151if ms.LoadMessageInfo() == nil {2152ms.StoreMessageInfo(mi)2153}2154return ms2155}2156return mi.MessageOf(x)2157}21582159// Deprecated: Use IDEImage.ProtoReflect.Descriptor instead.2160func (*IDEImage) Descriptor() ([]byte, []int) {2161return file_core_proto_rawDescGZIP(), []int{28}2162}21632164func (x *IDEImage) GetWebRef() string {2165if x != nil {2166return x.WebRef2167}2168return ""2169}21702171func (x *IDEImage) GetSupervisorRef() string {2172if x != nil {2173return x.SupervisorRef2174}2175return ""2176}21772178// WorkspaceSpec is the specification of a workspace at runtime2179type WorkspaceSpec struct {2180state protoimpl.MessageState2181sizeCache protoimpl.SizeCache2182unknownFields protoimpl.UnknownFields21832184// workspace_image is the name of the Docker image this workspace runs2185WorkspaceImage string `protobuf:"bytes,1,opt,name=workspace_image,json=workspaceImage,proto3" json:"workspace_image,omitempty"`2186// headless marks this workspace a headless one - headless workspaces are not intended for users but for automation2187Headless bool `protobuf:"varint,3,opt,name=headless,proto3" json:"headless,omitempty"`2188// URL is the external URL of the workspace2189Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`2190// exposed_ports lists all ports which this workspace has exposed to the outside world2191ExposedPorts []*PortSpec `protobuf:"bytes,5,rep,name=exposed_ports,json=exposedPorts,proto3" json:"exposed_ports,omitempty"`2192// workspace type denotes what kind of workspace this is, e.g. if it's user-facing, prebuilding content or probing the service2193Type WorkspaceType `protobuf:"varint,6,opt,name=type,proto3,enum=wsman.WorkspaceType" json:"type,omitempty"`2194// The intervals in which a heartbeat must be received for the workspace not to time out2195Timeout string `protobuf:"bytes,7,opt,name=timeout,proto3" json:"timeout,omitempty"`2196// ide_image is the name of the Docker image used as IDE2197IdeImage *IDEImage `protobuf:"bytes,8,opt,name=ide_image,json=ideImage,proto3" json:"ide_image,omitempty"`2198// class names the class of this workspace2199Class string `protobuf:"bytes,9,opt,name=class,proto3" json:"class,omitempty"`2200// ide_image_layers are contains the images needed for the ide to run,2201// including ide-desktop, desktop-plugin and so on2202IdeImageLayers []string `protobuf:"bytes,10,rep,name=ide_image_layers,json=ideImageLayers,proto3" json:"ide_image_layers,omitempty"`2203// The timeout for closed ide.2204ClosedTimeout string `protobuf:"bytes,11,opt,name=closed_timeout,json=closedTimeout,proto3" json:"closed_timeout,omitempty"`2205}22062207func (x *WorkspaceSpec) Reset() {2208*x = WorkspaceSpec{}2209if protoimpl.UnsafeEnabled {2210mi := &file_core_proto_msgTypes[29]2211ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2212ms.StoreMessageInfo(mi)2213}2214}22152216func (x *WorkspaceSpec) String() string {2217return protoimpl.X.MessageStringOf(x)2218}22192220func (*WorkspaceSpec) ProtoMessage() {}22212222func (x *WorkspaceSpec) ProtoReflect() protoreflect.Message {2223mi := &file_core_proto_msgTypes[29]2224if protoimpl.UnsafeEnabled && x != nil {2225ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2226if ms.LoadMessageInfo() == nil {2227ms.StoreMessageInfo(mi)2228}2229return ms2230}2231return mi.MessageOf(x)2232}22332234// Deprecated: Use WorkspaceSpec.ProtoReflect.Descriptor instead.2235func (*WorkspaceSpec) Descriptor() ([]byte, []int) {2236return file_core_proto_rawDescGZIP(), []int{29}2237}22382239func (x *WorkspaceSpec) GetWorkspaceImage() string {2240if x != nil {2241return x.WorkspaceImage2242}2243return ""2244}22452246func (x *WorkspaceSpec) GetHeadless() bool {2247if x != nil {2248return x.Headless2249}2250return false2251}22522253func (x *WorkspaceSpec) GetUrl() string {2254if x != nil {2255return x.Url2256}2257return ""2258}22592260func (x *WorkspaceSpec) GetExposedPorts() []*PortSpec {2261if x != nil {2262return x.ExposedPorts2263}2264return nil2265}22662267func (x *WorkspaceSpec) GetType() WorkspaceType {2268if x != nil {2269return x.Type2270}2271return WorkspaceType_REGULAR2272}22732274func (x *WorkspaceSpec) GetTimeout() string {2275if x != nil {2276return x.Timeout2277}2278return ""2279}22802281func (x *WorkspaceSpec) GetIdeImage() *IDEImage {2282if x != nil {2283return x.IdeImage2284}2285return nil2286}22872288func (x *WorkspaceSpec) GetClass() string {2289if x != nil {2290return x.Class2291}2292return ""2293}22942295func (x *WorkspaceSpec) GetIdeImageLayers() []string {2296if x != nil {2297return x.IdeImageLayers2298}2299return nil2300}23012302func (x *WorkspaceSpec) GetClosedTimeout() string {2303if x != nil {2304return x.ClosedTimeout2305}2306return ""2307}23082309// PortSpec describes a networking port exposed on a workspace2310type PortSpec struct {2311state protoimpl.MessageState2312sizeCache protoimpl.SizeCache2313unknownFields protoimpl.UnknownFields23142315// port is the outward-facing port2316Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`2317// visibility defines the visibility of the port2318Visibility PortVisibility `protobuf:"varint,3,opt,name=visibility,proto3,enum=wsman.PortVisibility" json:"visibility,omitempty"`2319// url is the public-facing URL this port is available at2320Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty"`2321// protocol is the workspace port protocol, default is http2322Protocol PortProtocol `protobuf:"varint,5,opt,name=protocol,proto3,enum=wsman.PortProtocol" json:"protocol,omitempty"`2323}23242325func (x *PortSpec) Reset() {2326*x = PortSpec{}2327if protoimpl.UnsafeEnabled {2328mi := &file_core_proto_msgTypes[30]2329ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2330ms.StoreMessageInfo(mi)2331}2332}23332334func (x *PortSpec) String() string {2335return protoimpl.X.MessageStringOf(x)2336}23372338func (*PortSpec) ProtoMessage() {}23392340func (x *PortSpec) ProtoReflect() protoreflect.Message {2341mi := &file_core_proto_msgTypes[30]2342if protoimpl.UnsafeEnabled && x != nil {2343ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2344if ms.LoadMessageInfo() == nil {2345ms.StoreMessageInfo(mi)2346}2347return ms2348}2349return mi.MessageOf(x)2350}23512352// Deprecated: Use PortSpec.ProtoReflect.Descriptor instead.2353func (*PortSpec) Descriptor() ([]byte, []int) {2354return file_core_proto_rawDescGZIP(), []int{30}2355}23562357func (x *PortSpec) GetPort() uint32 {2358if x != nil {2359return x.Port2360}2361return 02362}23632364func (x *PortSpec) GetVisibility() PortVisibility {2365if x != nil {2366return x.Visibility2367}2368return PortVisibility_PORT_VISIBILITY_PRIVATE2369}23702371func (x *PortSpec) GetUrl() string {2372if x != nil {2373return x.Url2374}2375return ""2376}23772378func (x *PortSpec) GetProtocol() PortProtocol {2379if x != nil {2380return x.Protocol2381}2382return PortProtocol_PORT_PROTOCOL_HTTP2383}23842385// VolumeSnapshotInfo defines volume snapshot information2386type VolumeSnapshotInfo struct {2387state protoimpl.MessageState2388sizeCache protoimpl.SizeCache2389unknownFields protoimpl.UnknownFields23902391// volume_snapshot_name is the name of volume snapshot2392VolumeSnapshotName string `protobuf:"bytes,1,opt,name=volume_snapshot_name,json=volumeSnapshotName,proto3" json:"volume_snapshot_name,omitempty"`2393// volume_snapshot_handle is a handle that is used to restore volume snapshot2394VolumeSnapshotHandle string `protobuf:"bytes,2,opt,name=volume_snapshot_handle,json=volumeSnapshotHandle,proto3" json:"volume_snapshot_handle,omitempty"`2395}23962397func (x *VolumeSnapshotInfo) Reset() {2398*x = VolumeSnapshotInfo{}2399if protoimpl.UnsafeEnabled {2400mi := &file_core_proto_msgTypes[31]2401ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2402ms.StoreMessageInfo(mi)2403}2404}24052406func (x *VolumeSnapshotInfo) String() string {2407return protoimpl.X.MessageStringOf(x)2408}24092410func (*VolumeSnapshotInfo) ProtoMessage() {}24112412func (x *VolumeSnapshotInfo) ProtoReflect() protoreflect.Message {2413mi := &file_core_proto_msgTypes[31]2414if protoimpl.UnsafeEnabled && x != nil {2415ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2416if ms.LoadMessageInfo() == nil {2417ms.StoreMessageInfo(mi)2418}2419return ms2420}2421return mi.MessageOf(x)2422}24232424// Deprecated: Use VolumeSnapshotInfo.ProtoReflect.Descriptor instead.2425func (*VolumeSnapshotInfo) Descriptor() ([]byte, []int) {2426return file_core_proto_rawDescGZIP(), []int{31}2427}24282429func (x *VolumeSnapshotInfo) GetVolumeSnapshotName() string {2430if x != nil {2431return x.VolumeSnapshotName2432}2433return ""2434}24352436func (x *VolumeSnapshotInfo) GetVolumeSnapshotHandle() string {2437if x != nil {2438return x.VolumeSnapshotHandle2439}2440return ""2441}24422443// WorkspaceCondition gives more detailed information as to the state of the workspace. Which condition actually2444// has a value depends on the phase the workspace is in.2445type WorkspaceConditions struct {2446state protoimpl.MessageState2447sizeCache protoimpl.SizeCache2448unknownFields protoimpl.UnknownFields24492450// failed contains the reason the workspace failed to operate. If this field is empty, the workspace has not failed.2451Failed string `protobuf:"bytes,1,opt,name=failed,proto3" json:"failed,omitempty"`2452// timeout contains the reason the workspace has timed out. If this field is empty, the workspace has not timed out.2453Timeout string `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"`2454// pulling_images marks if the workspace is currently pulling its images. This condition can only be set during PhaseCreating2455PullingImages WorkspaceConditionBool `protobuf:"varint,3,opt,name=pulling_images,json=pullingImages,proto3,enum=wsman.WorkspaceConditionBool" json:"pulling_images,omitempty"`2456// snapshot contains a snapshot URL if a snapshot was produced prior to shutting the workspace down. This condition is only used for headless workspaces.2457Snapshot string `protobuf:"bytes,5,opt,name=snapshot,proto3" json:"snapshot,omitempty"`2458// final_backup_complete determines if the last state of the workspace has been backed up to remote storage.2459// Once this is true, a new workspace with the same ID will be able to use this backup.2460FinalBackupComplete WorkspaceConditionBool `protobuf:"varint,6,opt,name=final_backup_complete,json=finalBackupComplete,proto3,enum=wsman.WorkspaceConditionBool" json:"final_backup_complete,omitempty"`2461// 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.2462Deployed WorkspaceConditionBool `protobuf:"varint,7,opt,name=deployed,proto3,enum=wsman.WorkspaceConditionBool" json:"deployed,omitempty"`2463// network_not_ready indicates if a workspace container is currently experiencing a network problem.2464NetworkNotReady WorkspaceConditionBool `protobuf:"varint,8,opt,name=network_not_ready,json=networkNotReady,proto3,enum=wsman.WorkspaceConditionBool" json:"network_not_ready,omitempty"`2465// first_user_activity is the time when MarkActive was first called on the workspace2466FirstUserActivity *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=first_user_activity,json=firstUserActivity,proto3" json:"first_user_activity,omitempty"`2467// headless_task_failed indicates that a headless workspace task failed2468HeadlessTaskFailed string `protobuf:"bytes,10,opt,name=headless_task_failed,json=headlessTaskFailed,proto3" json:"headless_task_failed,omitempty"`2469// stopped_by_request is true if the workspace was stopped using a StopWorkspace call2470StoppedByRequest WorkspaceConditionBool `protobuf:"varint,11,opt,name=stopped_by_request,json=stoppedByRequest,proto3,enum=wsman.WorkspaceConditionBool" json:"stopped_by_request,omitempty"`2471// volume_snapshot contains info about volume snapshot that was used to save persistent volume2472VolumeSnapshot *VolumeSnapshotInfo `protobuf:"bytes,12,opt,name=volume_snapshot,json=volumeSnapshot,proto3" json:"volume_snapshot,omitempty"`2473// aborted is true if StopWorkspace was called with StopWorkspacePolicy set to ABORT2474Aborted WorkspaceConditionBool `protobuf:"varint,13,opt,name=aborted,proto3,enum=wsman.WorkspaceConditionBool" json:"aborted,omitempty"`2475}24762477func (x *WorkspaceConditions) Reset() {2478*x = WorkspaceConditions{}2479if protoimpl.UnsafeEnabled {2480mi := &file_core_proto_msgTypes[32]2481ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2482ms.StoreMessageInfo(mi)2483}2484}24852486func (x *WorkspaceConditions) String() string {2487return protoimpl.X.MessageStringOf(x)2488}24892490func (*WorkspaceConditions) ProtoMessage() {}24912492func (x *WorkspaceConditions) ProtoReflect() protoreflect.Message {2493mi := &file_core_proto_msgTypes[32]2494if protoimpl.UnsafeEnabled && x != nil {2495ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2496if ms.LoadMessageInfo() == nil {2497ms.StoreMessageInfo(mi)2498}2499return ms2500}2501return mi.MessageOf(x)2502}25032504// Deprecated: Use WorkspaceConditions.ProtoReflect.Descriptor instead.2505func (*WorkspaceConditions) Descriptor() ([]byte, []int) {2506return file_core_proto_rawDescGZIP(), []int{32}2507}25082509func (x *WorkspaceConditions) GetFailed() string {2510if x != nil {2511return x.Failed2512}2513return ""2514}25152516func (x *WorkspaceConditions) GetTimeout() string {2517if x != nil {2518return x.Timeout2519}2520return ""2521}25222523func (x *WorkspaceConditions) GetPullingImages() WorkspaceConditionBool {2524if x != nil {2525return x.PullingImages2526}2527return WorkspaceConditionBool_FALSE2528}25292530func (x *WorkspaceConditions) GetSnapshot() string {2531if x != nil {2532return x.Snapshot2533}2534return ""2535}25362537func (x *WorkspaceConditions) GetFinalBackupComplete() WorkspaceConditionBool {2538if x != nil {2539return x.FinalBackupComplete2540}2541return WorkspaceConditionBool_FALSE2542}25432544func (x *WorkspaceConditions) GetDeployed() WorkspaceConditionBool {2545if x != nil {2546return x.Deployed2547}2548return WorkspaceConditionBool_FALSE2549}25502551func (x *WorkspaceConditions) GetNetworkNotReady() WorkspaceConditionBool {2552if x != nil {2553return x.NetworkNotReady2554}2555return WorkspaceConditionBool_FALSE2556}25572558func (x *WorkspaceConditions) GetFirstUserActivity() *timestamppb.Timestamp {2559if x != nil {2560return x.FirstUserActivity2561}2562return nil2563}25642565func (x *WorkspaceConditions) GetHeadlessTaskFailed() string {2566if x != nil {2567return x.HeadlessTaskFailed2568}2569return ""2570}25712572func (x *WorkspaceConditions) GetStoppedByRequest() WorkspaceConditionBool {2573if x != nil {2574return x.StoppedByRequest2575}2576return WorkspaceConditionBool_FALSE2577}25782579func (x *WorkspaceConditions) GetVolumeSnapshot() *VolumeSnapshotInfo {2580if x != nil {2581return x.VolumeSnapshot2582}2583return nil2584}25852586func (x *WorkspaceConditions) GetAborted() WorkspaceConditionBool {2587if x != nil {2588return x.Aborted2589}2590return WorkspaceConditionBool_FALSE2591}25922593// WorkspaceMetadata is data associated with a workspace that's required for other parts of the system to function2594type WorkspaceMetadata struct {2595state protoimpl.MessageState2596sizeCache protoimpl.SizeCache2597unknownFields protoimpl.UnknownFields25982599// owner is the ID of the Gitpod user to whom we'll bill this workspace and who we consider responsible for its content2600Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"`2601// meta_id is the workspace ID of this currently running workspace instance on the "meta pool" side2602MetaId string `protobuf:"bytes,2,opt,name=meta_id,json=metaId,proto3" json:"meta_id,omitempty"`2603// 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.2604StartedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"`2605// Annotations are key/value pairs that gets attached to the workspace.2606// This is primarily intended for annotating headless workspace loads.2607Annotations 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"`2608// team the workspace belongs to, if the workspace is not associated with a team, this property will be empty2609Team *string `protobuf:"bytes,5,opt,name=team,proto3,oneof" json:"team,omitempty"`2610// project the workspace belongs to, if the workspace is not associated with a project, this property will be empty2611Project *string `protobuf:"bytes,6,opt,name=project,proto3,oneof" json:"project,omitempty"`2612// metrics contains metrics about the workspace2613Metrics *WorkspaceMetadata_Metrics `protobuf:"bytes,7,opt,name=metrics,proto3" json:"metrics,omitempty"`2614}26152616func (x *WorkspaceMetadata) Reset() {2617*x = WorkspaceMetadata{}2618if protoimpl.UnsafeEnabled {2619mi := &file_core_proto_msgTypes[33]2620ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2621ms.StoreMessageInfo(mi)2622}2623}26242625func (x *WorkspaceMetadata) String() string {2626return protoimpl.X.MessageStringOf(x)2627}26282629func (*WorkspaceMetadata) ProtoMessage() {}26302631func (x *WorkspaceMetadata) ProtoReflect() protoreflect.Message {2632mi := &file_core_proto_msgTypes[33]2633if protoimpl.UnsafeEnabled && x != nil {2634ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2635if ms.LoadMessageInfo() == nil {2636ms.StoreMessageInfo(mi)2637}2638return ms2639}2640return mi.MessageOf(x)2641}26422643// Deprecated: Use WorkspaceMetadata.ProtoReflect.Descriptor instead.2644func (*WorkspaceMetadata) Descriptor() ([]byte, []int) {2645return file_core_proto_rawDescGZIP(), []int{33}2646}26472648func (x *WorkspaceMetadata) GetOwner() string {2649if x != nil {2650return x.Owner2651}2652return ""2653}26542655func (x *WorkspaceMetadata) GetMetaId() string {2656if x != nil {2657return x.MetaId2658}2659return ""2660}26612662func (x *WorkspaceMetadata) GetStartedAt() *timestamppb.Timestamp {2663if x != nil {2664return x.StartedAt2665}2666return nil2667}26682669func (x *WorkspaceMetadata) GetAnnotations() map[string]string {2670if x != nil {2671return x.Annotations2672}2673return nil2674}26752676func (x *WorkspaceMetadata) GetTeam() string {2677if x != nil && x.Team != nil {2678return *x.Team2679}2680return ""2681}26822683func (x *WorkspaceMetadata) GetProject() string {2684if x != nil && x.Project != nil {2685return *x.Project2686}2687return ""2688}26892690func (x *WorkspaceMetadata) GetMetrics() *WorkspaceMetadata_Metrics {2691if x != nil {2692return x.Metrics2693}2694return nil2695}26962697// WorkspaceRuntimeInfo details the workspace's runtime, e.g. executing system, node other information2698// about the environment the workspace runs in. This information serves a diagnostic purpose only and2699// should not be directly acted upon.2700type WorkspaceRuntimeInfo struct {2701state protoimpl.MessageState2702sizeCache protoimpl.SizeCache2703unknownFields protoimpl.UnknownFields27042705// node_name is the name of the node the workspace runs on2706NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"`2707// pod_name is the name of the pod the workspace runs in2708PodName string `protobuf:"bytes,2,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"`2709// node_ip is the IP of the node the workspace runs on2710NodeIp string `protobuf:"bytes,3,opt,name=node_ip,json=nodeIp,proto3" json:"node_ip,omitempty"`2711}27122713func (x *WorkspaceRuntimeInfo) Reset() {2714*x = WorkspaceRuntimeInfo{}2715if protoimpl.UnsafeEnabled {2716mi := &file_core_proto_msgTypes[34]2717ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2718ms.StoreMessageInfo(mi)2719}2720}27212722func (x *WorkspaceRuntimeInfo) String() string {2723return protoimpl.X.MessageStringOf(x)2724}27252726func (*WorkspaceRuntimeInfo) ProtoMessage() {}27272728func (x *WorkspaceRuntimeInfo) ProtoReflect() protoreflect.Message {2729mi := &file_core_proto_msgTypes[34]2730if protoimpl.UnsafeEnabled && x != nil {2731ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2732if ms.LoadMessageInfo() == nil {2733ms.StoreMessageInfo(mi)2734}2735return ms2736}2737return mi.MessageOf(x)2738}27392740// Deprecated: Use WorkspaceRuntimeInfo.ProtoReflect.Descriptor instead.2741func (*WorkspaceRuntimeInfo) Descriptor() ([]byte, []int) {2742return file_core_proto_rawDescGZIP(), []int{34}2743}27442745func (x *WorkspaceRuntimeInfo) GetNodeName() string {2746if x != nil {2747return x.NodeName2748}2749return ""2750}27512752func (x *WorkspaceRuntimeInfo) GetPodName() string {2753if x != nil {2754return x.PodName2755}2756return ""2757}27582759func (x *WorkspaceRuntimeInfo) GetNodeIp() string {2760if x != nil {2761return x.NodeIp2762}2763return ""2764}27652766// WorkspaceAuthentication contains authentication information used by ws-proxy to allow/deny access to2767// workspaces and their ports.2768type WorkspaceAuthentication struct {2769state protoimpl.MessageState2770sizeCache protoimpl.SizeCache2771unknownFields protoimpl.UnknownFields27722773// Admission describes who can access the workspace and its ports.2774Admission AdmissionLevel `protobuf:"varint,1,opt,name=admission,proto3,enum=wsman.AdmissionLevel" json:"admission,omitempty"`2775// Owner token is the token one needs to access the workspace. Its presence is checked by ws-proxy.2776OwnerToken string `protobuf:"bytes,2,opt,name=owner_token,json=ownerToken,proto3" json:"owner_token,omitempty"`2777}27782779func (x *WorkspaceAuthentication) Reset() {2780*x = WorkspaceAuthentication{}2781if protoimpl.UnsafeEnabled {2782mi := &file_core_proto_msgTypes[35]2783ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2784ms.StoreMessageInfo(mi)2785}2786}27872788func (x *WorkspaceAuthentication) String() string {2789return protoimpl.X.MessageStringOf(x)2790}27912792func (*WorkspaceAuthentication) ProtoMessage() {}27932794func (x *WorkspaceAuthentication) ProtoReflect() protoreflect.Message {2795mi := &file_core_proto_msgTypes[35]2796if protoimpl.UnsafeEnabled && x != nil {2797ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2798if ms.LoadMessageInfo() == nil {2799ms.StoreMessageInfo(mi)2800}2801return ms2802}2803return mi.MessageOf(x)2804}28052806// Deprecated: Use WorkspaceAuthentication.ProtoReflect.Descriptor instead.2807func (*WorkspaceAuthentication) Descriptor() ([]byte, []int) {2808return file_core_proto_rawDescGZIP(), []int{35}2809}28102811func (x *WorkspaceAuthentication) GetAdmission() AdmissionLevel {2812if x != nil {2813return x.Admission2814}2815return AdmissionLevel_ADMIT_OWNER_ONLY2816}28172818func (x *WorkspaceAuthentication) GetOwnerToken() string {2819if x != nil {2820return x.OwnerToken2821}2822return ""2823}28242825// StartWorkspaceSpec specifies the configuration of a workspace for a workspace start2826type StartWorkspaceSpec struct {2827state protoimpl.MessageState2828sizeCache protoimpl.SizeCache2829unknownFields protoimpl.UnknownFields28302831// workspace_image is the Docker image name of the workspace container2832WorkspaceImage string `protobuf:"bytes,1,opt,name=workspace_image,json=workspaceImage,proto3" json:"workspace_image,omitempty"`2833// feature_flags provide a means for starting variants of workspaces (e.g. a privileged one)2834FeatureFlags []WorkspaceFeatureFlag `protobuf:"varint,3,rep,packed,name=feature_flags,json=featureFlags,proto3,enum=wsman.WorkspaceFeatureFlag" json:"feature_flags,omitempty"`2835// initializer configures how the workspace is to be initialized2836Initializer *api.WorkspaceInitializer `protobuf:"bytes,4,opt,name=initializer,proto3" json:"initializer,omitempty"`2837// ports is the set of ports which ought to be exposed to the internet2838Ports []*PortSpec `protobuf:"bytes,5,rep,name=ports,proto3" json:"ports,omitempty"`2839// envvars are user-defined environment variables which ought to be available in the workspace2840Envvars []*EnvironmentVariable `protobuf:"bytes,6,rep,name=envvars,proto3" json:"envvars,omitempty"`2841// workspace_location describes where the workspace root of Theia will be2842WorkspaceLocation string `protobuf:"bytes,8,opt,name=workspace_location,json=workspaceLocation,proto3" json:"workspace_location,omitempty"`2843// Git configures the Git user in the workspace2844Git *GitSpec `protobuf:"bytes,9,opt,name=git,proto3" json:"git,omitempty"`2845// timeout optionally sets a custom workspace timeout2846Timeout string `protobuf:"bytes,10,opt,name=timeout,proto3" json:"timeout,omitempty"`2847// admission controlls who can access the workspace and its ports.2848Admission AdmissionLevel `protobuf:"varint,11,opt,name=admission,proto3,enum=wsman.AdmissionLevel" json:"admission,omitempty"`2849// ide_image is the Docker image name of the IDE image2850IdeImage *IDEImage `protobuf:"bytes,12,opt,name=ide_image,json=ideImage,proto3" json:"ide_image,omitempty"`2851// Class denotes the class of the workspace we ought to start2852Class string `protobuf:"bytes,13,opt,name=class,proto3" json:"class,omitempty"`2853// ssh_public_keys is user's uploaded ssh public keys2854SshPublicKeys []string `protobuf:"bytes,15,rep,name=ssh_public_keys,json=sshPublicKeys,proto3" json:"ssh_public_keys,omitempty"`2855// sys_envvars are system level environment variables which ought to be available in the workspace2856SysEnvvars []*EnvironmentVariable `protobuf:"bytes,16,rep,name=sys_envvars,json=sysEnvvars,proto3" json:"sys_envvars,omitempty"`2857// ide_image_layers are contains the images needed for the ide to run,2858// including ide-desktop, desktop-plugin and so on2859IdeImageLayers []string `protobuf:"bytes,17,rep,name=ide_image_layers,json=ideImageLayers,proto3" json:"ide_image_layers,omitempty"`2860// timeout optionally sets a custom closed timeout2861ClosedTimeout string `protobuf:"bytes,18,opt,name=closed_timeout,json=closedTimeout,proto3" json:"closed_timeout,omitempty"`2862// maximum lifetime of the workspace2863MaximumLifetime string `protobuf:"bytes,19,opt,name=maximum_lifetime,json=maximumLifetime,proto3" json:"maximum_lifetime,omitempty"`2864}28652866func (x *StartWorkspaceSpec) Reset() {2867*x = StartWorkspaceSpec{}2868if protoimpl.UnsafeEnabled {2869mi := &file_core_proto_msgTypes[36]2870ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2871ms.StoreMessageInfo(mi)2872}2873}28742875func (x *StartWorkspaceSpec) String() string {2876return protoimpl.X.MessageStringOf(x)2877}28782879func (*StartWorkspaceSpec) ProtoMessage() {}28802881func (x *StartWorkspaceSpec) ProtoReflect() protoreflect.Message {2882mi := &file_core_proto_msgTypes[36]2883if protoimpl.UnsafeEnabled && x != nil {2884ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))2885if ms.LoadMessageInfo() == nil {2886ms.StoreMessageInfo(mi)2887}2888return ms2889}2890return mi.MessageOf(x)2891}28922893// Deprecated: Use StartWorkspaceSpec.ProtoReflect.Descriptor instead.2894func (*StartWorkspaceSpec) Descriptor() ([]byte, []int) {2895return file_core_proto_rawDescGZIP(), []int{36}2896}28972898func (x *StartWorkspaceSpec) GetWorkspaceImage() string {2899if x != nil {2900return x.WorkspaceImage2901}2902return ""2903}29042905func (x *StartWorkspaceSpec) GetFeatureFlags() []WorkspaceFeatureFlag {2906if x != nil {2907return x.FeatureFlags2908}2909return nil2910}29112912func (x *StartWorkspaceSpec) GetInitializer() *api.WorkspaceInitializer {2913if x != nil {2914return x.Initializer2915}2916return nil2917}29182919func (x *StartWorkspaceSpec) GetPorts() []*PortSpec {2920if x != nil {2921return x.Ports2922}2923return nil2924}29252926func (x *StartWorkspaceSpec) GetEnvvars() []*EnvironmentVariable {2927if x != nil {2928return x.Envvars2929}2930return nil2931}29322933func (x *StartWorkspaceSpec) GetWorkspaceLocation() string {2934if x != nil {2935return x.WorkspaceLocation2936}2937return ""2938}29392940func (x *StartWorkspaceSpec) GetGit() *GitSpec {2941if x != nil {2942return x.Git2943}2944return nil2945}29462947func (x *StartWorkspaceSpec) GetTimeout() string {2948if x != nil {2949return x.Timeout2950}2951return ""2952}29532954func (x *StartWorkspaceSpec) GetAdmission() AdmissionLevel {2955if x != nil {2956return x.Admission2957}2958return AdmissionLevel_ADMIT_OWNER_ONLY2959}29602961func (x *StartWorkspaceSpec) GetIdeImage() *IDEImage {2962if x != nil {2963return x.IdeImage2964}2965return nil2966}29672968func (x *StartWorkspaceSpec) GetClass() string {2969if x != nil {2970return x.Class2971}2972return ""2973}29742975func (x *StartWorkspaceSpec) GetSshPublicKeys() []string {2976if x != nil {2977return x.SshPublicKeys2978}2979return nil2980}29812982func (x *StartWorkspaceSpec) GetSysEnvvars() []*EnvironmentVariable {2983if x != nil {2984return x.SysEnvvars2985}2986return nil2987}29882989func (x *StartWorkspaceSpec) GetIdeImageLayers() []string {2990if x != nil {2991return x.IdeImageLayers2992}2993return nil2994}29952996func (x *StartWorkspaceSpec) GetClosedTimeout() string {2997if x != nil {2998return x.ClosedTimeout2999}3000return ""3001}30023003func (x *StartWorkspaceSpec) GetMaximumLifetime() string {3004if x != nil {3005return x.MaximumLifetime3006}3007return ""3008}30093010// GitSpec configures the Git available within the workspace3011type GitSpec struct {3012state protoimpl.MessageState3013sizeCache protoimpl.SizeCache3014unknownFields protoimpl.UnknownFields30153016// The Git username3017Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`3018// The Git email address3019Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`3020}30213022func (x *GitSpec) Reset() {3023*x = GitSpec{}3024if protoimpl.UnsafeEnabled {3025mi := &file_core_proto_msgTypes[37]3026ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3027ms.StoreMessageInfo(mi)3028}3029}30303031func (x *GitSpec) String() string {3032return protoimpl.X.MessageStringOf(x)3033}30343035func (*GitSpec) ProtoMessage() {}30363037func (x *GitSpec) ProtoReflect() protoreflect.Message {3038mi := &file_core_proto_msgTypes[37]3039if protoimpl.UnsafeEnabled && x != nil {3040ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3041if ms.LoadMessageInfo() == nil {3042ms.StoreMessageInfo(mi)3043}3044return ms3045}3046return mi.MessageOf(x)3047}30483049// Deprecated: Use GitSpec.ProtoReflect.Descriptor instead.3050func (*GitSpec) Descriptor() ([]byte, []int) {3051return file_core_proto_rawDescGZIP(), []int{37}3052}30533054func (x *GitSpec) GetUsername() string {3055if x != nil {3056return x.Username3057}3058return ""3059}30603061func (x *GitSpec) GetEmail() string {3062if x != nil {3063return x.Email3064}3065return ""3066}30673068// EnvironmentVariable describes an env var as key/value pair3069type EnvironmentVariable struct {3070state protoimpl.MessageState3071sizeCache protoimpl.SizeCache3072unknownFields protoimpl.UnknownFields30733074Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`3075Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`3076// Pulls the value from a secret in the cluster.3077// Use this field with great caution: if the name is wrong or Kubernetes cannot find the secret,3078// your workspace will not start. Value takes precedence over this field.3079Secret *EnvironmentVariable_SecretKeyRef `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"`3080}30813082func (x *EnvironmentVariable) Reset() {3083*x = EnvironmentVariable{}3084if protoimpl.UnsafeEnabled {3085mi := &file_core_proto_msgTypes[38]3086ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3087ms.StoreMessageInfo(mi)3088}3089}30903091func (x *EnvironmentVariable) String() string {3092return protoimpl.X.MessageStringOf(x)3093}30943095func (*EnvironmentVariable) ProtoMessage() {}30963097func (x *EnvironmentVariable) ProtoReflect() protoreflect.Message {3098mi := &file_core_proto_msgTypes[38]3099if protoimpl.UnsafeEnabled && x != nil {3100ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3101if ms.LoadMessageInfo() == nil {3102ms.StoreMessageInfo(mi)3103}3104return ms3105}3106return mi.MessageOf(x)3107}31083109// Deprecated: Use EnvironmentVariable.ProtoReflect.Descriptor instead.3110func (*EnvironmentVariable) Descriptor() ([]byte, []int) {3111return file_core_proto_rawDescGZIP(), []int{38}3112}31133114func (x *EnvironmentVariable) GetName() string {3115if x != nil {3116return x.Name3117}3118return ""3119}31203121func (x *EnvironmentVariable) GetValue() string {3122if x != nil {3123return x.Value3124}3125return ""3126}31273128func (x *EnvironmentVariable) GetSecret() *EnvironmentVariable_SecretKeyRef {3129if x != nil {3130return x.Secret3131}3132return nil3133}31343135// ExposedPorts describes the exposed ports of a workspace3136type ExposedPorts struct {3137state protoimpl.MessageState3138sizeCache protoimpl.SizeCache3139unknownFields protoimpl.UnknownFields31403141// ports is the set of ports which ought to be exposed to the internet3142Ports []*PortSpec `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"`3143}31443145func (x *ExposedPorts) Reset() {3146*x = ExposedPorts{}3147if protoimpl.UnsafeEnabled {3148mi := &file_core_proto_msgTypes[39]3149ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3150ms.StoreMessageInfo(mi)3151}3152}31533154func (x *ExposedPorts) String() string {3155return protoimpl.X.MessageStringOf(x)3156}31573158func (*ExposedPorts) ProtoMessage() {}31593160func (x *ExposedPorts) ProtoReflect() protoreflect.Message {3161mi := &file_core_proto_msgTypes[39]3162if protoimpl.UnsafeEnabled && x != nil {3163ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3164if ms.LoadMessageInfo() == nil {3165ms.StoreMessageInfo(mi)3166}3167return ms3168}3169return mi.MessageOf(x)3170}31713172// Deprecated: Use ExposedPorts.ProtoReflect.Descriptor instead.3173func (*ExposedPorts) Descriptor() ([]byte, []int) {3174return file_core_proto_rawDescGZIP(), []int{39}3175}31763177func (x *ExposedPorts) GetPorts() []*PortSpec {3178if x != nil {3179return x.Ports3180}3181return nil3182}31833184// SSHPublicKeys describes the user's uploaded ssh public keys, it will be used only in annotations.3185type SSHPublicKeys struct {3186state protoimpl.MessageState3187sizeCache protoimpl.SizeCache3188unknownFields protoimpl.UnknownFields31893190// keys is the set of ssh public key3191Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`3192}31933194func (x *SSHPublicKeys) Reset() {3195*x = SSHPublicKeys{}3196if protoimpl.UnsafeEnabled {3197mi := &file_core_proto_msgTypes[40]3198ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3199ms.StoreMessageInfo(mi)3200}3201}32023203func (x *SSHPublicKeys) String() string {3204return protoimpl.X.MessageStringOf(x)3205}32063207func (*SSHPublicKeys) ProtoMessage() {}32083209func (x *SSHPublicKeys) ProtoReflect() protoreflect.Message {3210mi := &file_core_proto_msgTypes[40]3211if protoimpl.UnsafeEnabled && x != nil {3212ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3213if ms.LoadMessageInfo() == nil {3214ms.StoreMessageInfo(mi)3215}3216return ms3217}3218return mi.MessageOf(x)3219}32203221// Deprecated: Use SSHPublicKeys.ProtoReflect.Descriptor instead.3222func (*SSHPublicKeys) Descriptor() ([]byte, []int) {3223return file_core_proto_rawDescGZIP(), []int{40}3224}32253226func (x *SSHPublicKeys) GetKeys() []string {3227if x != nil {3228return x.Keys3229}3230return nil3231}32323233// DescribeClusterRequest requests information about the cluster3234type DescribeClusterRequest struct {3235state protoimpl.MessageState3236sizeCache protoimpl.SizeCache3237unknownFields protoimpl.UnknownFields3238}32393240func (x *DescribeClusterRequest) Reset() {3241*x = DescribeClusterRequest{}3242if protoimpl.UnsafeEnabled {3243mi := &file_core_proto_msgTypes[41]3244ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3245ms.StoreMessageInfo(mi)3246}3247}32483249func (x *DescribeClusterRequest) String() string {3250return protoimpl.X.MessageStringOf(x)3251}32523253func (*DescribeClusterRequest) ProtoMessage() {}32543255func (x *DescribeClusterRequest) ProtoReflect() protoreflect.Message {3256mi := &file_core_proto_msgTypes[41]3257if protoimpl.UnsafeEnabled && x != nil {3258ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3259if ms.LoadMessageInfo() == nil {3260ms.StoreMessageInfo(mi)3261}3262return ms3263}3264return mi.MessageOf(x)3265}32663267// Deprecated: Use DescribeClusterRequest.ProtoReflect.Descriptor instead.3268func (*DescribeClusterRequest) Descriptor() ([]byte, []int) {3269return file_core_proto_rawDescGZIP(), []int{41}3270}32713272// DescribeClusterResponse is the answer to a DescribeClusterRequest3273type DescribeClusterResponse struct {3274state protoimpl.MessageState3275sizeCache protoimpl.SizeCache3276unknownFields protoimpl.UnknownFields32773278// workspace classes that are supported by the cluster3279WorkspaceClasses []*WorkspaceClass `protobuf:"bytes,1,rep,name=workspace_classes,json=workspaceClasses,proto3" json:"workspace_classes,omitempty"`3280// preferred_workspace_class is the workspace class that is preferred by the cluster (consider this the "default" workspace class)3281PreferredWorkspaceClass string `protobuf:"bytes,2,opt,name=preferred_workspace_class,json=preferredWorkspaceClass,proto3" json:"preferred_workspace_class,omitempty"`3282}32833284func (x *DescribeClusterResponse) Reset() {3285*x = DescribeClusterResponse{}3286if protoimpl.UnsafeEnabled {3287mi := &file_core_proto_msgTypes[42]3288ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3289ms.StoreMessageInfo(mi)3290}3291}32923293func (x *DescribeClusterResponse) String() string {3294return protoimpl.X.MessageStringOf(x)3295}32963297func (*DescribeClusterResponse) ProtoMessage() {}32983299func (x *DescribeClusterResponse) ProtoReflect() protoreflect.Message {3300mi := &file_core_proto_msgTypes[42]3301if protoimpl.UnsafeEnabled && x != nil {3302ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3303if ms.LoadMessageInfo() == nil {3304ms.StoreMessageInfo(mi)3305}3306return ms3307}3308return mi.MessageOf(x)3309}33103311// Deprecated: Use DescribeClusterResponse.ProtoReflect.Descriptor instead.3312func (*DescribeClusterResponse) Descriptor() ([]byte, []int) {3313return file_core_proto_rawDescGZIP(), []int{42}3314}33153316func (x *DescribeClusterResponse) GetWorkspaceClasses() []*WorkspaceClass {3317if x != nil {3318return x.WorkspaceClasses3319}3320return nil3321}33223323func (x *DescribeClusterResponse) GetPreferredWorkspaceClass() string {3324if x != nil {3325return x.PreferredWorkspaceClass3326}3327return ""3328}33293330// WorkspaceClass describes a workspace class that is supported by the cluster3331type WorkspaceClass struct {3332state protoimpl.MessageState3333sizeCache protoimpl.SizeCache3334unknownFields protoimpl.UnknownFields33353336// ID is a unique identifier (within the cluster) of this workspace class3337Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`3338// The string we display to users in the UI3339DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`3340// The description of this workspace class3341Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`3342// The cost of running a workspace of this class per minute expressed in credits3343CreditsPerMinute float32 `protobuf:"fixed32,4,opt,name=credits_per_minute,json=creditsPerMinute,proto3" json:"credits_per_minute,omitempty"`3344}33453346func (x *WorkspaceClass) Reset() {3347*x = WorkspaceClass{}3348if protoimpl.UnsafeEnabled {3349mi := &file_core_proto_msgTypes[43]3350ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3351ms.StoreMessageInfo(mi)3352}3353}33543355func (x *WorkspaceClass) String() string {3356return protoimpl.X.MessageStringOf(x)3357}33583359func (*WorkspaceClass) ProtoMessage() {}33603361func (x *WorkspaceClass) ProtoReflect() protoreflect.Message {3362mi := &file_core_proto_msgTypes[43]3363if protoimpl.UnsafeEnabled && x != nil {3364ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3365if ms.LoadMessageInfo() == nil {3366ms.StoreMessageInfo(mi)3367}3368return ms3369}3370return mi.MessageOf(x)3371}33723373// Deprecated: Use WorkspaceClass.ProtoReflect.Descriptor instead.3374func (*WorkspaceClass) Descriptor() ([]byte, []int) {3375return file_core_proto_rawDescGZIP(), []int{43}3376}33773378func (x *WorkspaceClass) GetId() string {3379if x != nil {3380return x.Id3381}3382return ""3383}33843385func (x *WorkspaceClass) GetDisplayName() string {3386if x != nil {3387return x.DisplayName3388}3389return ""3390}33913392func (x *WorkspaceClass) GetDescription() string {3393if x != nil {3394return x.Description3395}3396return ""3397}33983399func (x *WorkspaceClass) GetCreditsPerMinute() float32 {3400if x != nil {3401return x.CreditsPerMinute3402}3403return 03404}34053406// Add these new message definitions3407type InitializerMetric struct {3408state protoimpl.MessageState3409sizeCache protoimpl.SizeCache3410unknownFields protoimpl.UnknownFields34113412// Duration in nanoseconds (standard protobuf duration)3413Duration *durationpb.Duration `protobuf:"bytes,1,opt,name=duration,proto3" json:"duration,omitempty"`3414// Size in bytes3415Size uint64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`3416}34173418func (x *InitializerMetric) Reset() {3419*x = InitializerMetric{}3420if protoimpl.UnsafeEnabled {3421mi := &file_core_proto_msgTypes[44]3422ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3423ms.StoreMessageInfo(mi)3424}3425}34263427func (x *InitializerMetric) String() string {3428return protoimpl.X.MessageStringOf(x)3429}34303431func (*InitializerMetric) ProtoMessage() {}34323433func (x *InitializerMetric) ProtoReflect() protoreflect.Message {3434mi := &file_core_proto_msgTypes[44]3435if protoimpl.UnsafeEnabled && x != nil {3436ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3437if ms.LoadMessageInfo() == nil {3438ms.StoreMessageInfo(mi)3439}3440return ms3441}3442return mi.MessageOf(x)3443}34443445// Deprecated: Use InitializerMetric.ProtoReflect.Descriptor instead.3446func (*InitializerMetric) Descriptor() ([]byte, []int) {3447return file_core_proto_rawDescGZIP(), []int{44}3448}34493450func (x *InitializerMetric) GetDuration() *durationpb.Duration {3451if x != nil {3452return x.Duration3453}3454return nil3455}34563457func (x *InitializerMetric) GetSize() uint64 {3458if x != nil {3459return x.Size3460}3461return 03462}34633464type InitializerMetrics struct {3465state protoimpl.MessageState3466sizeCache protoimpl.SizeCache3467unknownFields protoimpl.UnknownFields34683469// Git contains metrics for the git initializer step3470Git *InitializerMetric `protobuf:"bytes,1,opt,name=git,proto3" json:"git,omitempty"`3471// FileDownload contains metrics for the file download initializer step3472FileDownload *InitializerMetric `protobuf:"bytes,2,opt,name=file_download,json=fileDownload,proto3" json:"file_download,omitempty"`3473// Snapshot contains metrics for the snapshot initializer step3474// This used for workspaces started from snapshots.3475Snapshot *InitializerMetric `protobuf:"bytes,3,opt,name=snapshot,proto3" json:"snapshot,omitempty"`3476// Backup contains metrics for the backup initializer step3477Backup *InitializerMetric `protobuf:"bytes,4,opt,name=backup,proto3" json:"backup,omitempty"`3478// Prebuild contains metrics for the prebuild initializer step3479Prebuild *InitializerMetric `protobuf:"bytes,5,opt,name=prebuild,proto3" json:"prebuild,omitempty"`3480// Composite contains metrics for the composite initializer step3481Composite *InitializerMetric `protobuf:"bytes,6,opt,name=composite,proto3" json:"composite,omitempty"`3482}34833484func (x *InitializerMetrics) Reset() {3485*x = InitializerMetrics{}3486if protoimpl.UnsafeEnabled {3487mi := &file_core_proto_msgTypes[45]3488ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3489ms.StoreMessageInfo(mi)3490}3491}34923493func (x *InitializerMetrics) String() string {3494return protoimpl.X.MessageStringOf(x)3495}34963497func (*InitializerMetrics) ProtoMessage() {}34983499func (x *InitializerMetrics) ProtoReflect() protoreflect.Message {3500mi := &file_core_proto_msgTypes[45]3501if protoimpl.UnsafeEnabled && x != nil {3502ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3503if ms.LoadMessageInfo() == nil {3504ms.StoreMessageInfo(mi)3505}3506return ms3507}3508return mi.MessageOf(x)3509}35103511// Deprecated: Use InitializerMetrics.ProtoReflect.Descriptor instead.3512func (*InitializerMetrics) Descriptor() ([]byte, []int) {3513return file_core_proto_rawDescGZIP(), []int{45}3514}35153516func (x *InitializerMetrics) GetGit() *InitializerMetric {3517if x != nil {3518return x.Git3519}3520return nil3521}35223523func (x *InitializerMetrics) GetFileDownload() *InitializerMetric {3524if x != nil {3525return x.FileDownload3526}3527return nil3528}35293530func (x *InitializerMetrics) GetSnapshot() *InitializerMetric {3531if x != nil {3532return x.Snapshot3533}3534return nil3535}35363537func (x *InitializerMetrics) GetBackup() *InitializerMetric {3538if x != nil {3539return x.Backup3540}3541return nil3542}35433544func (x *InitializerMetrics) GetPrebuild() *InitializerMetric {3545if x != nil {3546return x.Prebuild3547}3548return nil3549}35503551func (x *InitializerMetrics) GetComposite() *InitializerMetric {3552if x != nil {3553return x.Composite3554}3555return nil3556}35573558type WorkspaceMetadata_ImageInfo struct {3559state protoimpl.MessageState3560sizeCache protoimpl.SizeCache3561unknownFields protoimpl.UnknownFields35623563// TotalSize is the total size of the image3564TotalSize int64 `protobuf:"varint,1,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`3565// WorkspaceImageSize is the size of the workspace image3566WorkspaceImageSize int64 `protobuf:"varint,2,opt,name=workspace_image_size,json=workspaceImageSize,proto3" json:"workspace_image_size,omitempty"`3567}35683569func (x *WorkspaceMetadata_ImageInfo) Reset() {3570*x = WorkspaceMetadata_ImageInfo{}3571if protoimpl.UnsafeEnabled {3572mi := &file_core_proto_msgTypes[48]3573ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3574ms.StoreMessageInfo(mi)3575}3576}35773578func (x *WorkspaceMetadata_ImageInfo) String() string {3579return protoimpl.X.MessageStringOf(x)3580}35813582func (*WorkspaceMetadata_ImageInfo) ProtoMessage() {}35833584func (x *WorkspaceMetadata_ImageInfo) ProtoReflect() protoreflect.Message {3585mi := &file_core_proto_msgTypes[48]3586if protoimpl.UnsafeEnabled && x != nil {3587ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3588if ms.LoadMessageInfo() == nil {3589ms.StoreMessageInfo(mi)3590}3591return ms3592}3593return mi.MessageOf(x)3594}35953596// Deprecated: Use WorkspaceMetadata_ImageInfo.ProtoReflect.Descriptor instead.3597func (*WorkspaceMetadata_ImageInfo) Descriptor() ([]byte, []int) {3598return file_core_proto_rawDescGZIP(), []int{33, 0}3599}36003601func (x *WorkspaceMetadata_ImageInfo) GetTotalSize() int64 {3602if x != nil {3603return x.TotalSize3604}3605return 03606}36073608func (x *WorkspaceMetadata_ImageInfo) GetWorkspaceImageSize() int64 {3609if x != nil {3610return x.WorkspaceImageSize3611}3612return 03613}36143615type WorkspaceMetadata_Metrics struct {3616state protoimpl.MessageState3617sizeCache protoimpl.SizeCache3618unknownFields protoimpl.UnknownFields36193620Image *WorkspaceMetadata_ImageInfo `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`3621}36223623func (x *WorkspaceMetadata_Metrics) Reset() {3624*x = WorkspaceMetadata_Metrics{}3625if protoimpl.UnsafeEnabled {3626mi := &file_core_proto_msgTypes[49]3627ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3628ms.StoreMessageInfo(mi)3629}3630}36313632func (x *WorkspaceMetadata_Metrics) String() string {3633return protoimpl.X.MessageStringOf(x)3634}36353636func (*WorkspaceMetadata_Metrics) ProtoMessage() {}36373638func (x *WorkspaceMetadata_Metrics) ProtoReflect() protoreflect.Message {3639mi := &file_core_proto_msgTypes[49]3640if protoimpl.UnsafeEnabled && x != nil {3641ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3642if ms.LoadMessageInfo() == nil {3643ms.StoreMessageInfo(mi)3644}3645return ms3646}3647return mi.MessageOf(x)3648}36493650// Deprecated: Use WorkspaceMetadata_Metrics.ProtoReflect.Descriptor instead.3651func (*WorkspaceMetadata_Metrics) Descriptor() ([]byte, []int) {3652return file_core_proto_rawDescGZIP(), []int{33, 1}3653}36543655func (x *WorkspaceMetadata_Metrics) GetImage() *WorkspaceMetadata_ImageInfo {3656if x != nil {3657return x.Image3658}3659return nil3660}36613662type EnvironmentVariable_SecretKeyRef struct {3663state protoimpl.MessageState3664sizeCache protoimpl.SizeCache3665unknownFields protoimpl.UnknownFields36663667SecretName string `protobuf:"bytes,1,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"`3668Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`3669}36703671func (x *EnvironmentVariable_SecretKeyRef) Reset() {3672*x = EnvironmentVariable_SecretKeyRef{}3673if protoimpl.UnsafeEnabled {3674mi := &file_core_proto_msgTypes[51]3675ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3676ms.StoreMessageInfo(mi)3677}3678}36793680func (x *EnvironmentVariable_SecretKeyRef) String() string {3681return protoimpl.X.MessageStringOf(x)3682}36833684func (*EnvironmentVariable_SecretKeyRef) ProtoMessage() {}36853686func (x *EnvironmentVariable_SecretKeyRef) ProtoReflect() protoreflect.Message {3687mi := &file_core_proto_msgTypes[51]3688if protoimpl.UnsafeEnabled && x != nil {3689ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))3690if ms.LoadMessageInfo() == nil {3691ms.StoreMessageInfo(mi)3692}3693return ms3694}3695return mi.MessageOf(x)3696}36973698// Deprecated: Use EnvironmentVariable_SecretKeyRef.ProtoReflect.Descriptor instead.3699func (*EnvironmentVariable_SecretKeyRef) Descriptor() ([]byte, []int) {3700return file_core_proto_rawDescGZIP(), []int{38, 0}3701}37023703func (x *EnvironmentVariable_SecretKeyRef) GetSecretName() string {3704if x != nil {3705return x.SecretName3706}3707return ""3708}37093710func (x *EnvironmentVariable_SecretKeyRef) GetKey() string {3711if x != nil {3712return x.Key3713}3714return ""3715}37163717var File_core_proto protoreflect.FileDescriptor37183719var file_core_proto_rawDesc = []byte{37200x0a, 0x0a, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x77, 0x73,37210x6d, 0x61, 0x6e, 0x1a, 0x25, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x73, 0x65, 0x72,37220x76, 0x69, 0x63, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,37230x69, 0x7a, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,37240x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,37250x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f,37260x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72,37270x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc9, 0x01, 0x0a, 0x0e,37280x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14,37290x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,37300x77, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18,37310x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x61, 0x49, 0x64, 0x12, 0x48, 0x0a,37320x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03,37330x28, 0x0b, 0x32, 0x26, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64,37340x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,37350x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f,37360x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74,37370x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,37380x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,37390x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,37400x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x6f,37410x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,37420x34, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20,37430x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61,37440x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x74,37450x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x47, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b,37460x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e,37470x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,37480x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65,37490x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xe3,37500x01, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63,37510x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,37520x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76,37530x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,37540x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12,37550x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,37560x0b, 0x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,37570x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74,37580x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20,37590x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x72,37600x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04,37610x73, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,37620x28, 0x0e, 0x32, 0x14, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73,37630x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04,37640x08, 0x05, 0x10, 0x06, 0x22, 0x4b, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72,37650x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10,37660x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,37670x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,37680x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65,37690x6e, 0x22, 0x5a, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,37700x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,37710x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x6f, 0x6c,37720x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61,37730x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50,37740x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x17, 0x0a,37750x15, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,37760x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x18, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,37770x62, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,37780x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,37790x69, 0x64, 0x22, 0x6f, 0x0a, 0x19, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x57, 0x6f,37800x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,37810x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,37820x16, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63,37830x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,37840x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18,37850x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76,37860x69, 0x74, 0x79, 0x22, 0x48, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,37870x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x74, 0x5f,37880x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x73,37890x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x74,37900x65, 0x72, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xc2, 0x01,37910x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,37920x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,37930x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b,37940x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,37950x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20,37960x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x73,37970x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65,37980x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,37990x72, 0x1a, 0x39, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79,38000x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,38010x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,38020x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x02,38030x10, 0x03, 0x22, 0x65, 0x0a, 0x11, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65,38040x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,38050x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65,38060x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12,38070x28, 0x0a, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x61, 0x63, 0x74,38080x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72,38090x65, 0x49, 0x66, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x61, 0x72,38100x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,38110x67, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71,38120x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,38130x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,38140x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,38150x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,38160x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x79,38170x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x54,38180x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61,38190x0a, 0x12, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71,38200x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,38210x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x02,38220x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04,38230x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d,38240x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65,38250x63, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74,38260x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x13, 0x54, 0x61, 0x6b, 0x65,38270x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,38280x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,38290x2d, 0x0a, 0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x69,38300x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x74,38310x75, 0x72, 0x6e, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x22, 0x28,38320x0a, 0x14, 0x54, 0x61, 0x6b, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65,38330x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20,38340x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x56, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74,38350x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,38360x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,38370x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01,38380x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x73,38390x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c,38400x22, 0x1a, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73,38410x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x0a,38420x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61,38430x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02,38440x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d,38450x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20,38460x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c,38470x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,38480x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65,38490x74, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x77, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20,38500x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b,38510x73, 0x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x77, 0x73, 0x54, 0x79, 0x70,38520x65, 0x22, 0x3f, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d,38530x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,38540x65, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64,38550x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x77, 0x61, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74,38560x65, 0x64, 0x22, 0x28, 0x0a, 0x16, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b,38570x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02,38580x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x2b, 0x0a, 0x17,38590x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52,38600x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01,38610x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x39, 0x0a, 0x13, 0x55, 0x70, 0x64,38620x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,38630x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,38640x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,38650x6b, 0x65, 0x79, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x53,38660x48, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x91, 0x04, 0x0a,38670x0f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,38680x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,38690x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,38700x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,38710x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,38720x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61,38730x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64,38740x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a,38750x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x77, 0x73,38760x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65,38770x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65,38780x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57,38790x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70,38800x68, 0x61, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,38810x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,38820x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,38830x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,38840x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,38850x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x65,38860x70, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65,38870x6e, 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x69, 0x74, 0x53, 0x74, 0x61,38880x74, 0x75, 0x73, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x75, 0x6e,38890x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x77, 0x73, 0x6d,38900x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74,38910x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,38920x12, 0x32, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,38930x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65,38940x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04,38950x61, 0x75, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69,38960x7a, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28,38970x0b, 0x32, 0x19, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61,38980x6c, 0x69, 0x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x12, 0x69, 0x6e,38990x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,39000x22, 0x56, 0x0a, 0x08, 0x49, 0x44, 0x45, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07,39010x77, 0x65, 0x62, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77,39020x65, 0x62, 0x52, 0x65, 0x66, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x70, 0x65, 0x72, 0x76, 0x69,39030x73, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73,39040x75, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x4a, 0x04, 0x08, 0x02,39050x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xfb, 0x02, 0x0a, 0x0d, 0x57, 0x6f, 0x72,39060x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x6f,39070x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20,39080x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d,39090x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x18,39100x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12,39110x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,39120x6c, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72,39130x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,39140x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x73,39150x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,39160x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f,39170x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,39180x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01,39190x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x09, 0x69,39200x64, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,39210x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x49, 0x44, 0x45, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52,39220x08, 0x69, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61,39230x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12,39240x28, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x61, 0x79,39250x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x49, 0x6d,39260x61, 0x67, 0x65, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x6f,39270x73, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28,39280x09, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,39290x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x9e, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x53,39300x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,39310x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62,39320x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x73,39330x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69,39340x74, 0x79, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x10,39350x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,39360x12, 0x2f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01,39370x28, 0x0e, 0x32, 0x13, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50,39380x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,39390x6c, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x7c, 0x0a, 0x12, 0x56, 0x6f, 0x6c, 0x75, 0x6d,39400x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a,39410x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,39420x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x6f, 0x6c,39430x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12,39440x34, 0x0a, 0x16, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,39450x6f, 0x74, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,39460x14, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48,39470x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0xd0, 0x05, 0x0a, 0x13, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,39480x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a,39490x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66,39500x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,39510x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,39520x44, 0x0a, 0x0e, 0x70, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65,39530x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,39540x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,39550x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x0d, 0x70, 0x75, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49,39560x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,39570x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f,39580x74, 0x12, 0x51, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75,39590x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,39600x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,39610x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52,39620x13, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x43, 0x6f, 0x6d, 0x70,39630x6c, 0x65, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64,39640x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57,39650x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,39660x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x08, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x12,39670x49, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72,39680x65, 0x61, 0x64, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d,39690x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64,39700x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f,39710x72, 0x6b, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x4a, 0x0a, 0x13, 0x66, 0x69,39720x72, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,39730x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,39740x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,39750x61, 0x6d, 0x70, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63,39760x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65,39770x73, 0x73, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0a,39780x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x68, 0x65, 0x61, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x61,39790x73, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x12, 0x73, 0x74, 0x6f, 0x70,39800x70, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0b,39810x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72,39820x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42,39830x6f, 0x6f, 0x6c, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x42, 0x79, 0x52, 0x65,39840x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f,39850x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,39860x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61,39870x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d,39880x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x62, 0x6f,39890x72, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x77, 0x73, 0x6d,39900x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64,39910x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x52, 0x07, 0x61, 0x62, 0x6f, 0x72, 0x74,39920x65, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xb6, 0x04, 0x0a, 0x11, 0x57, 0x6f, 0x72,39930x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14,39940x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,39950x77, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18,39960x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x61, 0x49, 0x64, 0x12, 0x39, 0x0a,39970x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,39980x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,39990x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73,40000x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f,40010x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e,40020x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d,40030x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,40040x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,40050x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x05, 0x20,40060x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x1d,40070x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48,40080x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a,40090x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,40100x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65,40110x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,40120x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x5c, 0x0a, 0x09, 0x49, 0x6d, 0x61,40130x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,40140x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61,40150x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61,40160x63, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20,40170x01, 0x28, 0x03, 0x52, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d,40180x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x43, 0x0a, 0x07, 0x4d, 0x65, 0x74, 0x72, 0x69,40190x63, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,40200x0b, 0x32, 0x22, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,40210x61, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6d, 0x61, 0x67,40220x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x1a, 0x3e, 0x0a, 0x10,40230x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,40240x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,40250x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,40260x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05,40270x5f, 0x74, 0x65, 0x61, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,40280x74, 0x22, 0x67, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x75,40290x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64,40300x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f,40310x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61,40320x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d,40330x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01,40340x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x70, 0x22, 0x6f, 0x0a, 0x17, 0x57, 0x6f,40350x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63,40360x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69,40370x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,40380x2e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52,40390x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x77,40400x6e, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,40410x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xfb, 0x05, 0x0a, 0x12,40420x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70,40430x65, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,40440x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72,40450x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x66,40460x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03,40470x28, 0x0e, 0x32, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73,40480x70, 0x61, 0x63, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x52,40490x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a,40500x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01,40510x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x65, 0x72, 0x76,40520x69, 0x63, 0x65, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x69,40530x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,40540x6c, 0x69, 0x7a, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05,40550x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72,40560x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07,40570x65, 0x6e, 0x76, 0x76, 0x61, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,40580x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,40590x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x76, 0x76, 0x61,40600x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,40610x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,40620x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,40630x6e, 0x12, 0x20, 0x0a, 0x03, 0x67, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,40640x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x47, 0x69, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x03,40650x67, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a,40660x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x33, 0x0a,40670x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e,40680x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69,40690x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69,40700x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x09, 0x69, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18,40710x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x49, 0x44,40720x45, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x08, 0x69, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65,40730x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,40740x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x73, 0x68, 0x5f, 0x70, 0x75,40750x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52,40760x0d, 0x73, 0x73, 0x68, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3b,40770x0a, 0x0b, 0x73, 0x79, 0x73, 0x5f, 0x65, 0x6e, 0x76, 0x76, 0x61, 0x72, 0x73, 0x18, 0x10, 0x20,40780x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x45, 0x6e, 0x76, 0x69,40790x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52,40800x0a, 0x73, 0x79, 0x73, 0x45, 0x6e, 0x76, 0x76, 0x61, 0x72, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x69,40810x64, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18,40820x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c,40830x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f,40840x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63,40850x6c, 0x6f, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x10,40860x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65,40870x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4c,40880x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08,40890x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x22, 0x3b, 0x0a, 0x07, 0x47, 0x69, 0x74,40900x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,40910x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,40920x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,40930x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0xc3, 0x01, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72,40940x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12,40950x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,40960x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,40970x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72,40980x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,40990x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69,41000x61, 0x62, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65,41010x66, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x1a, 0x41, 0x0a, 0x0c, 0x53, 0x65, 0x63,41020x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63,41030x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,41040x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,41050x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x35, 0x0a, 0x0c,41060x45, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x05,41070x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x77, 0x73,41080x6d, 0x61, 0x6e, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x70, 0x6f,41090x72, 0x74, 0x73, 0x22, 0x23, 0x0a, 0x0d, 0x53, 0x53, 0x48, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,41100x4b, 0x65, 0x79, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03,41110x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x44, 0x65, 0x73, 0x63,41120x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,41130x73, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43,41140x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42,41150x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73,41160x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x77, 0x73, 0x6d, 0x61,41170x6e, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73,41180x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73,41190x65, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f,41200x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18,41210x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64,41220x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x93,41230x01, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73,41240x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,41250x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d,41260x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,41270x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,41280x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,41290x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74,41300x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01,41310x28, 0x02, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x50, 0x65, 0x72, 0x4d, 0x69,41320x6e, 0x75, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x11, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69,41330x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72,41340x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,41350x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,41360x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,41370x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,41380x73, 0x69, 0x7a, 0x65, 0x22, 0xd5, 0x02, 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,41390x69, 0x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2a, 0x0a, 0x03, 0x67,41400x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,41410x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72,41420x69, 0x63, 0x52, 0x03, 0x67, 0x69, 0x74, 0x12, 0x3d, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f,41430x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,41440x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a,41450x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x6f,41460x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x34, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68,41470x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,41480x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72,41490x69, 0x63, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x30, 0x0a, 0x06,41500x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77,41510x73, 0x6d, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72,41520x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x34,41530x0a, 0x08, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,41540x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,41550x69, 0x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x70, 0x72, 0x65, 0x62,41560x75, 0x69, 0x6c, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74,41570x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,41580x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69,41590x63, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x2a, 0x3f, 0x0a, 0x13,41600x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x6f, 0x6c,41610x69, 0x63, 0x79, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x4c, 0x59, 0x10,41620x00, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x4c, 0x59,41630x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x38, 0x0a,41640x0b, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11,41650x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55,41660x54, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x54, 0x49,41670x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x2a, 0x3a, 0x0a, 0x0e, 0x41, 0x64, 0x6d, 0x69, 0x73,41680x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x44, 0x4d,41690x49, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x00, 0x12,41700x12, 0x0a, 0x0e, 0x41, 0x44, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x52, 0x59, 0x4f, 0x4e,41710x45, 0x10, 0x01, 0x2a, 0x49, 0x0a, 0x0e, 0x50, 0x6f, 0x72, 0x74, 0x56, 0x69, 0x73, 0x69, 0x62,41720x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x56, 0x49,41730x53, 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45,41740x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x56, 0x49, 0x53, 0x49, 0x42,41750x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x2a, 0x3f,41760x0a, 0x0c, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x16,41770x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f,41780x48, 0x54, 0x54, 0x50, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50,41790x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x53, 0x10, 0x01, 0x2a,41800x38, 0x0a, 0x16, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x64,41810x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x4c,41820x53, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x52, 0x55, 0x45, 0x10, 0x01, 0x12, 0x09,41830x0a, 0x05, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x02, 0x2a, 0x83, 0x01, 0x0a, 0x0e, 0x57, 0x6f,41840x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x0b, 0x0a, 0x07,41850x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e,41860x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49,41870x4e, 0x47, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49,41880x5a, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e,41890x47, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54,41900x45, 0x44, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47,41910x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x06, 0x2a,41920x98, 0x01, 0x0a, 0x14, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x46, 0x65, 0x61,41930x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4f, 0x50,41940x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f,41950x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54,41960x49, 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41,41970x43, 0x45, 0x5f, 0x50, 0x53, 0x49, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x53, 0x48, 0x5f,41980x43, 0x41, 0x10, 0x0c, 0x22, 0x04, 0x08, 0x01, 0x10, 0x01, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02,41990x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x22, 0x04, 0x08, 0x04, 0x10, 0x04, 0x22, 0x04, 0x08, 0x05,42000x10, 0x05, 0x22, 0x04, 0x08, 0x06, 0x10, 0x06, 0x22, 0x04, 0x08, 0x07, 0x10, 0x07, 0x22, 0x04,42010x08, 0x08, 0x10, 0x08, 0x22, 0x04, 0x08, 0x09, 0x10, 0x09, 0x2a, 0x46, 0x0a, 0x0d, 0x57, 0x6f,42020x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52,42030x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x45, 0x42,42040x55, 0x49, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x42,42050x55, 0x49, 0x4c, 0x44, 0x10, 0x04, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x03,42060x10, 0x03, 0x32, 0xe7, 0x08, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65,42070x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x6f,42080x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,42090x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65,42100x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x47, 0x65,42110x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,42120x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f,42130x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,42140x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65,42150x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74,42160x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,42170x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f,42180x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,42190x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71,42200x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x74, 0x6f,42210x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,42220x73, 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x11, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,42230x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x77, 0x73, 0x6d, 0x61,42240x6e, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70,42250x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x77, 0x73, 0x6d,42260x61, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73,42270x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52,42280x0a, 0x0f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63,42290x65, 0x12, 0x1d, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70,42300x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,42310x1a, 0x1e, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x57,42320x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,42330x22, 0x00, 0x12, 0x42, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12,42340x17, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,42350x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,42360x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,42370x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x43, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63,42380x74, 0x69, 0x76, 0x65, 0x12, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x72,42390x6b, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19,42400x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x76,42410x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0a, 0x53,42420x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x18, 0x2e, 0x77, 0x73, 0x6d, 0x61,42430x6e, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75,42440x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x54,42450x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,42460x12, 0x46, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x12,42470x19, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50,42480x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x77, 0x73, 0x6d,42490x61, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65,42500x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x54, 0x61, 0x6b, 0x65,42510x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1a, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e,42520x2e, 0x54, 0x61, 0x6b, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71,42530x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x54, 0x61, 0x6b,42540x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,42550x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64,42560x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,42570x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,42580x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e,42590x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,42600x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x14, 0x44, 0x65,42610x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,42620x6f, 0x74, 0x12, 0x22, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,42630x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52,42640x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x44,42650x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73,42660x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a,42670x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x2e,42680x77, 0x73, 0x6d, 0x61, 0x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b,42690x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x77, 0x73, 0x6d, 0x61,42700x6e, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x53, 0x48, 0x4b, 0x65, 0x79, 0x52, 0x65,42710x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63,42720x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x77, 0x73,42730x6d, 0x61, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73,42740x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x77, 0x73, 0x6d,42750x61, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74,42760x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0x5a, 0x2a,42770x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f,42780x64, 0x2d, 0x69, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2f, 0x77, 0x73, 0x2d, 0x6d,42790x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,42800x6f, 0x33,4281}42824283var (4284file_core_proto_rawDescOnce sync.Once4285file_core_proto_rawDescData = file_core_proto_rawDesc4286)42874288func file_core_proto_rawDescGZIP() []byte {4289file_core_proto_rawDescOnce.Do(func() {4290file_core_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_proto_rawDescData)4291})4292return file_core_proto_rawDescData4293}42944295var file_core_proto_enumTypes = make([]protoimpl.EnumInfo, 9)4296var file_core_proto_msgTypes = make([]protoimpl.MessageInfo, 52)4297var file_core_proto_goTypes = []interface{}{4298(StopWorkspacePolicy)(0), // 0: wsman.StopWorkspacePolicy4299(TimeoutType)(0), // 1: wsman.TimeoutType4300(AdmissionLevel)(0), // 2: wsman.AdmissionLevel4301(PortVisibility)(0), // 3: wsman.PortVisibility4302(PortProtocol)(0), // 4: wsman.PortProtocol4303(WorkspaceConditionBool)(0), // 5: wsman.WorkspaceConditionBool4304(WorkspacePhase)(0), // 6: wsman.WorkspacePhase4305(WorkspaceFeatureFlag)(0), // 7: wsman.WorkspaceFeatureFlag4306(WorkspaceType)(0), // 8: wsman.WorkspaceType4307(*MetadataFilter)(nil), // 9: wsman.MetadataFilter4308(*GetWorkspacesRequest)(nil), // 10: wsman.GetWorkspacesRequest4309(*GetWorkspacesResponse)(nil), // 11: wsman.GetWorkspacesResponse4310(*StartWorkspaceRequest)(nil), // 12: wsman.StartWorkspaceRequest4311(*StartWorkspaceResponse)(nil), // 13: wsman.StartWorkspaceResponse4312(*StopWorkspaceRequest)(nil), // 14: wsman.StopWorkspaceRequest4313(*StopWorkspaceResponse)(nil), // 15: wsman.StopWorkspaceResponse4314(*DescribeWorkspaceRequest)(nil), // 16: wsman.DescribeWorkspaceRequest4315(*DescribeWorkspaceResponse)(nil), // 17: wsman.DescribeWorkspaceResponse4316(*SubscribeRequest)(nil), // 18: wsman.SubscribeRequest4317(*SubscribeResponse)(nil), // 19: wsman.SubscribeResponse4318(*MarkActiveRequest)(nil), // 20: wsman.MarkActiveRequest4319(*MarkActiveResponse)(nil), // 21: wsman.MarkActiveResponse4320(*SetTimeoutRequest)(nil), // 22: wsman.SetTimeoutRequest4321(*SetTimeoutResponse)(nil), // 23: wsman.SetTimeoutResponse4322(*ControlPortRequest)(nil), // 24: wsman.ControlPortRequest4323(*ControlPortResponse)(nil), // 25: wsman.ControlPortResponse4324(*TakeSnapshotRequest)(nil), // 26: wsman.TakeSnapshotRequest4325(*TakeSnapshotResponse)(nil), // 27: wsman.TakeSnapshotResponse4326(*ControlAdmissionRequest)(nil), // 28: wsman.ControlAdmissionRequest4327(*ControlAdmissionResponse)(nil), // 29: wsman.ControlAdmissionResponse4328(*DeleteVolumeSnapshotRequest)(nil), // 30: wsman.DeleteVolumeSnapshotRequest4329(*DeleteVolumeSnapshotResponse)(nil), // 31: wsman.DeleteVolumeSnapshotResponse4330(*BackupWorkspaceRequest)(nil), // 32: wsman.BackupWorkspaceRequest4331(*BackupWorkspaceResponse)(nil), // 33: wsman.BackupWorkspaceResponse4332(*UpdateSSHKeyRequest)(nil), // 34: wsman.UpdateSSHKeyRequest4333(*UpdateSSHKeyResponse)(nil), // 35: wsman.UpdateSSHKeyResponse4334(*WorkspaceStatus)(nil), // 36: wsman.WorkspaceStatus4335(*IDEImage)(nil), // 37: wsman.IDEImage4336(*WorkspaceSpec)(nil), // 38: wsman.WorkspaceSpec4337(*PortSpec)(nil), // 39: wsman.PortSpec4338(*VolumeSnapshotInfo)(nil), // 40: wsman.VolumeSnapshotInfo4339(*WorkspaceConditions)(nil), // 41: wsman.WorkspaceConditions4340(*WorkspaceMetadata)(nil), // 42: wsman.WorkspaceMetadata4341(*WorkspaceRuntimeInfo)(nil), // 43: wsman.WorkspaceRuntimeInfo4342(*WorkspaceAuthentication)(nil), // 44: wsman.WorkspaceAuthentication4343(*StartWorkspaceSpec)(nil), // 45: wsman.StartWorkspaceSpec4344(*GitSpec)(nil), // 46: wsman.GitSpec4345(*EnvironmentVariable)(nil), // 47: wsman.EnvironmentVariable4346(*ExposedPorts)(nil), // 48: wsman.ExposedPorts4347(*SSHPublicKeys)(nil), // 49: wsman.SSHPublicKeys4348(*DescribeClusterRequest)(nil), // 50: wsman.DescribeClusterRequest4349(*DescribeClusterResponse)(nil), // 51: wsman.DescribeClusterResponse4350(*WorkspaceClass)(nil), // 52: wsman.WorkspaceClass4351(*InitializerMetric)(nil), // 53: wsman.InitializerMetric4352(*InitializerMetrics)(nil), // 54: wsman.InitializerMetrics4353nil, // 55: wsman.MetadataFilter.AnnotationsEntry4354nil, // 56: wsman.SubscribeResponse.HeaderEntry4355(*WorkspaceMetadata_ImageInfo)(nil), // 57: wsman.WorkspaceMetadata.ImageInfo4356(*WorkspaceMetadata_Metrics)(nil), // 58: wsman.WorkspaceMetadata.Metrics4357nil, // 59: wsman.WorkspaceMetadata.AnnotationsEntry4358(*EnvironmentVariable_SecretKeyRef)(nil), // 60: wsman.EnvironmentVariable.SecretKeyRef4359(*api.GitStatus)(nil), // 61: contentservice.GitStatus4360(*timestamppb.Timestamp)(nil), // 62: google.protobuf.Timestamp4361(*api.WorkspaceInitializer)(nil), // 63: contentservice.WorkspaceInitializer4362(*durationpb.Duration)(nil), // 64: google.protobuf.Duration4363}4364var file_core_proto_depIdxs = []int32{436555, // 0: wsman.MetadataFilter.annotations:type_name -> wsman.MetadataFilter.AnnotationsEntry43669, // 1: wsman.GetWorkspacesRequest.must_match:type_name -> wsman.MetadataFilter436736, // 2: wsman.GetWorkspacesResponse.status:type_name -> wsman.WorkspaceStatus436842, // 3: wsman.StartWorkspaceRequest.metadata:type_name -> wsman.WorkspaceMetadata436945, // 4: wsman.StartWorkspaceRequest.spec:type_name -> wsman.StartWorkspaceSpec43708, // 5: wsman.StartWorkspaceRequest.type:type_name -> wsman.WorkspaceType43710, // 6: wsman.StopWorkspaceRequest.policy:type_name -> wsman.StopWorkspacePolicy437236, // 7: wsman.DescribeWorkspaceResponse.status:type_name -> wsman.WorkspaceStatus43739, // 8: wsman.SubscribeRequest.must_match:type_name -> wsman.MetadataFilter437436, // 9: wsman.SubscribeResponse.status:type_name -> wsman.WorkspaceStatus437556, // 10: wsman.SubscribeResponse.header:type_name -> wsman.SubscribeResponse.HeaderEntry43761, // 11: wsman.SetTimeoutRequest.type:type_name -> wsman.TimeoutType437739, // 12: wsman.ControlPortRequest.spec:type_name -> wsman.PortSpec43782, // 13: wsman.ControlAdmissionRequest.level:type_name -> wsman.AdmissionLevel43798, // 14: wsman.DeleteVolumeSnapshotRequest.ws_type:type_name -> wsman.WorkspaceType438042, // 15: wsman.WorkspaceStatus.metadata:type_name -> wsman.WorkspaceMetadata438138, // 16: wsman.WorkspaceStatus.spec:type_name -> wsman.WorkspaceSpec43826, // 17: wsman.WorkspaceStatus.phase:type_name -> wsman.WorkspacePhase438341, // 18: wsman.WorkspaceStatus.conditions:type_name -> wsman.WorkspaceConditions438461, // 19: wsman.WorkspaceStatus.repo:type_name -> contentservice.GitStatus438543, // 20: wsman.WorkspaceStatus.runtime:type_name -> wsman.WorkspaceRuntimeInfo438644, // 21: wsman.WorkspaceStatus.auth:type_name -> wsman.WorkspaceAuthentication438754, // 22: wsman.WorkspaceStatus.initializer_metrics:type_name -> wsman.InitializerMetrics438839, // 23: wsman.WorkspaceSpec.exposed_ports:type_name -> wsman.PortSpec43898, // 24: wsman.WorkspaceSpec.type:type_name -> wsman.WorkspaceType439037, // 25: wsman.WorkspaceSpec.ide_image:type_name -> wsman.IDEImage43913, // 26: wsman.PortSpec.visibility:type_name -> wsman.PortVisibility43924, // 27: wsman.PortSpec.protocol:type_name -> wsman.PortProtocol43935, // 28: wsman.WorkspaceConditions.pulling_images:type_name -> wsman.WorkspaceConditionBool43945, // 29: wsman.WorkspaceConditions.final_backup_complete:type_name -> wsman.WorkspaceConditionBool43955, // 30: wsman.WorkspaceConditions.deployed:type_name -> wsman.WorkspaceConditionBool43965, // 31: wsman.WorkspaceConditions.network_not_ready:type_name -> wsman.WorkspaceConditionBool439762, // 32: wsman.WorkspaceConditions.first_user_activity:type_name -> google.protobuf.Timestamp43985, // 33: wsman.WorkspaceConditions.stopped_by_request:type_name -> wsman.WorkspaceConditionBool439940, // 34: wsman.WorkspaceConditions.volume_snapshot:type_name -> wsman.VolumeSnapshotInfo44005, // 35: wsman.WorkspaceConditions.aborted:type_name -> wsman.WorkspaceConditionBool440162, // 36: wsman.WorkspaceMetadata.started_at:type_name -> google.protobuf.Timestamp440259, // 37: wsman.WorkspaceMetadata.annotations:type_name -> wsman.WorkspaceMetadata.AnnotationsEntry440358, // 38: wsman.WorkspaceMetadata.metrics:type_name -> wsman.WorkspaceMetadata.Metrics44042, // 39: wsman.WorkspaceAuthentication.admission:type_name -> wsman.AdmissionLevel44057, // 40: wsman.StartWorkspaceSpec.feature_flags:type_name -> wsman.WorkspaceFeatureFlag440663, // 41: wsman.StartWorkspaceSpec.initializer:type_name -> contentservice.WorkspaceInitializer440739, // 42: wsman.StartWorkspaceSpec.ports:type_name -> wsman.PortSpec440847, // 43: wsman.StartWorkspaceSpec.envvars:type_name -> wsman.EnvironmentVariable440946, // 44: wsman.StartWorkspaceSpec.git:type_name -> wsman.GitSpec44102, // 45: wsman.StartWorkspaceSpec.admission:type_name -> wsman.AdmissionLevel441137, // 46: wsman.StartWorkspaceSpec.ide_image:type_name -> wsman.IDEImage441247, // 47: wsman.StartWorkspaceSpec.sys_envvars:type_name -> wsman.EnvironmentVariable441360, // 48: wsman.EnvironmentVariable.secret:type_name -> wsman.EnvironmentVariable.SecretKeyRef441439, // 49: wsman.ExposedPorts.ports:type_name -> wsman.PortSpec441552, // 50: wsman.DescribeClusterResponse.workspace_classes:type_name -> wsman.WorkspaceClass441664, // 51: wsman.InitializerMetric.duration:type_name -> google.protobuf.Duration441753, // 52: wsman.InitializerMetrics.git:type_name -> wsman.InitializerMetric441853, // 53: wsman.InitializerMetrics.file_download:type_name -> wsman.InitializerMetric441953, // 54: wsman.InitializerMetrics.snapshot:type_name -> wsman.InitializerMetric442053, // 55: wsman.InitializerMetrics.backup:type_name -> wsman.InitializerMetric442153, // 56: wsman.InitializerMetrics.prebuild:type_name -> wsman.InitializerMetric442253, // 57: wsman.InitializerMetrics.composite:type_name -> wsman.InitializerMetric442357, // 58: wsman.WorkspaceMetadata.Metrics.image:type_name -> wsman.WorkspaceMetadata.ImageInfo442410, // 59: wsman.WorkspaceManager.GetWorkspaces:input_type -> wsman.GetWorkspacesRequest442512, // 60: wsman.WorkspaceManager.StartWorkspace:input_type -> wsman.StartWorkspaceRequest442614, // 61: wsman.WorkspaceManager.StopWorkspace:input_type -> wsman.StopWorkspaceRequest442716, // 62: wsman.WorkspaceManager.DescribeWorkspace:input_type -> wsman.DescribeWorkspaceRequest442832, // 63: wsman.WorkspaceManager.BackupWorkspace:input_type -> wsman.BackupWorkspaceRequest442918, // 64: wsman.WorkspaceManager.Subscribe:input_type -> wsman.SubscribeRequest443020, // 65: wsman.WorkspaceManager.MarkActive:input_type -> wsman.MarkActiveRequest443122, // 66: wsman.WorkspaceManager.SetTimeout:input_type -> wsman.SetTimeoutRequest443224, // 67: wsman.WorkspaceManager.ControlPort:input_type -> wsman.ControlPortRequest443326, // 68: wsman.WorkspaceManager.TakeSnapshot:input_type -> wsman.TakeSnapshotRequest443428, // 69: wsman.WorkspaceManager.ControlAdmission:input_type -> wsman.ControlAdmissionRequest443530, // 70: wsman.WorkspaceManager.DeleteVolumeSnapshot:input_type -> wsman.DeleteVolumeSnapshotRequest443634, // 71: wsman.WorkspaceManager.UpdateSSHKey:input_type -> wsman.UpdateSSHKeyRequest443750, // 72: wsman.WorkspaceManager.DescribeCluster:input_type -> wsman.DescribeClusterRequest443811, // 73: wsman.WorkspaceManager.GetWorkspaces:output_type -> wsman.GetWorkspacesResponse443913, // 74: wsman.WorkspaceManager.StartWorkspace:output_type -> wsman.StartWorkspaceResponse444015, // 75: wsman.WorkspaceManager.StopWorkspace:output_type -> wsman.StopWorkspaceResponse444117, // 76: wsman.WorkspaceManager.DescribeWorkspace:output_type -> wsman.DescribeWorkspaceResponse444233, // 77: wsman.WorkspaceManager.BackupWorkspace:output_type -> wsman.BackupWorkspaceResponse444319, // 78: wsman.WorkspaceManager.Subscribe:output_type -> wsman.SubscribeResponse444421, // 79: wsman.WorkspaceManager.MarkActive:output_type -> wsman.MarkActiveResponse444523, // 80: wsman.WorkspaceManager.SetTimeout:output_type -> wsman.SetTimeoutResponse444625, // 81: wsman.WorkspaceManager.ControlPort:output_type -> wsman.ControlPortResponse444727, // 82: wsman.WorkspaceManager.TakeSnapshot:output_type -> wsman.TakeSnapshotResponse444829, // 83: wsman.WorkspaceManager.ControlAdmission:output_type -> wsman.ControlAdmissionResponse444931, // 84: wsman.WorkspaceManager.DeleteVolumeSnapshot:output_type -> wsman.DeleteVolumeSnapshotResponse445035, // 85: wsman.WorkspaceManager.UpdateSSHKey:output_type -> wsman.UpdateSSHKeyResponse445151, // 86: wsman.WorkspaceManager.DescribeCluster:output_type -> wsman.DescribeClusterResponse445273, // [73:87] is the sub-list for method output_type445359, // [59:73] is the sub-list for method input_type445459, // [59:59] is the sub-list for extension type_name445559, // [59:59] is the sub-list for extension extendee44560, // [0:59] is the sub-list for field type_name4457}44584459func init() { file_core_proto_init() }4460func file_core_proto_init() {4461if File_core_proto != nil {4462return4463}4464if !protoimpl.UnsafeEnabled {4465file_core_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {4466switch v := v.(*MetadataFilter); i {4467case 0:4468return &v.state4469case 1:4470return &v.sizeCache4471case 2:4472return &v.unknownFields4473default:4474return nil4475}4476}4477file_core_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {4478switch v := v.(*GetWorkspacesRequest); i {4479case 0:4480return &v.state4481case 1:4482return &v.sizeCache4483case 2:4484return &v.unknownFields4485default:4486return nil4487}4488}4489file_core_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {4490switch v := v.(*GetWorkspacesResponse); i {4491case 0:4492return &v.state4493case 1:4494return &v.sizeCache4495case 2:4496return &v.unknownFields4497default:4498return nil4499}4500}4501file_core_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {4502switch v := v.(*StartWorkspaceRequest); i {4503case 0:4504return &v.state4505case 1:4506return &v.sizeCache4507case 2:4508return &v.unknownFields4509default:4510return nil4511}4512}4513file_core_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {4514switch v := v.(*StartWorkspaceResponse); i {4515case 0:4516return &v.state4517case 1:4518return &v.sizeCache4519case 2:4520return &v.unknownFields4521default:4522return nil4523}4524}4525file_core_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {4526switch v := v.(*StopWorkspaceRequest); i {4527case 0:4528return &v.state4529case 1:4530return &v.sizeCache4531case 2:4532return &v.unknownFields4533default:4534return nil4535}4536}4537file_core_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {4538switch v := v.(*StopWorkspaceResponse); i {4539case 0:4540return &v.state4541case 1:4542return &v.sizeCache4543case 2:4544return &v.unknownFields4545default:4546return nil4547}4548}4549file_core_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {4550switch v := v.(*DescribeWorkspaceRequest); i {4551case 0:4552return &v.state4553case 1:4554return &v.sizeCache4555case 2:4556return &v.unknownFields4557default:4558return nil4559}4560}4561file_core_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {4562switch v := v.(*DescribeWorkspaceResponse); i {4563case 0:4564return &v.state4565case 1:4566return &v.sizeCache4567case 2:4568return &v.unknownFields4569default:4570return nil4571}4572}4573file_core_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {4574switch v := v.(*SubscribeRequest); i {4575case 0:4576return &v.state4577case 1:4578return &v.sizeCache4579case 2:4580return &v.unknownFields4581default:4582return nil4583}4584}4585file_core_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {4586switch v := v.(*SubscribeResponse); i {4587case 0:4588return &v.state4589case 1:4590return &v.sizeCache4591case 2:4592return &v.unknownFields4593default:4594return nil4595}4596}4597file_core_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {4598switch v := v.(*MarkActiveRequest); i {4599case 0:4600return &v.state4601case 1:4602return &v.sizeCache4603case 2:4604return &v.unknownFields4605default:4606return nil4607}4608}4609file_core_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {4610switch v := v.(*MarkActiveResponse); i {4611case 0:4612return &v.state4613case 1:4614return &v.sizeCache4615case 2:4616return &v.unknownFields4617default:4618return nil4619}4620}4621file_core_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {4622switch v := v.(*SetTimeoutRequest); i {4623case 0:4624return &v.state4625case 1:4626return &v.sizeCache4627case 2:4628return &v.unknownFields4629default:4630return nil4631}4632}4633file_core_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {4634switch v := v.(*SetTimeoutResponse); i {4635case 0:4636return &v.state4637case 1:4638return &v.sizeCache4639case 2:4640return &v.unknownFields4641default:4642return nil4643}4644}4645file_core_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {4646switch v := v.(*ControlPortRequest); i {4647case 0:4648return &v.state4649case 1:4650return &v.sizeCache4651case 2:4652return &v.unknownFields4653default:4654return nil4655}4656}4657file_core_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {4658switch v := v.(*ControlPortResponse); i {4659case 0:4660return &v.state4661case 1:4662return &v.sizeCache4663case 2:4664return &v.unknownFields4665default:4666return nil4667}4668}4669file_core_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {4670switch v := v.(*TakeSnapshotRequest); i {4671case 0:4672return &v.state4673case 1:4674return &v.sizeCache4675case 2:4676return &v.unknownFields4677default:4678return nil4679}4680}4681file_core_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {4682switch v := v.(*TakeSnapshotResponse); i {4683case 0:4684return &v.state4685case 1:4686return &v.sizeCache4687case 2:4688return &v.unknownFields4689default:4690return nil4691}4692}4693file_core_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {4694switch v := v.(*ControlAdmissionRequest); i {4695case 0:4696return &v.state4697case 1:4698return &v.sizeCache4699case 2:4700return &v.unknownFields4701default:4702return nil4703}4704}4705file_core_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {4706switch v := v.(*ControlAdmissionResponse); i {4707case 0:4708return &v.state4709case 1:4710return &v.sizeCache4711case 2:4712return &v.unknownFields4713default:4714return nil4715}4716}4717file_core_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {4718switch v := v.(*DeleteVolumeSnapshotRequest); i {4719case 0:4720return &v.state4721case 1:4722return &v.sizeCache4723case 2:4724return &v.unknownFields4725default:4726return nil4727}4728}4729file_core_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {4730switch v := v.(*DeleteVolumeSnapshotResponse); i {4731case 0:4732return &v.state4733case 1:4734return &v.sizeCache4735case 2:4736return &v.unknownFields4737default:4738return nil4739}4740}4741file_core_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {4742switch v := v.(*BackupWorkspaceRequest); i {4743case 0:4744return &v.state4745case 1:4746return &v.sizeCache4747case 2:4748return &v.unknownFields4749default:4750return nil4751}4752}4753file_core_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {4754switch v := v.(*BackupWorkspaceResponse); i {4755case 0:4756return &v.state4757case 1:4758return &v.sizeCache4759case 2:4760return &v.unknownFields4761default:4762return nil4763}4764}4765file_core_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {4766switch v := v.(*UpdateSSHKeyRequest); i {4767case 0:4768return &v.state4769case 1:4770return &v.sizeCache4771case 2:4772return &v.unknownFields4773default:4774return nil4775}4776}4777file_core_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {4778switch v := v.(*UpdateSSHKeyResponse); i {4779case 0:4780return &v.state4781case 1:4782return &v.sizeCache4783case 2:4784return &v.unknownFields4785default:4786return nil4787}4788}4789file_core_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {4790switch v := v.(*WorkspaceStatus); i {4791case 0:4792return &v.state4793case 1:4794return &v.sizeCache4795case 2:4796return &v.unknownFields4797default:4798return nil4799}4800}4801file_core_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {4802switch v := v.(*IDEImage); i {4803case 0:4804return &v.state4805case 1:4806return &v.sizeCache4807case 2:4808return &v.unknownFields4809default:4810return nil4811}4812}4813file_core_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {4814switch v := v.(*WorkspaceSpec); i {4815case 0:4816return &v.state4817case 1:4818return &v.sizeCache4819case 2:4820return &v.unknownFields4821default:4822return nil4823}4824}4825file_core_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {4826switch v := v.(*PortSpec); i {4827case 0:4828return &v.state4829case 1:4830return &v.sizeCache4831case 2:4832return &v.unknownFields4833default:4834return nil4835}4836}4837file_core_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {4838switch v := v.(*VolumeSnapshotInfo); i {4839case 0:4840return &v.state4841case 1:4842return &v.sizeCache4843case 2:4844return &v.unknownFields4845default:4846return nil4847}4848}4849file_core_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {4850switch v := v.(*WorkspaceConditions); i {4851case 0:4852return &v.state4853case 1:4854return &v.sizeCache4855case 2:4856return &v.unknownFields4857default:4858return nil4859}4860}4861file_core_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {4862switch v := v.(*WorkspaceMetadata); i {4863case 0:4864return &v.state4865case 1:4866return &v.sizeCache4867case 2:4868return &v.unknownFields4869default:4870return nil4871}4872}4873file_core_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {4874switch v := v.(*WorkspaceRuntimeInfo); i {4875case 0:4876return &v.state4877case 1:4878return &v.sizeCache4879case 2:4880return &v.unknownFields4881default:4882return nil4883}4884}4885file_core_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {4886switch v := v.(*WorkspaceAuthentication); i {4887case 0:4888return &v.state4889case 1:4890return &v.sizeCache4891case 2:4892return &v.unknownFields4893default:4894return nil4895}4896}4897file_core_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {4898switch v := v.(*StartWorkspaceSpec); i {4899case 0:4900return &v.state4901case 1:4902return &v.sizeCache4903case 2:4904return &v.unknownFields4905default:4906return nil4907}4908}4909file_core_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {4910switch v := v.(*GitSpec); i {4911case 0:4912return &v.state4913case 1:4914return &v.sizeCache4915case 2:4916return &v.unknownFields4917default:4918return nil4919}4920}4921file_core_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {4922switch v := v.(*EnvironmentVariable); i {4923case 0:4924return &v.state4925case 1:4926return &v.sizeCache4927case 2:4928return &v.unknownFields4929default:4930return nil4931}4932}4933file_core_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {4934switch v := v.(*ExposedPorts); i {4935case 0:4936return &v.state4937case 1:4938return &v.sizeCache4939case 2:4940return &v.unknownFields4941default:4942return nil4943}4944}4945file_core_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {4946switch v := v.(*SSHPublicKeys); i {4947case 0:4948return &v.state4949case 1:4950return &v.sizeCache4951case 2:4952return &v.unknownFields4953default:4954return nil4955}4956}4957file_core_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {4958switch v := v.(*DescribeClusterRequest); i {4959case 0:4960return &v.state4961case 1:4962return &v.sizeCache4963case 2:4964return &v.unknownFields4965default:4966return nil4967}4968}4969file_core_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {4970switch v := v.(*DescribeClusterResponse); i {4971case 0:4972return &v.state4973case 1:4974return &v.sizeCache4975case 2:4976return &v.unknownFields4977default:4978return nil4979}4980}4981file_core_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {4982switch v := v.(*WorkspaceClass); i {4983case 0:4984return &v.state4985case 1:4986return &v.sizeCache4987case 2:4988return &v.unknownFields4989default:4990return nil4991}4992}4993file_core_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {4994switch v := v.(*InitializerMetric); i {4995case 0:4996return &v.state4997case 1:4998return &v.sizeCache4999case 2:5000return &v.unknownFields5001default:5002return nil5003}5004}5005file_core_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {5006switch v := v.(*InitializerMetrics); i {5007case 0:5008return &v.state5009case 1:5010return &v.sizeCache5011case 2:5012return &v.unknownFields5013default:5014return nil5015}5016}5017file_core_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {5018switch v := v.(*WorkspaceMetadata_ImageInfo); i {5019case 0:5020return &v.state5021case 1:5022return &v.sizeCache5023case 2:5024return &v.unknownFields5025default:5026return nil5027}5028}5029file_core_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {5030switch v := v.(*WorkspaceMetadata_Metrics); i {5031case 0:5032return &v.state5033case 1:5034return &v.sizeCache5035case 2:5036return &v.unknownFields5037default:5038return nil5039}5040}5041file_core_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {5042switch v := v.(*EnvironmentVariable_SecretKeyRef); i {5043case 0:5044return &v.state5045case 1:5046return &v.sizeCache5047case 2:5048return &v.unknownFields5049default:5050return nil5051}5052}5053}5054file_core_proto_msgTypes[33].OneofWrappers = []interface{}{}5055type x struct{}5056out := protoimpl.TypeBuilder{5057File: protoimpl.DescBuilder{5058GoPackagePath: reflect.TypeOf(x{}).PkgPath(),5059RawDescriptor: file_core_proto_rawDesc,5060NumEnums: 9,5061NumMessages: 52,5062NumExtensions: 0,5063NumServices: 1,5064},5065GoTypes: file_core_proto_goTypes,5066DependencyIndexes: file_core_proto_depIdxs,5067EnumInfos: file_core_proto_enumTypes,5068MessageInfos: file_core_proto_msgTypes,5069}.Build()5070File_core_proto = out.File5071file_core_proto_rawDesc = nil5072file_core_proto_goTypes = nil5073file_core_proto_depIdxs = nil5074}507550765077