// Copyright (c) 2025 Gitpod GmbH. All rights reserved. // Licensed under the GNU Affero General Public License (AGPL). // See License.AGPL.txt in the project root for license information. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc (unknown) // source: gitpod/experimental/v1/workspaces.proto package v1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // PortPolicy defines the accssbility policy of a workspace port is guarded by an authentication in the proxy type PortPolicy int32 const ( PortPolicy_PORT_POLICY_UNSPECIFIED PortPolicy = 0 // Private means the port is accessible by the workspace owner only using the workspace port URL PortPolicy_PORT_POLICY_PRIVATE PortPolicy = 1 // Public means the port is accessible by everybody using the workspace port URL PortPolicy_PORT_POLICY_PUBLIC PortPolicy = 2 ) // Enum value maps for PortPolicy. var ( PortPolicy_name = map[int32]string{ 0: "PORT_POLICY_UNSPECIFIED", 1: "PORT_POLICY_PRIVATE", 2: "PORT_POLICY_PUBLIC", } PortPolicy_value = map[string]int32{ "PORT_POLICY_UNSPECIFIED": 0, "PORT_POLICY_PRIVATE": 1, "PORT_POLICY_PUBLIC": 2, } ) func (x PortPolicy) Enum() *PortPolicy { p := new(PortPolicy) *p = x return p } func (x PortPolicy) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PortPolicy) Descriptor() protoreflect.EnumDescriptor { return file_gitpod_experimental_v1_workspaces_proto_enumTypes[0].Descriptor() } func (PortPolicy) Type() protoreflect.EnumType { return &file_gitpod_experimental_v1_workspaces_proto_enumTypes[0] } func (x PortPolicy) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PortPolicy.Descriptor instead. func (PortPolicy) EnumDescriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{0} } // PortProtocol defines the backend protocol of port type PortProtocol int32 const ( PortProtocol_PORT_PROTOCOL_UNSPECIFIED PortProtocol = 0 // Http means the port backend is http PortProtocol_PORT_PROTOCOL_HTTP PortProtocol = 1 // Https means the port backend is https PortProtocol_PORT_PROTOCOL_HTTPS PortProtocol = 2 ) // Enum value maps for PortProtocol. var ( PortProtocol_name = map[int32]string{ 0: "PORT_PROTOCOL_UNSPECIFIED", 1: "PORT_PROTOCOL_HTTP", 2: "PORT_PROTOCOL_HTTPS", } PortProtocol_value = map[string]int32{ "PORT_PROTOCOL_UNSPECIFIED": 0, "PORT_PROTOCOL_HTTP": 1, "PORT_PROTOCOL_HTTPS": 2, } ) func (x PortProtocol) Enum() *PortProtocol { p := new(PortProtocol) *p = x return p } func (x PortProtocol) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PortProtocol) Descriptor() protoreflect.EnumDescriptor { return file_gitpod_experimental_v1_workspaces_proto_enumTypes[1].Descriptor() } func (PortProtocol) Type() protoreflect.EnumType { return &file_gitpod_experimental_v1_workspaces_proto_enumTypes[1] } func (x PortProtocol) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PortProtocol.Descriptor instead. func (PortProtocol) EnumDescriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{1} } // Admission level describes who can access a workspace instance and its ports. type AdmissionLevel int32 const ( AdmissionLevel_ADMISSION_LEVEL_UNSPECIFIED AdmissionLevel = 0 // ADMISSION_LEVEL_OWNER_ONLY means the workspace can only be accessed using the owner token AdmissionLevel_ADMISSION_LEVEL_OWNER_ONLY AdmissionLevel = 1 // ADMISSION_LEVEL_EVERYONE means the workspace (including ports) can be accessed by everyone. AdmissionLevel_ADMISSION_LEVEL_EVERYONE AdmissionLevel = 2 ) // Enum value maps for AdmissionLevel. var ( AdmissionLevel_name = map[int32]string{ 0: "ADMISSION_LEVEL_UNSPECIFIED", 1: "ADMISSION_LEVEL_OWNER_ONLY", 2: "ADMISSION_LEVEL_EVERYONE", } AdmissionLevel_value = map[string]int32{ "ADMISSION_LEVEL_UNSPECIFIED": 0, "ADMISSION_LEVEL_OWNER_ONLY": 1, "ADMISSION_LEVEL_EVERYONE": 2, } ) func (x AdmissionLevel) Enum() *AdmissionLevel { p := new(AdmissionLevel) *p = x return p } func (x AdmissionLevel) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AdmissionLevel) Descriptor() protoreflect.EnumDescriptor { return file_gitpod_experimental_v1_workspaces_proto_enumTypes[2].Descriptor() } func (AdmissionLevel) Type() protoreflect.EnumType { return &file_gitpod_experimental_v1_workspaces_proto_enumTypes[2] } func (x AdmissionLevel) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AdmissionLevel.Descriptor instead. func (AdmissionLevel) EnumDescriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{2} } // Phase is a simple, high-level summary of where the workspace instance is in its lifecycle. // The phase is not intended to be a comprehensive rollup of observations of the workspace state, // nor is it intended to be a comprehensive state machine. // (based on https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase) type WorkspaceInstanceStatus_Phase int32 const ( // Unknown indicates an issue within the workspace manager in that it cannot determine the actual phase of // a workspace. This phase is usually accompanied by an error. WorkspaceInstanceStatus_PHASE_UNSPECIFIED WorkspaceInstanceStatus_Phase = 0 // Preparing means that we haven't actually started the workspace instance just yet, but rather // are still preparing for launch. WorkspaceInstanceStatus_PHASE_PREPARING WorkspaceInstanceStatus_Phase = 1 // ImageBuild indicates that there's an image build running for this workspace. WorkspaceInstanceStatus_PHASE_IMAGEBUILD WorkspaceInstanceStatus_Phase = 2 // Pending means the workspace does not yet consume resources in the cluster, but rather is looking for // some space within the cluster. If for example the cluster needs to scale up to accomodate the // workspace, the workspace will be in Pending state until that happened. WorkspaceInstanceStatus_PHASE_PENDING WorkspaceInstanceStatus_Phase = 3 // Creating means the workspace is currently being created. That includes downloading the images required // to run the workspace over the network. The time spent in this phase varies widely and depends on the current // network speed, image size and cache states. WorkspaceInstanceStatus_PHASE_CREATING WorkspaceInstanceStatus_Phase = 4 // Initializing is the phase in which the workspace is executing the appropriate workspace initializer (e.g. Git // clone or backup download). After this phase one can expect the workspace to either be Running or Failed. WorkspaceInstanceStatus_PHASE_INITIALIZING WorkspaceInstanceStatus_Phase = 5 // Running means the workspace is able to actively perform work, either by serving a user through Theia, // or as a headless workspace. WorkspaceInstanceStatus_PHASE_RUNNING WorkspaceInstanceStatus_Phase = 6 // Interrupted is an exceptional state where the container should be running but is temporarily unavailable. // When in this state, we expect it to become running or stopping anytime soon. WorkspaceInstanceStatus_PHASE_INTERRUPTED WorkspaceInstanceStatus_Phase = 7 // Stopping means that the workspace is currently shutting down. It could go to stopped every moment. WorkspaceInstanceStatus_PHASE_STOPPING WorkspaceInstanceStatus_Phase = 8 // Stopped means the workspace ended regularly because it was shut down. WorkspaceInstanceStatus_PHASE_STOPPED WorkspaceInstanceStatus_Phase = 9 ) // Enum value maps for WorkspaceInstanceStatus_Phase. var ( WorkspaceInstanceStatus_Phase_name = map[int32]string{ 0: "PHASE_UNSPECIFIED", 1: "PHASE_PREPARING", 2: "PHASE_IMAGEBUILD", 3: "PHASE_PENDING", 4: "PHASE_CREATING", 5: "PHASE_INITIALIZING", 6: "PHASE_RUNNING", 7: "PHASE_INTERRUPTED", 8: "PHASE_STOPPING", 9: "PHASE_STOPPED", } WorkspaceInstanceStatus_Phase_value = map[string]int32{ "PHASE_UNSPECIFIED": 0, "PHASE_PREPARING": 1, "PHASE_IMAGEBUILD": 2, "PHASE_PENDING": 3, "PHASE_CREATING": 4, "PHASE_INITIALIZING": 5, "PHASE_RUNNING": 6, "PHASE_INTERRUPTED": 7, "PHASE_STOPPING": 8, "PHASE_STOPPED": 9, } ) func (x WorkspaceInstanceStatus_Phase) Enum() *WorkspaceInstanceStatus_Phase { p := new(WorkspaceInstanceStatus_Phase) *p = x return p } func (x WorkspaceInstanceStatus_Phase) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (WorkspaceInstanceStatus_Phase) Descriptor() protoreflect.EnumDescriptor { return file_gitpod_experimental_v1_workspaces_proto_enumTypes[3].Descriptor() } func (WorkspaceInstanceStatus_Phase) Type() protoreflect.EnumType { return &file_gitpod_experimental_v1_workspaces_proto_enumTypes[3] } func (x WorkspaceInstanceStatus_Phase) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use WorkspaceInstanceStatus_Phase.Descriptor instead. func (WorkspaceInstanceStatus_Phase) EnumDescriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{22, 0} } type GetDefaultWorkspaceImageResponse_ImageSource int32 const ( GetDefaultWorkspaceImageResponse_IMAGE_SOURCE_UNSPECIFIED GetDefaultWorkspaceImageResponse_ImageSource = 0 // IMAGE_SOURCE_INSTALLATION means the image from Gitpod instance install config GetDefaultWorkspaceImageResponse_IMAGE_SOURCE_INSTALLATION GetDefaultWorkspaceImageResponse_ImageSource = 1 // IMAGE_SOURCE_ORGANIZATION means the image from Organization settings GetDefaultWorkspaceImageResponse_IMAGE_SOURCE_ORGANIZATION GetDefaultWorkspaceImageResponse_ImageSource = 2 ) // Enum value maps for GetDefaultWorkspaceImageResponse_ImageSource. var ( GetDefaultWorkspaceImageResponse_ImageSource_name = map[int32]string{ 0: "IMAGE_SOURCE_UNSPECIFIED", 1: "IMAGE_SOURCE_INSTALLATION", 2: "IMAGE_SOURCE_ORGANIZATION", } GetDefaultWorkspaceImageResponse_ImageSource_value = map[string]int32{ "IMAGE_SOURCE_UNSPECIFIED": 0, "IMAGE_SOURCE_INSTALLATION": 1, "IMAGE_SOURCE_ORGANIZATION": 2, } ) func (x GetDefaultWorkspaceImageResponse_ImageSource) Enum() *GetDefaultWorkspaceImageResponse_ImageSource { p := new(GetDefaultWorkspaceImageResponse_ImageSource) *p = x return p } func (x GetDefaultWorkspaceImageResponse_ImageSource) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (GetDefaultWorkspaceImageResponse_ImageSource) Descriptor() protoreflect.EnumDescriptor { return file_gitpod_experimental_v1_workspaces_proto_enumTypes[4].Descriptor() } func (GetDefaultWorkspaceImageResponse_ImageSource) Type() protoreflect.EnumType { return &file_gitpod_experimental_v1_workspaces_proto_enumTypes[4] } func (x GetDefaultWorkspaceImageResponse_ImageSource) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use GetDefaultWorkspaceImageResponse_ImageSource.Descriptor instead. func (GetDefaultWorkspaceImageResponse_ImageSource) EnumDescriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{32, 0} } type ListWorkspacesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pagination *Pagination `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` OrganizationId string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` } func (x *ListWorkspacesRequest) Reset() { *x = ListWorkspacesRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListWorkspacesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListWorkspacesRequest) ProtoMessage() {} func (x *ListWorkspacesRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListWorkspacesRequest.ProtoReflect.Descriptor instead. func (*ListWorkspacesRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{0} } func (x *ListWorkspacesRequest) GetPagination() *Pagination { if x != nil { return x.Pagination } return nil } func (x *ListWorkspacesRequest) GetFieldMask() *fieldmaskpb.FieldMask { if x != nil { return x.FieldMask } return nil } func (x *ListWorkspacesRequest) GetOrganizationId() string { if x != nil { return x.OrganizationId } return "" } type ListWorkspacesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NextPageToken string `protobuf:"bytes,1,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` Result []*Workspace `protobuf:"bytes,2,rep,name=result,proto3" json:"result,omitempty"` } func (x *ListWorkspacesResponse) Reset() { *x = ListWorkspacesResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListWorkspacesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListWorkspacesResponse) ProtoMessage() {} func (x *ListWorkspacesResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListWorkspacesResponse.ProtoReflect.Descriptor instead. func (*ListWorkspacesResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{1} } func (x *ListWorkspacesResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } func (x *ListWorkspacesResponse) GetResult() []*Workspace { if x != nil { return x.Result } return nil } type GetWorkspaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` } func (x *GetWorkspaceRequest) Reset() { *x = GetWorkspaceRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetWorkspaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetWorkspaceRequest) ProtoMessage() {} func (x *GetWorkspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetWorkspaceRequest.ProtoReflect.Descriptor instead. func (*GetWorkspaceRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{2} } func (x *GetWorkspaceRequest) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } type GetWorkspaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *Workspace `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` } func (x *GetWorkspaceResponse) Reset() { *x = GetWorkspaceResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetWorkspaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetWorkspaceResponse) ProtoMessage() {} func (x *GetWorkspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetWorkspaceResponse.ProtoReflect.Descriptor instead. func (*GetWorkspaceResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{3} } func (x *GetWorkspaceResponse) GetResult() *Workspace { if x != nil { return x.Result } return nil } type StreamWorkspaceStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` } func (x *StreamWorkspaceStatusRequest) Reset() { *x = StreamWorkspaceStatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreamWorkspaceStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamWorkspaceStatusRequest) ProtoMessage() {} func (x *StreamWorkspaceStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamWorkspaceStatusRequest.ProtoReflect.Descriptor instead. func (*StreamWorkspaceStatusRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{4} } func (x *StreamWorkspaceStatusRequest) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } type StreamWorkspaceStatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *WorkspaceStatus `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` } func (x *StreamWorkspaceStatusResponse) Reset() { *x = StreamWorkspaceStatusResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StreamWorkspaceStatusResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StreamWorkspaceStatusResponse) ProtoMessage() {} func (x *StreamWorkspaceStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StreamWorkspaceStatusResponse.ProtoReflect.Descriptor instead. func (*StreamWorkspaceStatusResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{5} } func (x *StreamWorkspaceStatusResponse) GetResult() *WorkspaceStatus { if x != nil { return x.Result } return nil } type GetOwnerTokenRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` } func (x *GetOwnerTokenRequest) Reset() { *x = GetOwnerTokenRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOwnerTokenRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOwnerTokenRequest) ProtoMessage() {} func (x *GetOwnerTokenRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetOwnerTokenRequest.ProtoReflect.Descriptor instead. func (*GetOwnerTokenRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{6} } func (x *GetOwnerTokenRequest) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } type GetOwnerTokenResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` } func (x *GetOwnerTokenResponse) Reset() { *x = GetOwnerTokenResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetOwnerTokenResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetOwnerTokenResponse) ProtoMessage() {} func (x *GetOwnerTokenResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetOwnerTokenResponse.ProtoReflect.Descriptor instead. func (*GetOwnerTokenResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{7} } func (x *GetOwnerTokenResponse) GetToken() string { if x != nil { return x.Token } return "" } type CreateAndStartWorkspaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IdempotencyToken string `protobuf:"bytes,1,opt,name=idempotency_token,json=idempotencyToken,proto3" json:"idempotency_token,omitempty"` // Types that are assignable to Source: // // *CreateAndStartWorkspaceRequest_ContextUrl // *CreateAndStartWorkspaceRequest_PrebuildId Source isCreateAndStartWorkspaceRequest_Source `protobuf_oneof:"source"` StartSpec *StartWorkspaceSpec `protobuf:"bytes,5,opt,name=start_spec,json=startSpec,proto3" json:"start_spec,omitempty"` OrganizationId string `protobuf:"bytes,6,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` IgnoreRunningWorkspaceOnSameCommit bool `protobuf:"varint,7,opt,name=ignore_running_workspace_on_same_commit,json=ignoreRunningWorkspaceOnSameCommit,proto3" json:"ignore_running_workspace_on_same_commit,omitempty"` IgnoreRunningPrebuild bool `protobuf:"varint,8,opt,name=ignore_running_prebuild,json=ignoreRunningPrebuild,proto3" json:"ignore_running_prebuild,omitempty"` AllowUsingPreviousPrebuilds bool `protobuf:"varint,9,opt,name=allow_using_previous_prebuilds,json=allowUsingPreviousPrebuilds,proto3" json:"allow_using_previous_prebuilds,omitempty"` ForceDefaultConfig bool `protobuf:"varint,10,opt,name=force_default_config,json=forceDefaultConfig,proto3" json:"force_default_config,omitempty"` } func (x *CreateAndStartWorkspaceRequest) Reset() { *x = CreateAndStartWorkspaceRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateAndStartWorkspaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateAndStartWorkspaceRequest) ProtoMessage() {} func (x *CreateAndStartWorkspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateAndStartWorkspaceRequest.ProtoReflect.Descriptor instead. func (*CreateAndStartWorkspaceRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{8} } func (x *CreateAndStartWorkspaceRequest) GetIdempotencyToken() string { if x != nil { return x.IdempotencyToken } return "" } func (m *CreateAndStartWorkspaceRequest) GetSource() isCreateAndStartWorkspaceRequest_Source { if m != nil { return m.Source } return nil } func (x *CreateAndStartWorkspaceRequest) GetContextUrl() string { if x, ok := x.GetSource().(*CreateAndStartWorkspaceRequest_ContextUrl); ok { return x.ContextUrl } return "" } func (x *CreateAndStartWorkspaceRequest) GetPrebuildId() string { if x, ok := x.GetSource().(*CreateAndStartWorkspaceRequest_PrebuildId); ok { return x.PrebuildId } return "" } func (x *CreateAndStartWorkspaceRequest) GetStartSpec() *StartWorkspaceSpec { if x != nil { return x.StartSpec } return nil } func (x *CreateAndStartWorkspaceRequest) GetOrganizationId() string { if x != nil { return x.OrganizationId } return "" } func (x *CreateAndStartWorkspaceRequest) GetIgnoreRunningWorkspaceOnSameCommit() bool { if x != nil { return x.IgnoreRunningWorkspaceOnSameCommit } return false } func (x *CreateAndStartWorkspaceRequest) GetIgnoreRunningPrebuild() bool { if x != nil { return x.IgnoreRunningPrebuild } return false } func (x *CreateAndStartWorkspaceRequest) GetAllowUsingPreviousPrebuilds() bool { if x != nil { return x.AllowUsingPreviousPrebuilds } return false } func (x *CreateAndStartWorkspaceRequest) GetForceDefaultConfig() bool { if x != nil { return x.ForceDefaultConfig } return false } type isCreateAndStartWorkspaceRequest_Source interface { isCreateAndStartWorkspaceRequest_Source() } type CreateAndStartWorkspaceRequest_ContextUrl struct { ContextUrl string `protobuf:"bytes,2,opt,name=context_url,json=contextUrl,proto3,oneof"` } type CreateAndStartWorkspaceRequest_PrebuildId struct { PrebuildId string `protobuf:"bytes,3,opt,name=prebuild_id,json=prebuildId,proto3,oneof"` } func (*CreateAndStartWorkspaceRequest_ContextUrl) isCreateAndStartWorkspaceRequest_Source() {} func (*CreateAndStartWorkspaceRequest_PrebuildId) isCreateAndStartWorkspaceRequest_Source() {} type CreateAndStartWorkspaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` } func (x *CreateAndStartWorkspaceResponse) Reset() { *x = CreateAndStartWorkspaceResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateAndStartWorkspaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateAndStartWorkspaceResponse) ProtoMessage() {} func (x *CreateAndStartWorkspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateAndStartWorkspaceResponse.ProtoReflect.Descriptor instead. func (*CreateAndStartWorkspaceResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{9} } func (x *CreateAndStartWorkspaceResponse) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } type StartWorkspaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` } func (x *StartWorkspaceRequest) Reset() { *x = StartWorkspaceRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartWorkspaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartWorkspaceRequest) ProtoMessage() {} func (x *StartWorkspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartWorkspaceRequest.ProtoReflect.Descriptor instead. func (*StartWorkspaceRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{10} } func (x *StartWorkspaceRequest) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } type StartWorkspaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *Workspace `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` } func (x *StartWorkspaceResponse) Reset() { *x = StartWorkspaceResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartWorkspaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartWorkspaceResponse) ProtoMessage() {} func (x *StartWorkspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartWorkspaceResponse.ProtoReflect.Descriptor instead. func (*StartWorkspaceResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{11} } func (x *StartWorkspaceResponse) GetResult() *Workspace { if x != nil { return x.Result } return nil } type StopWorkspaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` } func (x *StopWorkspaceRequest) Reset() { *x = StopWorkspaceRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopWorkspaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopWorkspaceRequest) ProtoMessage() {} func (x *StopWorkspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopWorkspaceRequest.ProtoReflect.Descriptor instead. func (*StopWorkspaceRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{12} } func (x *StopWorkspaceRequest) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } type StopWorkspaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result *Workspace `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` } func (x *StopWorkspaceResponse) Reset() { *x = StopWorkspaceResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopWorkspaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopWorkspaceResponse) ProtoMessage() {} func (x *StopWorkspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopWorkspaceResponse.ProtoReflect.Descriptor instead. func (*StopWorkspaceResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{13} } func (x *StopWorkspaceResponse) GetResult() *Workspace { if x != nil { return x.Result } return nil } type DeleteWorkspaceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` } func (x *DeleteWorkspaceRequest) Reset() { *x = DeleteWorkspaceRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteWorkspaceRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteWorkspaceRequest) ProtoMessage() {} func (x *DeleteWorkspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteWorkspaceRequest.ProtoReflect.Descriptor instead. func (*DeleteWorkspaceRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{14} } func (x *DeleteWorkspaceRequest) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } type DeleteWorkspaceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *DeleteWorkspaceResponse) Reset() { *x = DeleteWorkspaceResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteWorkspaceResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteWorkspaceResponse) ProtoMessage() {} func (x *DeleteWorkspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteWorkspaceResponse.ProtoReflect.Descriptor instead. func (*DeleteWorkspaceResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{15} } type ListWorkspaceClassesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ListWorkspaceClassesRequest) Reset() { *x = ListWorkspaceClassesRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListWorkspaceClassesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListWorkspaceClassesRequest) ProtoMessage() {} func (x *ListWorkspaceClassesRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListWorkspaceClassesRequest.ProtoReflect.Descriptor instead. func (*ListWorkspaceClassesRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{16} } type ListWorkspaceClassesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result []*WorkspaceClass `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"` } func (x *ListWorkspaceClassesResponse) Reset() { *x = ListWorkspaceClassesResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListWorkspaceClassesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListWorkspaceClassesResponse) ProtoMessage() {} func (x *ListWorkspaceClassesResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListWorkspaceClassesResponse.ProtoReflect.Descriptor instead. func (*ListWorkspaceClassesResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{17} } func (x *ListWorkspaceClassesResponse) GetResult() []*WorkspaceClass { if x != nil { return x.Result } return nil } // Workspace describes a single workspace type Workspace struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // workspace_id is the ID of the workspace WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` // owner_id is the ID of the user who created this workspace OwnerId string `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` // project_id is the ID of the project which this workspace belongs to ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // context reports the original context the workspace was created from Context *WorkspaceContext `protobuf:"bytes,4,opt,name=context,proto3" json:"context,omitempty"` // description is a human readable description of the workspace Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` // status is the current status of this Workspace. Status *WorkspaceStatus `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` } func (x *Workspace) Reset() { *x = Workspace{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Workspace) String() string { return protoimpl.X.MessageStringOf(x) } func (*Workspace) ProtoMessage() {} func (x *Workspace) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Workspace.ProtoReflect.Descriptor instead. func (*Workspace) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{18} } func (x *Workspace) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } func (x *Workspace) GetOwnerId() string { if x != nil { return x.OwnerId } return "" } func (x *Workspace) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *Workspace) GetContext() *WorkspaceContext { if x != nil { return x.Context } return nil } func (x *Workspace) GetDescription() string { if x != nil { return x.Description } return "" } func (x *Workspace) GetStatus() *WorkspaceStatus { if x != nil { return x.Status } return nil } // WorkspaceStatus represents the currently observed status of a Workspace, including data about child resources that belong to this Workspace. type WorkspaceStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // instance is the currently assigned WorkspaceInstance to this workspace. Empty when there is no WorkspaceInstance assigned. Instance *WorkspaceInstance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` } func (x *WorkspaceStatus) Reset() { *x = WorkspaceStatus{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceStatus) ProtoMessage() {} func (x *WorkspaceStatus) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceStatus.ProtoReflect.Descriptor instead. func (*WorkspaceStatus) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{19} } func (x *WorkspaceStatus) GetInstance() *WorkspaceInstance { if x != nil { return x.Instance } return nil } // WorkspaceContext describes the context a workspace was created from type WorkspaceContext struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // All workspace context originates from a URL - this is the context URL // which led to the creation of a workspace. ContextUrl string `protobuf:"bytes,1,opt,name=context_url,json=contextUrl,proto3" json:"context_url,omitempty"` // Types that are assignable to Details: // // *WorkspaceContext_Git_ // *WorkspaceContext_Prebuild_ // *WorkspaceContext_Snapshot_ Details isWorkspaceContext_Details `protobuf_oneof:"details"` } func (x *WorkspaceContext) Reset() { *x = WorkspaceContext{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceContext) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceContext) ProtoMessage() {} func (x *WorkspaceContext) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceContext.ProtoReflect.Descriptor instead. func (*WorkspaceContext) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{20} } func (x *WorkspaceContext) GetContextUrl() string { if x != nil { return x.ContextUrl } return "" } func (m *WorkspaceContext) GetDetails() isWorkspaceContext_Details { if m != nil { return m.Details } return nil } func (x *WorkspaceContext) GetGit() *WorkspaceContext_Git { if x, ok := x.GetDetails().(*WorkspaceContext_Git_); ok { return x.Git } return nil } func (x *WorkspaceContext) GetPrebuild() *WorkspaceContext_Prebuild { if x, ok := x.GetDetails().(*WorkspaceContext_Prebuild_); ok { return x.Prebuild } return nil } func (x *WorkspaceContext) GetSnapshot() *WorkspaceContext_Snapshot { if x, ok := x.GetDetails().(*WorkspaceContext_Snapshot_); ok { return x.Snapshot } return nil } type isWorkspaceContext_Details interface { isWorkspaceContext_Details() } type WorkspaceContext_Git_ struct { Git *WorkspaceContext_Git `protobuf:"bytes,2,opt,name=git,proto3,oneof"` } type WorkspaceContext_Prebuild_ struct { Prebuild *WorkspaceContext_Prebuild `protobuf:"bytes,3,opt,name=prebuild,proto3,oneof"` } type WorkspaceContext_Snapshot_ struct { Snapshot *WorkspaceContext_Snapshot `protobuf:"bytes,4,opt,name=snapshot,proto3,oneof"` } func (*WorkspaceContext_Git_) isWorkspaceContext_Details() {} func (*WorkspaceContext_Prebuild_) isWorkspaceContext_Details() {} func (*WorkspaceContext_Snapshot_) isWorkspaceContext_Details() {} // WorkspaceInstance describes a single workspace instance type WorkspaceInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Instance ID is the unique identifier of the workspace instance InstanceId string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` // Workspace ID is the unique identifier of the workspace this instance belongs to WorkspaceId string `protobuf:"bytes,2,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` Status *WorkspaceInstanceStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` } func (x *WorkspaceInstance) Reset() { *x = WorkspaceInstance{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceInstance) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceInstance) ProtoMessage() {} func (x *WorkspaceInstance) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceInstance.ProtoReflect.Descriptor instead. func (*WorkspaceInstance) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{21} } func (x *WorkspaceInstance) GetInstanceId() string { if x != nil { return x.InstanceId } return "" } func (x *WorkspaceInstance) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } func (x *WorkspaceInstance) GetCreatedAt() *timestamppb.Timestamp { if x != nil { return x.CreatedAt } return nil } func (x *WorkspaceInstance) GetStatus() *WorkspaceInstanceStatus { if x != nil { return x.Status } return nil } // WorkspaceStatus describes a workspace status type WorkspaceInstanceStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // version of the status update. Workspace instances themselves are unversioned, // but their statuus has different versions. // The value of this field has no semantic meaning (e.g. don't interpret it as // as a timestemp), but it can be used to impose a partial order. // If a.status_version < b.status_version then a was the status before b. StatusVersion uint64 `protobuf:"varint,1,opt,name=status_version,json=statusVersion,proto3" json:"status_version,omitempty"` // the phase of a workspace is a simple, high-level summary of where the workspace instance is in its lifecycle Phase WorkspaceInstanceStatus_Phase `protobuf:"varint,2,opt,name=phase,proto3,enum=gitpod.experimental.v1.WorkspaceInstanceStatus_Phase" json:"phase,omitempty"` // conditions detail the current state of the workspace instance Conditions *WorkspaceInstanceStatus_Conditions `protobuf:"bytes,3,opt,name=conditions,proto3" json:"conditions,omitempty"` // message is an optional human-readable message detailing the current phase Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` // URL contains the endpoint at which the workspace instance is available Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` // Admission describes who can access a workspace instance and its ports. Admission AdmissionLevel `protobuf:"varint,6,opt,name=admission,proto3,enum=gitpod.experimental.v1.AdmissionLevel" json:"admission,omitempty"` // ports is the list of exposed ports in the workspace. Ports []*Port `protobuf:"bytes,7,rep,name=ports,proto3" json:"ports,omitempty"` // recent_folders is the opened folders inside the workspace. Used to determine the folder path to load the workspace in. RecentFolders []string `protobuf:"bytes,8,rep,name=recent_folders,json=recentFolders,proto3" json:"recent_folders,omitempty"` // gitStatus details the Git working copy status of the workspace. // Note: this is a best-effort field and more often than not will not be present. Its absence does not // indicate the absence of a working copy. 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() { *x = WorkspaceInstanceStatus{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceInstanceStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceInstanceStatus) ProtoMessage() {} func (x *WorkspaceInstanceStatus) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceInstanceStatus.ProtoReflect.Descriptor instead. func (*WorkspaceInstanceStatus) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{22} } func (x *WorkspaceInstanceStatus) GetStatusVersion() uint64 { if x != nil { return x.StatusVersion } return 0 } func (x *WorkspaceInstanceStatus) GetPhase() WorkspaceInstanceStatus_Phase { if x != nil { return x.Phase } return WorkspaceInstanceStatus_PHASE_UNSPECIFIED } func (x *WorkspaceInstanceStatus) GetConditions() *WorkspaceInstanceStatus_Conditions { if x != nil { return x.Conditions } return nil } func (x *WorkspaceInstanceStatus) GetMessage() string { if x != nil { return x.Message } return "" } func (x *WorkspaceInstanceStatus) GetUrl() string { if x != nil { return x.Url } return "" } func (x *WorkspaceInstanceStatus) GetAdmission() AdmissionLevel { if x != nil { return x.Admission } return AdmissionLevel_ADMISSION_LEVEL_UNSPECIFIED } func (x *WorkspaceInstanceStatus) GetPorts() []*Port { if x != nil { return x.Ports } return nil } func (x *WorkspaceInstanceStatus) GetRecentFolders() []string { if x != nil { return x.RecentFolders } return nil } func (x *WorkspaceInstanceStatus) GetGitStatus() *GitStatus { if x != nil { return x.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 unknownFields protoimpl.UnknownFields // port number Port uint64 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` // policy of this port Policy PortPolicy `protobuf:"varint,2,opt,name=policy,proto3,enum=gitpod.experimental.v1.PortPolicy" json:"policy,omitempty"` // url that can be used to access the port Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` // backend protocol of this port Protocol PortProtocol `protobuf:"varint,4,opt,name=protocol,proto3,enum=gitpod.experimental.v1.PortProtocol" json:"protocol,omitempty"` } func (x *Port) Reset() { *x = Port{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Port) String() string { return protoimpl.X.MessageStringOf(x) } func (*Port) ProtoMessage() {} func (x *Port) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Port.ProtoReflect.Descriptor instead. func (*Port) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{23} } func (x *Port) GetPort() uint64 { if x != nil { return x.Port } return 0 } func (x *Port) GetPolicy() PortPolicy { if x != nil { return x.Policy } return PortPolicy_PORT_POLICY_UNSPECIFIED } func (x *Port) GetUrl() string { if x != nil { return x.Url } return "" } func (x *Port) GetProtocol() PortProtocol { if x != nil { return x.Protocol } return PortProtocol_PORT_PROTOCOL_UNSPECIFIED } // StartWorkspaceSpec influences the workspace start type StartWorkspaceSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceClass string `protobuf:"bytes,1,opt,name=workspace_class,json=workspaceClass,proto3" json:"workspace_class,omitempty"` IdeSettings *IDESettings `protobuf:"bytes,2,opt,name=ide_settings,json=ideSettings,proto3" json:"ide_settings,omitempty"` Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"` } func (x *StartWorkspaceSpec) Reset() { *x = StartWorkspaceSpec{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StartWorkspaceSpec) String() string { return protoimpl.X.MessageStringOf(x) } func (*StartWorkspaceSpec) ProtoMessage() {} func (x *StartWorkspaceSpec) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StartWorkspaceSpec.ProtoReflect.Descriptor instead. func (*StartWorkspaceSpec) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{24} } func (x *StartWorkspaceSpec) GetWorkspaceClass() string { if x != nil { return x.WorkspaceClass } return "" } func (x *StartWorkspaceSpec) GetIdeSettings() *IDESettings { if x != nil { return x.IdeSettings } return nil } func (x *StartWorkspaceSpec) GetRegion() string { if x != nil { return x.Region } return "" } type IDESettings struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DefaultIde string `protobuf:"bytes,1,opt,name=default_ide,json=defaultIde,proto3" json:"default_ide,omitempty"` UseLatestVersion bool `protobuf:"varint,2,opt,name=use_latest_version,json=useLatestVersion,proto3" json:"use_latest_version,omitempty"` } func (x *IDESettings) Reset() { *x = IDESettings{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *IDESettings) String() string { return protoimpl.X.MessageStringOf(x) } func (*IDESettings) ProtoMessage() {} func (x *IDESettings) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use IDESettings.ProtoReflect.Descriptor instead. func (*IDESettings) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{25} } func (x *IDESettings) GetDefaultIde() string { if x != nil { return x.DefaultIde } return "" } func (x *IDESettings) GetUseLatestVersion() bool { if x != nil { return x.UseLatestVersion } return false } type PortSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // port number Port uint64 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` // policy of this port Policy PortPolicy `protobuf:"varint,2,opt,name=policy,proto3,enum=gitpod.experimental.v1.PortPolicy" json:"policy,omitempty"` // backend protocol of this port Protocol PortProtocol `protobuf:"varint,3,opt,name=protocol,proto3,enum=gitpod.experimental.v1.PortProtocol" json:"protocol,omitempty"` } func (x *PortSpec) Reset() { *x = PortSpec{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PortSpec) String() string { return protoimpl.X.MessageStringOf(x) } func (*PortSpec) ProtoMessage() {} func (x *PortSpec) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PortSpec.ProtoReflect.Descriptor instead. func (*PortSpec) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{26} } func (x *PortSpec) GetPort() uint64 { if x != nil { return x.Port } return 0 } func (x *PortSpec) GetPolicy() PortPolicy { if x != nil { return x.Policy } return PortPolicy_PORT_POLICY_UNSPECIFIED } func (x *PortSpec) GetProtocol() PortProtocol { if x != nil { return x.Protocol } return PortProtocol_PORT_PROTOCOL_UNSPECIFIED } type UpdatePortRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` Port *PortSpec `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` } func (x *UpdatePortRequest) Reset() { *x = UpdatePortRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdatePortRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdatePortRequest) ProtoMessage() {} func (x *UpdatePortRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdatePortRequest.ProtoReflect.Descriptor instead. func (*UpdatePortRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{27} } func (x *UpdatePortRequest) GetWorkspaceId() string { if x != nil { return x.WorkspaceId } return "" } func (x *UpdatePortRequest) GetPort() *PortSpec { if x != nil { return x.Port } return nil } type UpdatePortResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *UpdatePortResponse) Reset() { *x = UpdatePortResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdatePortResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdatePortResponse) ProtoMessage() {} func (x *UpdatePortResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdatePortResponse.ProtoReflect.Descriptor instead. func (*UpdatePortResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{28} } // GitStatus describes the current working copy status, akin to a combination of "git status" and "git branch" type GitStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // branch is branch we're currently on Branch string `protobuf:"bytes,1,opt,name=branch,proto3" json:"branch,omitempty"` // latest_commit is the most recent commit on the current branch LatestCommit string `protobuf:"bytes,2,opt,name=latest_commit,json=latestCommit,proto3" json:"latest_commit,omitempty"` // uncommited_files is an array of uncommitted files, possibly truncated UncommitedFiles []string `protobuf:"bytes,3,rep,name=uncommited_files,json=uncommitedFiles,proto3" json:"uncommited_files,omitempty"` // the total number of uncommited files TotalUncommitedFiles int32 `protobuf:"varint,6,opt,name=total_uncommited_files,json=totalUncommitedFiles,proto3" json:"total_uncommited_files,omitempty"` // untracked_files is an array of untracked files in the workspace, possibly truncated UntrackedFiles []string `protobuf:"bytes,4,rep,name=untracked_files,json=untrackedFiles,proto3" json:"untracked_files,omitempty"` // the total number of untracked files TotalUntrackedFiles int32 `protobuf:"varint,7,opt,name=total_untracked_files,json=totalUntrackedFiles,proto3" json:"total_untracked_files,omitempty"` // unpushed_commits is an array of unpushed changes in the workspace, possibly truncated UnpushedCommits []string `protobuf:"bytes,5,rep,name=unpushed_commits,json=unpushedCommits,proto3" json:"unpushed_commits,omitempty"` // the total number of unpushed changes TotalUnpushedCommits int32 `protobuf:"varint,8,opt,name=total_unpushed_commits,json=totalUnpushedCommits,proto3" json:"total_unpushed_commits,omitempty"` } func (x *GitStatus) Reset() { *x = GitStatus{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GitStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*GitStatus) ProtoMessage() {} func (x *GitStatus) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GitStatus.ProtoReflect.Descriptor instead. func (*GitStatus) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{29} } func (x *GitStatus) GetBranch() string { if x != nil { return x.Branch } return "" } func (x *GitStatus) GetLatestCommit() string { if x != nil { return x.LatestCommit } return "" } func (x *GitStatus) GetUncommitedFiles() []string { if x != nil { return x.UncommitedFiles } return nil } func (x *GitStatus) GetTotalUncommitedFiles() int32 { if x != nil { return x.TotalUncommitedFiles } return 0 } func (x *GitStatus) GetUntrackedFiles() []string { if x != nil { return x.UntrackedFiles } return nil } func (x *GitStatus) GetTotalUntrackedFiles() int32 { if x != nil { return x.TotalUntrackedFiles } return 0 } func (x *GitStatus) GetUnpushedCommits() []string { if x != nil { return x.UnpushedCommits } return nil } func (x *GitStatus) GetTotalUnpushedCommits() int32 { if x != nil { return x.TotalUnpushedCommits } return 0 } type WorkspaceClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // id is the unique identifier of the workspace class Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // display_name is the human readable name of the workspace class DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // description is a human readable description of the workspace class Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // is_default indicates if this workspace class is the default one IsDefault bool `protobuf:"varint,4,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` } func (x *WorkspaceClass) Reset() { *x = WorkspaceClass{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceClass) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceClass) ProtoMessage() {} func (x *WorkspaceClass) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceClass.ProtoReflect.Descriptor instead. func (*WorkspaceClass) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{30} } func (x *WorkspaceClass) GetId() string { if x != nil { return x.Id } return "" } func (x *WorkspaceClass) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *WorkspaceClass) GetDescription() string { if x != nil { return x.Description } return "" } func (x *WorkspaceClass) GetIsDefault() bool { if x != nil { return x.IsDefault } return false } type GetDefaultWorkspaceImageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` } func (x *GetDefaultWorkspaceImageRequest) Reset() { *x = GetDefaultWorkspaceImageRequest{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetDefaultWorkspaceImageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetDefaultWorkspaceImageRequest) ProtoMessage() {} func (x *GetDefaultWorkspaceImageRequest) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetDefaultWorkspaceImageRequest.ProtoReflect.Descriptor instead. func (*GetDefaultWorkspaceImageRequest) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{31} } func (x *GetDefaultWorkspaceImageRequest) GetWorkspaceId() string { if x != nil && x.WorkspaceId != nil { return *x.WorkspaceId } return "" } type GetDefaultWorkspaceImageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // image is the image ref Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` // source is the source of the image Source GetDefaultWorkspaceImageResponse_ImageSource `protobuf:"varint,2,opt,name=source,proto3,enum=gitpod.experimental.v1.GetDefaultWorkspaceImageResponse_ImageSource" json:"source,omitempty"` } func (x *GetDefaultWorkspaceImageResponse) Reset() { *x = GetDefaultWorkspaceImageResponse{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetDefaultWorkspaceImageResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetDefaultWorkspaceImageResponse) ProtoMessage() {} func (x *GetDefaultWorkspaceImageResponse) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetDefaultWorkspaceImageResponse.ProtoReflect.Descriptor instead. func (*GetDefaultWorkspaceImageResponse) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{32} } func (x *GetDefaultWorkspaceImageResponse) GetImage() string { if x != nil { return x.Image } return "" } func (x *GetDefaultWorkspaceImageResponse) GetSource() GetDefaultWorkspaceImageResponse_ImageSource { if x != nil { return x.Source } return GetDefaultWorkspaceImageResponse_IMAGE_SOURCE_UNSPECIFIED } // GitProvider describes the git provider type WorkspaceContext_GitProvider struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // type is the git provider type, e.g. 'github', 'gitlab', 'bitbucket' Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // hostname is the git provider hostname Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` } func (x *WorkspaceContext_GitProvider) Reset() { *x = WorkspaceContext_GitProvider{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceContext_GitProvider) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceContext_GitProvider) ProtoMessage() {} func (x *WorkspaceContext_GitProvider) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceContext_GitProvider.ProtoReflect.Descriptor instead. func (*WorkspaceContext_GitProvider) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{20, 0} } func (x *WorkspaceContext_GitProvider) GetType() string { if x != nil { return x.Type } return "" } func (x *WorkspaceContext_GitProvider) GetHostname() string { if x != nil { return x.Hostname } return "" } // Repository describes the originating repository type WorkspaceContext_Repository struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` } func (x *WorkspaceContext_Repository) Reset() { *x = WorkspaceContext_Repository{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceContext_Repository) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceContext_Repository) ProtoMessage() {} func (x *WorkspaceContext_Repository) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceContext_Repository.ProtoReflect.Descriptor instead. func (*WorkspaceContext_Repository) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{20, 1} } func (x *WorkspaceContext_Repository) GetName() string { if x != nil { return x.Name } return "" } func (x *WorkspaceContext_Repository) GetOwner() string { if x != nil { return x.Owner } return "" } // Explicit Git context type WorkspaceContext_Git struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NormalizedContextUrl string `protobuf:"bytes,1,opt,name=normalized_context_url,json=normalizedContextUrl,proto3" json:"normalized_context_url,omitempty"` Repository *WorkspaceContext_Repository `protobuf:"bytes,2,opt,name=repository,proto3" json:"repository,omitempty"` // provider is the git provider Provider *WorkspaceContext_GitProvider `protobuf:"bytes,3,opt,name=provider,proto3" json:"provider,omitempty"` } func (x *WorkspaceContext_Git) Reset() { *x = WorkspaceContext_Git{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceContext_Git) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceContext_Git) ProtoMessage() {} func (x *WorkspaceContext_Git) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceContext_Git.ProtoReflect.Descriptor instead. func (*WorkspaceContext_Git) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{20, 2} } func (x *WorkspaceContext_Git) GetNormalizedContextUrl() string { if x != nil { return x.NormalizedContextUrl } return "" } func (x *WorkspaceContext_Git) GetRepository() *WorkspaceContext_Repository { if x != nil { return x.Repository } return nil } func (x *WorkspaceContext_Git) GetProvider() *WorkspaceContext_GitProvider { if x != nil { return x.Provider } return nil } // Workspace was created from a prebuild type WorkspaceContext_Prebuild struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // original_context is the Git context which lead to the selection // of a prebuild. OriginalContext *WorkspaceContext_Git `protobuf:"bytes,1,opt,name=original_context,json=originalContext,proto3" json:"original_context,omitempty"` // prebuild_id is the ID of the prebuild which was used to create this workspace PrebuildId string `protobuf:"bytes,2,opt,name=prebuild_id,json=prebuildId,proto3" json:"prebuild_id,omitempty"` } func (x *WorkspaceContext_Prebuild) Reset() { *x = WorkspaceContext_Prebuild{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceContext_Prebuild) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceContext_Prebuild) ProtoMessage() {} func (x *WorkspaceContext_Prebuild) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceContext_Prebuild.ProtoReflect.Descriptor instead. func (*WorkspaceContext_Prebuild) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{20, 3} } func (x *WorkspaceContext_Prebuild) GetOriginalContext() *WorkspaceContext_Git { if x != nil { return x.OriginalContext } return nil } func (x *WorkspaceContext_Prebuild) GetPrebuildId() string { if x != nil { return x.PrebuildId } return "" } // Snapshot context points to the snapshot which the workspace was created from type WorkspaceContext_Snapshot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` } func (x *WorkspaceContext_Snapshot) Reset() { *x = WorkspaceContext_Snapshot{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceContext_Snapshot) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceContext_Snapshot) ProtoMessage() {} func (x *WorkspaceContext_Snapshot) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceContext_Snapshot.ProtoReflect.Descriptor instead. func (*WorkspaceContext_Snapshot) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{20, 4} } func (x *WorkspaceContext_Snapshot) GetSnapshotId() string { if x != nil { return x.SnapshotId } return "" } // Conditions gives more detailed information as to the state of the workspace. Which condition actually // has a value depends on the phase the workspace is in. type WorkspaceInstanceStatus_Conditions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // failed contains the reason the workspace failed to operate. If this field is empty, the workspace has not failed. // This field is filled exclusively when caused by system errors. Failed string `protobuf:"bytes,1,opt,name=failed,proto3" json:"failed,omitempty"` // timeout contains the reason the workspace has timed out. If this field is empty, the workspace has not timed out. Timeout string `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"` // first_user_activity is the time when MarkActive was first called on the workspace FirstUserActivity *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=first_user_activity,json=firstUserActivity,proto3" json:"first_user_activity,omitempty"` // stopped_by_request is true if the workspace was stopped using a StopWorkspace call StoppedByRequest *bool `protobuf:"varint,11,opt,name=stopped_by_request,json=stoppedByRequest,proto3,oneof" json:"stopped_by_request,omitempty"` } func (x *WorkspaceInstanceStatus_Conditions) Reset() { *x = WorkspaceInstanceStatus_Conditions{} if protoimpl.UnsafeEnabled { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkspaceInstanceStatus_Conditions) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkspaceInstanceStatus_Conditions) ProtoMessage() {} func (x *WorkspaceInstanceStatus_Conditions) ProtoReflect() protoreflect.Message { mi := &file_gitpod_experimental_v1_workspaces_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkspaceInstanceStatus_Conditions.ProtoReflect.Descriptor instead. func (*WorkspaceInstanceStatus_Conditions) Descriptor() ([]byte, []int) { return file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP(), []int{22, 0} } func (x *WorkspaceInstanceStatus_Conditions) GetFailed() string { if x != nil { return x.Failed } return "" } func (x *WorkspaceInstanceStatus_Conditions) GetTimeout() string { if x != nil { return x.Timeout } return "" } func (x *WorkspaceInstanceStatus_Conditions) GetFirstUserActivity() *timestamppb.Timestamp { if x != nil { return x.FirstUserActivity } return nil } func (x *WorkspaceInstanceStatus_Conditions) GetStoppedByRequest() bool { if x != nil && x.StoppedByRequest != nil { return *x.StoppedByRequest } 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{ 0x0a, 0x27, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x1a, 0x27, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 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, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x38, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 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, 0x22, 0x51, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x41, 0x0a, 0x1c, 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, 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, 0x22, 0x60, 0x0a, 0x1d, 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, 0x12, 0x3f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 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, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x39, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 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, 0x22, 0x2d, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x95, 0x04, 0x0a, 0x1e, 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, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x53, 0x0a, 0x27, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x22, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4f, 0x6e, 0x53, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x1f, 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, 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, 0x22, 0x3a, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 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, 0x22, 0x53, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x39, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 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, 0x22, 0x52, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3b, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 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, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x1b, 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, 0x22, 0x5e, 0x0a, 0x1c, 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, 0x12, 0x3e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 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, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 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, 0x19, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 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, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 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, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x58, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x45, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xb2, 0x06, 0x0a, 0x10, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x40, 0x0a, 0x03, 0x67, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x47, 0x69, 0x74, 0x48, 0x00, 0x52, 0x03, 0x67, 0x69, 0x74, 0x12, 0x4f, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x4f, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48, 0x00, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x1a, 0x3d, 0x0a, 0x0b, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x36, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x1a, 0xe2, 0x01, 0x0a, 0x03, 0x47, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x53, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x47, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x1a, 0x84, 0x01, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x57, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x47, 0x69, 0x74, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x1a, 0x2b, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xdb, 0x01, 0x0a, 0x11, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 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, 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, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 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, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x50, 0x68, 0x61, 0x73, 0x65, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 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, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x44, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x70, 0x6f, 0x64, 0x2e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 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, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 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, 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, 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, 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, 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, 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, 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, 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 ( file_gitpod_experimental_v1_workspaces_proto_rawDescOnce sync.Once file_gitpod_experimental_v1_workspaces_proto_rawDescData = file_gitpod_experimental_v1_workspaces_proto_rawDesc ) func file_gitpod_experimental_v1_workspaces_proto_rawDescGZIP() []byte { file_gitpod_experimental_v1_workspaces_proto_rawDescOnce.Do(func() { file_gitpod_experimental_v1_workspaces_proto_rawDescData = protoimpl.X.CompressGZIP(file_gitpod_experimental_v1_workspaces_proto_rawDescData) }) return file_gitpod_experimental_v1_workspaces_proto_rawDescData } var file_gitpod_experimental_v1_workspaces_proto_enumTypes = make([]protoimpl.EnumInfo, 5) 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 (AdmissionLevel)(0), // 2: gitpod.experimental.v1.AdmissionLevel (WorkspaceInstanceStatus_Phase)(0), // 3: gitpod.experimental.v1.WorkspaceInstanceStatus.Phase (GetDefaultWorkspaceImageResponse_ImageSource)(0), // 4: gitpod.experimental.v1.GetDefaultWorkspaceImageResponse.ImageSource (*ListWorkspacesRequest)(nil), // 5: gitpod.experimental.v1.ListWorkspacesRequest (*ListWorkspacesResponse)(nil), // 6: gitpod.experimental.v1.ListWorkspacesResponse (*GetWorkspaceRequest)(nil), // 7: gitpod.experimental.v1.GetWorkspaceRequest (*GetWorkspaceResponse)(nil), // 8: gitpod.experimental.v1.GetWorkspaceResponse (*StreamWorkspaceStatusRequest)(nil), // 9: gitpod.experimental.v1.StreamWorkspaceStatusRequest (*StreamWorkspaceStatusResponse)(nil), // 10: gitpod.experimental.v1.StreamWorkspaceStatusResponse (*GetOwnerTokenRequest)(nil), // 11: gitpod.experimental.v1.GetOwnerTokenRequest (*GetOwnerTokenResponse)(nil), // 12: gitpod.experimental.v1.GetOwnerTokenResponse (*CreateAndStartWorkspaceRequest)(nil), // 13: gitpod.experimental.v1.CreateAndStartWorkspaceRequest (*CreateAndStartWorkspaceResponse)(nil), // 14: gitpod.experimental.v1.CreateAndStartWorkspaceResponse (*StartWorkspaceRequest)(nil), // 15: gitpod.experimental.v1.StartWorkspaceRequest (*StartWorkspaceResponse)(nil), // 16: gitpod.experimental.v1.StartWorkspaceResponse (*StopWorkspaceRequest)(nil), // 17: gitpod.experimental.v1.StopWorkspaceRequest (*StopWorkspaceResponse)(nil), // 18: gitpod.experimental.v1.StopWorkspaceResponse (*DeleteWorkspaceRequest)(nil), // 19: gitpod.experimental.v1.DeleteWorkspaceRequest (*DeleteWorkspaceResponse)(nil), // 20: gitpod.experimental.v1.DeleteWorkspaceResponse (*ListWorkspaceClassesRequest)(nil), // 21: gitpod.experimental.v1.ListWorkspaceClassesRequest (*ListWorkspaceClassesResponse)(nil), // 22: gitpod.experimental.v1.ListWorkspaceClassesResponse (*Workspace)(nil), // 23: gitpod.experimental.v1.Workspace (*WorkspaceStatus)(nil), // 24: gitpod.experimental.v1.WorkspaceStatus (*WorkspaceContext)(nil), // 25: gitpod.experimental.v1.WorkspaceContext (*WorkspaceInstance)(nil), // 26: gitpod.experimental.v1.WorkspaceInstance (*WorkspaceInstanceStatus)(nil), // 27: gitpod.experimental.v1.WorkspaceInstanceStatus (*Port)(nil), // 28: gitpod.experimental.v1.Port (*StartWorkspaceSpec)(nil), // 29: gitpod.experimental.v1.StartWorkspaceSpec (*IDESettings)(nil), // 30: gitpod.experimental.v1.IDESettings (*PortSpec)(nil), // 31: gitpod.experimental.v1.PortSpec (*UpdatePortRequest)(nil), // 32: gitpod.experimental.v1.UpdatePortRequest (*UpdatePortResponse)(nil), // 33: gitpod.experimental.v1.UpdatePortResponse (*GitStatus)(nil), // 34: gitpod.experimental.v1.GitStatus (*WorkspaceClass)(nil), // 35: gitpod.experimental.v1.WorkspaceClass (*GetDefaultWorkspaceImageRequest)(nil), // 36: gitpod.experimental.v1.GetDefaultWorkspaceImageRequest (*GetDefaultWorkspaceImageResponse)(nil), // 37: gitpod.experimental.v1.GetDefaultWorkspaceImageResponse (*WorkspaceContext_GitProvider)(nil), // 38: gitpod.experimental.v1.WorkspaceContext.GitProvider (*WorkspaceContext_Repository)(nil), // 39: gitpod.experimental.v1.WorkspaceContext.Repository (*WorkspaceContext_Git)(nil), // 40: gitpod.experimental.v1.WorkspaceContext.Git (*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 (*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{ 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 29, // 5: gitpod.experimental.v1.CreateAndStartWorkspaceRequest.start_spec:type_name -> gitpod.experimental.v1.StartWorkspaceSpec 23, // 6: gitpod.experimental.v1.StartWorkspaceResponse.result:type_name -> gitpod.experimental.v1.Workspace 23, // 7: gitpod.experimental.v1.StopWorkspaceResponse.result:type_name -> gitpod.experimental.v1.Workspace 35, // 8: gitpod.experimental.v1.ListWorkspaceClassesResponse.result:type_name -> gitpod.experimental.v1.WorkspaceClass 25, // 9: gitpod.experimental.v1.Workspace.context:type_name -> gitpod.experimental.v1.WorkspaceContext 24, // 10: gitpod.experimental.v1.Workspace.status:type_name -> gitpod.experimental.v1.WorkspaceStatus 26, // 11: gitpod.experimental.v1.WorkspaceStatus.instance:type_name -> gitpod.experimental.v1.WorkspaceInstance 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 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 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() } func file_gitpod_experimental_v1_workspaces_proto_init() { if File_gitpod_experimental_v1_workspaces_proto != nil { return } file_gitpod_experimental_v1_pagination_proto_init() if !protoimpl.UnsafeEnabled { file_gitpod_experimental_v1_workspaces_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWorkspacesRequest); 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[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWorkspacesResponse); 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[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWorkspaceRequest); 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[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWorkspaceResponse); 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[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamWorkspaceStatusRequest); 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[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamWorkspaceStatusResponse); 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[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOwnerTokenRequest); 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[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOwnerTokenResponse); 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].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateAndStartWorkspaceRequest); 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[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateAndStartWorkspaceResponse); 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[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartWorkspaceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartWorkspaceResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopWorkspaceRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopWorkspaceResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteWorkspaceRequest); 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[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteWorkspaceResponse); 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[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWorkspaceClassesRequest); 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[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWorkspaceClassesResponse); 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[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Workspace); 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[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceStatus); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceContext); 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[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceInstance); 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[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceInstanceStatus); 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[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Port); 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[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartWorkspaceSpec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IDESettings); 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[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortSpec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdatePortRequest); 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[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdatePortResponse); 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[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GitStatus); 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[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceClass); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_gitpod_experimental_v1_workspaces_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetDefaultWorkspaceImageRequest); 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[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetDefaultWorkspaceImageResponse); 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[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceContext_GitProvider); 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[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceContext_Repository); 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[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceContext_Git); 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[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceContext_Prebuild); 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[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceContext_Snapshot); 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[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceInstanceStatus_Conditions); 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[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), (*CreateAndStartWorkspaceRequest_PrebuildId)(nil), } file_gitpod_experimental_v1_workspaces_proto_msgTypes[20].OneofWrappers = []interface{}{ (*WorkspaceContext_Git_)(nil), (*WorkspaceContext_Prebuild_)(nil), (*WorkspaceContext_Snapshot_)(nil), } file_gitpod_experimental_v1_workspaces_proto_msgTypes[31].OneofWrappers = []interface{}{} file_gitpod_experimental_v1_workspaces_proto_msgTypes[38].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gitpod_experimental_v1_workspaces_proto_rawDesc, NumEnums: 5, NumMessages: 40, NumExtensions: 0, NumServices: 1, }, GoTypes: file_gitpod_experimental_v1_workspaces_proto_goTypes, DependencyIndexes: file_gitpod_experimental_v1_workspaces_proto_depIdxs, EnumInfos: file_gitpod_experimental_v1_workspaces_proto_enumTypes, MessageInfos: file_gitpod_experimental_v1_workspaces_proto_msgTypes, }.Build() File_gitpod_experimental_v1_workspaces_proto = out.File file_gitpod_experimental_v1_workspaces_proto_rawDesc = nil file_gitpod_experimental_v1_workspaces_proto_goTypes = nil file_gitpod_experimental_v1_workspaces_proto_depIdxs = nil }