blob: 3f0f0c739cd4890b9da14a83851b307eda75b786 [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// 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.25.0-devel
// protoc v3.6.1
// source: test_platform/analytics/result.proto
package analytics
import (
timestamp "github.com/golang/protobuf/ptypes/timestamp"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
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)
)
// TestPlanRun represents the test request defined by users and its running
// status.
type TestPlanRun struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A unique name to identify this test plan run, format
// "testPlanRuns/CTP_BUILD_ID/REQ_KEY", where REQ_KEY is the CTP
// request’s key in the multiple-request,
// e.g. "testPlanRuns/8879199769272202448/octopus_ampton"
// Required field.
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"`
// CTP build ID.
BuildId int64 `protobuf:"varint,2,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
// Suite name. If the test plan is running an autotest suite,
// this field is the autotest suite name, e.g. wifi_interop.
Suite string `protobuf:"bytes,3,opt,name=suite,proto3" json:"suite,omitempty"`
// Human friendly url to access this run.
ExecutionUrl string `protobuf:"bytes,4,opt,name=execution_url,json=executionUrl,proto3" json:"execution_url,omitempty"`
// The dut_pool in which the test plan ran, e.g. "DUT_POOL_QUOTA" or
// "wificell".
// It is case sensitive: "WIFICELL" and "wificell" represent different
// pools.
// Note that legacy pools "suites", "bvt" and "pcq" have been integrated
// into "DUT_POOL_QUOTA" and legacy pool "cts" has been renamed to
// "DUT_POOL_CTS".
DutPool string `protobuf:"bytes,5,opt,name=dut_pool,json=dutPool,proto3" json:"dut_pool,omitempty"`
// The build target, a.k.a board name, e.g. "hatch", "octopus".
BuildTarget string `protobuf:"bytes,6,opt,name=build_target,json=buildTarget,proto3" json:"build_target,omitempty"`
// CrOS build version, e.g. "R84/13091.0.0".
ChromeosBuild string `protobuf:"bytes,7,opt,name=chromeos_build,json=chromeosBuild,proto3" json:"chromeos_build,omitempty"`
Status *Status `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"`
// Use create_time/start_time/end_time below.
// Timestamp inside a struct can not be used to
// partition a Bigquery table.
//
// Deprecated: Do not use.
Timeline *Timeline `protobuf:"bytes,9,opt,name=timeline,proto3" json:"timeline,omitempty"`
// Time the CTP build was requested.
//
// Current CTP implementation does not report a single CTP request's timeline
// Thus, we use the CTP build's timeline to preent a Test Plan Run's lifecycle.
//
// BigQuery: Table partitioned on this field.
CreateTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Time the CTP build began to execute in a bot.
StartTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Time the CTP build completed, unset if the task was
// stopped unexpectedly before its completion.
EndTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
}
func (x *TestPlanRun) Reset() {
*x = TestPlanRun{}
if protoimpl.UnsafeEnabled {
mi := &file_test_platform_analytics_result_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TestPlanRun) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TestPlanRun) ProtoMessage() {}
func (x *TestPlanRun) ProtoReflect() protoreflect.Message {
mi := &file_test_platform_analytics_result_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 TestPlanRun.ProtoReflect.Descriptor instead.
func (*TestPlanRun) Descriptor() ([]byte, []int) {
return file_test_platform_analytics_result_proto_rawDescGZIP(), []int{0}
}
func (x *TestPlanRun) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *TestPlanRun) GetBuildId() int64 {
if x != nil {
return x.BuildId
}
return 0
}
func (x *TestPlanRun) GetSuite() string {
if x != nil {
return x.Suite
}
return ""
}
func (x *TestPlanRun) GetExecutionUrl() string {
if x != nil {
return x.ExecutionUrl
}
return ""
}
func (x *TestPlanRun) GetDutPool() string {
if x != nil {
return x.DutPool
}
return ""
}
func (x *TestPlanRun) GetBuildTarget() string {
if x != nil {
return x.BuildTarget
}
return ""
}
func (x *TestPlanRun) GetChromeosBuild() string {
if x != nil {
return x.ChromeosBuild
}
return ""
}
func (x *TestPlanRun) GetStatus() *Status {
if x != nil {
return x.Status
}
return nil
}
// Deprecated: Do not use.
func (x *TestPlanRun) GetTimeline() *Timeline {
if x != nil {
return x.Timeline
}
return nil
}
func (x *TestPlanRun) GetCreateTime() *timestamp.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *TestPlanRun) GetStartTime() *timestamp.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *TestPlanRun) GetEndTime() *timestamp.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
// TestRun contains Skylab task level information.
type TestRun struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Test runner build ID.
BuildId int64 `protobuf:"varint,1,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
// The name of the Skylab task corresponding to the test run, e.g.
// "tast.critical-chrome".
//
// For tasks containing a single test case, will generally be the same as the
// name of that test case, e.g. "provision_AutoUpdate.double".
// Required field.
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
// Human friendly url to access this run.
ExecutionUrl string `protobuf:"bytes,3,opt,name=execution_url,json=executionUrl,proto3" json:"execution_url,omitempty"`
// The TestPlanRun.uid of the parent test plan run.
ParentUid string `protobuf:"bytes,4,opt,name=parent_uid,json=parentUid,proto3" json:"parent_uid,omitempty"`
// Model name, e.g. "helios", "mimrock".
// Note that a single TestPlanRun may be spread across multiple models, if
// the test plan request did not specify a model to run.
Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"`
// Use create_time/start_time/end_time below.
// Timestamp inside a struct can not be used to
// partition a Bigquery table.
//
// Deprecated: Do not use.
Timeline *Timeline `protobuf:"bytes,6,opt,name=timeline,proto3" json:"timeline,omitempty"`
Status *Status `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"`
Verdict *Verdict `protobuf:"bytes,8,opt,name=verdict,proto3" json:"verdict,omitempty"`
// The URL for the entire logs of this run.
FullLogUrl string `protobuf:"bytes,9,opt,name=full_log_url,json=fullLogUrl,proto3" json:"full_log_url,omitempty"`
Prejob *TestRun_Prejob `protobuf:"bytes,10,opt,name=prejob,proto3" json:"prejob,omitempty"`
// Time the test runner build was requested.
//
// TestRun's Bigquery table partitions on this field.
CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Time the test runner build began to execute in a bot.
StartTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Time the test runner build completed, unset if the task was
// stopped unexpectedly before its completion.
EndTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
}
func (x *TestRun) Reset() {
*x = TestRun{}
if protoimpl.UnsafeEnabled {
mi := &file_test_platform_analytics_result_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TestRun) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TestRun) ProtoMessage() {}
func (x *TestRun) ProtoReflect() protoreflect.Message {
mi := &file_test_platform_analytics_result_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 TestRun.ProtoReflect.Descriptor instead.
func (*TestRun) Descriptor() ([]byte, []int) {
return file_test_platform_analytics_result_proto_rawDescGZIP(), []int{1}
}
func (x *TestRun) GetBuildId() int64 {
if x != nil {
return x.BuildId
}
return 0
}
func (x *TestRun) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *TestRun) GetExecutionUrl() string {
if x != nil {
return x.ExecutionUrl
}
return ""
}
func (x *TestRun) GetParentUid() string {
if x != nil {
return x.ParentUid
}
return ""
}
func (x *TestRun) GetModel() string {
if x != nil {
return x.Model
}
return ""
}
// Deprecated: Do not use.
func (x *TestRun) GetTimeline() *Timeline {
if x != nil {
return x.Timeline
}
return nil
}
func (x *TestRun) GetStatus() *Status {
if x != nil {
return x.Status
}
return nil
}
func (x *TestRun) GetVerdict() *Verdict {
if x != nil {
return x.Verdict
}
return nil
}
func (x *TestRun) GetFullLogUrl() string {
if x != nil {
return x.FullLogUrl
}
return ""
}
func (x *TestRun) GetPrejob() *TestRun_Prejob {
if x != nil {
return x.Prejob
}
return nil
}
func (x *TestRun) GetCreateTime() *timestamp.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *TestRun) GetStartTime() *timestamp.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *TestRun) GetEndTime() *timestamp.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
// TestCaseResult describes the result of an individual test case.
type TestCaseResult struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A unique name for this test case run,
// format "testCaseResults/TEST_RUNNER_BUILD_ID/TEST_CASE_NAME", e.g.
// "testCaseResults/8879199769272202448/provision_AutoUpdate.double".
// Required field.
Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"`
// Test case name as it appears in status.log,
// e.g. "provision_AutoUpdate.double".
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
// The TestRun.build_id of the parent test run.
ParentBuildId int64 `protobuf:"varint,3,opt,name=parent_build_id,json=parentBuildId,proto3" json:"parent_build_id,omitempty"`
Verdict *Verdict `protobuf:"bytes,4,opt,name=verdict,proto3" json:"verdict,omitempty"`
// A one line human readable description of what happened during test
// case execution (e.g. error/warning message). Not intended to be machine
// parseable. There's no guarantee that a given root cause will always
// resolve to the same summary.
HumanReadableSummary string `protobuf:"bytes,5,opt,name=human_readable_summary,json=humanReadableSummary,proto3" json:"human_readable_summary,omitempty"`
// Time this test case was generated, which equals its test run's
// end_time.
//
// TestCaseResult's Bigquery table partitions on this field.
CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
}
func (x *TestCaseResult) Reset() {
*x = TestCaseResult{}
if protoimpl.UnsafeEnabled {
mi := &file_test_platform_analytics_result_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TestCaseResult) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TestCaseResult) ProtoMessage() {}
func (x *TestCaseResult) ProtoReflect() protoreflect.Message {
mi := &file_test_platform_analytics_result_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 TestCaseResult.ProtoReflect.Descriptor instead.
func (*TestCaseResult) Descriptor() ([]byte, []int) {
return file_test_platform_analytics_result_proto_rawDescGZIP(), []int{2}
}
func (x *TestCaseResult) GetUid() string {
if x != nil {
return x.Uid
}
return ""
}
func (x *TestCaseResult) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *TestCaseResult) GetParentBuildId() int64 {
if x != nil {
return x.ParentBuildId
}
return 0
}
func (x *TestCaseResult) GetVerdict() *Verdict {
if x != nil {
return x.Verdict
}
return nil
}
func (x *TestCaseResult) GetHumanReadableSummary() string {
if x != nil {
return x.HumanReadableSummary
}
return ""
}
func (x *TestCaseResult) GetCreateTime() *timestamp.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
// The timeline of a task.
type Timeline struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Time the task was requested.
CreateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Time the task began to execute in a bot.
StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Time the task completed, unset if the task was
// stopped unexpectedly before its completion.
EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Time the task was stopped unexpectedly, unset if
// task has run to its end.
AbandonTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=abandon_time,json=abandonTime,proto3" json:"abandon_time,omitempty"`
}
func (x *Timeline) Reset() {
*x = Timeline{}
if protoimpl.UnsafeEnabled {
mi := &file_test_platform_analytics_result_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Timeline) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Timeline) ProtoMessage() {}
func (x *Timeline) ProtoReflect() protoreflect.Message {
mi := &file_test_platform_analytics_result_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 Timeline.ProtoReflect.Descriptor instead.
func (*Timeline) Descriptor() ([]byte, []int) {
return file_test_platform_analytics_result_proto_rawDescGZIP(), []int{3}
}
func (x *Timeline) GetCreateTime() *timestamp.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Timeline) GetStartTime() *timestamp.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *Timeline) GetEndTime() *timestamp.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *Timeline) GetAbandonTime() *timestamp.Timestamp {
if x != nil {
return x.AbandonTime
}
return nil
}
// The latest known status of a task, may change as the run progresses.
type Status struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// All the currently possible values (corresponding to
// testplatform.Taskstate.LifeCycle enum values):
// NORMAL STATUS:
//
// PENDING: task is pending somewhere and does not run.
// RUNNING: task is running.
// COMPLETED: ran to completion without being cancelled externally,
// regardless of whether it succeeded or failed. A task is completed
// only if all its sub-tasks have reached the end, either with a normal
// or abnormal status.
//
// ABNORMAL STATUS:
//
// CANCELLED: never got a chance to run, cancelled externally.
// REJECTED: never got a chance to run, rejected due to unsatisfiable
// depenedencies.
// ABORTED: started running but was cancelled externally while running.
Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *Status) Reset() {
*x = Status{}
if protoimpl.UnsafeEnabled {
mi := &file_test_platform_analytics_result_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Status) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Status) ProtoMessage() {}
func (x *Status) ProtoReflect() protoreflect.Message {
mi := &file_test_platform_analytics_result_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 Status.ProtoReflect.Descriptor instead.
func (*Status) Descriptor() ([]byte, []int) {
return file_test_platform_analytics_result_proto_rawDescGZIP(), []int{4}
}
func (x *Status) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
// The known tokens describe whether a task passed, failed, or had some other
// indefinite verdict.
type Verdict struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// All the currently possible values (corresponding to
// testplatform.Taskstate.Verdict enum values):
//
// UNSPECIFIED(default): the task produced no usable verdict (possibly
// because it never ran, or never finished, or the results were
// unparseable).
// Under most circumstances, this should be treated as a failure or
// an infrastructure failure.
// PASSED: test run definitively passed.
// FAILED: test run definitively failed.
// NO_VERDICT: the task definitively produced no verdict(for instance,
// the test is irrelevant in the given environment).
// Under most circumstances, this should be treated as a passing
// (but uninteresting).
// PASSED_ON_RETRY: the task failed, but passed after one or more retries.
Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *Verdict) Reset() {
*x = Verdict{}
if protoimpl.UnsafeEnabled {
mi := &file_test_platform_analytics_result_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Verdict) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Verdict) ProtoMessage() {}
func (x *Verdict) ProtoReflect() protoreflect.Message {
mi := &file_test_platform_analytics_result_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 Verdict.ProtoReflect.Descriptor instead.
func (*Verdict) Descriptor() ([]byte, []int) {
return file_test_platform_analytics_result_proto_rawDescGZIP(), []int{5}
}
func (x *Verdict) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
type TestRun_Prejob struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Verdict *Verdict `protobuf:"bytes,1,opt,name=verdict,proto3" json:"verdict,omitempty"`
}
func (x *TestRun_Prejob) Reset() {
*x = TestRun_Prejob{}
if protoimpl.UnsafeEnabled {
mi := &file_test_platform_analytics_result_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TestRun_Prejob) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TestRun_Prejob) ProtoMessage() {}
func (x *TestRun_Prejob) ProtoReflect() protoreflect.Message {
mi := &file_test_platform_analytics_result_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 TestRun_Prejob.ProtoReflect.Descriptor instead.
func (*TestRun_Prejob) Descriptor() ([]byte, []int) {
return file_test_platform_analytics_result_proto_rawDescGZIP(), []int{1, 0}
}
func (x *TestRun_Prejob) GetVerdict() *Verdict {
if x != nil {
return x.Verdict
}
return nil
}
var File_test_platform_analytics_result_proto protoreflect.FileDescriptor
var file_test_platform_analytics_result_proto_rawDesc = []byte{
0x0a, 0x24, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f,
0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x1a,
0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x22, 0x85, 0x04, 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x75, 0x6e,
0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a,
0x05, 0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x75,
0x69, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63,
0x75, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x75, 0x74, 0x5f,
0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x75, 0x74, 0x50,
0x6f, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x72,
0x67, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64,
0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65,
0x6f, 0x73, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x6f, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x37, 0x0a,
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x6e,
0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69,
0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69,
0x63, 0x73, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52,
0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 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, 0x0a, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 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, 0x0c, 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, 0x22, 0xb1, 0x05, 0x0a, 0x07, 0x54, 0x65, 0x73,
0x74, 0x52, 0x75, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12,
0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, 0x65, 0x63, 0x75,
0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e,
0x74, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72,
0x65, 0x6e, 0x74, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18,
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x08,
0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61,
0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e,
0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12,
0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x64,
0x69, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x73, 0x74,
0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74,
0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x52, 0x07, 0x76, 0x65, 0x72,
0x64, 0x69, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x6f, 0x67,
0x5f, 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c,
0x4c, 0x6f, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x6a, 0x6f, 0x62,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73,
0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x2e, 0x50, 0x72, 0x65, 0x6a, 0x6f, 0x62, 0x52,
0x06, 0x70, 0x72, 0x65, 0x6a, 0x6f, 0x62, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x0c, 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, 0x0d, 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, 0x1a, 0x44, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x6a, 0x6f, 0x62,
0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x64,
0x69, 0x63, 0x74, 0x52, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x22, 0x9c, 0x02, 0x0a,
0x0e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69,
0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x70,
0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x07,
0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x61, 0x6e,
0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x52,
0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x68, 0x75, 0x6d, 0x61,
0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61,
0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52,
0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x3b,
0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 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,
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x08,
0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x5f, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x69, 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, 0x3d, 0x0a, 0x0c, 0x61, 0x62, 0x61, 0x6e, 0x64,
0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x0b, 0x61, 0x62, 0x61, 0x6e, 0x64,
0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x1e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x1f, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63,
0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x43, 0x5a, 0x41, 0x67, 0x6f, 0x2e, 0x63, 0x68,
0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d,
0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
}
var (
file_test_platform_analytics_result_proto_rawDescOnce sync.Once
file_test_platform_analytics_result_proto_rawDescData = file_test_platform_analytics_result_proto_rawDesc
)
func file_test_platform_analytics_result_proto_rawDescGZIP() []byte {
file_test_platform_analytics_result_proto_rawDescOnce.Do(func() {
file_test_platform_analytics_result_proto_rawDescData = protoimpl.X.CompressGZIP(file_test_platform_analytics_result_proto_rawDescData)
})
return file_test_platform_analytics_result_proto_rawDescData
}
var file_test_platform_analytics_result_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_test_platform_analytics_result_proto_goTypes = []interface{}{
(*TestPlanRun)(nil), // 0: test_platform.analytics.TestPlanRun
(*TestRun)(nil), // 1: test_platform.analytics.TestRun
(*TestCaseResult)(nil), // 2: test_platform.analytics.TestCaseResult
(*Timeline)(nil), // 3: test_platform.analytics.Timeline
(*Status)(nil), // 4: test_platform.analytics.Status
(*Verdict)(nil), // 5: test_platform.analytics.Verdict
(*TestRun_Prejob)(nil), // 6: test_platform.analytics.TestRun.Prejob
(*timestamp.Timestamp)(nil), // 7: google.protobuf.Timestamp
}
var file_test_platform_analytics_result_proto_depIdxs = []int32{
4, // 0: test_platform.analytics.TestPlanRun.status:type_name -> test_platform.analytics.Status
3, // 1: test_platform.analytics.TestPlanRun.timeline:type_name -> test_platform.analytics.Timeline
7, // 2: test_platform.analytics.TestPlanRun.create_time:type_name -> google.protobuf.Timestamp
7, // 3: test_platform.analytics.TestPlanRun.start_time:type_name -> google.protobuf.Timestamp
7, // 4: test_platform.analytics.TestPlanRun.end_time:type_name -> google.protobuf.Timestamp
3, // 5: test_platform.analytics.TestRun.timeline:type_name -> test_platform.analytics.Timeline
4, // 6: test_platform.analytics.TestRun.status:type_name -> test_platform.analytics.Status
5, // 7: test_platform.analytics.TestRun.verdict:type_name -> test_platform.analytics.Verdict
6, // 8: test_platform.analytics.TestRun.prejob:type_name -> test_platform.analytics.TestRun.Prejob
7, // 9: test_platform.analytics.TestRun.create_time:type_name -> google.protobuf.Timestamp
7, // 10: test_platform.analytics.TestRun.start_time:type_name -> google.protobuf.Timestamp
7, // 11: test_platform.analytics.TestRun.end_time:type_name -> google.protobuf.Timestamp
5, // 12: test_platform.analytics.TestCaseResult.verdict:type_name -> test_platform.analytics.Verdict
7, // 13: test_platform.analytics.TestCaseResult.create_time:type_name -> google.protobuf.Timestamp
7, // 14: test_platform.analytics.Timeline.create_time:type_name -> google.protobuf.Timestamp
7, // 15: test_platform.analytics.Timeline.start_time:type_name -> google.protobuf.Timestamp
7, // 16: test_platform.analytics.Timeline.end_time:type_name -> google.protobuf.Timestamp
7, // 17: test_platform.analytics.Timeline.abandon_time:type_name -> google.protobuf.Timestamp
5, // 18: test_platform.analytics.TestRun.Prejob.verdict:type_name -> test_platform.analytics.Verdict
19, // [19:19] is the sub-list for method output_type
19, // [19:19] is the sub-list for method input_type
19, // [19:19] is the sub-list for extension type_name
19, // [19:19] is the sub-list for extension extendee
0, // [0:19] is the sub-list for field type_name
}
func init() { file_test_platform_analytics_result_proto_init() }
func file_test_platform_analytics_result_proto_init() {
if File_test_platform_analytics_result_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_test_platform_analytics_result_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TestPlanRun); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_test_platform_analytics_result_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TestRun); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_test_platform_analytics_result_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TestCaseResult); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_test_platform_analytics_result_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Timeline); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_test_platform_analytics_result_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Status); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_test_platform_analytics_result_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Verdict); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_test_platform_analytics_result_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TestRun_Prejob); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_test_platform_analytics_result_proto_rawDesc,
NumEnums: 0,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_test_platform_analytics_result_proto_goTypes,
DependencyIndexes: file_test_platform_analytics_result_proto_depIdxs,
MessageInfos: file_test_platform_analytics_result_proto_msgTypes,
}.Build()
File_test_platform_analytics_result_proto = out.File
file_test_platform_analytics_result_proto_rawDesc = nil
file_test_platform_analytics_result_proto_goTypes = nil
file_test_platform_analytics_result_proto_depIdxs = nil
}