diff --git a/components/gitpod-protocol/go/gitpod-service.go b/components/gitpod-protocol/go/gitpod-service.go index 9f1711422fac3f..748573e2fbce26 100644 --- a/components/gitpod-protocol/go/gitpod-service.go +++ b/components/gitpod-protocol/go/gitpod-service.go @@ -1765,8 +1765,16 @@ type WorkspaceInstanceConditions struct { // WorkspaceInstanceConfiguration is the WorkspaceInstanceConfiguration message type type WorkspaceInstanceConfiguration struct { - FeatureFlags []string `json:"featureFlags,omitempty"` - TheiaVersion string `json:"theiaVersion,omitempty"` + FeatureFlags []string `json:"featureFlags,omitempty"` + TheiaVersion string `json:"theiaVersion,omitempty"` + IDEConfig *WorkspaceInstanceIDEConfig `json:"ideConfig,omitempty"` +} + +// WorkspaceInstanceIDEConfig is the ide config information of a workspace instance +type WorkspaceInstanceIDEConfig struct { + UseLatest bool `json:"useLatest,omitempty"` + IDE string `json:"ide,omitempty"` + PreferToolbox bool `json:"preferToolbox,omitempty"` } // WorkspaceInstanceRepoStatus is the WorkspaceInstanceRepoStatus message type diff --git a/components/public-api-server/pkg/apiv1/workspace.go b/components/public-api-server/pkg/apiv1/workspace.go index d64136194d36b2..964d87a44fc73b 100644 --- a/components/public-api-server/pkg/apiv1/workspace.go +++ b/components/public-api-server/pkg/apiv1/workspace.go @@ -434,6 +434,21 @@ func convertWorkspaceInfo(input *protocol.WorkspaceInfo) (*v1.Workspace, error) }, nil } +func convertIdeConfig(ideConfig *protocol.WorkspaceInstanceIDEConfig) *v1.WorkspaceInstanceStatus_EditorReference { + if ideConfig == nil { + return nil + } + ideVersion := "stable" + if ideConfig.UseLatest { + ideVersion = "latest" + } + return &v1.WorkspaceInstanceStatus_EditorReference{ + Name: ideConfig.IDE, + Version: ideVersion, + PreferToolbox: ideConfig.PreferToolbox, + } +} + func convertWorkspaceInstance(wsi *protocol.WorkspaceInstance, wsCtx *protocol.WorkspaceContext, config *protocol.WorkspaceConfig, shareable bool) (*v1.WorkspaceInstance, error) { if wsi == nil { return nil, nil @@ -539,6 +554,7 @@ func convertWorkspaceInstance(wsi *protocol.WorkspaceInstance, wsCtx *protocol.W Ports: ports, RecentFolders: recentFolders, GitStatus: gitStatus, + Editor: convertIdeConfig(wsi.Configuration.IDEConfig), }, }, nil } diff --git a/components/public-api/gitpod/experimental/v1/workspaces.proto b/components/public-api/gitpod/experimental/v1/workspaces.proto index 700e930821b5ce..2737290a5b2d3b 100644 --- a/components/public-api/gitpod/experimental/v1/workspaces.proto +++ b/components/public-api/gitpod/experimental/v1/workspaces.proto @@ -290,6 +290,15 @@ message WorkspaceInstanceStatus { optional bool stopped_by_request = 11; } + message EditorReference { + string name = 1; + string version = 2; + + // prefer_toolbox indicates whether the editor should be launched with the + // JetBrains Toolbox instead of JetBrains Gateway + bool prefer_toolbox = 3; + } + // version of the status update. Workspace instances themselves are unversioned, // but their statuus has different versions. // The value of this field has no semantic meaning (e.g. don't interpret it as @@ -322,6 +331,9 @@ message WorkspaceInstanceStatus { // Note: this is a best-effort field and more often than not will not be present. Its absence does not // indicate the absence of a working copy. GitStatus git_status = 9; + + // editor is the editor to be used in this workspace + EditorReference editor = 10; } // PortPolicy defines the accssbility policy of a workspace port is guarded by an authentication in the proxy diff --git a/components/public-api/go/experimental/v1/workspaces.pb.go b/components/public-api/go/experimental/v1/workspaces.pb.go index 6bdf00ae1b90c2..89bac10a82e076 100644 --- a/components/public-api/go/experimental/v1/workspaces.pb.go +++ b/components/public-api/go/experimental/v1/workspaces.pb.go @@ -1621,6 +1621,8 @@ type WorkspaceInstanceStatus struct { // Note: this is a best-effort field and more often than not will not be present. Its absence does not // indicate the absence of a working copy. GitStatus *GitStatus `protobuf:"bytes,9,opt,name=git_status,json=gitStatus,proto3" json:"git_status,omitempty"` + // editor is the editor to be used in this workspace + Editor *WorkspaceInstanceStatus_EditorReference `protobuf:"bytes,10,opt,name=editor,proto3" json:"editor,omitempty"` } func (x *WorkspaceInstanceStatus) Reset() { @@ -1718,6 +1720,13 @@ func (x *WorkspaceInstanceStatus) GetGitStatus() *GitStatus { return nil } +func (x *WorkspaceInstanceStatus) GetEditor() *WorkspaceInstanceStatus_EditorReference { + if x != nil { + return x.Editor + } + return nil +} + type Port struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2726,6 +2735,71 @@ func (x *WorkspaceInstanceStatus_Conditions) GetStoppedByRequest() bool { return false } +type WorkspaceInstanceStatus_EditorReference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + // prefer_toolbox indicates whether the editor should be launched with the + // JetBrains Toolbox instead of JetBrains Gateway + PreferToolbox bool `protobuf:"varint,3,opt,name=prefer_toolbox,json=preferToolbox,proto3" json:"prefer_toolbox,omitempty"` +} + +func (x *WorkspaceInstanceStatus_EditorReference) Reset() { + *x = WorkspaceInstanceStatus_EditorReference{} + if protoimpl.UnsafeEnabled { + mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkspaceInstanceStatus_EditorReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkspaceInstanceStatus_EditorReference) ProtoMessage() {} + +func (x *WorkspaceInstanceStatus_EditorReference) ProtoReflect() protoreflect.Message { + mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkspaceInstanceStatus_EditorReference.ProtoReflect.Descriptor instead. +func (*WorkspaceInstanceStatus_EditorReference) Descriptor() ([]byte, []int) { + return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{22, 1} +} + +func (x *WorkspaceInstanceStatus_EditorReference) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WorkspaceInstanceStatus_EditorReference) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *WorkspaceInstanceStatus_EditorReference) GetPreferToolbox() bool { + if x != nil { + return x.PreferToolbox + } + return false +} + var File_gitpod_experimental_v1_workspaces_proto protoreflect.FileDescriptor var file_gitpod_experimental_v1_workspaces_proto_rawDesc = []byte{ @@ -2942,7 +3016,7 @@ var file_gitpod_experimental_v1_workspaces_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xab, 0x07, 0x0a, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xec, 0x08, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, @@ -2974,244 +3048,256 @@ var file_gitpod_experimental_v1_workspaces_proto_rawDesc = []byte{ 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x67, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0xd4, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x4a, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, - 0x62, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x42, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x74, 0x6f, 0x70, - 0x70, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd9, - 0x01, 0x0a, 0x05, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x48, 0x41, 0x53, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x13, 0x0a, 0x0f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x49, - 0x4e, 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4d, - 0x41, 0x47, 0x45, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x48, - 0x41, 0x53, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x12, 0x0a, - 0x0e, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, - 0x04, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, - 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x48, 0x41, - 0x53, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, - 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54, 0x45, - 0x44, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x54, 0x4f, - 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x48, 0x41, 0x53, 0x45, - 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x09, 0x22, 0xaa, 0x01, 0x0a, 0x04, 0x50, - 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x57, 0x0a, 0x06, 0x65, 0x64, 0x69, 0x74, 0x6f, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, + 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x65, 0x64, 0x69, 0x74, 0x6f, 0x72, + 0x1a, 0xd4, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x12, 0x4a, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, + 0x12, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x73, 0x74, 0x6f, + 0x70, 0x70, 0x65, 0x64, 0x42, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x66, 0x0a, 0x0f, 0x45, 0x64, 0x69, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x6f, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x6f, 0x6c, 0x62, 0x6f, 0x78, 0x22, + 0xd9, 0x01, 0x0a, 0x05, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x48, 0x41, + 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, + 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, + 0x4d, 0x41, 0x47, 0x45, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x50, + 0x48, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x12, + 0x0a, 0x0e, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, + 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x48, + 0x41, 0x53, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x15, 0x0a, + 0x11, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x55, 0x50, 0x54, + 0x45, 0x44, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x54, + 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x48, 0x41, 0x53, + 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x09, 0x22, 0xaa, 0x01, 0x0a, 0x04, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, + 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, + 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x9d, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x27, 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x5f, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x45, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x0b, 0x49, 0x44, 0x45, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x49, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x5f, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x73, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9c, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, - 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x9d, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x27, - 0x0a, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x5f, 0x73, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x44, 0x45, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x52, 0x0b, 0x69, 0x64, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x0b, 0x49, 0x44, 0x45, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x5f, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x49, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x5f, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x73, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9c, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, - 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x6c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x69, 0x74, - 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x02, 0x0a, 0x09, 0x47, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x23, - 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, - 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x75, - 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x34, - 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, - 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x75, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x0a, - 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, - 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x6e, 0x70, - 0x75, 0x73, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, - 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x5a, 0x0a, 0x1f, 0x47, 0x65, 0x74, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0c, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x81, 0x02, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x5c, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x44, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x69, - 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1c, 0x0a, - 0x18, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x49, - 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x54, - 0x41, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4d, - 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, - 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x5a, 0x0a, 0x0a, 0x50, 0x6f, 0x72, - 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4c, - 0x49, 0x43, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, - 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x50, 0x55, 0x42, - 0x4c, 0x49, 0x43, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x0c, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, - 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x4f, - 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, - 0x54, 0x50, 0x53, 0x10, 0x02, 0x2a, 0x6f, 0x0a, 0x0e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x44, 0x4d, 0x49, 0x53, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x44, 0x4d, 0x49, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x57, 0x4e, 0x45, - 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x44, 0x4d, 0x49, - 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x52, - 0x59, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x32, 0xd5, 0x0a, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x0e, - 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2d, + 0x69, 0x63, 0x79, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x6c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x69, + 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe7, 0x02, 0x0a, 0x09, 0x47, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, + 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, + 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x34, 0x0a, 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x65, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x32, + 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, + 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x6e, + 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x34, 0x0a, + 0x16, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, + 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x5a, 0x0a, 0x1f, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x81, 0x02, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x12, 0x5c, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x44, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, + 0x69, 0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1c, + 0x0a, 0x18, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x49, 0x4e, 0x53, + 0x54, 0x41, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x49, + 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4f, 0x52, 0x47, 0x41, + 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x5a, 0x0a, 0x0a, 0x50, 0x6f, + 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, + 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x16, + 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x50, 0x55, + 0x42, 0x4c, 0x49, 0x43, 0x10, 0x02, 0x2a, 0x5e, 0x0a, 0x0c, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, + 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x10, 0x01, 0x12, 0x17, 0x0a, + 0x13, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, + 0x54, 0x54, 0x50, 0x53, 0x10, 0x02, 0x2a, 0x6f, 0x0a, 0x0e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x44, 0x4d, 0x49, + 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x44, 0x4d, + 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x57, 0x4e, + 0x45, 0x52, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x44, 0x4d, + 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x56, 0x45, + 0x52, 0x59, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x32, 0xd5, 0x0a, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, + 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, + 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x6b, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x6b, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, - 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x88, 0x01, 0x0a, - 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, - 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, - 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x6e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, - 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, - 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, - 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x88, 0x01, + 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, + 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x6e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x70, + 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, + 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x69, - 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, + 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, + 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x70, + 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, - 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0d, 0x53, 0x74, 0x6f, - 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x69, 0x74, - 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, - 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x0f, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x67, - 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, - 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x65, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0d, 0x53, 0x74, + 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x69, + 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x70, + 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x0f, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, - 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x57, - 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x33, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x37, 0x2e, 0x67, 0x69, 0x74, 0x70, + 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x65, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, + 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, - 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x6b, - 0x0a, 0x23, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2d, 0x69, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x70, - 0x6f, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x78, 0x70, 0x65, - 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8f, 0x01, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x37, 0x2e, 0x67, 0x69, 0x74, + 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x6b, 0x0a, 0x23, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2d, 0x69, 0x6f, 0x2f, 0x67, 0x69, 0x74, + 0x70, 0x6f, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x78, 0x70, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3227,7 +3313,7 @@ func file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP() []byte { } var file_gitpod_experimental_v1_workspaces_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_gitpod_experimental_v1_workspaces_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_gitpod_experimental_v1_workspaces_proto_msgTypes = make([]protoimpl.MessageInfo, 40) var file_gitpod_experimental_v1_workspaces_proto_goTypes = []interface{}{ (PortPolicy)(0), // 0: gitpod.experimental.v1.PortPolicy (PortProtocol)(0), // 1: gitpod.experimental.v1.PortProtocol @@ -3273,13 +3359,14 @@ var file_gitpod_experimental_v1_workspaces_proto_goTypes = []interface{}{ (*WorkspaceContext_Prebuild)(nil), // 41: gitpod.experimental.v1.WorkspaceContext.Prebuild (*WorkspaceContext_Snapshot)(nil), // 42: gitpod.experimental.v1.WorkspaceContext.Snapshot (*WorkspaceInstanceStatus_Conditions)(nil), // 43: gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions - (*Pagination)(nil), // 44: gitpod.experimental.v1.Pagination - (*fieldmaskpb.FieldMask)(nil), // 45: google.protobuf.FieldMask - (*timestamppb.Timestamp)(nil), // 46: google.protobuf.Timestamp + (*WorkspaceInstanceStatus_EditorReference)(nil), // 44: gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference + (*Pagination)(nil), // 45: gitpod.experimental.v1.Pagination + (*fieldmaskpb.FieldMask)(nil), // 46: google.protobuf.FieldMask + (*timestamppb.Timestamp)(nil), // 47: google.protobuf.Timestamp } var file_gitpod_experimental_v1_workspaces_proto_depIdxs = []int32{ - 44, // 0: gitpod.experimental.v1.ListWorkspacesRequest.pagination:type_name -> gitpod.experimental.v1.Pagination - 45, // 1: gitpod.experimental.v1.ListWorkspacesRequest.field_mask:type_name -> google.protobuf.FieldMask + 45, // 0: gitpod.experimental.v1.ListWorkspacesRequest.pagination:type_name -> gitpod.experimental.v1.Pagination + 46, // 1: gitpod.experimental.v1.ListWorkspacesRequest.field_mask:type_name -> google.protobuf.FieldMask 23, // 2: gitpod.experimental.v1.ListWorkspacesResponse.result:type_name -> gitpod.experimental.v1.Workspace 23, // 3: gitpod.experimental.v1.GetWorkspaceResponse.result:type_name -> gitpod.experimental.v1.Workspace 24, // 4: gitpod.experimental.v1.StreamWorkspaceStatusResponse.result:type_name -> gitpod.experimental.v1.WorkspaceStatus @@ -3293,51 +3380,52 @@ var file_gitpod_experimental_v1_workspaces_proto_depIdxs = []int32{ 40, // 12: gitpod.experimental.v1.WorkspaceContext.git:type_name -> gitpod.experimental.v1.WorkspaceContext.Git 41, // 13: gitpod.experimental.v1.WorkspaceContext.prebuild:type_name -> gitpod.experimental.v1.WorkspaceContext.Prebuild 42, // 14: gitpod.experimental.v1.WorkspaceContext.snapshot:type_name -> gitpod.experimental.v1.WorkspaceContext.Snapshot - 46, // 15: gitpod.experimental.v1.WorkspaceInstance.created_at:type_name -> google.protobuf.Timestamp + 47, // 15: gitpod.experimental.v1.WorkspaceInstance.created_at:type_name -> google.protobuf.Timestamp 27, // 16: gitpod.experimental.v1.WorkspaceInstance.status:type_name -> gitpod.experimental.v1.WorkspaceInstanceStatus 3, // 17: gitpod.experimental.v1.WorkspaceInstanceStatus.phase:type_name -> gitpod.experimental.v1.WorkspaceInstanceStatus.Phase 43, // 18: gitpod.experimental.v1.WorkspaceInstanceStatus.conditions:type_name -> gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions 2, // 19: gitpod.experimental.v1.WorkspaceInstanceStatus.admission:type_name -> gitpod.experimental.v1.AdmissionLevel 28, // 20: gitpod.experimental.v1.WorkspaceInstanceStatus.ports:type_name -> gitpod.experimental.v1.Port 34, // 21: gitpod.experimental.v1.WorkspaceInstanceStatus.git_status:type_name -> gitpod.experimental.v1.GitStatus - 0, // 22: gitpod.experimental.v1.Port.policy:type_name -> gitpod.experimental.v1.PortPolicy - 1, // 23: gitpod.experimental.v1.Port.protocol:type_name -> gitpod.experimental.v1.PortProtocol - 30, // 24: gitpod.experimental.v1.StartWorkspaceSpec.ide_settings:type_name -> gitpod.experimental.v1.IDESettings - 0, // 25: gitpod.experimental.v1.PortSpec.policy:type_name -> gitpod.experimental.v1.PortPolicy - 1, // 26: gitpod.experimental.v1.PortSpec.protocol:type_name -> gitpod.experimental.v1.PortProtocol - 31, // 27: gitpod.experimental.v1.UpdatePortRequest.port:type_name -> gitpod.experimental.v1.PortSpec - 4, // 28: gitpod.experimental.v1.GetDefaultWorkspaceImageResponse.source:type_name -> gitpod.experimental.v1.GetDefaultWorkspaceImageResponse.ImageSource - 39, // 29: gitpod.experimental.v1.WorkspaceContext.Git.repository:type_name -> gitpod.experimental.v1.WorkspaceContext.Repository - 38, // 30: gitpod.experimental.v1.WorkspaceContext.Git.provider:type_name -> gitpod.experimental.v1.WorkspaceContext.GitProvider - 40, // 31: gitpod.experimental.v1.WorkspaceContext.Prebuild.original_context:type_name -> gitpod.experimental.v1.WorkspaceContext.Git - 46, // 32: gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions.first_user_activity:type_name -> google.protobuf.Timestamp - 5, // 33: gitpod.experimental.v1.WorkspacesService.ListWorkspaces:input_type -> gitpod.experimental.v1.ListWorkspacesRequest - 7, // 34: gitpod.experimental.v1.WorkspacesService.GetWorkspace:input_type -> gitpod.experimental.v1.GetWorkspaceRequest - 9, // 35: gitpod.experimental.v1.WorkspacesService.StreamWorkspaceStatus:input_type -> gitpod.experimental.v1.StreamWorkspaceStatusRequest - 11, // 36: gitpod.experimental.v1.WorkspacesService.GetOwnerToken:input_type -> gitpod.experimental.v1.GetOwnerTokenRequest - 13, // 37: gitpod.experimental.v1.WorkspacesService.CreateAndStartWorkspace:input_type -> gitpod.experimental.v1.CreateAndStartWorkspaceRequest - 15, // 38: gitpod.experimental.v1.WorkspacesService.StartWorkspace:input_type -> gitpod.experimental.v1.StartWorkspaceRequest - 17, // 39: gitpod.experimental.v1.WorkspacesService.StopWorkspace:input_type -> gitpod.experimental.v1.StopWorkspaceRequest - 19, // 40: gitpod.experimental.v1.WorkspacesService.DeleteWorkspace:input_type -> gitpod.experimental.v1.DeleteWorkspaceRequest - 32, // 41: gitpod.experimental.v1.WorkspacesService.UpdatePort:input_type -> gitpod.experimental.v1.UpdatePortRequest - 21, // 42: gitpod.experimental.v1.WorkspacesService.ListWorkspaceClasses:input_type -> gitpod.experimental.v1.ListWorkspaceClassesRequest - 36, // 43: gitpod.experimental.v1.WorkspacesService.GetDefaultWorkspaceImage:input_type -> gitpod.experimental.v1.GetDefaultWorkspaceImageRequest - 6, // 44: gitpod.experimental.v1.WorkspacesService.ListWorkspaces:output_type -> gitpod.experimental.v1.ListWorkspacesResponse - 8, // 45: gitpod.experimental.v1.WorkspacesService.GetWorkspace:output_type -> gitpod.experimental.v1.GetWorkspaceResponse - 10, // 46: gitpod.experimental.v1.WorkspacesService.StreamWorkspaceStatus:output_type -> gitpod.experimental.v1.StreamWorkspaceStatusResponse - 12, // 47: gitpod.experimental.v1.WorkspacesService.GetOwnerToken:output_type -> gitpod.experimental.v1.GetOwnerTokenResponse - 14, // 48: gitpod.experimental.v1.WorkspacesService.CreateAndStartWorkspace:output_type -> gitpod.experimental.v1.CreateAndStartWorkspaceResponse - 16, // 49: gitpod.experimental.v1.WorkspacesService.StartWorkspace:output_type -> gitpod.experimental.v1.StartWorkspaceResponse - 18, // 50: gitpod.experimental.v1.WorkspacesService.StopWorkspace:output_type -> gitpod.experimental.v1.StopWorkspaceResponse - 20, // 51: gitpod.experimental.v1.WorkspacesService.DeleteWorkspace:output_type -> gitpod.experimental.v1.DeleteWorkspaceResponse - 33, // 52: gitpod.experimental.v1.WorkspacesService.UpdatePort:output_type -> gitpod.experimental.v1.UpdatePortResponse - 22, // 53: gitpod.experimental.v1.WorkspacesService.ListWorkspaceClasses:output_type -> gitpod.experimental.v1.ListWorkspaceClassesResponse - 37, // 54: gitpod.experimental.v1.WorkspacesService.GetDefaultWorkspaceImage:output_type -> gitpod.experimental.v1.GetDefaultWorkspaceImageResponse - 44, // [44:55] is the sub-list for method output_type - 33, // [33:44] is the sub-list for method input_type - 33, // [33:33] is the sub-list for extension type_name - 33, // [33:33] is the sub-list for extension extendee - 0, // [0:33] is the sub-list for field type_name + 44, // 22: gitpod.experimental.v1.WorkspaceInstanceStatus.editor:type_name -> gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference + 0, // 23: gitpod.experimental.v1.Port.policy:type_name -> gitpod.experimental.v1.PortPolicy + 1, // 24: gitpod.experimental.v1.Port.protocol:type_name -> gitpod.experimental.v1.PortProtocol + 30, // 25: gitpod.experimental.v1.StartWorkspaceSpec.ide_settings:type_name -> gitpod.experimental.v1.IDESettings + 0, // 26: gitpod.experimental.v1.PortSpec.policy:type_name -> gitpod.experimental.v1.PortPolicy + 1, // 27: gitpod.experimental.v1.PortSpec.protocol:type_name -> gitpod.experimental.v1.PortProtocol + 31, // 28: gitpod.experimental.v1.UpdatePortRequest.port:type_name -> gitpod.experimental.v1.PortSpec + 4, // 29: gitpod.experimental.v1.GetDefaultWorkspaceImageResponse.source:type_name -> gitpod.experimental.v1.GetDefaultWorkspaceImageResponse.ImageSource + 39, // 30: gitpod.experimental.v1.WorkspaceContext.Git.repository:type_name -> gitpod.experimental.v1.WorkspaceContext.Repository + 38, // 31: gitpod.experimental.v1.WorkspaceContext.Git.provider:type_name -> gitpod.experimental.v1.WorkspaceContext.GitProvider + 40, // 32: gitpod.experimental.v1.WorkspaceContext.Prebuild.original_context:type_name -> gitpod.experimental.v1.WorkspaceContext.Git + 47, // 33: gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions.first_user_activity:type_name -> google.protobuf.Timestamp + 5, // 34: gitpod.experimental.v1.WorkspacesService.ListWorkspaces:input_type -> gitpod.experimental.v1.ListWorkspacesRequest + 7, // 35: gitpod.experimental.v1.WorkspacesService.GetWorkspace:input_type -> gitpod.experimental.v1.GetWorkspaceRequest + 9, // 36: gitpod.experimental.v1.WorkspacesService.StreamWorkspaceStatus:input_type -> gitpod.experimental.v1.StreamWorkspaceStatusRequest + 11, // 37: gitpod.experimental.v1.WorkspacesService.GetOwnerToken:input_type -> gitpod.experimental.v1.GetOwnerTokenRequest + 13, // 38: gitpod.experimental.v1.WorkspacesService.CreateAndStartWorkspace:input_type -> gitpod.experimental.v1.CreateAndStartWorkspaceRequest + 15, // 39: gitpod.experimental.v1.WorkspacesService.StartWorkspace:input_type -> gitpod.experimental.v1.StartWorkspaceRequest + 17, // 40: gitpod.experimental.v1.WorkspacesService.StopWorkspace:input_type -> gitpod.experimental.v1.StopWorkspaceRequest + 19, // 41: gitpod.experimental.v1.WorkspacesService.DeleteWorkspace:input_type -> gitpod.experimental.v1.DeleteWorkspaceRequest + 32, // 42: gitpod.experimental.v1.WorkspacesService.UpdatePort:input_type -> gitpod.experimental.v1.UpdatePortRequest + 21, // 43: gitpod.experimental.v1.WorkspacesService.ListWorkspaceClasses:input_type -> gitpod.experimental.v1.ListWorkspaceClassesRequest + 36, // 44: gitpod.experimental.v1.WorkspacesService.GetDefaultWorkspaceImage:input_type -> gitpod.experimental.v1.GetDefaultWorkspaceImageRequest + 6, // 45: gitpod.experimental.v1.WorkspacesService.ListWorkspaces:output_type -> gitpod.experimental.v1.ListWorkspacesResponse + 8, // 46: gitpod.experimental.v1.WorkspacesService.GetWorkspace:output_type -> gitpod.experimental.v1.GetWorkspaceResponse + 10, // 47: gitpod.experimental.v1.WorkspacesService.StreamWorkspaceStatus:output_type -> gitpod.experimental.v1.StreamWorkspaceStatusResponse + 12, // 48: gitpod.experimental.v1.WorkspacesService.GetOwnerToken:output_type -> gitpod.experimental.v1.GetOwnerTokenResponse + 14, // 49: gitpod.experimental.v1.WorkspacesService.CreateAndStartWorkspace:output_type -> gitpod.experimental.v1.CreateAndStartWorkspaceResponse + 16, // 50: gitpod.experimental.v1.WorkspacesService.StartWorkspace:output_type -> gitpod.experimental.v1.StartWorkspaceResponse + 18, // 51: gitpod.experimental.v1.WorkspacesService.StopWorkspace:output_type -> gitpod.experimental.v1.StopWorkspaceResponse + 20, // 52: gitpod.experimental.v1.WorkspacesService.DeleteWorkspace:output_type -> gitpod.experimental.v1.DeleteWorkspaceResponse + 33, // 53: gitpod.experimental.v1.WorkspacesService.UpdatePort:output_type -> gitpod.experimental.v1.UpdatePortResponse + 22, // 54: gitpod.experimental.v1.WorkspacesService.ListWorkspaceClasses:output_type -> gitpod.experimental.v1.ListWorkspaceClassesResponse + 37, // 55: gitpod.experimental.v1.WorkspacesService.GetDefaultWorkspaceImage:output_type -> gitpod.experimental.v1.GetDefaultWorkspaceImageResponse + 45, // [45:56] is the sub-list for method output_type + 34, // [34:45] is the sub-list for method input_type + 34, // [34:34] is the sub-list for extension type_name + 34, // [34:34] is the sub-list for extension extendee + 0, // [0:34] is the sub-list for field type_name } func init() { file_gitpod_experimental_v1_workspaces_proto_init() } @@ -3815,6 +3903,18 @@ func file_gitpod_experimental_v1_workspaces_proto_init() { return nil } } + file_gitpod_experimental_v1_workspaces_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkspaceInstanceStatus_EditorReference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[8].OneofWrappers = []interface{}{ (*CreateAndStartWorkspaceRequest_ContextUrl)(nil), @@ -3833,7 +3933,7 @@ func file_gitpod_experimental_v1_workspaces_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gitpod_experimental_v1_workspaces_proto_rawDesc, NumEnums: 5, - NumMessages: 39, + NumMessages: 40, NumExtensions: 0, NumServices: 1, }, diff --git a/components/public-api/java/src/main/java/io/gitpod/publicapi/experimental/v1/Workspaces.java b/components/public-api/java/src/main/java/io/gitpod/publicapi/experimental/v1/Workspaces.java index e659e4191b3ae9..37a2fe5c22c66d 100644 --- a/components/public-api/java/src/main/java/io/gitpod/publicapi/experimental/v1/Workspaces.java +++ b/components/public-api/java/src/main/java/io/gitpod/publicapi/experimental/v1/Workspaces.java @@ -20410,6 +20410,33 @@ io.gitpod.publicapi.experimental.v1.Workspaces.PortOrBuilder getPortsOrBuilder( * .gitpod.experimental.v1.GitStatus git_status = 9 [json_name = "gitStatus"]; */ io.gitpod.publicapi.experimental.v1.Workspaces.GitStatusOrBuilder getGitStatusOrBuilder(); + + /** + *
+     * editor is the editor to be used in this workspace
+     * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + * @return Whether the editor field is set. + */ + boolean hasEditor(); + /** + *
+     * editor is the editor to be used in this workspace
+     * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + * @return The editor. + */ + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference getEditor(); + /** + *
+     * editor is the editor to be used in this workspace
+     * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReferenceOrBuilder getEditorOrBuilder(); } /** *
@@ -21737,137 +21764,893 @@ public Builder mergeFirstUserActivity(com.google.protobuf.Timestamp value) {
          *
          * .google.protobuf.Timestamp first_user_activity = 9 [json_name = "firstUserActivity"];
          */
-        public Builder clearFirstUserActivity() {
-          bitField0_ = (bitField0_ & ~0x00000004);
-          firstUserActivity_ = null;
-          if (firstUserActivityBuilder_ != null) {
-            firstUserActivityBuilder_.dispose();
-            firstUserActivityBuilder_ = null;
-          }
+        public Builder clearFirstUserActivity() {
+          bitField0_ = (bitField0_ & ~0x00000004);
+          firstUserActivity_ = null;
+          if (firstUserActivityBuilder_ != null) {
+            firstUserActivityBuilder_.dispose();
+            firstUserActivityBuilder_ = null;
+          }
+          onChanged();
+          return this;
+        }
+        /**
+         * 
+         * first_user_activity is the time when MarkActive was first called on the workspace
+         * 
+ * + * .google.protobuf.Timestamp first_user_activity = 9 [json_name = "firstUserActivity"]; + */ + public com.google.protobuf.Timestamp.Builder getFirstUserActivityBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getFirstUserActivityFieldBuilder().getBuilder(); + } + /** + *
+         * first_user_activity is the time when MarkActive was first called on the workspace
+         * 
+ * + * .google.protobuf.Timestamp first_user_activity = 9 [json_name = "firstUserActivity"]; + */ + public com.google.protobuf.TimestampOrBuilder getFirstUserActivityOrBuilder() { + if (firstUserActivityBuilder_ != null) { + return firstUserActivityBuilder_.getMessageOrBuilder(); + } else { + return firstUserActivity_ == null ? + com.google.protobuf.Timestamp.getDefaultInstance() : firstUserActivity_; + } + } + /** + *
+         * first_user_activity is the time when MarkActive was first called on the workspace
+         * 
+ * + * .google.protobuf.Timestamp first_user_activity = 9 [json_name = "firstUserActivity"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> + getFirstUserActivityFieldBuilder() { + if (firstUserActivityBuilder_ == null) { + firstUserActivityBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( + getFirstUserActivity(), + getParentForChildren(), + isClean()); + firstUserActivity_ = null; + } + return firstUserActivityBuilder_; + } + + private boolean stoppedByRequest_ ; + /** + *
+         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
+         * 
+ * + * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; + * @return Whether the stoppedByRequest field is set. + */ + @java.lang.Override + public boolean hasStoppedByRequest() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + *
+         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
+         * 
+ * + * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; + * @return The stoppedByRequest. + */ + @java.lang.Override + public boolean getStoppedByRequest() { + return stoppedByRequest_; + } + /** + *
+         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
+         * 
+ * + * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; + * @param value The stoppedByRequest to set. + * @return This builder for chaining. + */ + public Builder setStoppedByRequest(boolean value) { + + stoppedByRequest_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
+         * 
+ * + * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; + * @return This builder for chaining. + */ + public Builder clearStoppedByRequest() { + bitField0_ = (bitField0_ & ~0x00000008); + stoppedByRequest_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions) + } + + // @@protoc_insertion_point(class_scope:gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions) + private static final io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions(); + } + + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Conditions parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface EditorReferenceOrBuilder extends + // @@protoc_insertion_point(interface_extends:gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference) + com.google.protobuf.MessageOrBuilder { + + /** + * string name = 1 [json_name = "name"]; + * @return The name. + */ + java.lang.String getName(); + /** + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * string version = 2 [json_name = "version"]; + * @return The version. + */ + java.lang.String getVersion(); + /** + * string version = 2 [json_name = "version"]; + * @return The bytes for version. + */ + com.google.protobuf.ByteString + getVersionBytes(); + + /** + *
+       * prefer_toolbox indicates whether the editor should be launched with the
+       * JetBrains Toolbox instead of JetBrains Gateway
+       * 
+ * + * bool prefer_toolbox = 3 [json_name = "preferToolbox"]; + * @return The preferToolbox. + */ + boolean getPreferToolbox(); + } + /** + * Protobuf type {@code gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference} + */ + public static final class EditorReference extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference) + EditorReferenceOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 27, + /* patch= */ 2, + /* suffix= */ "", + EditorReference.class.getName()); + } + // Use EditorReference.newBuilder() to construct. + private EditorReference(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private EditorReference() { + name_ = ""; + version_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return io.gitpod.publicapi.experimental.v1.Workspaces.internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return io.gitpod.publicapi.experimental.v1.Workspaces.internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.class, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + * string name = 1 [json_name = "name"]; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VERSION_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object version_ = ""; + /** + * string version = 2 [json_name = "version"]; + * @return The version. + */ + @java.lang.Override + public java.lang.String getVersion() { + java.lang.Object ref = version_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + version_ = s; + return s; + } + } + /** + * string version = 2 [json_name = "version"]; + * @return The bytes for version. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVersionBytes() { + java.lang.Object ref = version_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + version_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PREFER_TOOLBOX_FIELD_NUMBER = 3; + private boolean preferToolbox_ = false; + /** + *
+       * prefer_toolbox indicates whether the editor should be launched with the
+       * JetBrains Toolbox instead of JetBrains Gateway
+       * 
+ * + * bool prefer_toolbox = 3 [json_name = "preferToolbox"]; + * @return The preferToolbox. + */ + @java.lang.Override + public boolean getPreferToolbox() { + return preferToolbox_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, name_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(version_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, version_); + } + if (preferToolbox_ != false) { + output.writeBool(3, preferToolbox_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(version_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, version_); + } + if (preferToolbox_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, preferToolbox_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference)) { + return super.equals(obj); + } + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference other = (io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference) obj; + + if (!getName() + .equals(other.getName())) return false; + if (!getVersion() + .equals(other.getVersion())) return false; + if (getPreferToolbox() + != other.getPreferToolbox()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + VERSION_FIELD_NUMBER; + hash = (53 * hash) + getVersion().hashCode(); + hash = (37 * hash) + PREFER_TOOLBOX_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPreferToolbox()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference) + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReferenceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return io.gitpod.publicapi.experimental.v1.Workspaces.internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return io.gitpod.publicapi.experimental.v1.Workspaces.internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.class, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.Builder.class); + } + + // Construct using io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + version_ = ""; + preferToolbox_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return io.gitpod.publicapi.experimental.v1.Workspaces.internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_descriptor; + } + + @java.lang.Override + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference getDefaultInstanceForType() { + return io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.getDefaultInstance(); + } + + @java.lang.Override + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference build() { + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference buildPartial() { + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference result = new io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.version_ = version_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.preferToolbox_ = preferToolbox_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference) { + return mergeFrom((io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference other) { + if (other == io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getVersion().isEmpty()) { + version_ = other.version_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPreferToolbox() != false) { + setPreferToolbox(other.getPreferToolbox()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + version_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + preferToolbox_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object name_ = ""; + /** + * string name = 1 [json_name = "name"]; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 1 [json_name = "name"]; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string name = 1 [json_name = "name"]; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** - *
-         * first_user_activity is the time when MarkActive was first called on the workspace
-         * 
- * - * .google.protobuf.Timestamp first_user_activity = 9 [json_name = "firstUserActivity"]; + * string name = 1 [json_name = "name"]; + * @param value The bytes for name to set. + * @return This builder for chaining. */ - public com.google.protobuf.Timestamp.Builder getFirstUserActivityBuilder() { - bitField0_ |= 0x00000004; + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; onChanged(); - return getFirstUserActivityFieldBuilder().getBuilder(); + return this; } + + private java.lang.Object version_ = ""; /** - *
-         * first_user_activity is the time when MarkActive was first called on the workspace
-         * 
- * - * .google.protobuf.Timestamp first_user_activity = 9 [json_name = "firstUserActivity"]; + * string version = 2 [json_name = "version"]; + * @return The version. */ - public com.google.protobuf.TimestampOrBuilder getFirstUserActivityOrBuilder() { - if (firstUserActivityBuilder_ != null) { - return firstUserActivityBuilder_.getMessageOrBuilder(); + public java.lang.String getVersion() { + java.lang.Object ref = version_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + version_ = s; + return s; } else { - return firstUserActivity_ == null ? - com.google.protobuf.Timestamp.getDefaultInstance() : firstUserActivity_; + return (java.lang.String) ref; } } /** - *
-         * first_user_activity is the time when MarkActive was first called on the workspace
-         * 
- * - * .google.protobuf.Timestamp first_user_activity = 9 [json_name = "firstUserActivity"]; + * string version = 2 [json_name = "version"]; + * @return The bytes for version. */ - private com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> - getFirstUserActivityFieldBuilder() { - if (firstUserActivityBuilder_ == null) { - firstUserActivityBuilder_ = new com.google.protobuf.SingleFieldBuilder< - com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( - getFirstUserActivity(), - getParentForChildren(), - isClean()); - firstUserActivity_ = null; + public com.google.protobuf.ByteString + getVersionBytes() { + java.lang.Object ref = version_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + version_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return firstUserActivityBuilder_; } - - private boolean stoppedByRequest_ ; /** - *
-         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
-         * 
- * - * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; - * @return Whether the stoppedByRequest field is set. + * string version = 2 [json_name = "version"]; + * @param value The version to set. + * @return This builder for chaining. */ - @java.lang.Override - public boolean hasStoppedByRequest() { - return ((bitField0_ & 0x00000008) != 0); + public Builder setVersion( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + version_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string version = 2 [json_name = "version"]; + * @return This builder for chaining. + */ + public Builder clearVersion() { + version_ = getDefaultInstance().getVersion(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string version = 2 [json_name = "version"]; + * @param value The bytes for version to set. + * @return This builder for chaining. + */ + public Builder setVersionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + version_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; } + + private boolean preferToolbox_ ; /** *
-         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
+         * prefer_toolbox indicates whether the editor should be launched with the
+         * JetBrains Toolbox instead of JetBrains Gateway
          * 
* - * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; - * @return The stoppedByRequest. + * bool prefer_toolbox = 3 [json_name = "preferToolbox"]; + * @return The preferToolbox. */ @java.lang.Override - public boolean getStoppedByRequest() { - return stoppedByRequest_; + public boolean getPreferToolbox() { + return preferToolbox_; } /** *
-         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
+         * prefer_toolbox indicates whether the editor should be launched with the
+         * JetBrains Toolbox instead of JetBrains Gateway
          * 
* - * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; - * @param value The stoppedByRequest to set. + * bool prefer_toolbox = 3 [json_name = "preferToolbox"]; + * @param value The preferToolbox to set. * @return This builder for chaining. */ - public Builder setStoppedByRequest(boolean value) { + public Builder setPreferToolbox(boolean value) { - stoppedByRequest_ = value; - bitField0_ |= 0x00000008; + preferToolbox_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } /** *
-         * stopped_by_request is true if the workspace was stopped using a StopWorkspace call
+         * prefer_toolbox indicates whether the editor should be launched with the
+         * JetBrains Toolbox instead of JetBrains Gateway
          * 
* - * optional bool stopped_by_request = 11 [json_name = "stoppedByRequest"]; + * bool prefer_toolbox = 3 [json_name = "preferToolbox"]; * @return This builder for chaining. */ - public Builder clearStoppedByRequest() { - bitField0_ = (bitField0_ & ~0x00000008); - stoppedByRequest_ = false; + public Builder clearPreferToolbox() { + bitField0_ = (bitField0_ & ~0x00000004); + preferToolbox_ = false; onChanged(); return this; } - // @@protoc_insertion_point(builder_scope:gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions) + // @@protoc_insertion_point(builder_scope:gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference) } - // @@protoc_insertion_point(class_scope:gitpod.experimental.v1.WorkspaceInstanceStatus.Conditions) - private static final io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference) + private static final io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions(); + DEFAULT_INSTANCE = new io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference(); } - public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions getDefaultInstance() { + public static io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override - public Conditions parsePartialFrom( + public EditorReference parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -21886,17 +22669,17 @@ public Conditions parsePartialFrom( } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser getParserForType() { + public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override - public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.Conditions getDefaultInstanceForType() { + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -22264,6 +23047,44 @@ public io.gitpod.publicapi.experimental.v1.Workspaces.GitStatusOrBuilder getGitS return gitStatus_ == null ? io.gitpod.publicapi.experimental.v1.Workspaces.GitStatus.getDefaultInstance() : gitStatus_; } + public static final int EDITOR_FIELD_NUMBER = 10; + private io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference editor_; + /** + *
+     * editor is the editor to be used in this workspace
+     * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + * @return Whether the editor field is set. + */ + @java.lang.Override + public boolean hasEditor() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+     * editor is the editor to be used in this workspace
+     * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + * @return The editor. + */ + @java.lang.Override + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference getEditor() { + return editor_ == null ? io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.getDefaultInstance() : editor_; + } + /** + *
+     * editor is the editor to be used in this workspace
+     * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + @java.lang.Override + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReferenceOrBuilder getEditorOrBuilder() { + return editor_ == null ? io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.getDefaultInstance() : editor_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -22305,6 +23126,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(9, getGitStatus()); } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(10, getEditor()); + } getUnknownFields().writeTo(output); } @@ -22352,6 +23176,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(9, getGitStatus()); } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, getEditor()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -22389,6 +23217,11 @@ public boolean equals(final java.lang.Object obj) { if (!getGitStatus() .equals(other.getGitStatus())) return false; } + if (hasEditor() != other.hasEditor()) return false; + if (hasEditor()) { + if (!getEditor() + .equals(other.getEditor())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -22427,6 +23260,10 @@ public int hashCode() { hash = (37 * hash) + GIT_STATUS_FIELD_NUMBER; hash = (53 * hash) + getGitStatus().hashCode(); } + if (hasEditor()) { + hash = (37 * hash) + EDITOR_FIELD_NUMBER; + hash = (53 * hash) + getEditor().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -22564,6 +23401,7 @@ private void maybeForceBuilderInitialization() { getConditionsFieldBuilder(); getPortsFieldBuilder(); getGitStatusFieldBuilder(); + getEditorFieldBuilder(); } } @java.lang.Override @@ -22594,6 +23432,11 @@ public Builder clear() { gitStatusBuilder_.dispose(); gitStatusBuilder_ = null; } + editor_ = null; + if (editorBuilder_ != null) { + editorBuilder_.dispose(); + editorBuilder_ = null; + } return this; } @@ -22672,6 +23515,12 @@ private void buildPartial0(io.gitpod.publicapi.experimental.v1.Workspaces.Worksp : gitStatusBuilder_.build(); to_bitField0_ |= 0x00000002; } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.editor_ = editorBuilder_ == null + ? editor_ + : editorBuilder_.build(); + to_bitField0_ |= 0x00000004; + } result.bitField0_ |= to_bitField0_; } @@ -22748,6 +23597,9 @@ public Builder mergeFrom(io.gitpod.publicapi.experimental.v1.Workspaces.Workspac if (other.hasGitStatus()) { mergeGitStatus(other.getGitStatus()); } + if (other.hasEditor()) { + mergeEditor(other.getEditor()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -22832,6 +23684,13 @@ public Builder mergeFrom( bitField0_ |= 0x00000100; break; } // case 74 + case 82: { + input.readMessage( + getEditorFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000200; + break; + } // case 82 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -24026,6 +24885,163 @@ public io.gitpod.publicapi.experimental.v1.Workspaces.GitStatusOrBuilder getGitS return gitStatusBuilder_; } + private io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference editor_; + private com.google.protobuf.SingleFieldBuilder< + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.Builder, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReferenceOrBuilder> editorBuilder_; + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + * @return Whether the editor field is set. + */ + public boolean hasEditor() { + return ((bitField0_ & 0x00000200) != 0); + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + * @return The editor. + */ + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference getEditor() { + if (editorBuilder_ == null) { + return editor_ == null ? io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.getDefaultInstance() : editor_; + } else { + return editorBuilder_.getMessage(); + } + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + public Builder setEditor(io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference value) { + if (editorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + editor_ = value; + } else { + editorBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + public Builder setEditor( + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.Builder builderForValue) { + if (editorBuilder_ == null) { + editor_ = builderForValue.build(); + } else { + editorBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + public Builder mergeEditor(io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference value) { + if (editorBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) && + editor_ != null && + editor_ != io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.getDefaultInstance()) { + getEditorBuilder().mergeFrom(value); + } else { + editor_ = value; + } + } else { + editorBuilder_.mergeFrom(value); + } + if (editor_ != null) { + bitField0_ |= 0x00000200; + onChanged(); + } + return this; + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + public Builder clearEditor() { + bitField0_ = (bitField0_ & ~0x00000200); + editor_ = null; + if (editorBuilder_ != null) { + editorBuilder_.dispose(); + editorBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.Builder getEditorBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return getEditorFieldBuilder().getBuilder(); + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + public io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReferenceOrBuilder getEditorOrBuilder() { + if (editorBuilder_ != null) { + return editorBuilder_.getMessageOrBuilder(); + } else { + return editor_ == null ? + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.getDefaultInstance() : editor_; + } + } + /** + *
+       * editor is the editor to be used in this workspace
+       * 
+ * + * .gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10 [json_name = "editor"]; + */ + private com.google.protobuf.SingleFieldBuilder< + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.Builder, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReferenceOrBuilder> + getEditorFieldBuilder() { + if (editorBuilder_ == null) { + editorBuilder_ = new com.google.protobuf.SingleFieldBuilder< + io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReference.Builder, io.gitpod.publicapi.experimental.v1.Workspaces.WorkspaceInstanceStatus.EditorReferenceOrBuilder>( + getEditor(), + getParentForChildren(), + isClean()); + editor_ = null; + } + return editorBuilder_; + } + // @@protoc_insertion_point(builder_scope:gitpod.experimental.v1.WorkspaceInstanceStatus) } @@ -32645,6 +33661,11 @@ public io.gitpod.publicapi.experimental.v1.Workspaces.GetDefaultWorkspaceImageRe private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_Conditions_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_gitpod_experimental_v1_Port_descriptor; private static final @@ -32789,7 +33810,7 @@ public io.gitpod.publicapi.experimental.v1.Workspaces.GetDefaultWorkspaceImageRe "kspaceId\0229\n\ncreated_at\030\003 \001(\0132\032.google.pr" + "otobuf.TimestampR\tcreatedAt\022G\n\006status\030\004 " + "\001(\0132/.gitpod.experimental.v1.WorkspaceIn" + - "stanceStatusR\006status\"\253\007\n\027WorkspaceInstan" + + "stanceStatusR\006status\"\354\010\n\027WorkspaceInstan" + "ceStatus\022%\n\016status_version\030\001 \001(\004R\rstatus" + "Version\022K\n\005phase\030\002 \001(\01625.gitpod.experime" + "ntal.v1.WorkspaceInstanceStatus.PhaseR\005p" + @@ -32802,101 +33823,106 @@ public io.gitpod.publicapi.experimental.v1.Workspaces.GetDefaultWorkspaceImageRe "imental.v1.PortR\005ports\022%\n\016recent_folders" + "\030\010 \003(\tR\rrecentFolders\022@\n\ngit_status\030\t \001(" + "\0132!.gitpod.experimental.v1.GitStatusR\tgi" + - "tStatus\032\324\001\n\nConditions\022\026\n\006failed\030\001 \001(\tR\006" + - "failed\022\030\n\007timeout\030\002 \001(\tR\007timeout\022J\n\023firs" + - "t_user_activity\030\t \001(\0132\032.google.protobuf." + - "TimestampR\021firstUserActivity\0221\n\022stopped_" + - "by_request\030\013 \001(\010H\000R\020stoppedByRequest\210\001\001B" + - "\025\n\023_stopped_by_request\"\331\001\n\005Phase\022\025\n\021PHAS" + - "E_UNSPECIFIED\020\000\022\023\n\017PHASE_PREPARING\020\001\022\024\n\020" + - "PHASE_IMAGEBUILD\020\002\022\021\n\rPHASE_PENDING\020\003\022\022\n" + - "\016PHASE_CREATING\020\004\022\026\n\022PHASE_INITIALIZING\020" + - "\005\022\021\n\rPHASE_RUNNING\020\006\022\025\n\021PHASE_INTERRUPTE" + - "D\020\007\022\022\n\016PHASE_STOPPING\020\010\022\021\n\rPHASE_STOPPED" + - "\020\t\"\252\001\n\004Port\022\022\n\004port\030\001 \001(\004R\004port\022:\n\006polic" + - "y\030\002 \001(\0162\".gitpod.experimental.v1.PortPol" + - "icyR\006policy\022\020\n\003url\030\003 \001(\tR\003url\022@\n\010protoco" + - "l\030\004 \001(\0162$.gitpod.experimental.v1.PortPro" + - "tocolR\010protocol\"\235\001\n\022StartWorkspaceSpec\022\'" + - "\n\017workspace_class\030\001 \001(\tR\016workspaceClass\022" + - "F\n\014ide_settings\030\002 \001(\0132#.gitpod.experimen" + - "tal.v1.IDESettingsR\013ideSettings\022\026\n\006regio" + - "n\030\003 \001(\tR\006region\"\\\n\013IDESettings\022\037\n\013defaul" + - "t_ide\030\001 \001(\tR\ndefaultIde\022,\n\022use_latest_ve" + - "rsion\030\002 \001(\010R\020useLatestVersion\"\234\001\n\010PortSp" + - "ec\022\022\n\004port\030\001 \001(\004R\004port\022:\n\006policy\030\002 \001(\0162\"" + - ".gitpod.experimental.v1.PortPolicyR\006poli" + - "cy\022@\n\010protocol\030\003 \001(\0162$.gitpod.experiment" + - "al.v1.PortProtocolR\010protocol\"l\n\021UpdatePo" + - "rtRequest\022!\n\014workspace_id\030\001 \001(\tR\013workspa" + - "ceId\0224\n\004port\030\002 \001(\0132 .gitpod.experimental" + - ".v1.PortSpecR\004port\"\024\n\022UpdatePortResponse" + - "\"\347\002\n\tGitStatus\022\026\n\006branch\030\001 \001(\tR\006branch\022#" + - "\n\rlatest_commit\030\002 \001(\tR\014latestCommit\022)\n\020u" + - "ncommited_files\030\003 \003(\tR\017uncommitedFiles\0224" + - "\n\026total_uncommited_files\030\006 \001(\005R\024totalUnc" + - "ommitedFiles\022\'\n\017untracked_files\030\004 \003(\tR\016u" + - "ntrackedFiles\0222\n\025total_untracked_files\030\007" + - " \001(\005R\023totalUntrackedFiles\022)\n\020unpushed_co" + - "mmits\030\005 \003(\tR\017unpushedCommits\0224\n\026total_un" + - "pushed_commits\030\010 \001(\005R\024totalUnpushedCommi" + - "ts\"\204\001\n\016WorkspaceClass\022\016\n\002id\030\001 \001(\tR\002id\022!\n" + - "\014display_name\030\002 \001(\tR\013displayName\022 \n\013desc" + - "ription\030\003 \001(\tR\013description\022\035\n\nis_default" + - "\030\004 \001(\010R\tisDefault\"Z\n\037GetDefaultWorkspace" + - "ImageRequest\022&\n\014workspace_id\030\001 \001(\tH\000R\013wo" + - "rkspaceId\210\001\001B\017\n\r_workspace_id\"\201\002\n GetDef" + - "aultWorkspaceImageResponse\022\024\n\005image\030\001 \001(" + - "\tR\005image\022\\\n\006source\030\002 \001(\0162D.gitpod.experi" + - "mental.v1.GetDefaultWorkspaceImageRespon" + - "se.ImageSourceR\006source\"i\n\013ImageSource\022\034\n" + - "\030IMAGE_SOURCE_UNSPECIFIED\020\000\022\035\n\031IMAGE_SOU" + - "RCE_INSTALLATION\020\001\022\035\n\031IMAGE_SOURCE_ORGAN" + - "IZATION\020\002*Z\n\nPortPolicy\022\033\n\027PORT_POLICY_U" + - "NSPECIFIED\020\000\022\027\n\023PORT_POLICY_PRIVATE\020\001\022\026\n" + - "\022PORT_POLICY_PUBLIC\020\002*^\n\014PortProtocol\022\035\n" + - "\031PORT_PROTOCOL_UNSPECIFIED\020\000\022\026\n\022PORT_PRO" + - "TOCOL_HTTP\020\001\022\027\n\023PORT_PROTOCOL_HTTPS\020\002*o\n" + - "\016AdmissionLevel\022\037\n\033ADMISSION_LEVEL_UNSPE" + - "CIFIED\020\000\022\036\n\032ADMISSION_LEVEL_OWNER_ONLY\020\001" + - "\022\034\n\030ADMISSION_LEVEL_EVERYONE\020\0022\325\n\n\021Works" + - "pacesService\022q\n\016ListWorkspaces\022-.gitpod." + - "experimental.v1.ListWorkspacesRequest\032.." + - "gitpod.experimental.v1.ListWorkspacesRes" + - "ponse\"\000\022k\n\014GetWorkspace\022+.gitpod.experim" + - "ental.v1.GetWorkspaceRequest\032,.gitpod.ex" + - "perimental.v1.GetWorkspaceResponse\"\000\022\210\001\n" + - "\025StreamWorkspaceStatus\0224.gitpod.experime" + - "ntal.v1.StreamWorkspaceStatusRequest\0325.g" + - "itpod.experimental.v1.StreamWorkspaceSta" + - "tusResponse\"\0000\001\022n\n\rGetOwnerToken\022,.gitpo" + - "d.experimental.v1.GetOwnerTokenRequest\032-" + - ".gitpod.experimental.v1.GetOwnerTokenRes" + - "ponse\"\000\022\214\001\n\027CreateAndStartWorkspace\0226.gi" + - "tpod.experimental.v1.CreateAndStartWorks" + - "paceRequest\0327.gitpod.experimental.v1.Cre" + - "ateAndStartWorkspaceResponse\"\000\022q\n\016StartW" + - "orkspace\022-.gitpod.experimental.v1.StartW" + - "orkspaceRequest\032..gitpod.experimental.v1" + - ".StartWorkspaceResponse\"\000\022n\n\rStopWorkspa" + - "ce\022,.gitpod.experimental.v1.StopWorkspac" + - "eRequest\032-.gitpod.experimental.v1.StopWo" + - "rkspaceResponse\"\000\022t\n\017DeleteWorkspace\022..g" + - "itpod.experimental.v1.DeleteWorkspaceReq" + - "uest\032/.gitpod.experimental.v1.DeleteWork" + - "spaceResponse\"\000\022e\n\nUpdatePort\022).gitpod.e" + - "xperimental.v1.UpdatePortRequest\032*.gitpo" + - "d.experimental.v1.UpdatePortResponse\"\000\022\203" + - "\001\n\024ListWorkspaceClasses\0223.gitpod.experim" + - "ental.v1.ListWorkspaceClassesRequest\0324.g" + - "itpod.experimental.v1.ListWorkspaceClass" + - "esResponse\"\000\022\217\001\n\030GetDefaultWorkspaceImag" + - "e\0227.gitpod.experimental.v1.GetDefaultWor" + - "kspaceImageRequest\0328.gitpod.experimental" + - ".v1.GetDefaultWorkspaceImageResponse\"\000Bk" + - "\n#io.gitpod.publicapi.experimental.v1ZDg" + - "ithub.com/gitpod-io/gitpod/components/pu" + - "blic-api/go/experimental/v1b\006proto3" + "tStatus\022W\n\006editor\030\n \001(\0132?.gitpod.experim" + + "ental.v1.WorkspaceInstanceStatus.EditorR" + + "eferenceR\006editor\032\324\001\n\nConditions\022\026\n\006faile" + + "d\030\001 \001(\tR\006failed\022\030\n\007timeout\030\002 \001(\tR\007timeou" + + "t\022J\n\023first_user_activity\030\t \001(\0132\032.google." + + "protobuf.TimestampR\021firstUserActivity\0221\n" + + "\022stopped_by_request\030\013 \001(\010H\000R\020stoppedByRe" + + "quest\210\001\001B\025\n\023_stopped_by_request\032f\n\017Edito" + + "rReference\022\022\n\004name\030\001 \001(\tR\004name\022\030\n\007versio" + + "n\030\002 \001(\tR\007version\022%\n\016prefer_toolbox\030\003 \001(\010" + + "R\rpreferToolbox\"\331\001\n\005Phase\022\025\n\021PHASE_UNSPE" + + "CIFIED\020\000\022\023\n\017PHASE_PREPARING\020\001\022\024\n\020PHASE_I" + + "MAGEBUILD\020\002\022\021\n\rPHASE_PENDING\020\003\022\022\n\016PHASE_" + + "CREATING\020\004\022\026\n\022PHASE_INITIALIZING\020\005\022\021\n\rPH" + + "ASE_RUNNING\020\006\022\025\n\021PHASE_INTERRUPTED\020\007\022\022\n\016" + + "PHASE_STOPPING\020\010\022\021\n\rPHASE_STOPPED\020\t\"\252\001\n\004" + + "Port\022\022\n\004port\030\001 \001(\004R\004port\022:\n\006policy\030\002 \001(\016" + + "2\".gitpod.experimental.v1.PortPolicyR\006po" + + "licy\022\020\n\003url\030\003 \001(\tR\003url\022@\n\010protocol\030\004 \001(\016" + + "2$.gitpod.experimental.v1.PortProtocolR\010" + + "protocol\"\235\001\n\022StartWorkspaceSpec\022\'\n\017works" + + "pace_class\030\001 \001(\tR\016workspaceClass\022F\n\014ide_" + + "settings\030\002 \001(\0132#.gitpod.experimental.v1." + + "IDESettingsR\013ideSettings\022\026\n\006region\030\003 \001(\t" + + "R\006region\"\\\n\013IDESettings\022\037\n\013default_ide\030\001" + + " \001(\tR\ndefaultIde\022,\n\022use_latest_version\030\002" + + " \001(\010R\020useLatestVersion\"\234\001\n\010PortSpec\022\022\n\004p" + + "ort\030\001 \001(\004R\004port\022:\n\006policy\030\002 \001(\0162\".gitpod" + + ".experimental.v1.PortPolicyR\006policy\022@\n\010p" + + "rotocol\030\003 \001(\0162$.gitpod.experimental.v1.P" + + "ortProtocolR\010protocol\"l\n\021UpdatePortReque" + + "st\022!\n\014workspace_id\030\001 \001(\tR\013workspaceId\0224\n" + + "\004port\030\002 \001(\0132 .gitpod.experimental.v1.Por" + + "tSpecR\004port\"\024\n\022UpdatePortResponse\"\347\002\n\tGi" + + "tStatus\022\026\n\006branch\030\001 \001(\tR\006branch\022#\n\rlates" + + "t_commit\030\002 \001(\tR\014latestCommit\022)\n\020uncommit" + + "ed_files\030\003 \003(\tR\017uncommitedFiles\0224\n\026total" + + "_uncommited_files\030\006 \001(\005R\024totalUncommited" + + "Files\022\'\n\017untracked_files\030\004 \003(\tR\016untracke" + + "dFiles\0222\n\025total_untracked_files\030\007 \001(\005R\023t" + + "otalUntrackedFiles\022)\n\020unpushed_commits\030\005" + + " \003(\tR\017unpushedCommits\0224\n\026total_unpushed_" + + "commits\030\010 \001(\005R\024totalUnpushedCommits\"\204\001\n\016" + + "WorkspaceClass\022\016\n\002id\030\001 \001(\tR\002id\022!\n\014displa" + + "y_name\030\002 \001(\tR\013displayName\022 \n\013description" + + "\030\003 \001(\tR\013description\022\035\n\nis_default\030\004 \001(\010R" + + "\tisDefault\"Z\n\037GetDefaultWorkspaceImageRe" + + "quest\022&\n\014workspace_id\030\001 \001(\tH\000R\013workspace" + + "Id\210\001\001B\017\n\r_workspace_id\"\201\002\n GetDefaultWor" + + "kspaceImageResponse\022\024\n\005image\030\001 \001(\tR\005imag" + + "e\022\\\n\006source\030\002 \001(\0162D.gitpod.experimental." + + "v1.GetDefaultWorkspaceImageResponse.Imag" + + "eSourceR\006source\"i\n\013ImageSource\022\034\n\030IMAGE_" + + "SOURCE_UNSPECIFIED\020\000\022\035\n\031IMAGE_SOURCE_INS" + + "TALLATION\020\001\022\035\n\031IMAGE_SOURCE_ORGANIZATION" + + "\020\002*Z\n\nPortPolicy\022\033\n\027PORT_POLICY_UNSPECIF" + + "IED\020\000\022\027\n\023PORT_POLICY_PRIVATE\020\001\022\026\n\022PORT_P" + + "OLICY_PUBLIC\020\002*^\n\014PortProtocol\022\035\n\031PORT_P" + + "ROTOCOL_UNSPECIFIED\020\000\022\026\n\022PORT_PROTOCOL_H" + + "TTP\020\001\022\027\n\023PORT_PROTOCOL_HTTPS\020\002*o\n\016Admiss" + + "ionLevel\022\037\n\033ADMISSION_LEVEL_UNSPECIFIED\020" + + "\000\022\036\n\032ADMISSION_LEVEL_OWNER_ONLY\020\001\022\034\n\030ADM" + + "ISSION_LEVEL_EVERYONE\020\0022\325\n\n\021WorkspacesSe" + + "rvice\022q\n\016ListWorkspaces\022-.gitpod.experim" + + "ental.v1.ListWorkspacesRequest\032..gitpod." + + "experimental.v1.ListWorkspacesResponse\"\000" + + "\022k\n\014GetWorkspace\022+.gitpod.experimental.v" + + "1.GetWorkspaceRequest\032,.gitpod.experimen" + + "tal.v1.GetWorkspaceResponse\"\000\022\210\001\n\025Stream" + + "WorkspaceStatus\0224.gitpod.experimental.v1" + + ".StreamWorkspaceStatusRequest\0325.gitpod.e" + + "xperimental.v1.StreamWorkspaceStatusResp" + + "onse\"\0000\001\022n\n\rGetOwnerToken\022,.gitpod.exper" + + "imental.v1.GetOwnerTokenRequest\032-.gitpod" + + ".experimental.v1.GetOwnerTokenResponse\"\000" + + "\022\214\001\n\027CreateAndStartWorkspace\0226.gitpod.ex" + + "perimental.v1.CreateAndStartWorkspaceReq" + + "uest\0327.gitpod.experimental.v1.CreateAndS" + + "tartWorkspaceResponse\"\000\022q\n\016StartWorkspac" + + "e\022-.gitpod.experimental.v1.StartWorkspac" + + "eRequest\032..gitpod.experimental.v1.StartW" + + "orkspaceResponse\"\000\022n\n\rStopWorkspace\022,.gi" + + "tpod.experimental.v1.StopWorkspaceReques" + + "t\032-.gitpod.experimental.v1.StopWorkspace" + + "Response\"\000\022t\n\017DeleteWorkspace\022..gitpod.e" + + "xperimental.v1.DeleteWorkspaceRequest\032/." + + "gitpod.experimental.v1.DeleteWorkspaceRe" + + "sponse\"\000\022e\n\nUpdatePort\022).gitpod.experime" + + "ntal.v1.UpdatePortRequest\032*.gitpod.exper" + + "imental.v1.UpdatePortResponse\"\000\022\203\001\n\024List" + + "WorkspaceClasses\0223.gitpod.experimental.v" + + "1.ListWorkspaceClassesRequest\0324.gitpod.e" + + "xperimental.v1.ListWorkspaceClassesRespo" + + "nse\"\000\022\217\001\n\030GetDefaultWorkspaceImage\0227.git" + + "pod.experimental.v1.GetDefaultWorkspaceI" + + "mageRequest\0328.gitpod.experimental.v1.Get" + + "DefaultWorkspaceImageResponse\"\000Bk\n#io.gi" + + "tpod.publicapi.experimental.v1ZDgithub.c" + + "om/gitpod-io/gitpod/components/public-ap" + + "i/go/experimental/v1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -33072,13 +34098,19 @@ public io.gitpod.publicapi.experimental.v1.Workspaces.GetDefaultWorkspaceImageRe internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_descriptor, - new java.lang.String[] { "StatusVersion", "Phase", "Conditions", "Message", "Url", "Admission", "Ports", "RecentFolders", "GitStatus", }); + new java.lang.String[] { "StatusVersion", "Phase", "Conditions", "Message", "Url", "Admission", "Ports", "RecentFolders", "GitStatus", "Editor", }); internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_Conditions_descriptor = internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_descriptor.getNestedTypes().get(0); internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_Conditions_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_Conditions_descriptor, new java.lang.String[] { "Failed", "Timeout", "FirstUserActivity", "StoppedByRequest", }); + internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_descriptor = + internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_descriptor.getNestedTypes().get(1); + internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_gitpod_experimental_v1_WorkspaceInstanceStatus_EditorReference_descriptor, + new java.lang.String[] { "Name", "Version", "PreferToolbox", }); internal_static_gitpod_experimental_v1_Port_descriptor = getDescriptor().getMessageTypes().get(23); internal_static_gitpod_experimental_v1_Port_fieldAccessorTable = new diff --git a/components/public-api/typescript/src/gitpod/experimental/v1/workspaces_pb.ts b/components/public-api/typescript/src/gitpod/experimental/v1/workspaces_pb.ts index 51c7432f3f29fc..1f376e4a21500a 100644 --- a/components/public-api/typescript/src/gitpod/experimental/v1/workspaces_pb.ts +++ b/components/public-api/typescript/src/gitpod/experimental/v1/workspaces_pb.ts @@ -1398,6 +1398,13 @@ export class WorkspaceInstanceStatus extends Message { */ gitStatus?: GitStatus; + /** + * editor is the editor to be used in this workspace + * + * @generated from field: gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference editor = 10; + */ + editor?: WorkspaceInstanceStatus_EditorReference; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -1415,6 +1422,7 @@ export class WorkspaceInstanceStatus extends Message { { no: 7, name: "ports", kind: "message", T: Port, repeated: true }, { no: 8, name: "recent_folders", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true }, { no: 9, name: "git_status", kind: "message", T: GitStatus }, + { no: 10, name: "editor", kind: "message", T: WorkspaceInstanceStatus_EditorReference }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): WorkspaceInstanceStatus { @@ -1603,6 +1611,58 @@ export class WorkspaceInstanceStatus_Conditions extends Message { + /** + * @generated from field: string name = 1; + */ + name = ""; + + /** + * @generated from field: string version = 2; + */ + version = ""; + + /** + * prefer_toolbox indicates whether the editor should be launched with the + * JetBrains Toolbox instead of JetBrains Gateway + * + * @generated from field: bool prefer_toolbox = 3; + */ + preferToolbox = false; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "gitpod.experimental.v1.WorkspaceInstanceStatus.EditorReference"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "version", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 3, name: "prefer_toolbox", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): WorkspaceInstanceStatus_EditorReference { + return new WorkspaceInstanceStatus_EditorReference().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): WorkspaceInstanceStatus_EditorReference { + return new WorkspaceInstanceStatus_EditorReference().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): WorkspaceInstanceStatus_EditorReference { + return new WorkspaceInstanceStatus_EditorReference().fromJsonString(jsonString, options); + } + + static equals(a: WorkspaceInstanceStatus_EditorReference | PlainMessage | undefined, b: WorkspaceInstanceStatus_EditorReference | PlainMessage | undefined): boolean { + return proto3.util.equals(WorkspaceInstanceStatus_EditorReference, a, b); + } +} + /** * @generated from message gitpod.experimental.v1.Port */