| // Copyright 2021 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.27.1 |
| // protoc v4.23.3 |
| // source: testing.proto |
| |
| package protocol |
| |
| import ( |
| context "context" |
| protocol "go.chromium.org/tast/core/framework/protocol" |
| grpc "google.golang.org/grpc" |
| codes "google.golang.org/grpc/codes" |
| status "google.golang.org/grpc/status" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| durationpb "google.golang.org/protobuf/types/known/durationpb" |
| 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) |
| ) |
| |
| // EntityType represents a type of an entity. |
| type EntityType int32 |
| |
| const ( |
| EntityType_TEST EntityType = 0 |
| EntityType_FIXTURE EntityType = 1 |
| ) |
| |
| // Enum value maps for EntityType. |
| var ( |
| EntityType_name = map[int32]string{ |
| 0: "TEST", |
| 1: "FIXTURE", |
| } |
| EntityType_value = map[string]int32{ |
| "TEST": 0, |
| "FIXTURE": 1, |
| } |
| ) |
| |
| func (x EntityType) Enum() *EntityType { |
| p := new(EntityType) |
| *p = x |
| return p |
| } |
| |
| func (x EntityType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (EntityType) Descriptor() protoreflect.EnumDescriptor { |
| return file_testing_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (EntityType) Type() protoreflect.EnumType { |
| return &file_testing_proto_enumTypes[0] |
| } |
| |
| func (x EntityType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use EntityType.Descriptor instead. |
| func (EntityType) EnumDescriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{0} |
| } |
| |
| // DownloadMode specifies a strategy to download external data files. |
| type DownloadMode int32 |
| |
| const ( |
| // BATCH specifies that test bundles should download external data files |
| // in batch before running tests. |
| DownloadMode_BATCH DownloadMode = 0 |
| // LAZY specifies that test bundles should download external data files |
| // as needed between tests. |
| DownloadMode_LAZY DownloadMode = 1 |
| ) |
| |
| // Enum value maps for DownloadMode. |
| var ( |
| DownloadMode_name = map[int32]string{ |
| 0: "BATCH", |
| 1: "LAZY", |
| } |
| DownloadMode_value = map[string]int32{ |
| "BATCH": 0, |
| "LAZY": 1, |
| } |
| ) |
| |
| func (x DownloadMode) Enum() *DownloadMode { |
| p := new(DownloadMode) |
| *p = x |
| return p |
| } |
| |
| func (x DownloadMode) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (DownloadMode) Descriptor() protoreflect.EnumDescriptor { |
| return file_testing_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (DownloadMode) Type() protoreflect.EnumType { |
| return &file_testing_proto_enumTypes[1] |
| } |
| |
| func (x DownloadMode) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use DownloadMode.Descriptor instead. |
| func (DownloadMode) EnumDescriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{1} |
| } |
| |
| type StackStatus int32 |
| |
| const ( |
| StackStatus_GREEN StackStatus = 0 |
| StackStatus_RED StackStatus = 1 |
| StackStatus_YELLOW StackStatus = 2 |
| ) |
| |
| // Enum value maps for StackStatus. |
| var ( |
| StackStatus_name = map[int32]string{ |
| 0: "GREEN", |
| 1: "RED", |
| 2: "YELLOW", |
| } |
| StackStatus_value = map[string]int32{ |
| "GREEN": 0, |
| "RED": 1, |
| "YELLOW": 2, |
| } |
| ) |
| |
| func (x StackStatus) Enum() *StackStatus { |
| p := new(StackStatus) |
| *p = x |
| return p |
| } |
| |
| func (x StackStatus) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (StackStatus) Descriptor() protoreflect.EnumDescriptor { |
| return file_testing_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (StackStatus) Type() protoreflect.EnumType { |
| return &file_testing_proto_enumTypes[2] |
| } |
| |
| func (x StackStatus) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use StackStatus.Descriptor instead. |
| func (StackStatus) EnumDescriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{2} |
| } |
| |
| type ListEntitiesRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Features *Features `protobuf:"bytes,1,opt,name=features,proto3" json:"features,omitempty"` |
| // Recursive specifies whether to list entities on target bundles recursively. |
| Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` |
| } |
| |
| func (x *ListEntitiesRequest) Reset() { |
| *x = ListEntitiesRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListEntitiesRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListEntitiesRequest) ProtoMessage() {} |
| |
| func (x *ListEntitiesRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 ListEntitiesRequest.ProtoReflect.Descriptor instead. |
| func (*ListEntitiesRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *ListEntitiesRequest) GetFeatures() *Features { |
| if x != nil { |
| return x.Features |
| } |
| return nil |
| } |
| |
| func (x *ListEntitiesRequest) GetRecursive() bool { |
| if x != nil { |
| return x.Recursive |
| } |
| return false |
| } |
| |
| type ListEntitiesResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Entities is a list of entities available on the server. The order of |
| // entities is unspecified. |
| Entities []*ResolvedEntity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"` |
| } |
| |
| func (x *ListEntitiesResponse) Reset() { |
| *x = ListEntitiesResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListEntitiesResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListEntitiesResponse) ProtoMessage() {} |
| |
| func (x *ListEntitiesResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 ListEntitiesResponse.ProtoReflect.Descriptor instead. |
| func (*ListEntitiesResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *ListEntitiesResponse) GetEntities() []*ResolvedEntity { |
| if x != nil { |
| return x.Entities |
| } |
| return nil |
| } |
| |
| type GlobalRuntimeVarsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *GlobalRuntimeVarsRequest) Reset() { |
| *x = GlobalRuntimeVarsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GlobalRuntimeVarsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GlobalRuntimeVarsRequest) ProtoMessage() {} |
| |
| func (x *GlobalRuntimeVarsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 GlobalRuntimeVarsRequest.ProtoReflect.Descriptor instead. |
| func (*GlobalRuntimeVarsRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{2} |
| } |
| |
| type GlobalRuntimeVar struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| } |
| |
| func (x *GlobalRuntimeVar) Reset() { |
| *x = GlobalRuntimeVar{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GlobalRuntimeVar) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GlobalRuntimeVar) ProtoMessage() {} |
| |
| func (x *GlobalRuntimeVar) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 GlobalRuntimeVar.ProtoReflect.Descriptor instead. |
| func (*GlobalRuntimeVar) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *GlobalRuntimeVar) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| type GlobalRuntimeVarsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Vars []*GlobalRuntimeVar `protobuf:"bytes,1,rep,name=vars,proto3" json:"vars,omitempty"` |
| } |
| |
| func (x *GlobalRuntimeVarsResponse) Reset() { |
| *x = GlobalRuntimeVarsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GlobalRuntimeVarsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GlobalRuntimeVarsResponse) ProtoMessage() {} |
| |
| func (x *GlobalRuntimeVarsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 GlobalRuntimeVarsResponse.ProtoReflect.Descriptor instead. |
| func (*GlobalRuntimeVarsResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *GlobalRuntimeVarsResponse) GetVars() []*GlobalRuntimeVar { |
| if x != nil { |
| return x.Vars |
| } |
| return nil |
| } |
| |
| type RunTestsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Type: |
| // |
| // *RunTestsRequest_RunTestsInit |
| // *RunTestsRequest_StackOperationResponse |
| Type isRunTestsRequest_Type `protobuf_oneof:"type"` |
| } |
| |
| func (x *RunTestsRequest) Reset() { |
| *x = RunTestsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RunTestsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RunTestsRequest) ProtoMessage() {} |
| |
| func (x *RunTestsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 RunTestsRequest.ProtoReflect.Descriptor instead. |
| func (*RunTestsRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (m *RunTestsRequest) GetType() isRunTestsRequest_Type { |
| if m != nil { |
| return m.Type |
| } |
| return nil |
| } |
| |
| func (x *RunTestsRequest) GetRunTestsInit() *RunTestsInit { |
| if x, ok := x.GetType().(*RunTestsRequest_RunTestsInit); ok { |
| return x.RunTestsInit |
| } |
| return nil |
| } |
| |
| func (x *RunTestsRequest) GetStackOperationResponse() *StackOperationResponse { |
| if x, ok := x.GetType().(*RunTestsRequest_StackOperationResponse); ok { |
| return x.StackOperationResponse |
| } |
| return nil |
| } |
| |
| type isRunTestsRequest_Type interface { |
| isRunTestsRequest_Type() |
| } |
| |
| type RunTestsRequest_RunTestsInit struct { |
| RunTestsInit *RunTestsInit `protobuf:"bytes,1,opt,name=run_tests_init,json=runTestsInit,proto3,oneof"` |
| } |
| |
| type RunTestsRequest_StackOperationResponse struct { |
| StackOperationResponse *StackOperationResponse `protobuf:"bytes,3,opt,name=stack_operation_response,json=stackOperationResponse,proto3,oneof"` |
| } |
| |
| func (*RunTestsRequest_RunTestsInit) isRunTestsRequest_Type() {} |
| |
| func (*RunTestsRequest_StackOperationResponse) isRunTestsRequest_Type() {} |
| |
| type RunTestsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Type: |
| // |
| // *RunTestsResponse_RunLog |
| // *RunTestsResponse_EntityStart |
| // *RunTestsResponse_EntityLog |
| // *RunTestsResponse_EntityError |
| // *RunTestsResponse_EntityEnd |
| // *RunTestsResponse_EntityCopyEnd |
| // *RunTestsResponse_StackOperation |
| // *RunTestsResponse_Heartbeat |
| Type isRunTestsResponse_Type `protobuf_oneof:"type"` |
| } |
| |
| func (x *RunTestsResponse) Reset() { |
| *x = RunTestsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RunTestsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RunTestsResponse) ProtoMessage() {} |
| |
| func (x *RunTestsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 RunTestsResponse.ProtoReflect.Descriptor instead. |
| func (*RunTestsResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (m *RunTestsResponse) GetType() isRunTestsResponse_Type { |
| if m != nil { |
| return m.Type |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetRunLog() *RunLogEvent { |
| if x, ok := x.GetType().(*RunTestsResponse_RunLog); ok { |
| return x.RunLog |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetEntityStart() *EntityStartEvent { |
| if x, ok := x.GetType().(*RunTestsResponse_EntityStart); ok { |
| return x.EntityStart |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetEntityLog() *EntityLogEvent { |
| if x, ok := x.GetType().(*RunTestsResponse_EntityLog); ok { |
| return x.EntityLog |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetEntityError() *EntityErrorEvent { |
| if x, ok := x.GetType().(*RunTestsResponse_EntityError); ok { |
| return x.EntityError |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetEntityEnd() *EntityEndEvent { |
| if x, ok := x.GetType().(*RunTestsResponse_EntityEnd); ok { |
| return x.EntityEnd |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetEntityCopyEnd() *EntityCopyEndEvent { |
| if x, ok := x.GetType().(*RunTestsResponse_EntityCopyEnd); ok { |
| return x.EntityCopyEnd |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetStackOperation() *StackOperationRequest { |
| if x, ok := x.GetType().(*RunTestsResponse_StackOperation); ok { |
| return x.StackOperation |
| } |
| return nil |
| } |
| |
| func (x *RunTestsResponse) GetHeartbeat() *HeartbeatEvent { |
| if x, ok := x.GetType().(*RunTestsResponse_Heartbeat); ok { |
| return x.Heartbeat |
| } |
| return nil |
| } |
| |
| type isRunTestsResponse_Type interface { |
| isRunTestsResponse_Type() |
| } |
| |
| type RunTestsResponse_RunLog struct { |
| RunLog *RunLogEvent `protobuf:"bytes,1,opt,name=run_log,json=runLog,proto3,oneof"` |
| } |
| |
| type RunTestsResponse_EntityStart struct { |
| EntityStart *EntityStartEvent `protobuf:"bytes,2,opt,name=entity_start,json=entityStart,proto3,oneof"` |
| } |
| |
| type RunTestsResponse_EntityLog struct { |
| EntityLog *EntityLogEvent `protobuf:"bytes,3,opt,name=entity_log,json=entityLog,proto3,oneof"` |
| } |
| |
| type RunTestsResponse_EntityError struct { |
| EntityError *EntityErrorEvent `protobuf:"bytes,4,opt,name=entity_error,json=entityError,proto3,oneof"` |
| } |
| |
| type RunTestsResponse_EntityEnd struct { |
| EntityEnd *EntityEndEvent `protobuf:"bytes,5,opt,name=entity_end,json=entityEnd,proto3,oneof"` |
| } |
| |
| type RunTestsResponse_EntityCopyEnd struct { |
| EntityCopyEnd *EntityCopyEndEvent `protobuf:"bytes,8,opt,name=entity_copy_end,json=entityCopyEnd,proto3,oneof"` |
| } |
| |
| type RunTestsResponse_StackOperation struct { |
| StackOperation *StackOperationRequest `protobuf:"bytes,6,opt,name=stack_operation,json=stackOperation,proto3,oneof"` |
| } |
| |
| type RunTestsResponse_Heartbeat struct { |
| Heartbeat *HeartbeatEvent `protobuf:"bytes,7,opt,name=heartbeat,proto3,oneof"` |
| } |
| |
| func (*RunTestsResponse_RunLog) isRunTestsResponse_Type() {} |
| |
| func (*RunTestsResponse_EntityStart) isRunTestsResponse_Type() {} |
| |
| func (*RunTestsResponse_EntityLog) isRunTestsResponse_Type() {} |
| |
| func (*RunTestsResponse_EntityError) isRunTestsResponse_Type() {} |
| |
| func (*RunTestsResponse_EntityEnd) isRunTestsResponse_Type() {} |
| |
| func (*RunTestsResponse_EntityCopyEnd) isRunTestsResponse_Type() {} |
| |
| func (*RunTestsResponse_StackOperation) isRunTestsResponse_Type() {} |
| |
| func (*RunTestsResponse_Heartbeat) isRunTestsResponse_Type() {} |
| |
| type GetDUTInfoRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ExtraUseFlags lists USE flags that should be treated as being set in |
| // addition to the ones read from USEFlagsFile when computing the feature sets |
| // for GetDUTInfoResponse. |
| ExtraUseFlags []string `protobuf:"bytes,1,rep,name=extra_use_flags,json=extraUseFlags,proto3" json:"extra_use_flags,omitempty"` |
| // Features specifies whether to get software/hardware features of the DUT. |
| Features bool `protobuf:"varint,2,opt,name=features,proto3" json:"features,omitempty"` |
| } |
| |
| func (x *GetDUTInfoRequest) Reset() { |
| *x = GetDUTInfoRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetDUTInfoRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetDUTInfoRequest) ProtoMessage() {} |
| |
| func (x *GetDUTInfoRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 GetDUTInfoRequest.ProtoReflect.Descriptor instead. |
| func (*GetDUTInfoRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *GetDUTInfoRequest) GetExtraUseFlags() []string { |
| if x != nil { |
| return x.ExtraUseFlags |
| } |
| return nil |
| } |
| |
| func (x *GetDUTInfoRequest) GetFeatures() bool { |
| if x != nil { |
| return x.Features |
| } |
| return false |
| } |
| |
| type GetDUTInfoResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| DutInfo *DUTInfo `protobuf:"bytes,1,opt,name=dut_info,json=dutInfo,proto3" json:"dut_info,omitempty"` |
| } |
| |
| func (x *GetDUTInfoResponse) Reset() { |
| *x = GetDUTInfoResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetDUTInfoResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetDUTInfoResponse) ProtoMessage() {} |
| |
| func (x *GetDUTInfoResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 GetDUTInfoResponse.ProtoReflect.Descriptor instead. |
| func (*GetDUTInfoResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *GetDUTInfoResponse) GetDutInfo() *DUTInfo { |
| if x != nil { |
| return x.DutInfo |
| } |
| return nil |
| } |
| |
| type GetSysInfoStateRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *GetSysInfoStateRequest) Reset() { |
| *x = GetSysInfoStateRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetSysInfoStateRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetSysInfoStateRequest) ProtoMessage() {} |
| |
| func (x *GetSysInfoStateRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 GetSysInfoStateRequest.ProtoReflect.Descriptor instead. |
| func (*GetSysInfoStateRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{9} |
| } |
| |
| type GetSysInfoStateResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // State contains the collected sysinfo state. |
| State *SysInfoState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` |
| } |
| |
| func (x *GetSysInfoStateResponse) Reset() { |
| *x = GetSysInfoStateResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetSysInfoStateResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetSysInfoStateResponse) ProtoMessage() {} |
| |
| func (x *GetSysInfoStateResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 GetSysInfoStateResponse.ProtoReflect.Descriptor instead. |
| func (*GetSysInfoStateResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (x *GetSysInfoStateResponse) GetState() *SysInfoState { |
| if x != nil { |
| return x.State |
| } |
| return nil |
| } |
| |
| type CollectSysInfoRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // InitialState describes the pre-testing state of the DUT. It should be |
| // generated by the GetSysInfoState method executed before tests are run. |
| InitialState *SysInfoState `protobuf:"bytes,1,opt,name=initial_state,json=initialState,proto3" json:"initial_state,omitempty"` |
| } |
| |
| func (x *CollectSysInfoRequest) Reset() { |
| *x = CollectSysInfoRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CollectSysInfoRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CollectSysInfoRequest) ProtoMessage() {} |
| |
| func (x *CollectSysInfoRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 CollectSysInfoRequest.ProtoReflect.Descriptor instead. |
| func (*CollectSysInfoRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{11} |
| } |
| |
| func (x *CollectSysInfoRequest) GetInitialState() *SysInfoState { |
| if x != nil { |
| return x.InitialState |
| } |
| return nil |
| } |
| |
| type CollectSysInfoResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // LogDir is the directory which log files were copied to. The caller should |
| // delete it. |
| LogDir string `protobuf:"bytes,1,opt,name=log_dir,json=logDir,proto3" json:"log_dir,omitempty"` |
| // CrashDir is the directory which minidump crash files were copied to. The |
| // caller should delete it. |
| CrashDir string `protobuf:"bytes,2,opt,name=crash_dir,json=crashDir,proto3" json:"crash_dir,omitempty"` |
| } |
| |
| func (x *CollectSysInfoResponse) Reset() { |
| *x = CollectSysInfoResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CollectSysInfoResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CollectSysInfoResponse) ProtoMessage() {} |
| |
| func (x *CollectSysInfoResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 CollectSysInfoResponse.ProtoReflect.Descriptor instead. |
| func (*CollectSysInfoResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{12} |
| } |
| |
| func (x *CollectSysInfoResponse) GetLogDir() string { |
| if x != nil { |
| return x.LogDir |
| } |
| return "" |
| } |
| |
| func (x *CollectSysInfoResponse) GetCrashDir() string { |
| if x != nil { |
| return x.CrashDir |
| } |
| return "" |
| } |
| |
| type DownloadPrivateBundlesRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ServiceConfig contains information needed to connect to the service |
| // provided by infrastructure system. |
| ServiceConfig *ServiceConfig `protobuf:"bytes,1,opt,name=service_config,json=serviceConfig,proto3" json:"service_config,omitempty"` |
| // BuildArtifactsUrl is the URL of Google Cloud Storage directory, ending with |
| // a slash, containing build artifacts for the current ChromeOS image. |
| // If it is empty, DefaultBuildArtifactsURL in runner.Config is used. |
| BuildArtifactUrl string `protobuf:"bytes,2,opt,name=build_artifact_url,json=buildArtifactUrl,proto3" json:"build_artifact_url,omitempty"` |
| } |
| |
| func (x *DownloadPrivateBundlesRequest) Reset() { |
| *x = DownloadPrivateBundlesRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DownloadPrivateBundlesRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DownloadPrivateBundlesRequest) ProtoMessage() {} |
| |
| func (x *DownloadPrivateBundlesRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 DownloadPrivateBundlesRequest.ProtoReflect.Descriptor instead. |
| func (*DownloadPrivateBundlesRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{13} |
| } |
| |
| func (x *DownloadPrivateBundlesRequest) GetServiceConfig() *ServiceConfig { |
| if x != nil { |
| return x.ServiceConfig |
| } |
| return nil |
| } |
| |
| func (x *DownloadPrivateBundlesRequest) GetBuildArtifactUrl() string { |
| if x != nil { |
| return x.BuildArtifactUrl |
| } |
| return "" |
| } |
| |
| type DownloadPrivateBundlesResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *DownloadPrivateBundlesResponse) Reset() { |
| *x = DownloadPrivateBundlesResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DownloadPrivateBundlesResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DownloadPrivateBundlesResponse) ProtoMessage() {} |
| |
| func (x *DownloadPrivateBundlesResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 DownloadPrivateBundlesResponse.ProtoReflect.Descriptor instead. |
| func (*DownloadPrivateBundlesResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{14} |
| } |
| |
| type StreamFileRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Name is the name of the file which the content will be streamed. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Offset is where in the file that streaming should start. |
| // If the offset is negative, streaming will start at the end of file. |
| Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` |
| } |
| |
| func (x *StreamFileRequest) Reset() { |
| *x = StreamFileRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StreamFileRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StreamFileRequest) ProtoMessage() {} |
| |
| func (x *StreamFileRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 StreamFileRequest.ProtoReflect.Descriptor instead. |
| func (*StreamFileRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{15} |
| } |
| |
| func (x *StreamFileRequest) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *StreamFileRequest) GetOffset() int64 { |
| if x != nil { |
| return x.Offset |
| } |
| return 0 |
| } |
| |
| type StreamFileResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Content is the latest content from the log file. |
| Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` |
| // Offset is where the current file point to after reading the current data. |
| Offset int64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` |
| } |
| |
| func (x *StreamFileResponse) Reset() { |
| *x = StreamFileResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StreamFileResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StreamFileResponse) ProtoMessage() {} |
| |
| func (x *StreamFileResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 StreamFileResponse.ProtoReflect.Descriptor instead. |
| func (*StreamFileResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{16} |
| } |
| |
| func (x *StreamFileResponse) GetData() []byte { |
| if x != nil { |
| return x.Data |
| } |
| return nil |
| } |
| |
| func (x *StreamFileResponse) GetOffset() int64 { |
| if x != nil { |
| return x.Offset |
| } |
| return 0 |
| } |
| |
| // Entity describes an entity. |
| type Entity struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Type EntityType `protobuf:"varint,1,opt,name=type,proto3,enum=tast.core.EntityType" json:"type,omitempty"` |
| Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` |
| Package string `protobuf:"bytes,3,opt,name=package,proto3" json:"package,omitempty"` |
| Attributes []string `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"` |
| Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` |
| Fixture string `protobuf:"bytes,6,opt,name=fixture,proto3" json:"fixture,omitempty"` |
| Dependencies *EntityDependencies `protobuf:"bytes,7,opt,name=dependencies,proto3" json:"dependencies,omitempty"` |
| Contacts *EntityContacts `protobuf:"bytes,8,opt,name=contacts,proto3" json:"contacts,omitempty"` |
| LegacyData *EntityLegacyData `protobuf:"bytes,9,opt,name=legacy_data,json=legacyData,proto3" json:"legacy_data,omitempty"` |
| SearchFlags []*StringPair `protobuf:"bytes,10,rep,name=search_flags,json=searchFlags,proto3" json:"search_flags,omitempty"` |
| TestBedDeps []string `protobuf:"bytes,11,rep,name=test_bed_deps,json=testBedDeps,proto3" json:"test_bed_deps,omitempty"` |
| Requirements []string `protobuf:"bytes,12,rep,name=requirements,proto3" json:"requirements,omitempty"` |
| BugComponent string `protobuf:"bytes,13,opt,name=bug_component,json=bugComponent,proto3" json:"bug_component,omitempty"` |
| LacrosStatus string `protobuf:"bytes,14,opt,name=lacros_status,json=lacrosStatus,proto3" json:"lacros_status,omitempty"` |
| } |
| |
| func (x *Entity) Reset() { |
| *x = Entity{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Entity) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Entity) ProtoMessage() {} |
| |
| func (x *Entity) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 Entity.ProtoReflect.Descriptor instead. |
| func (*Entity) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{17} |
| } |
| |
| func (x *Entity) GetType() EntityType { |
| if x != nil { |
| return x.Type |
| } |
| return EntityType_TEST |
| } |
| |
| func (x *Entity) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Entity) GetPackage() string { |
| if x != nil { |
| return x.Package |
| } |
| return "" |
| } |
| |
| func (x *Entity) GetAttributes() []string { |
| if x != nil { |
| return x.Attributes |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetDescription() string { |
| if x != nil { |
| return x.Description |
| } |
| return "" |
| } |
| |
| func (x *Entity) GetFixture() string { |
| if x != nil { |
| return x.Fixture |
| } |
| return "" |
| } |
| |
| func (x *Entity) GetDependencies() *EntityDependencies { |
| if x != nil { |
| return x.Dependencies |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetContacts() *EntityContacts { |
| if x != nil { |
| return x.Contacts |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetLegacyData() *EntityLegacyData { |
| if x != nil { |
| return x.LegacyData |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetSearchFlags() []*StringPair { |
| if x != nil { |
| return x.SearchFlags |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetTestBedDeps() []string { |
| if x != nil { |
| return x.TestBedDeps |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetRequirements() []string { |
| if x != nil { |
| return x.Requirements |
| } |
| return nil |
| } |
| |
| func (x *Entity) GetBugComponent() string { |
| if x != nil { |
| return x.BugComponent |
| } |
| return "" |
| } |
| |
| func (x *Entity) GetLacrosStatus() string { |
| if x != nil { |
| return x.LacrosStatus |
| } |
| return "" |
| } |
| |
| // EntityContacts contains contact information of an entity. |
| type EntityContacts struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Emails []string `protobuf:"bytes,1,rep,name=emails,proto3" json:"emails,omitempty"` |
| } |
| |
| func (x *EntityContacts) Reset() { |
| *x = EntityContacts{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityContacts) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityContacts) ProtoMessage() {} |
| |
| func (x *EntityContacts) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityContacts.ProtoReflect.Descriptor instead. |
| func (*EntityContacts) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{18} |
| } |
| |
| func (x *EntityContacts) GetEmails() []string { |
| if x != nil { |
| return x.Emails |
| } |
| return nil |
| } |
| |
| // EntityDependencies describes dependencies of an entity that need to be |
| // evaluated before running it. |
| type EntityDependencies struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| DataFiles []string `protobuf:"bytes,1,rep,name=data_files,json=dataFiles,proto3" json:"data_files,omitempty"` |
| Services []string `protobuf:"bytes,2,rep,name=services,proto3" json:"services,omitempty"` |
| } |
| |
| func (x *EntityDependencies) Reset() { |
| *x = EntityDependencies{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityDependencies) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityDependencies) ProtoMessage() {} |
| |
| func (x *EntityDependencies) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityDependencies.ProtoReflect.Descriptor instead. |
| func (*EntityDependencies) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{19} |
| } |
| |
| func (x *EntityDependencies) GetDataFiles() []string { |
| if x != nil { |
| return x.DataFiles |
| } |
| return nil |
| } |
| |
| func (x *EntityDependencies) GetServices() []string { |
| if x != nil { |
| return x.Services |
| } |
| return nil |
| } |
| |
| // EntityLegacyData contains extra information of an entity. |
| // Fields in this message are considered legacy because test bundles need to |
| // send these fields to Tast CLI just because they are made available in |
| // results.json for compatibility reasons. |
| type EntityLegacyData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Timeout *durationpb.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` |
| Variables []string `protobuf:"bytes,2,rep,name=variables,proto3" json:"variables,omitempty"` |
| VariableDeps []string `protobuf:"bytes,3,rep,name=variable_deps,json=variableDeps,proto3" json:"variable_deps,omitempty"` |
| SoftwareDeps []string `protobuf:"bytes,4,rep,name=software_deps,json=softwareDeps,proto3" json:"software_deps,omitempty"` |
| Bundle string `protobuf:"bytes,5,opt,name=bundle,proto3" json:"bundle,omitempty"` |
| } |
| |
| func (x *EntityLegacyData) Reset() { |
| *x = EntityLegacyData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[20] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityLegacyData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityLegacyData) ProtoMessage() {} |
| |
| func (x *EntityLegacyData) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityLegacyData.ProtoReflect.Descriptor instead. |
| func (*EntityLegacyData) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{20} |
| } |
| |
| func (x *EntityLegacyData) GetTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.Timeout |
| } |
| return nil |
| } |
| |
| func (x *EntityLegacyData) GetVariables() []string { |
| if x != nil { |
| return x.Variables |
| } |
| return nil |
| } |
| |
| func (x *EntityLegacyData) GetVariableDeps() []string { |
| if x != nil { |
| return x.VariableDeps |
| } |
| return nil |
| } |
| |
| func (x *EntityLegacyData) GetSoftwareDeps() []string { |
| if x != nil { |
| return x.SoftwareDeps |
| } |
| return nil |
| } |
| |
| func (x *EntityLegacyData) GetBundle() string { |
| if x != nil { |
| return x.Bundle |
| } |
| return "" |
| } |
| |
| type RunTestsInit struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| RunConfig *RunConfig `protobuf:"bytes,1,opt,name=run_config,json=runConfig,proto3" json:"run_config,omitempty"` |
| // Recursive specifies whether to run tests on target bundles recursively. |
| Recursive bool `protobuf:"varint,2,opt,name=recursive,proto3" json:"recursive,omitempty"` |
| // DebugPort is the port which the debugger for the test bundle will listen |
| // on. Note that this field is only used for test runners, and not bundles. |
| DebugPort uint32 `protobuf:"varint,10,opt,name=debug_port,json=debugPort,proto3" json:"debug_port,omitempty"` |
| } |
| |
| func (x *RunTestsInit) Reset() { |
| *x = RunTestsInit{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RunTestsInit) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RunTestsInit) ProtoMessage() {} |
| |
| func (x *RunTestsInit) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 RunTestsInit.ProtoReflect.Descriptor instead. |
| func (*RunTestsInit) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{21} |
| } |
| |
| func (x *RunTestsInit) GetRunConfig() *RunConfig { |
| if x != nil { |
| return x.RunConfig |
| } |
| return nil |
| } |
| |
| func (x *RunTestsInit) GetRecursive() bool { |
| if x != nil { |
| return x.Recursive |
| } |
| return false |
| } |
| |
| func (x *RunTestsInit) GetDebugPort() uint32 { |
| if x != nil { |
| return x.DebugPort |
| } |
| return 0 |
| } |
| |
| // RunConfig contains parameters needed to run tests in a test bundle. |
| type RunConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Tests is a list of test names to be run. Wildcards are not allowed. |
| Tests []string `protobuf:"bytes,1,rep,name=tests,proto3" json:"tests,omitempty"` |
| Dirs *RunDirectories `protobuf:"bytes,2,opt,name=dirs,proto3" json:"dirs,omitempty"` |
| Features *Features `protobuf:"bytes,3,opt,name=features,proto3" json:"features,omitempty"` |
| ServiceConfig *ServiceConfig `protobuf:"bytes,4,opt,name=service_config,json=serviceConfig,proto3" json:"service_config,omitempty"` |
| DataFileConfig *DataFileConfig `protobuf:"bytes,5,opt,name=data_file_config,json=dataFileConfig,proto3" json:"data_file_config,omitempty"` |
| StartFixtureState *StartFixtureState `protobuf:"bytes,7,opt,name=start_fixture_state,json=startFixtureState,proto3" json:"start_fixture_state,omitempty"` |
| // HeartbeatInterval is the interval in seconds at which heartbeat messages |
| // are sent back periodically from runners (before running bundles) and |
| // bundles. If this value is not positive, heartbeat messages are not sent. |
| // TODO(crbug.com/1128259): Remove this field once we fully migrate to gRPC. |
| HeartbeatInterval *durationpb.Duration `protobuf:"bytes,8,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"` |
| // WaitUntilReady indicates that the test bundle's "ready" function (see |
| // ReadyFunc) should be executed before any tests are executed. |
| // TODO(crbug.com/1128259): Remove this field once we fully migrate to gRPC. |
| WaitUntilReady bool `protobuf:"varint,9,opt,name=wait_until_ready,json=waitUntilReady,proto3" json:"wait_until_ready,omitempty"` |
| // DebugPort is the port that the bundle will attach the debugger to. |
| DebugPort uint32 `protobuf:"varint,10,opt,name=debug_port,json=debugPort,proto3" json:"debug_port,omitempty"` |
| // SystemServiceTimeout is timeout for waiting for system services to be ready |
| // in seconds. (Default: 120 seconds) |
| SystemServicesTimeout *durationpb.Duration `protobuf:"bytes,11,opt,name=system_services_timeout,json=systemServicesTimeout,proto3" json:"system_services_timeout,omitempty"` |
| // Target specifies how the primary target bundle should run. |
| // This can be nil if no target bundle exists. |
| Target *RunTargetConfig `protobuf:"bytes,12,opt,name=target,proto3" json:"target,omitempty"` |
| // MsgTimeout is the duration that the client waits for. |
| // If no activity is seen even after that the connection is closed. |
| // (Default: 60 seconds) |
| MsgTimeout *durationpb.Duration `protobuf:"bytes,13,opt,name=msg_timeout,json=msgTimeout,proto3" json:"msg_timeout,omitempty"` |
| // MaxSysMsgLogSize is a maximum size of /var/log/messages that Tast will |
| // copy. |
| MaxSysMsgLogSize int64 `protobuf:"varint,14,opt,name=max_sys_msg_log_size,json=maxSysMsgLogSize,proto3" json:"max_sys_msg_log_size,omitempty"` |
| // WaitUntilReadyTimeout set a timeout for the entire ready.Wait function. |
| WaitUntilReadyTimeout *durationpb.Duration `protobuf:"bytes,15,opt,name=wait_until_ready_timeout,json=waitUntilReadyTimeout,proto3" json:"wait_until_ready_timeout,omitempty"` |
| } |
| |
| func (x *RunConfig) Reset() { |
| *x = RunConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[22] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RunConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RunConfig) ProtoMessage() {} |
| |
| func (x *RunConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 RunConfig.ProtoReflect.Descriptor instead. |
| func (*RunConfig) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{22} |
| } |
| |
| func (x *RunConfig) GetTests() []string { |
| if x != nil { |
| return x.Tests |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetDirs() *RunDirectories { |
| if x != nil { |
| return x.Dirs |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetFeatures() *Features { |
| if x != nil { |
| return x.Features |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetServiceConfig() *ServiceConfig { |
| if x != nil { |
| return x.ServiceConfig |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetDataFileConfig() *DataFileConfig { |
| if x != nil { |
| return x.DataFileConfig |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetStartFixtureState() *StartFixtureState { |
| if x != nil { |
| return x.StartFixtureState |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetHeartbeatInterval() *durationpb.Duration { |
| if x != nil { |
| return x.HeartbeatInterval |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetWaitUntilReady() bool { |
| if x != nil { |
| return x.WaitUntilReady |
| } |
| return false |
| } |
| |
| func (x *RunConfig) GetDebugPort() uint32 { |
| if x != nil { |
| return x.DebugPort |
| } |
| return 0 |
| } |
| |
| func (x *RunConfig) GetSystemServicesTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.SystemServicesTimeout |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetTarget() *RunTargetConfig { |
| if x != nil { |
| return x.Target |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetMsgTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.MsgTimeout |
| } |
| return nil |
| } |
| |
| func (x *RunConfig) GetMaxSysMsgLogSize() int64 { |
| if x != nil { |
| return x.MaxSysMsgLogSize |
| } |
| return 0 |
| } |
| |
| func (x *RunConfig) GetWaitUntilReadyTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.WaitUntilReadyTimeout |
| } |
| return nil |
| } |
| |
| // RunTargetConfig contains parameters for the primary target bundle to run. |
| type RunTargetConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Devservers correspnods to config.Devservers. |
| Devservers []string `protobuf:"bytes,1,rep,name=devservers,proto3" json:"devservers,omitempty"` |
| // Dirs contains directories local tests use. |
| Dirs *RunDirectories `protobuf:"bytes,2,opt,name=dirs,proto3" json:"dirs,omitempty"` |
| // DebugPort is the port that the bundle will attach the debugger to. |
| DebugPort uint32 `protobuf:"varint,3,opt,name=debug_port,json=debugPort,proto3" json:"debug_port,omitempty"` |
| // MaxTestFailures specifies maximum test failures allowed. |
| MaxTestFailures int32 `protobuf:"varint,4,opt,name=max_test_failures,json=maxTestFailures,proto3" json:"max_test_failures,omitempty"` |
| // Retries is the number of retries for failing tests. |
| Retries int32 `protobuf:"varint,5,opt,name=retries,proto3" json:"retries,omitempty"` |
| // Proxy if true indicates that the HTTP_PROXY, HTTPS_PROXY, and NO_PROXY |
| // environment variables (and their lowercase counterparts) should be |
| // forwarded to the DUT if set on the host. |
| Proxy bool `protobuf:"varint,6,opt,name=proxy,proto3" json:"proxy,omitempty"` |
| // TODO(crbug.com/1128259): Remove this field once we fully migrate to gRPC. |
| WaitUntilReady bool `protobuf:"varint,7,opt,name=wait_until_ready,json=waitUntilReady,proto3" json:"wait_until_ready,omitempty"` |
| // MsgTimeout is the duration that the client waits for. |
| // If no activity is seen even after that the connection is closed. |
| // (Default: 60 seconds) |
| MsgTimeout *durationpb.Duration `protobuf:"bytes,8,opt,name=msg_timeout,json=msgTimeout,proto3" json:"msg_timeout,omitempty"` |
| // SystemServiceTimeout is timeout for waiting for system services to be ready |
| // in seconds. (Default: 120 seconds) |
| SystemServicesTimeout *durationpb.Duration `protobuf:"bytes,9,opt,name=system_services_timeout,json=systemServicesTimeout,proto3" json:"system_services_timeout,omitempty"` |
| // WaitUntilReadyTimeout set a timeout for the entire ready.Wait function. |
| // (Default: 120 seconds) |
| WaitUntilReadyTimeout *durationpb.Duration `protobuf:"bytes,10,opt,name=wait_until_ready_timeout,json=waitUntilReadyTimeout,proto3" json:"wait_until_ready_timeout,omitempty"` |
| // SwarmingTaskID specifies the swarming task ID of the scheduled |
| // job that run Tast tests. |
| SwarmingTaskID string `protobuf:"bytes,11,opt,name=SwarmingTaskID,proto3" json:"SwarmingTaskID,omitempty"` |
| // BuildBucketID specifies the build bucket ID of the scheduled |
| // job that run Tast tests. |
| BuildBucketID string `protobuf:"bytes,12,opt,name=BuildBucketID,proto3" json:"BuildBucketID,omitempty"` |
| } |
| |
| func (x *RunTargetConfig) Reset() { |
| *x = RunTargetConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[23] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RunTargetConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RunTargetConfig) ProtoMessage() {} |
| |
| func (x *RunTargetConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 RunTargetConfig.ProtoReflect.Descriptor instead. |
| func (*RunTargetConfig) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{23} |
| } |
| |
| func (x *RunTargetConfig) GetDevservers() []string { |
| if x != nil { |
| return x.Devservers |
| } |
| return nil |
| } |
| |
| func (x *RunTargetConfig) GetDirs() *RunDirectories { |
| if x != nil { |
| return x.Dirs |
| } |
| return nil |
| } |
| |
| func (x *RunTargetConfig) GetDebugPort() uint32 { |
| if x != nil { |
| return x.DebugPort |
| } |
| return 0 |
| } |
| |
| func (x *RunTargetConfig) GetMaxTestFailures() int32 { |
| if x != nil { |
| return x.MaxTestFailures |
| } |
| return 0 |
| } |
| |
| func (x *RunTargetConfig) GetRetries() int32 { |
| if x != nil { |
| return x.Retries |
| } |
| return 0 |
| } |
| |
| func (x *RunTargetConfig) GetProxy() bool { |
| if x != nil { |
| return x.Proxy |
| } |
| return false |
| } |
| |
| func (x *RunTargetConfig) GetWaitUntilReady() bool { |
| if x != nil { |
| return x.WaitUntilReady |
| } |
| return false |
| } |
| |
| func (x *RunTargetConfig) GetMsgTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.MsgTimeout |
| } |
| return nil |
| } |
| |
| func (x *RunTargetConfig) GetSystemServicesTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.SystemServicesTimeout |
| } |
| return nil |
| } |
| |
| func (x *RunTargetConfig) GetWaitUntilReadyTimeout() *durationpb.Duration { |
| if x != nil { |
| return x.WaitUntilReadyTimeout |
| } |
| return nil |
| } |
| |
| func (x *RunTargetConfig) GetSwarmingTaskID() string { |
| if x != nil { |
| return x.SwarmingTaskID |
| } |
| return "" |
| } |
| |
| func (x *RunTargetConfig) GetBuildBucketID() string { |
| if x != nil { |
| return x.BuildBucketID |
| } |
| return "" |
| } |
| |
| // RunDirectories holds several directory paths important for running tests. |
| type RunDirectories struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // DataDir is the path to the directory containing test data files. |
| DataDir string `protobuf:"bytes,1,opt,name=data_dir,json=dataDir,proto3" json:"data_dir,omitempty"` |
| // OutDir is the path to the base directory under which tests should write |
| // output files. |
| OutDir string `protobuf:"bytes,2,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` |
| // TempDir is the path to the directory under which temporary files for tests |
| // are written. |
| TempDir string `protobuf:"bytes,3,opt,name=temp_dir,json=tempDir,proto3" json:"temp_dir,omitempty"` |
| } |
| |
| func (x *RunDirectories) Reset() { |
| *x = RunDirectories{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[24] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RunDirectories) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RunDirectories) ProtoMessage() {} |
| |
| func (x *RunDirectories) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 RunDirectories.ProtoReflect.Descriptor instead. |
| func (*RunDirectories) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{24} |
| } |
| |
| func (x *RunDirectories) GetDataDir() string { |
| if x != nil { |
| return x.DataDir |
| } |
| return "" |
| } |
| |
| func (x *RunDirectories) GetOutDir() string { |
| if x != nil { |
| return x.OutDir |
| } |
| return "" |
| } |
| |
| func (x *RunDirectories) GetTempDir() string { |
| if x != nil { |
| return x.TempDir |
| } |
| return "" |
| } |
| |
| // ServiceConfig contains configurations of external services available to |
| // Tast framework and Tast tests. |
| type ServiceConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Devservers is a list of devserver URLs (e.g. "https://1.2.3.4:5678"). |
| // Devservers are used to download data files from Google Cloud Storage with |
| // cache. It is ignored if DUT Server is available. |
| Devservers []string `protobuf:"bytes,1,rep,name=devservers,proto3" json:"devservers,omitempty"` |
| // TlwServer is an address of a TLW server (e.g. "1.2.3.4:5678"). |
| // When this is set, it takes precedence over Devservers. |
| // Note: Obsolete. |
| TlwServer string `protobuf:"bytes,2,opt,name=tlw_server,json=tlwServer,proto3" json:"tlw_server,omitempty"` |
| // TlwSelfName is a "DUT name" that identifies the current machine. |
| // It is empty for remote tests. |
| // Note: Obsolete. |
| TlwSelfName string `protobuf:"bytes,3,opt,name=tlw_self_name,json=tlwSelfName,proto3" json:"tlw_self_name,omitempty"` |
| // TlwPrimaryTargetName is a "DUT name" of the primary target. |
| // It is empty if a primary target doesn't exist. |
| // Note: Obsolete. |
| TlwPrimaryTargetName string `protobuf:"bytes,4,opt,name=tlw_primary_target_name,json=tlwPrimaryTargetName,proto3" json:"tlw_primary_target_name,omitempty"` |
| // DutServer is an address of a DUT server (e.g. "1.2.3.4:5678"). |
| // When this is set, it takes precedence over Devservers. |
| DutServer string `protobuf:"bytes,5,opt,name=dut_server,json=dutServer,proto3" json:"dut_server,omitempty"` |
| // UseEphemeralDevserer instructs whether to use ephemeral devserver. |
| UseEphemeralDevservers bool `protobuf:"varint,6,opt,name=use_ephemeral_devservers,json=useEphemeralDevservers,proto3" json:"use_ephemeral_devservers,omitempty"` |
| // TastDir used to specify cache directory. |
| TastDir string `protobuf:"bytes,7,opt,name=tast_dir,json=tastDir,proto3" json:"tast_dir,omitempty"` |
| // ExtraAllowedBuckets specifies ephemeral devserver's allowed buckets. |
| ExtraAllowedBuckets []string `protobuf:"bytes,8,rep,name=extra_allowed_buckets,json=extraAllowedBuckets,proto3" json:"extra_allowed_buckets,omitempty"` |
| // SwarmingTaskID specifies the swarming task ID of the scheduled |
| // job that run Tast tests. |
| SwarmingTaskID string `protobuf:"bytes,9,opt,name=SwarmingTaskID,proto3" json:"SwarmingTaskID,omitempty"` |
| // BuildBucketID specifies the build bucket ID of the scheduled |
| // job that run Tast tests. |
| BuildBucketID string `protobuf:"bytes,10,opt,name=BuildBucketID,proto3" json:"BuildBucketID,omitempty"` |
| } |
| |
| func (x *ServiceConfig) Reset() { |
| *x = ServiceConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[25] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ServiceConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ServiceConfig) ProtoMessage() {} |
| |
| func (x *ServiceConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 ServiceConfig.ProtoReflect.Descriptor instead. |
| func (*ServiceConfig) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{25} |
| } |
| |
| func (x *ServiceConfig) GetDevservers() []string { |
| if x != nil { |
| return x.Devservers |
| } |
| return nil |
| } |
| |
| func (x *ServiceConfig) GetTlwServer() string { |
| if x != nil { |
| return x.TlwServer |
| } |
| return "" |
| } |
| |
| func (x *ServiceConfig) GetTlwSelfName() string { |
| if x != nil { |
| return x.TlwSelfName |
| } |
| return "" |
| } |
| |
| func (x *ServiceConfig) GetTlwPrimaryTargetName() string { |
| if x != nil { |
| return x.TlwPrimaryTargetName |
| } |
| return "" |
| } |
| |
| func (x *ServiceConfig) GetDutServer() string { |
| if x != nil { |
| return x.DutServer |
| } |
| return "" |
| } |
| |
| func (x *ServiceConfig) GetUseEphemeralDevservers() bool { |
| if x != nil { |
| return x.UseEphemeralDevservers |
| } |
| return false |
| } |
| |
| func (x *ServiceConfig) GetTastDir() string { |
| if x != nil { |
| return x.TastDir |
| } |
| return "" |
| } |
| |
| func (x *ServiceConfig) GetExtraAllowedBuckets() []string { |
| if x != nil { |
| return x.ExtraAllowedBuckets |
| } |
| return nil |
| } |
| |
| func (x *ServiceConfig) GetSwarmingTaskID() string { |
| if x != nil { |
| return x.SwarmingTaskID |
| } |
| return "" |
| } |
| |
| func (x *ServiceConfig) GetBuildBucketID() string { |
| if x != nil { |
| return x.BuildBucketID |
| } |
| return "" |
| } |
| |
| // DataFileConfig contains configurations about data files. |
| type DataFileConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| DownloadMode DownloadMode `protobuf:"varint,1,opt,name=download_mode,json=downloadMode,proto3,enum=tast.core.DownloadMode" json:"download_mode,omitempty"` |
| // BuildArtifactsUrl is the URL of Google Cloud Storage directory, ending with |
| // a slash, containing build artifacts for the current ChromeOS image. |
| BuildArtifactsUrl string `protobuf:"bytes,2,opt,name=build_artifacts_url,json=buildArtifactsUrl,proto3" json:"build_artifacts_url,omitempty"` |
| } |
| |
| func (x *DataFileConfig) Reset() { |
| *x = DataFileConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[26] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DataFileConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DataFileConfig) ProtoMessage() {} |
| |
| func (x *DataFileConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 DataFileConfig.ProtoReflect.Descriptor instead. |
| func (*DataFileConfig) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{26} |
| } |
| |
| func (x *DataFileConfig) GetDownloadMode() DownloadMode { |
| if x != nil { |
| return x.DownloadMode |
| } |
| return DownloadMode_BATCH |
| } |
| |
| func (x *DataFileConfig) GetBuildArtifactsUrl() string { |
| if x != nil { |
| return x.BuildArtifactsUrl |
| } |
| return "" |
| } |
| |
| // StartFixtureState contains information of a start fixture. |
| type StartFixtureState struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Name is the name of a start fixture. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Errors contains errors reported on dependent fixture setup. If it is not |
| // empty, all fixtures and tests should fail immediately. |
| Errors []*Error `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` |
| } |
| |
| func (x *StartFixtureState) Reset() { |
| *x = StartFixtureState{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[27] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StartFixtureState) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StartFixtureState) ProtoMessage() {} |
| |
| func (x *StartFixtureState) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 StartFixtureState.ProtoReflect.Descriptor instead. |
| func (*StartFixtureState) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{27} |
| } |
| |
| func (x *StartFixtureState) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *StartFixtureState) GetErrors() []*Error { |
| if x != nil { |
| return x.Errors |
| } |
| return nil |
| } |
| |
| // Error describes details of an error reported by an entity. |
| type Error struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` |
| Location *ErrorLocation `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"` |
| } |
| |
| func (x *Error) Reset() { |
| *x = Error{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[28] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Error) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Error) ProtoMessage() {} |
| |
| func (x *Error) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 Error.ProtoReflect.Descriptor instead. |
| func (*Error) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{28} |
| } |
| |
| func (x *Error) GetReason() string { |
| if x != nil { |
| return x.Reason |
| } |
| return "" |
| } |
| |
| func (x *Error) GetLocation() *ErrorLocation { |
| if x != nil { |
| return x.Location |
| } |
| return nil |
| } |
| |
| // ErrorLocation represents a code location where an error was reported. |
| type ErrorLocation struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| File string `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` |
| Line int64 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"` |
| Stack string `protobuf:"bytes,3,opt,name=stack,proto3" json:"stack,omitempty"` |
| } |
| |
| func (x *ErrorLocation) Reset() { |
| *x = ErrorLocation{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[29] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ErrorLocation) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ErrorLocation) ProtoMessage() {} |
| |
| func (x *ErrorLocation) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 ErrorLocation.ProtoReflect.Descriptor instead. |
| func (*ErrorLocation) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{29} |
| } |
| |
| func (x *ErrorLocation) GetFile() string { |
| if x != nil { |
| return x.File |
| } |
| return "" |
| } |
| |
| func (x *ErrorLocation) GetLine() int64 { |
| if x != nil { |
| return x.Line |
| } |
| return 0 |
| } |
| |
| func (x *ErrorLocation) GetStack() string { |
| if x != nil { |
| return x.Stack |
| } |
| return "" |
| } |
| |
| // ResolvedEntity is similar to Entity, but contains additional fields computed |
| // from an original Entity and run time information. |
| type ResolvedEntity struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` |
| // Skips contains reasons why this test should be skipped. If it contains one |
| // or more reasons, the test should be skipped for unsatisfied dependencies. |
| // This field can be set only if the entity is a test. |
| Skip *Skip `protobuf:"bytes,2,opt,name=skip,proto3" json:"skip,omitempty"` |
| // Hops contains the number of remote connection hops from the current machine |
| // and the machine serving the entity. |
| // On the host machine, hops=0 means remote entities (on the host machine) and |
| // hops=1 means local entities (on the DUT). |
| Hops int32 `protobuf:"varint,3,opt,name=hops,proto3" json:"hops,omitempty"` |
| // StartFixtureName is the name of the fixture that needs to be set up |
| // externally in order to run this entity. |
| StartFixtureName string `protobuf:"bytes,4,opt,name=start_fixture_name,json=startFixtureName,proto3" json:"start_fixture_name,omitempty"` |
| } |
| |
| func (x *ResolvedEntity) Reset() { |
| *x = ResolvedEntity{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[30] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ResolvedEntity) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ResolvedEntity) ProtoMessage() {} |
| |
| func (x *ResolvedEntity) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 ResolvedEntity.ProtoReflect.Descriptor instead. |
| func (*ResolvedEntity) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{30} |
| } |
| |
| func (x *ResolvedEntity) GetEntity() *Entity { |
| if x != nil { |
| return x.Entity |
| } |
| return nil |
| } |
| |
| func (x *ResolvedEntity) GetSkip() *Skip { |
| if x != nil { |
| return x.Skip |
| } |
| return nil |
| } |
| |
| func (x *ResolvedEntity) GetHops() int32 { |
| if x != nil { |
| return x.Hops |
| } |
| return 0 |
| } |
| |
| func (x *ResolvedEntity) GetStartFixtureName() string { |
| if x != nil { |
| return x.StartFixtureName |
| } |
| return "" |
| } |
| |
| // TimingLog is a protobuf presentation of a timing.Log. |
| type TimingLog struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Root *TimingStage `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"` |
| } |
| |
| func (x *TimingLog) Reset() { |
| *x = TimingLog{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[31] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TimingLog) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TimingLog) ProtoMessage() {} |
| |
| func (x *TimingLog) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 TimingLog.ProtoReflect.Descriptor instead. |
| func (*TimingLog) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{31} |
| } |
| |
| func (x *TimingLog) GetRoot() *TimingStage { |
| if x != nil { |
| return x.Root |
| } |
| return nil |
| } |
| |
| // TimingStage is a protobuf presentation of a completed timing.Stage. |
| type TimingStage struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` |
| EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` |
| Children []*TimingStage `protobuf:"bytes,4,rep,name=children,proto3" json:"children,omitempty"` |
| } |
| |
| func (x *TimingStage) Reset() { |
| *x = TimingStage{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[32] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TimingStage) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TimingStage) ProtoMessage() {} |
| |
| func (x *TimingStage) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 TimingStage.ProtoReflect.Descriptor instead. |
| func (*TimingStage) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{32} |
| } |
| |
| func (x *TimingStage) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *TimingStage) GetStartTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.StartTime |
| } |
| return nil |
| } |
| |
| func (x *TimingStage) GetEndTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EndTime |
| } |
| return nil |
| } |
| |
| func (x *TimingStage) GetChildren() []*TimingStage { |
| if x != nil { |
| return x.Children |
| } |
| return nil |
| } |
| |
| // RunLogEvent indicates that an informational log message not associated with |
| // an entity was produced. |
| type RunLogEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` |
| Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` |
| Level LogLevel `protobuf:"varint,3,opt,name=level,proto3,enum=tast.core.LogLevel" json:"level,omitempty"` |
| } |
| |
| func (x *RunLogEvent) Reset() { |
| *x = RunLogEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[33] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RunLogEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RunLogEvent) ProtoMessage() {} |
| |
| func (x *RunLogEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 RunLogEvent.ProtoReflect.Descriptor instead. |
| func (*RunLogEvent) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{33} |
| } |
| |
| func (x *RunLogEvent) GetTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.Time |
| } |
| return nil |
| } |
| |
| func (x *RunLogEvent) GetText() string { |
| if x != nil { |
| return x.Text |
| } |
| return "" |
| } |
| |
| func (x *RunLogEvent) GetLevel() LogLevel { |
| if x != nil { |
| return x.Level |
| } |
| return LogLevel_LOGLEVEL_UNSPECIFIED |
| } |
| |
| // EntityStartEvent marks the start of an entity run. EntityStartEvent is sent |
| // even if an entity is to be skipped. |
| type EntityStartEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` |
| Entity *Entity `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` |
| OutDir string `protobuf:"bytes,3,opt,name=out_dir,json=outDir,proto3" json:"out_dir,omitempty"` |
| } |
| |
| func (x *EntityStartEvent) Reset() { |
| *x = EntityStartEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[34] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityStartEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityStartEvent) ProtoMessage() {} |
| |
| func (x *EntityStartEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityStartEvent.ProtoReflect.Descriptor instead. |
| func (*EntityStartEvent) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{34} |
| } |
| |
| func (x *EntityStartEvent) GetTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.Time |
| } |
| return nil |
| } |
| |
| func (x *EntityStartEvent) GetEntity() *Entity { |
| if x != nil { |
| return x.Entity |
| } |
| return nil |
| } |
| |
| func (x *EntityStartEvent) GetOutDir() string { |
| if x != nil { |
| return x.OutDir |
| } |
| return "" |
| } |
| |
| // EntityLogEvent indicates that an informational log message was produced by |
| // an entity. |
| type EntityLogEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` |
| EntityName string `protobuf:"bytes,2,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` |
| Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` |
| Level LogLevel `protobuf:"varint,4,opt,name=level,proto3,enum=tast.core.LogLevel" json:"level,omitempty"` |
| } |
| |
| func (x *EntityLogEvent) Reset() { |
| *x = EntityLogEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[35] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityLogEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityLogEvent) ProtoMessage() {} |
| |
| func (x *EntityLogEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityLogEvent.ProtoReflect.Descriptor instead. |
| func (*EntityLogEvent) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{35} |
| } |
| |
| func (x *EntityLogEvent) GetTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.Time |
| } |
| return nil |
| } |
| |
| func (x *EntityLogEvent) GetEntityName() string { |
| if x != nil { |
| return x.EntityName |
| } |
| return "" |
| } |
| |
| func (x *EntityLogEvent) GetText() string { |
| if x != nil { |
| return x.Text |
| } |
| return "" |
| } |
| |
| func (x *EntityLogEvent) GetLevel() LogLevel { |
| if x != nil { |
| return x.Level |
| } |
| return LogLevel_LOGLEVEL_UNSPECIFIED |
| } |
| |
| // EntityErrorEvent indicates that an error was produced by an entity. |
| // A consumer should treat an entity as failed when it sees one or more errors |
| // reported for it. |
| type EntityErrorEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` |
| EntityName string `protobuf:"bytes,2,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` |
| Error *Error `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` |
| } |
| |
| func (x *EntityErrorEvent) Reset() { |
| *x = EntityErrorEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[36] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityErrorEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityErrorEvent) ProtoMessage() {} |
| |
| func (x *EntityErrorEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityErrorEvent.ProtoReflect.Descriptor instead. |
| func (*EntityErrorEvent) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{36} |
| } |
| |
| func (x *EntityErrorEvent) GetTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.Time |
| } |
| return nil |
| } |
| |
| func (x *EntityErrorEvent) GetEntityName() string { |
| if x != nil { |
| return x.EntityName |
| } |
| return "" |
| } |
| |
| func (x *EntityErrorEvent) GetError() *Error { |
| if x != nil { |
| return x.Error |
| } |
| return nil |
| } |
| |
| // EntityEndEvent marks the end of an entity run. |
| type EntityEndEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` |
| EntityName string `protobuf:"bytes,2,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` |
| Skip *Skip `protobuf:"bytes,3,opt,name=skip,proto3" json:"skip,omitempty"` |
| TimingLog *TimingLog `protobuf:"bytes,4,opt,name=timing_log,json=timingLog,proto3" json:"timing_log,omitempty"` |
| } |
| |
| func (x *EntityEndEvent) Reset() { |
| *x = EntityEndEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[37] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityEndEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityEndEvent) ProtoMessage() {} |
| |
| func (x *EntityEndEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityEndEvent.ProtoReflect.Descriptor instead. |
| func (*EntityEndEvent) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{37} |
| } |
| |
| func (x *EntityEndEvent) GetTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.Time |
| } |
| return nil |
| } |
| |
| func (x *EntityEndEvent) GetEntityName() string { |
| if x != nil { |
| return x.EntityName |
| } |
| return "" |
| } |
| |
| func (x *EntityEndEvent) GetSkip() *Skip { |
| if x != nil { |
| return x.Skip |
| } |
| return nil |
| } |
| |
| func (x *EntityEndEvent) GetTimingLog() *TimingLog { |
| if x != nil { |
| return x.TimingLog |
| } |
| return nil |
| } |
| |
| // EntityCopyEndEvent marks the end of an file copies after entity ends. |
| type EntityCopyEndEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| EntityName string `protobuf:"bytes,1,opt,name=entity_name,json=entityName,proto3" json:"entity_name,omitempty"` |
| } |
| |
| func (x *EntityCopyEndEvent) Reset() { |
| *x = EntityCopyEndEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[38] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *EntityCopyEndEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*EntityCopyEndEvent) ProtoMessage() {} |
| |
| func (x *EntityCopyEndEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 EntityCopyEndEvent.ProtoReflect.Descriptor instead. |
| func (*EntityCopyEndEvent) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{38} |
| } |
| |
| func (x *EntityCopyEndEvent) GetEntityName() string { |
| if x != nil { |
| return x.EntityName |
| } |
| return "" |
| } |
| |
| // Skip describes the reasons why an entity is skipped. |
| type Skip struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Reasons []string `protobuf:"bytes,1,rep,name=reasons,proto3" json:"reasons,omitempty"` |
| } |
| |
| func (x *Skip) Reset() { |
| *x = Skip{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[39] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Skip) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Skip) ProtoMessage() {} |
| |
| func (x *Skip) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_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 Skip.ProtoReflect.Descriptor instead. |
| func (*Skip) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{39} |
| } |
| |
| func (x *Skip) GetReasons() []string { |
| if x != nil { |
| return x.Reasons |
| } |
| return nil |
| } |
| |
| // DUTInfo holds DUT system information. |
| type DUTInfo struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Features contains features available on the DUT. |
| Features *protocol.DUTFeatures `protobuf:"bytes,4,opt,name=features,proto3" json:"features,omitempty"` |
| // OsVersion contains the DUT's OS Version. |
| OsVersion string `protobuf:"bytes,2,opt,name=os_version,json=osVersion,proto3" json:"os_version,omitempty"` |
| // DefaultBuildArtifactsUrl specifies the default URL of the build artifacts. |
| DefaultBuildArtifactsUrl string `protobuf:"bytes,3,opt,name=default_build_artifacts_url,json=defaultBuildArtifactsUrl,proto3" json:"default_build_artifacts_url,omitempty"` |
| } |
| |
| func (x *DUTInfo) Reset() { |
| *x = DUTInfo{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[40] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DUTInfo) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DUTInfo) ProtoMessage() {} |
| |
| func (x *DUTInfo) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[40] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use DUTInfo.ProtoReflect.Descriptor instead. |
| func (*DUTInfo) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{40} |
| } |
| |
| func (x *DUTInfo) GetFeatures() *protocol.DUTFeatures { |
| if x != nil { |
| return x.Features |
| } |
| return nil |
| } |
| |
| func (x *DUTInfo) GetOsVersion() string { |
| if x != nil { |
| return x.OsVersion |
| } |
| return "" |
| } |
| |
| func (x *DUTInfo) GetDefaultBuildArtifactsUrl() string { |
| if x != nil { |
| return x.DefaultBuildArtifactsUrl |
| } |
| return "" |
| } |
| |
| // SysInfoState contains the state of the DUT's system information. |
| type SysInfoState struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // LogInodeSizes maps from each log file's inode to its size in bytes. |
| LogInodeSizes map[uint64]int64 `protobuf:"bytes,1,rep,name=log_inode_sizes,json=logInodeSizes,proto3" json:"log_inode_sizes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` |
| // UnifiedLogCursor contains an opaque cursor pointing at the current tip of |
| // unified system logs. |
| UnifiedLogCursor string `protobuf:"bytes,2,opt,name=unified_log_cursor,json=unifiedLogCursor,proto3" json:"unified_log_cursor,omitempty"` |
| // CrashFilePaths contains absolute paths to crash files. |
| CrashFilePaths []string `protobuf:"bytes,3,rep,name=crash_file_paths,json=crashFilePaths,proto3" json:"crash_file_paths,omitempty"` |
| } |
| |
| func (x *SysInfoState) Reset() { |
| *x = SysInfoState{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[41] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SysInfoState) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SysInfoState) ProtoMessage() {} |
| |
| func (x *SysInfoState) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[41] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SysInfoState.ProtoReflect.Descriptor instead. |
| func (*SysInfoState) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{41} |
| } |
| |
| func (x *SysInfoState) GetLogInodeSizes() map[uint64]int64 { |
| if x != nil { |
| return x.LogInodeSizes |
| } |
| return nil |
| } |
| |
| func (x *SysInfoState) GetUnifiedLogCursor() string { |
| if x != nil { |
| return x.UnifiedLogCursor |
| } |
| return "" |
| } |
| |
| func (x *SysInfoState) GetCrashFilePaths() []string { |
| if x != nil { |
| return x.CrashFilePaths |
| } |
| return nil |
| } |
| |
| type StackOperationRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Type: |
| // |
| // *StackOperationRequest_Reset_ |
| // *StackOperationRequest_PreTest |
| // *StackOperationRequest_PostTest |
| // *StackOperationRequest_Status |
| // *StackOperationRequest_SetDirty |
| // *StackOperationRequest_Errors |
| // *StackOperationRequest_Value |
| Type isStackOperationRequest_Type `protobuf_oneof:"type"` |
| } |
| |
| func (x *StackOperationRequest) Reset() { |
| *x = StackOperationRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[42] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackOperationRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackOperationRequest) ProtoMessage() {} |
| |
| func (x *StackOperationRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[42] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use StackOperationRequest.ProtoReflect.Descriptor instead. |
| func (*StackOperationRequest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{42} |
| } |
| |
| func (m *StackOperationRequest) GetType() isStackOperationRequest_Type { |
| if m != nil { |
| return m.Type |
| } |
| return nil |
| } |
| |
| func (x *StackOperationRequest) GetReset_() *StackReset { |
| if x, ok := x.GetType().(*StackOperationRequest_Reset_); ok { |
| return x.Reset_ |
| } |
| return nil |
| } |
| |
| func (x *StackOperationRequest) GetPreTest() *StackPreTest { |
| if x, ok := x.GetType().(*StackOperationRequest_PreTest); ok { |
| return x.PreTest |
| } |
| return nil |
| } |
| |
| func (x *StackOperationRequest) GetPostTest() *StackPostTest { |
| if x, ok := x.GetType().(*StackOperationRequest_PostTest); ok { |
| return x.PostTest |
| } |
| return nil |
| } |
| |
| func (x *StackOperationRequest) GetStatus() *StackGetStatus { |
| if x, ok := x.GetType().(*StackOperationRequest_Status); ok { |
| return x.Status |
| } |
| return nil |
| } |
| |
| func (x *StackOperationRequest) GetSetDirty() *StackSetDirty { |
| if x, ok := x.GetType().(*StackOperationRequest_SetDirty); ok { |
| return x.SetDirty |
| } |
| return nil |
| } |
| |
| func (x *StackOperationRequest) GetErrors() *StackGetErrors { |
| if x, ok := x.GetType().(*StackOperationRequest_Errors); ok { |
| return x.Errors |
| } |
| return nil |
| } |
| |
| func (x *StackOperationRequest) GetValue() *StackValue { |
| if x, ok := x.GetType().(*StackOperationRequest_Value); ok { |
| return x.Value |
| } |
| return nil |
| } |
| |
| type isStackOperationRequest_Type interface { |
| isStackOperationRequest_Type() |
| } |
| |
| type StackOperationRequest_Reset_ struct { |
| Reset_ *StackReset `protobuf:"bytes,1,opt,name=reset,proto3,oneof"` |
| } |
| |
| type StackOperationRequest_PreTest struct { |
| PreTest *StackPreTest `protobuf:"bytes,2,opt,name=pre_test,json=preTest,proto3,oneof"` |
| } |
| |
| type StackOperationRequest_PostTest struct { |
| PostTest *StackPostTest `protobuf:"bytes,3,opt,name=post_test,json=postTest,proto3,oneof"` |
| } |
| |
| type StackOperationRequest_Status struct { |
| Status *StackGetStatus `protobuf:"bytes,4,opt,name=status,proto3,oneof"` |
| } |
| |
| type StackOperationRequest_SetDirty struct { |
| SetDirty *StackSetDirty `protobuf:"bytes,5,opt,name=set_dirty,json=setDirty,proto3,oneof"` |
| } |
| |
| type StackOperationRequest_Errors struct { |
| Errors *StackGetErrors `protobuf:"bytes,6,opt,name=errors,proto3,oneof"` |
| } |
| |
| type StackOperationRequest_Value struct { |
| Value *StackValue `protobuf:"bytes,7,opt,name=value,proto3,oneof"` |
| } |
| |
| func (*StackOperationRequest_Reset_) isStackOperationRequest_Type() {} |
| |
| func (*StackOperationRequest_PreTest) isStackOperationRequest_Type() {} |
| |
| func (*StackOperationRequest_PostTest) isStackOperationRequest_Type() {} |
| |
| func (*StackOperationRequest_Status) isStackOperationRequest_Type() {} |
| |
| func (*StackOperationRequest_SetDirty) isStackOperationRequest_Type() {} |
| |
| func (*StackOperationRequest_Errors) isStackOperationRequest_Type() {} |
| |
| func (*StackOperationRequest_Value) isStackOperationRequest_Type() {} |
| |
| type StackReset struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *StackReset) Reset() { |
| *x = StackReset{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[43] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackReset) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackReset) ProtoMessage() {} |
| |
| func (x *StackReset) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[43] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use StackReset.ProtoReflect.Descriptor instead. |
| func (*StackReset) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{43} |
| } |
| |
| type StackPreTest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` |
| HasError bool `protobuf:"varint,2,opt,name=has_error,json=hasError,proto3" json:"has_error,omitempty"` |
| } |
| |
| func (x *StackPreTest) Reset() { |
| *x = StackPreTest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[44] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackPreTest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackPreTest) ProtoMessage() {} |
| |
| func (x *StackPreTest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[44] |
| 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 StackPreTest.ProtoReflect.Descriptor instead. |
| func (*StackPreTest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{44} |
| } |
| |
| func (x *StackPreTest) GetEntity() *Entity { |
| if x != nil { |
| return x.Entity |
| } |
| return nil |
| } |
| |
| func (x *StackPreTest) GetHasError() bool { |
| if x != nil { |
| return x.HasError |
| } |
| return false |
| } |
| |
| type StackPostTest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` |
| HasError bool `protobuf:"varint,2,opt,name=has_error,json=hasError,proto3" json:"has_error,omitempty"` |
| } |
| |
| func (x *StackPostTest) Reset() { |
| *x = StackPostTest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[45] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackPostTest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackPostTest) ProtoMessage() {} |
| |
| func (x *StackPostTest) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[45] |
| 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 StackPostTest.ProtoReflect.Descriptor instead. |
| func (*StackPostTest) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{45} |
| } |
| |
| func (x *StackPostTest) GetEntity() *Entity { |
| if x != nil { |
| return x.Entity |
| } |
| return nil |
| } |
| |
| func (x *StackPostTest) GetHasError() bool { |
| if x != nil { |
| return x.HasError |
| } |
| return false |
| } |
| |
| type StackGetStatus struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *StackGetStatus) Reset() { |
| *x = StackGetStatus{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[46] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackGetStatus) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackGetStatus) ProtoMessage() {} |
| |
| func (x *StackGetStatus) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[46] |
| 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 StackGetStatus.ProtoReflect.Descriptor instead. |
| func (*StackGetStatus) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{46} |
| } |
| |
| type StackSetDirty struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Dirty bool `protobuf:"varint,1,opt,name=dirty,proto3" json:"dirty,omitempty"` |
| } |
| |
| func (x *StackSetDirty) Reset() { |
| *x = StackSetDirty{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[47] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackSetDirty) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackSetDirty) ProtoMessage() {} |
| |
| func (x *StackSetDirty) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[47] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use StackSetDirty.ProtoReflect.Descriptor instead. |
| func (*StackSetDirty) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{47} |
| } |
| |
| func (x *StackSetDirty) GetDirty() bool { |
| if x != nil { |
| return x.Dirty |
| } |
| return false |
| } |
| |
| type StackGetErrors struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *StackGetErrors) Reset() { |
| *x = StackGetErrors{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[48] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackGetErrors) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackGetErrors) ProtoMessage() {} |
| |
| func (x *StackGetErrors) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[48] |
| 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 StackGetErrors.ProtoReflect.Descriptor instead. |
| func (*StackGetErrors) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{48} |
| } |
| |
| type StackValue struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *StackValue) Reset() { |
| *x = StackValue{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[49] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackValue) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackValue) ProtoMessage() {} |
| |
| func (x *StackValue) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[49] |
| 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 StackValue.ProtoReflect.Descriptor instead. |
| func (*StackValue) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{49} |
| } |
| |
| type StackOperationResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // FatalError is an framework internal error happened during operation. |
| FatalError string `protobuf:"bytes,1,opt,name=fatal_error,json=fatalError,proto3" json:"fatal_error,omitempty"` |
| // Status is a response for StackGetStatus request. |
| // It's also populated in Reset's response. |
| Status StackStatus `protobuf:"varint,2,opt,name=status,proto3,enum=tast.core.StackStatus" json:"status,omitempty"` |
| // Errors is a response for StackGetErrors request. |
| Errors []*Error `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` |
| // TestHasError is a response for StackPreTest and StackPostTest request. |
| TestHasError bool `protobuf:"varint,4,opt,name=test_has_error,json=testHasError,proto3" json:"test_has_error,omitempty"` |
| // FixtValue is the serialized fixture value of the fixture in current stack. |
| FixtValue []byte `protobuf:"bytes,5,opt,name=fixt_value,json=fixtValue,proto3" json:"fixt_value,omitempty"` |
| } |
| |
| func (x *StackOperationResponse) Reset() { |
| *x = StackOperationResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[50] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StackOperationResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StackOperationResponse) ProtoMessage() {} |
| |
| func (x *StackOperationResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[50] |
| 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 StackOperationResponse.ProtoReflect.Descriptor instead. |
| func (*StackOperationResponse) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{50} |
| } |
| |
| func (x *StackOperationResponse) GetFatalError() string { |
| if x != nil { |
| return x.FatalError |
| } |
| return "" |
| } |
| |
| func (x *StackOperationResponse) GetStatus() StackStatus { |
| if x != nil { |
| return x.Status |
| } |
| return StackStatus_GREEN |
| } |
| |
| func (x *StackOperationResponse) GetErrors() []*Error { |
| if x != nil { |
| return x.Errors |
| } |
| return nil |
| } |
| |
| func (x *StackOperationResponse) GetTestHasError() bool { |
| if x != nil { |
| return x.TestHasError |
| } |
| return false |
| } |
| |
| func (x *StackOperationResponse) GetFixtValue() []byte { |
| if x != nil { |
| return x.FixtValue |
| } |
| return nil |
| } |
| |
| type HeartbeatEvent struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` |
| } |
| |
| func (x *HeartbeatEvent) Reset() { |
| *x = HeartbeatEvent{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[51] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *HeartbeatEvent) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*HeartbeatEvent) ProtoMessage() {} |
| |
| func (x *HeartbeatEvent) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[51] |
| 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 HeartbeatEvent.ProtoReflect.Descriptor instead. |
| func (*HeartbeatEvent) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{51} |
| } |
| |
| func (x *HeartbeatEvent) GetTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.Time |
| } |
| return nil |
| } |
| |
| // A string key-value pair. |
| type StringPair struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Regex: ^[a-z][a-z0-9_]*(/[a-z][a-z0-9_]*)*$ |
| // Max length: 64. |
| Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` |
| // Max length: 256. |
| Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
| } |
| |
| func (x *StringPair) Reset() { |
| *x = StringPair{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testing_proto_msgTypes[52] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StringPair) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StringPair) ProtoMessage() {} |
| |
| func (x *StringPair) ProtoReflect() protoreflect.Message { |
| mi := &file_testing_proto_msgTypes[52] |
| 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 StringPair.ProtoReflect.Descriptor instead. |
| func (*StringPair) Descriptor() ([]byte, []int) { |
| return file_testing_proto_rawDescGZIP(), []int{52} |
| } |
| |
| func (x *StringPair) GetKey() string { |
| if x != nil { |
| return x.Key |
| } |
| return "" |
| } |
| |
| func (x *StringPair) GetValue() string { |
| if x != nil { |
| return x.Value |
| } |
| return "" |
| } |
| |
| var File_testing_proto protoreflect.FileDescriptor |
| |
| var file_testing_proto_rawDesc = []byte{ |
| 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, |
| 0x09, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 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, 0x1a, 0x3e, 0x67, 0x6f, 0x2e, |
| 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x74, 0x61, 0x73, |
| 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, |
| 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x64, 0x75, 0x74, 0x66, 0x65, 0x61, |
| 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x66, 0x65, 0x61, |
| 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x6c, 0x6f, 0x67, |
| 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a, 0x13, 0x4c, 0x69, |
| 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, |
| 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, |
| 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, |
| 0x22, 0x4d, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, |
| 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, |
| 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x45, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, |
| 0x1a, 0x0a, 0x18, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, |
| 0x56, 0x61, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x26, 0x0a, 0x10, 0x47, |
| 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x12, |
| 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, |
| 0x61, 0x6d, 0x65, 0x22, 0x4c, 0x0a, 0x19, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x75, 0x6e, |
| 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, |
| 0x12, 0x2f, 0x0a, 0x04, 0x76, 0x61, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, |
| 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, |
| 0x6c, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x72, 0x52, 0x04, 0x76, 0x61, 0x72, |
| 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x65, 0x73, |
| 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, |
| 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, |
| 0x74, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x75, 0x6e, 0x54, 0x65, 0x73, |
| 0x74, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x5d, 0x0a, 0x18, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, |
| 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, |
| 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, |
| 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x73, |
| 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x04, 0x08, |
| 0x02, 0x10, 0x03, 0x22, 0x9a, 0x04, 0x0a, 0x10, 0x52, 0x75, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x73, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x5f, |
| 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x61, 0x73, 0x74, |
| 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, |
| 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x12, 0x40, 0x0a, 0x0c, 0x65, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, |
| 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, |
| 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3a, 0x0a, |
| 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, |
| 0x74, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, |
| 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x12, 0x40, 0x0a, 0x0c, 0x65, 0x6e, 0x74, |
| 0x69, 0x74, 0x79, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x1b, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, |
| 0x74, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, |
| 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x0a, 0x65, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, |
| 0x74, 0x79, 0x45, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x65, 0x6e, |
| 0x74, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x64, 0x12, 0x47, 0x0a, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, |
| 0x79, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, |
| 0x69, 0x74, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x45, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, |
| 0x00, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x70, 0x79, 0x45, 0x6e, 0x64, |
| 0x12, 0x4b, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x61, 0x73, 0x74, |
| 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, |
| 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, |
| 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, |
| 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x68, |
| 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, |
| 0x22, 0x57, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x44, 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x75, |
| 0x73, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, |
| 0x65, 0x78, 0x74, 0x72, 0x61, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x0a, |
| 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, |
| 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x12, 0x47, 0x65, 0x74, |
| 0x44, 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, |
| 0x2d, 0x0a, 0x08, 0x64, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x55, |
| 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x64, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x18, |
| 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, |
| 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, |
| 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, |
| 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, |
| 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, |
| 0x74, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x79, 0x73, |
| 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x69, |
| 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, |
| 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x69, 0x6e, 0x69, |
| 0x74, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x4e, 0x0a, 0x16, 0x43, 0x6f, 0x6c, |
| 0x6c, 0x65, 0x63, 0x74, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, |
| 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x44, 0x69, 0x72, 0x12, 0x1b, 0x0a, 0x09, |
| 0x63, 0x72, 0x61, 0x73, 0x68, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x08, 0x63, 0x72, 0x61, 0x73, 0x68, 0x44, 0x69, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x1d, 0x44, 0x6f, |
| 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, |
| 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0e, 0x73, |
| 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, |
| 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, |
| 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x12, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, |
| 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x41, |
| 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x22, 0x20, 0x0a, 0x1e, 0x44, 0x6f, |
| 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, |
| 0x64, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, 0x11, |
| 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x40, 0x0a, |
| 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, |
| 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, |
| 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, |
| 0xc1, 0x04, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, |
| 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, |
| 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, |
| 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, |
| 0x6b, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, |
| 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, |
| 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, |
| 0x74, 0x65, 0x73, 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, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, |
| 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x12, |
| 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, |
| 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, |
| 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, |
| 0x63, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, |
| 0x65, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, 0x08, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, |
| 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x52, |
| 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0b, 0x6c, 0x65, 0x67, |
| 0x61, 0x63, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, |
| 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, |
| 0x79, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6c, 0x65, 0x67, |
| 0x61, 0x63, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, |
| 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, |
| 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, |
| 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x6c, 0x61, 0x67, |
| 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x64, 0x5f, 0x64, 0x65, |
| 0x70, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x42, 0x65, |
| 0x64, 0x44, 0x65, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, |
| 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x71, |
| 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x75, 0x67, |
| 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0c, 0x62, 0x75, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x23, |
| 0x0a, 0x0d, 0x6c, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, |
| 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x53, 0x74, 0x61, |
| 0x74, 0x75, 0x73, 0x22, 0x28, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, |
| 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, |
| 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x4f, 0x0a, |
| 0x12, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, |
| 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x65, |
| 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, |
| 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, |
| 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22, 0xc7, |
| 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x44, |
| 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, |
| 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, |
| 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x72, |
| 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, |
| 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, |
| 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, |
| 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, |
| 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x44, 0x65, 0x70, 0x73, |
| 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x0c, 0x52, 0x75, 0x6e, |
| 0x54, 0x65, 0x73, 0x74, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x72, 0x75, 0x6e, |
| 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, |
| 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, |
| 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, |
| 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, |
| 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xb5, 0x06, 0x0a, 0x09, |
| 0x52, 0x75, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x65, 0x73, |
| 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x65, 0x73, 0x74, 0x73, 0x12, |
| 0x2d, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, |
| 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x72, |
| 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x04, 0x64, 0x69, 0x72, 0x73, 0x12, 0x2f, |
| 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x13, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, |
| 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, |
| 0x3f, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, |
| 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x12, 0x43, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, |
| 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4c, 0x0a, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, |
| 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, |
| 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, |
| 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, |
| 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, |
| 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, |
| 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, |
| 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x28, 0x0a, |
| 0x10, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x64, |
| 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x55, 0x6e, 0x74, |
| 0x69, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, |
| 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x62, |
| 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x51, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, |
| 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, |
| 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, |
| 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x74, 0x61, 0x72, |
| 0x67, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x61, 0x73, 0x74, |
| 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3a, 0x0a, |
| 0x0b, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, |
| 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x14, 0x6d, 0x61, 0x78, |
| 0x5f, 0x73, 0x79, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x69, 0x7a, |
| 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x53, 0x79, 0x73, 0x4d, |
| 0x73, 0x67, 0x4c, 0x6f, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x52, 0x0a, 0x18, 0x77, 0x61, 0x69, |
| 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x74, 0x69, |
| 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x77, 0x61, 0x69, 0x74, 0x55, 0x6e, 0x74, 0x69, |
| 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4a, 0x04, 0x08, |
| 0x06, 0x10, 0x07, 0x22, 0xb6, 0x04, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, |
| 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x73, 0x65, |
| 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, |
| 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x69, 0x72, 0x73, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, |
| 0x65, 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, |
| 0x52, 0x04, 0x64, 0x69, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, |
| 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, |
| 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x65, 0x73, |
| 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, |
| 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, |
| 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, |
| 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, |
| 0x72, 0x6f, 0x78, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, |
| 0x79, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, |
| 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 0x69, |
| 0x74, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x3a, 0x0a, 0x0b, 0x6d, |
| 0x73, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, |
| 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6d, 0x73, 0x67, |
| 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x51, 0x0a, 0x17, 0x73, 0x79, 0x73, 0x74, 0x65, |
| 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, |
| 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, |
| 0x63, 0x65, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x52, 0x0a, 0x18, 0x77, 0x61, |
| 0x69, 0x74, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x74, |
| 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, |
| 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x77, 0x61, 0x69, 0x74, 0x55, 0x6e, 0x74, |
| 0x69, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x26, |
| 0x0a, 0x0e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, |
| 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, |
| 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x42, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, |
| 0x75, 0x69, 0x6c, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x22, 0x5f, 0x0a, 0x0e, |
| 0x52, 0x75, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x19, |
| 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x44, 0x69, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x75, 0x74, |
| 0x5f, 0x64, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x44, |
| 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x44, 0x69, 0x72, 0x22, 0x9f, 0x03, |
| 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, |
| 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, |
| 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, |
| 0x1d, 0x0a, 0x0a, 0x74, 0x6c, 0x77, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6c, 0x77, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x22, |
| 0x0a, 0x0d, 0x74, 0x6c, 0x77, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x6c, 0x77, 0x53, 0x65, 0x6c, 0x66, 0x4e, 0x61, |
| 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x74, 0x6c, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, |
| 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x6c, 0x77, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, |
| 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x75, 0x74, |
| 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, |
| 0x75, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x75, 0x73, 0x65, 0x5f, |
| 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x76, 0x73, 0x65, 0x72, |
| 0x76, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x75, 0x73, 0x65, 0x45, |
| 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x44, 0x65, 0x76, 0x73, 0x65, 0x72, 0x76, 0x65, |
| 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x07, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x73, 0x74, 0x44, 0x69, 0x72, 0x12, 0x32, 0x0a, |
| 0x15, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x65, 0x78, |
| 0x74, 0x72, 0x61, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, |
| 0x6b, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x77, 0x61, 0x72, 0x6d, |
| 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x22, |
| 0x7e, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x6f, |
| 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, |
| 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, |
| 0x65, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, |
| 0x2e, 0x0a, 0x13, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, |
| 0x74, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x55, 0x72, 0x6c, 0x22, |
| 0x51, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x53, |
| 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, |
| 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, |
| 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, |
| 0x72, 0x73, 0x22, 0x55, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, |
| 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, |
| 0x73, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, |
| 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, |
| 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x0d, 0x45, 0x72, 0x72, |
| 0x6f, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, |
| 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, |
| 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6c, 0x69, |
| 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0xa2, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, |
| 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x06, 0x65, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, |
| 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, |
| 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, |
| 0x2e, 0x53, 0x6b, 0x69, 0x70, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x68, |
| 0x6f, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x12, |
| 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, |
| 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x61, |
| 0x72, 0x74, 0x46, 0x69, 0x78, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x37, 0x0a, |
| 0x09, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x72, 0x6f, |
| 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, |
| 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x67, 0x65, |
| 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0xc7, 0x01, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x69, 0x6e, |
| 0x67, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, |
| 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, |
| 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, |
| 0x65, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x08, |
| 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, |
| 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, |
| 0x67, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, |
| 0x22, 0x7c, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, |
| 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, |
| 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, |
| 0x65, 0x78, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, |
| 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x86, |
| 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x76, |
| 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, 0x74, |
| 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, |
| 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x17, |
| 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x06, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x72, 0x22, 0xa0, 0x01, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x69, |
| 0x74, 0x79, 0x4c, 0x6f, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, |
| 0x6d, 0x65, 0x18, 0x01, 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, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, |
| 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, |
| 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, |
| 0x29, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, |
| 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, |
| 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8b, 0x01, 0x0a, 0x10, 0x45, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, |
| 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, |
| 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, |
| 0x12, 0x26, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x10, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, |
| 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x45, 0x6e, 0x74, |
| 0x69, 0x74, 0x79, 0x45, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, |
| 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x04, |
| 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x61, 0x73, |
| 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x6b, 0x69, 0x70, 0x52, 0x04, 0x73, 0x6b, 0x69, |
| 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x18, |
| 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, |
| 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x52, 0x09, 0x74, 0x69, 0x6d, |
| 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x22, 0x35, 0x0a, 0x12, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, |
| 0x43, 0x6f, 0x70, 0x79, 0x45, 0x6e, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, |
| 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x0a, |
| 0x04, 0x53, 0x6b, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, |
| 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x22, |
| 0xa1, 0x01, 0x0a, 0x07, 0x44, 0x55, 0x54, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x08, 0x66, |
| 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, |
| 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x44, 0x55, 0x54, 0x46, 0x65, 0x61, |
| 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, |
| 0x1d, 0x0a, 0x0a, 0x6f, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, |
| 0x0a, 0x1b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, |
| 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x55, 0x72, 0x6c, 0x4a, 0x04, 0x08, |
| 0x01, 0x10, 0x02, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, |
| 0x74, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x6e, 0x6f, 0x64, |
| 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, |
| 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x66, |
| 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x53, |
| 0x69, 0x7a, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x67, 0x49, 0x6e, |
| 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x6e, 0x69, 0x66, |
| 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x6f, 0x67, |
| 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x72, 0x61, 0x73, 0x68, 0x5f, |
| 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, |
| 0x52, 0x0e, 0x63, 0x72, 0x61, 0x73, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, |
| 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x7a, 0x65, |
| 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, |
| 0x38, 0x01, 0x22, 0x8f, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x05, |
| 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x61, |
| 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, |
| 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, |
| 0x72, 0x65, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, |
| 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x50, |
| 0x72, 0x65, 0x54, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x65, 0x54, 0x65, 0x73, |
| 0x74, 0x12, 0x37, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, |
| 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x48, 0x00, |
| 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, |
| 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x53, |
| 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, |
| 0x37, 0x0a, 0x09, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, |
| 0x74, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x74, 0x44, 0x69, 0x72, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, |
| 0x73, 0x65, 0x74, 0x44, 0x69, 0x72, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, |
| 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, |
| 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x45, 0x72, 0x72, |
| 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x2d, 0x0a, |
| 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, |
| 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x56, 0x61, |
| 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x06, 0x0a, 0x04, |
| 0x74, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, |
| 0x65, 0x74, 0x22, 0x56, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x50, 0x72, 0x65, 0x54, 0x65, |
| 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, |
| 0x09, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, |
| 0x52, 0x08, 0x68, 0x61, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x57, 0x0a, 0x0d, 0x53, 0x74, |
| 0x61, 0x63, 0x6b, 0x50, 0x6f, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x65, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, |
| 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, |
| 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x72, |
| 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x45, 0x72, |
| 0x72, 0x6f, 0x72, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x47, 0x65, 0x74, 0x53, |
| 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x25, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x53, 0x65, |
| 0x74, 0x44, 0x69, 0x72, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18, |
| |