go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/cv/internal/prjmanager/prjpb/storage.pb.go (about)

     1  // Copyright 2021 The LUCI Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.31.0
    18  // 	protoc        v3.21.7
    19  // source: go.chromium.org/luci/cv/internal/prjmanager/prjpb/storage.proto
    20  
    21  package prjpb
    22  
    23  import (
    24  	changelist "go.chromium.org/luci/cv/internal/changelist"
    25  	gerrit "go.chromium.org/luci/cv/internal/gerrit"
    26  	run "go.chromium.org/luci/cv/internal/run"
    27  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    28  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    29  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    30  	reflect "reflect"
    31  	sync "sync"
    32  )
    33  
    34  const (
    35  	// Verify that this generated code is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    37  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    38  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    39  )
    40  
    41  type Status int32
    42  
    43  const (
    44  	Status_STATUS_UNSPECIFIED Status = 0
    45  	Status_STARTED            Status = 1
    46  	Status_STOPPING           Status = 2
    47  	Status_STOPPED            Status = 3
    48  )
    49  
    50  // Enum value maps for Status.
    51  var (
    52  	Status_name = map[int32]string{
    53  		0: "STATUS_UNSPECIFIED",
    54  		1: "STARTED",
    55  		2: "STOPPING",
    56  		3: "STOPPED",
    57  	}
    58  	Status_value = map[string]int32{
    59  		"STATUS_UNSPECIFIED": 0,
    60  		"STARTED":            1,
    61  		"STOPPING":           2,
    62  		"STOPPED":            3,
    63  	}
    64  )
    65  
    66  func (x Status) Enum() *Status {
    67  	p := new(Status)
    68  	*p = x
    69  	return p
    70  }
    71  
    72  func (x Status) String() string {
    73  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    74  }
    75  
    76  func (Status) Descriptor() protoreflect.EnumDescriptor {
    77  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes[0].Descriptor()
    78  }
    79  
    80  func (Status) Type() protoreflect.EnumType {
    81  	return &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes[0]
    82  }
    83  
    84  func (x Status) Number() protoreflect.EnumNumber {
    85  	return protoreflect.EnumNumber(x)
    86  }
    87  
    88  // Deprecated: Use Status.Descriptor instead.
    89  func (Status) EnumDescriptor() ([]byte, []int) {
    90  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{0}
    91  }
    92  
    93  // LogReason records why a change to the project state was logged.
    94  //
    95  // See ProjectLog entity.
    96  type LogReason int32
    97  
    98  const (
    99  	LogReason_LOG_REASON_UNSPECIFIED LogReason = 0
   100  	// Due to passage of time or number of versions.
   101  	LogReason_FYI_PERIODIC   LogReason = 1
   102  	LogReason_STATUS_CHANGED LogReason = 2
   103  	LogReason_CONFIG_CHANGED LogReason = 3
   104  	// On-demand save for debugging reasons, e.g. on caught panic.
   105  	LogReason_DEBUG LogReason = 4
   106  )
   107  
   108  // Enum value maps for LogReason.
   109  var (
   110  	LogReason_name = map[int32]string{
   111  		0: "LOG_REASON_UNSPECIFIED",
   112  		1: "FYI_PERIODIC",
   113  		2: "STATUS_CHANGED",
   114  		3: "CONFIG_CHANGED",
   115  		4: "DEBUG",
   116  	}
   117  	LogReason_value = map[string]int32{
   118  		"LOG_REASON_UNSPECIFIED": 0,
   119  		"FYI_PERIODIC":           1,
   120  		"STATUS_CHANGED":         2,
   121  		"CONFIG_CHANGED":         3,
   122  		"DEBUG":                  4,
   123  	}
   124  )
   125  
   126  func (x LogReason) Enum() *LogReason {
   127  	p := new(LogReason)
   128  	*p = x
   129  	return p
   130  }
   131  
   132  func (x LogReason) String() string {
   133  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   134  }
   135  
   136  func (LogReason) Descriptor() protoreflect.EnumDescriptor {
   137  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes[1].Descriptor()
   138  }
   139  
   140  func (LogReason) Type() protoreflect.EnumType {
   141  	return &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes[1]
   142  }
   143  
   144  func (x LogReason) Number() protoreflect.EnumNumber {
   145  	return protoreflect.EnumNumber(x)
   146  }
   147  
   148  // Deprecated: Use LogReason.Descriptor instead.
   149  func (LogReason) EnumDescriptor() ([]byte, []int) {
   150  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{1}
   151  }
   152  
   153  type PCL_Status int32
   154  
   155  const (
   156  	PCL_PCL_STATUS_UNSPECIFIED PCL_Status = 0
   157  	// OK means CL metadata below is correct and CL is watched by this project.
   158  	//
   159  	// Value 0 is chosen such that it's not serialized, since this is the most
   160  	// common state.
   161  	PCL_OK PCL_Status = 0
   162  	// UNKNOWN means Datastore CL entity doesn't have the info yet.
   163  	PCL_UNKNOWN PCL_Status = 1
   164  	// UNWATCHED means CL isn't watched by this LUCI project.
   165  	PCL_UNWATCHED PCL_Status = 2
   166  	// DELETED means CL's Datastore entity got deleted.
   167  	//
   168  	// This is used to temporary mark a PCL before deleting it entirely from
   169  	// PState to avoid dangling references from components.
   170  	PCL_DELETED PCL_Status = 3
   171  )
   172  
   173  // Enum value maps for PCL_Status.
   174  var (
   175  	PCL_Status_name = map[int32]string{
   176  		0: "PCL_STATUS_UNSPECIFIED",
   177  		// Duplicate value: 0: "OK",
   178  		1: "UNKNOWN",
   179  		2: "UNWATCHED",
   180  		3: "DELETED",
   181  	}
   182  	PCL_Status_value = map[string]int32{
   183  		"PCL_STATUS_UNSPECIFIED": 0,
   184  		"OK":                     0,
   185  		"UNKNOWN":                1,
   186  		"UNWATCHED":              2,
   187  		"DELETED":                3,
   188  	}
   189  )
   190  
   191  func (x PCL_Status) Enum() *PCL_Status {
   192  	p := new(PCL_Status)
   193  	*p = x
   194  	return p
   195  }
   196  
   197  func (x PCL_Status) String() string {
   198  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   199  }
   200  
   201  func (PCL_Status) Descriptor() protoreflect.EnumDescriptor {
   202  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes[2].Descriptor()
   203  }
   204  
   205  func (PCL_Status) Type() protoreflect.EnumType {
   206  	return &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes[2]
   207  }
   208  
   209  func (x PCL_Status) Number() protoreflect.EnumNumber {
   210  	return protoreflect.EnumNumber(x)
   211  }
   212  
   213  // Deprecated: Use PCL_Status.Descriptor instead.
   214  func (PCL_Status) EnumDescriptor() ([]byte, []int) {
   215  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{2, 0}
   216  }
   217  
   218  // PState is the PM state of a specific LUCI project.
   219  //
   220  // Semantically, it's a collection of CLs somehow grouped into components (see
   221  // Component message below), each of which may have several active (a.k.a.
   222  // Incomplete) Runs valid at a specific project's config version.
   223  //
   224  // Most CLs are watched by the LUCI project, but to assist with error reporting,
   225  // it also tracks unwatched CLs if they are dependencies of some actually
   226  // watched CLs.
   227  type PState struct {
   228  	state         protoimpl.MessageState
   229  	sizeCache     protoimpl.SizeCache
   230  	unknownFields protoimpl.UnknownFields
   231  
   232  	// Name of LUCI project.
   233  	LuciProject string `protobuf:"bytes,1,opt,name=luci_project,json=luciProject,proto3" json:"luci_project,omitempty"`
   234  	// Status of the Project.
   235  	Status Status `protobuf:"varint,2,opt,name=status,proto3,enum=cv.internal.prjmanager.prjpb.Status" json:"status,omitempty"`
   236  	// Config hash pins specific project config version.
   237  	ConfigHash string `protobuf:"bytes,3,opt,name=config_hash,json=configHash,proto3" json:"config_hash,omitempty"`
   238  	// Config group names intern the names referenced in PCL entities to reduce
   239  	// memory and at-rest footprint.
   240  	//
   241  	// See also https://en.wikipedia.org/wiki/String_interning.
   242  	ConfigGroupNames []string `protobuf:"bytes,4,rep,name=config_group_names,json=configGroupNames,proto3" json:"config_group_names,omitempty"`
   243  	// PCLs are currently tracked CLs.
   244  	//
   245  	// Includes deps which are of not yet known kind (because CL doesn't yet have
   246  	// a snapshot) or unwatched.
   247  	//
   248  	// Sorted by CL ID.
   249  	Pcls []*PCL `protobuf:"bytes,11,rep,name=pcls,proto3" json:"pcls,omitempty"`
   250  	// Components are a partition of CLs in the list above.
   251  	//
   252  	// An active CL (watched or used to be watched and still member of a Run) may
   253  	// belong to at most 1 component, while unwatched dep may be referenced by
   254  	// several.
   255  	Components []*Component `protobuf:"bytes,12,rep,name=components,proto3" json:"components,omitempty"`
   256  	// PurgingCLs are CLs currently being purged.
   257  	//
   258  	// They are tracked in PState to avoid creating Runs with such CLs.
   259  	//
   260  	// A CL being purged does not necessarily have a corresponding PCL.
   261  	// A PurgingCL is kept in PState until purging process stops, regardless of
   262  	// whether purging was successful or failed.
   263  	//
   264  	// See more in PurgingCL doc.
   265  	//
   266  	// Sorted by CL ID.
   267  	PurgingCls []*PurgingCL `protobuf:"bytes,13,rep,name=purging_cls,json=purgingCls,proto3" json:"purging_cls,omitempty"`
   268  	// TriggeringCLDeps are the CLs of which deps are being triggered.
   269  	//
   270  	// They are tracked in PState to avoid creating duplicate triggering tasks.
   271  	//
   272  	// Sorted by the origin ID.
   273  	TriggeringClDeps []*TriggeringCLDeps `protobuf:"bytes,15,rep,name=triggering_cl_deps,json=triggeringClDeps,proto3" json:"triggering_cl_deps,omitempty"`
   274  	// If true, components partition must be redone as soon as possible.
   275  	RepartitionRequired bool `protobuf:"varint,21,opt,name=repartition_required,json=repartitionRequired,proto3" json:"repartition_required,omitempty"`
   276  	// PRuns which can't yet be added to any component but should be. Sorted by
   277  	// Run ID.
   278  	//
   279  	// In response to OnRunCreated event, PM may append to this list new Runs if
   280  	// either:
   281  	//   - not all Run's CLs are already known to PM;
   282  	//   - Run's CLs are currently partitioned into different components.
   283  	//
   284  	// Thus,
   285  	//   - CLs referenced by these PRuns may not be tracked;
   286  	//   - If this field is not empty, re-partioning may be required.
   287  	CreatedPruns []*PRun `protobuf:"bytes,22,rep,name=created_pruns,json=createdPruns,proto3" json:"created_pruns,omitempty"`
   288  	// If set, establishes when components should be re-evaluated.
   289  	NextEvalTime *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=next_eval_time,json=nextEvalTime,proto3" json:"next_eval_time,omitempty"`
   290  }
   291  
   292  func (x *PState) Reset() {
   293  	*x = PState{}
   294  	if protoimpl.UnsafeEnabled {
   295  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[0]
   296  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   297  		ms.StoreMessageInfo(mi)
   298  	}
   299  }
   300  
   301  func (x *PState) String() string {
   302  	return protoimpl.X.MessageStringOf(x)
   303  }
   304  
   305  func (*PState) ProtoMessage() {}
   306  
   307  func (x *PState) ProtoReflect() protoreflect.Message {
   308  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[0]
   309  	if protoimpl.UnsafeEnabled && x != nil {
   310  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   311  		if ms.LoadMessageInfo() == nil {
   312  			ms.StoreMessageInfo(mi)
   313  		}
   314  		return ms
   315  	}
   316  	return mi.MessageOf(x)
   317  }
   318  
   319  // Deprecated: Use PState.ProtoReflect.Descriptor instead.
   320  func (*PState) Descriptor() ([]byte, []int) {
   321  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{0}
   322  }
   323  
   324  func (x *PState) GetLuciProject() string {
   325  	if x != nil {
   326  		return x.LuciProject
   327  	}
   328  	return ""
   329  }
   330  
   331  func (x *PState) GetStatus() Status {
   332  	if x != nil {
   333  		return x.Status
   334  	}
   335  	return Status_STATUS_UNSPECIFIED
   336  }
   337  
   338  func (x *PState) GetConfigHash() string {
   339  	if x != nil {
   340  		return x.ConfigHash
   341  	}
   342  	return ""
   343  }
   344  
   345  func (x *PState) GetConfigGroupNames() []string {
   346  	if x != nil {
   347  		return x.ConfigGroupNames
   348  	}
   349  	return nil
   350  }
   351  
   352  func (x *PState) GetPcls() []*PCL {
   353  	if x != nil {
   354  		return x.Pcls
   355  	}
   356  	return nil
   357  }
   358  
   359  func (x *PState) GetComponents() []*Component {
   360  	if x != nil {
   361  		return x.Components
   362  	}
   363  	return nil
   364  }
   365  
   366  func (x *PState) GetPurgingCls() []*PurgingCL {
   367  	if x != nil {
   368  		return x.PurgingCls
   369  	}
   370  	return nil
   371  }
   372  
   373  func (x *PState) GetTriggeringClDeps() []*TriggeringCLDeps {
   374  	if x != nil {
   375  		return x.TriggeringClDeps
   376  	}
   377  	return nil
   378  }
   379  
   380  func (x *PState) GetRepartitionRequired() bool {
   381  	if x != nil {
   382  		return x.RepartitionRequired
   383  	}
   384  	return false
   385  }
   386  
   387  func (x *PState) GetCreatedPruns() []*PRun {
   388  	if x != nil {
   389  		return x.CreatedPruns
   390  	}
   391  	return nil
   392  }
   393  
   394  func (x *PState) GetNextEvalTime() *timestamppb.Timestamp {
   395  	if x != nil {
   396  		return x.NextEvalTime
   397  	}
   398  	return nil
   399  }
   400  
   401  type LogReasons struct {
   402  	state         protoimpl.MessageState
   403  	sizeCache     protoimpl.SizeCache
   404  	unknownFields protoimpl.UnknownFields
   405  
   406  	Reasons []LogReason `protobuf:"varint,1,rep,packed,name=reasons,proto3,enum=cv.internal.prjmanager.prjpb.LogReason" json:"reasons,omitempty"`
   407  }
   408  
   409  func (x *LogReasons) Reset() {
   410  	*x = LogReasons{}
   411  	if protoimpl.UnsafeEnabled {
   412  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[1]
   413  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   414  		ms.StoreMessageInfo(mi)
   415  	}
   416  }
   417  
   418  func (x *LogReasons) String() string {
   419  	return protoimpl.X.MessageStringOf(x)
   420  }
   421  
   422  func (*LogReasons) ProtoMessage() {}
   423  
   424  func (x *LogReasons) ProtoReflect() protoreflect.Message {
   425  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[1]
   426  	if protoimpl.UnsafeEnabled && x != nil {
   427  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   428  		if ms.LoadMessageInfo() == nil {
   429  			ms.StoreMessageInfo(mi)
   430  		}
   431  		return ms
   432  	}
   433  	return mi.MessageOf(x)
   434  }
   435  
   436  // Deprecated: Use LogReasons.ProtoReflect.Descriptor instead.
   437  func (*LogReasons) Descriptor() ([]byte, []int) {
   438  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{1}
   439  }
   440  
   441  func (x *LogReasons) GetReasons() []LogReason {
   442  	if x != nil {
   443  		return x.Reasons
   444  	}
   445  	return nil
   446  }
   447  
   448  // PCL is a tracked CL.
   449  type PCL struct {
   450  	state         protoimpl.MessageState
   451  	sizeCache     protoimpl.SizeCache
   452  	unknownFields protoimpl.UnknownFields
   453  
   454  	Clid     int64      `protobuf:"varint,1,opt,name=clid,proto3" json:"clid,omitempty"`
   455  	Eversion int64      `protobuf:"varint,2,opt,name=eversion,proto3" json:"eversion,omitempty"`
   456  	Status   PCL_Status `protobuf:"varint,3,opt,name=status,proto3,enum=cv.internal.prjmanager.prjpb.PCL_Status" json:"status,omitempty"`
   457  	// Indexes in PState.config_group_names identifying ConfigGroup which watches
   458  	// this CL.
   459  	//
   460  	// Normally, contains exactly 1 index.
   461  	// May have > 1 index, which means 2+ non-fallback config groups watch this
   462  	// CL, which is not allowed and will be signalled to CV users.
   463  	// TODO(tandrii): move >1 index case to be tracked via `errors` field.
   464  	ConfigGroupIndexes []int32 `protobuf:"varint,4,rep,packed,name=config_group_indexes,json=configGroupIndexes,proto3" json:"config_group_indexes,omitempty"`
   465  	// Deps refers to CLs in PState.PCLs which are dependencies of the PCL.
   466  	Deps []*changelist.Dep `protobuf:"bytes,11,rep,name=deps,proto3" json:"deps,omitempty"`
   467  	// Triggers are the triggers currently active on the CL.
   468  	//
   469  	// Note that due to NewPatchsetRuns, CLs can be associated with more than one
   470  	// Run at any given time, for this reason, it is required that a PCL be able
   471  	// to track multiple triggers.
   472  	//
   473  	// It may be empty if CL is not triggered but nevertheless tracked as either:
   474  	//   - a dependency of another CL.
   475  	//   - previously triggered member of an incomplete Run, which is probably
   476  	//     being finalized right now by its Run Manager.
   477  	//
   478  	// Doesn't store email nor Gerrit account ID.
   479  	Triggers *run.Triggers `protobuf:"bytes,16,opt,name=triggers,proto3" json:"triggers,omitempty"`
   480  	// Submitted means CV isn't going to work on a CL, but CL is still tracked as
   481  	// a dep of another CL or as a member of an incomplete Run (though the other
   482  	// Run will probably finish soon).
   483  	Submitted bool `protobuf:"varint,13,opt,name=submitted,proto3" json:"submitted,omitempty"`
   484  	// Deprecated in favor of purge_reasons.
   485  	//
   486  	// Deprecated: Marked as deprecated in go.chromium.org/luci/cv/internal/prjmanager/prjpb/storage.proto.
   487  	Errors []*changelist.CLError `protobuf:"bytes,15,rep,name=errors,proto3" json:"errors,omitempty"`
   488  	// If set, describes problems that require that some or all of the PCL's
   489  	// triggers be purged.
   490  	PurgeReasons []*PurgeReason `protobuf:"bytes,17,rep,name=purge_reasons,json=purgeReasons,proto3" json:"purge_reasons,omitempty"`
   491  	// Outdated if set means Snapshot must be considered likely outdated due to
   492  	// recent CV mutations.
   493  	//
   494  	// In particular, Project Manager does not act on the CLs with .Outdated set.
   495  	Outdated *changelist.Snapshot_Outdated `protobuf:"bytes,18,opt,name=outdated,proto3" json:"outdated,omitempty"`
   496  }
   497  
   498  func (x *PCL) Reset() {
   499  	*x = PCL{}
   500  	if protoimpl.UnsafeEnabled {
   501  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[2]
   502  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   503  		ms.StoreMessageInfo(mi)
   504  	}
   505  }
   506  
   507  func (x *PCL) String() string {
   508  	return protoimpl.X.MessageStringOf(x)
   509  }
   510  
   511  func (*PCL) ProtoMessage() {}
   512  
   513  func (x *PCL) ProtoReflect() protoreflect.Message {
   514  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[2]
   515  	if protoimpl.UnsafeEnabled && x != nil {
   516  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   517  		if ms.LoadMessageInfo() == nil {
   518  			ms.StoreMessageInfo(mi)
   519  		}
   520  		return ms
   521  	}
   522  	return mi.MessageOf(x)
   523  }
   524  
   525  // Deprecated: Use PCL.ProtoReflect.Descriptor instead.
   526  func (*PCL) Descriptor() ([]byte, []int) {
   527  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{2}
   528  }
   529  
   530  func (x *PCL) GetClid() int64 {
   531  	if x != nil {
   532  		return x.Clid
   533  	}
   534  	return 0
   535  }
   536  
   537  func (x *PCL) GetEversion() int64 {
   538  	if x != nil {
   539  		return x.Eversion
   540  	}
   541  	return 0
   542  }
   543  
   544  func (x *PCL) GetStatus() PCL_Status {
   545  	if x != nil {
   546  		return x.Status
   547  	}
   548  	return PCL_PCL_STATUS_UNSPECIFIED
   549  }
   550  
   551  func (x *PCL) GetConfigGroupIndexes() []int32 {
   552  	if x != nil {
   553  		return x.ConfigGroupIndexes
   554  	}
   555  	return nil
   556  }
   557  
   558  func (x *PCL) GetDeps() []*changelist.Dep {
   559  	if x != nil {
   560  		return x.Deps
   561  	}
   562  	return nil
   563  }
   564  
   565  func (x *PCL) GetTriggers() *run.Triggers {
   566  	if x != nil {
   567  		return x.Triggers
   568  	}
   569  	return nil
   570  }
   571  
   572  func (x *PCL) GetSubmitted() bool {
   573  	if x != nil {
   574  		return x.Submitted
   575  	}
   576  	return false
   577  }
   578  
   579  // Deprecated: Marked as deprecated in go.chromium.org/luci/cv/internal/prjmanager/prjpb/storage.proto.
   580  func (x *PCL) GetErrors() []*changelist.CLError {
   581  	if x != nil {
   582  		return x.Errors
   583  	}
   584  	return nil
   585  }
   586  
   587  func (x *PCL) GetPurgeReasons() []*PurgeReason {
   588  	if x != nil {
   589  		return x.PurgeReasons
   590  	}
   591  	return nil
   592  }
   593  
   594  func (x *PCL) GetOutdated() *changelist.Snapshot_Outdated {
   595  	if x != nil {
   596  		return x.Outdated
   597  	}
   598  	return nil
   599  }
   600  
   601  // PRun is an incomplete Run on which CV is currently working.
   602  //
   603  // It is referenced by at most 1 component.
   604  type PRun struct {
   605  	state         protoimpl.MessageState
   606  	sizeCache     protoimpl.SizeCache
   607  	unknownFields protoimpl.UnknownFields
   608  
   609  	// CV's Run ID.
   610  	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   611  	// IDs of CLs involved. Sorted.
   612  	//
   613  	// Actual Run may orders its CLs in a different way.
   614  	Clids []int64 `protobuf:"varint,2,rep,packed,name=clids,proto3" json:"clids,omitempty"`
   615  	// The mode of the Run referenced by this message.
   616  	//
   617  	// It uses the string value of run.Mode.
   618  	Mode string `protobuf:"bytes,3,opt,name=mode,proto3" json:"mode,omitempty"`
   619  	// ID of the root CL that triggers this Run in the combined mode.
   620  	//
   621  	// It is the same as `run.root_cl`.
   622  	RootClid int64 `protobuf:"varint,4,opt,name=root_clid,json=rootClid,proto3" json:"root_clid,omitempty"`
   623  }
   624  
   625  func (x *PRun) Reset() {
   626  	*x = PRun{}
   627  	if protoimpl.UnsafeEnabled {
   628  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[3]
   629  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   630  		ms.StoreMessageInfo(mi)
   631  	}
   632  }
   633  
   634  func (x *PRun) String() string {
   635  	return protoimpl.X.MessageStringOf(x)
   636  }
   637  
   638  func (*PRun) ProtoMessage() {}
   639  
   640  func (x *PRun) ProtoReflect() protoreflect.Message {
   641  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[3]
   642  	if protoimpl.UnsafeEnabled && x != nil {
   643  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   644  		if ms.LoadMessageInfo() == nil {
   645  			ms.StoreMessageInfo(mi)
   646  		}
   647  		return ms
   648  	}
   649  	return mi.MessageOf(x)
   650  }
   651  
   652  // Deprecated: Use PRun.ProtoReflect.Descriptor instead.
   653  func (*PRun) Descriptor() ([]byte, []int) {
   654  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{3}
   655  }
   656  
   657  func (x *PRun) GetId() string {
   658  	if x != nil {
   659  		return x.Id
   660  	}
   661  	return ""
   662  }
   663  
   664  func (x *PRun) GetClids() []int64 {
   665  	if x != nil {
   666  		return x.Clids
   667  	}
   668  	return nil
   669  }
   670  
   671  func (x *PRun) GetMode() string {
   672  	if x != nil {
   673  		return x.Mode
   674  	}
   675  	return ""
   676  }
   677  
   678  func (x *PRun) GetRootClid() int64 {
   679  	if x != nil {
   680  		return x.RootClid
   681  	}
   682  	return 0
   683  }
   684  
   685  // Component is a set of CLs related to each other.
   686  type Component struct {
   687  	state         protoimpl.MessageState
   688  	sizeCache     protoimpl.SizeCache
   689  	unknownFields protoimpl.UnknownFields
   690  
   691  	// CL IDs of the tracked CLs in this component. Sorted.
   692  	//
   693  	// Each referenced CL must be in PState.PCLs list.
   694  	// Each referenced CL may have deps not in this list if they are either
   695  	// PCL.Status.UNKNOWN or PCL.Status.UNWATCHED.
   696  	//
   697  	// A referenced CL is normally watched by this LUCI project. In rare cases,
   698  	// referenced CL is no longer watched by this LUCI project but is still kept
   699  	// in a component because the CL is still a member of an incomplete Run in
   700  	// this component. In this case, the CL's deps are no longer tracked.
   701  	Clids []int64 `protobuf:"varint,1,rep,packed,name=clids,proto3" json:"clids,omitempty"`
   702  	// Decision time is the earliest time when this component should be
   703  	// re-evaluated.
   704  	//
   705  	// Can be set to far future meaning no need for re-evaluation without an
   706  	// external event (e.g., CLUpdated or RunFinished).
   707  	DecisionTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=decision_time,json=decisionTime,proto3" json:"decision_time,omitempty"`
   708  	// Incomplete Runs working on CLs from this component.
   709  	//
   710  	// Sorted by Run's ID.
   711  	Pruns []*PRun `protobuf:"bytes,3,rep,name=pruns,proto3" json:"pruns,omitempty"`
   712  	// If true, this component must be triaged as soon as possible.
   713  	TriageRequired bool `protobuf:"varint,11,opt,name=triage_required,json=triageRequired,proto3" json:"triage_required,omitempty"`
   714  }
   715  
   716  func (x *Component) Reset() {
   717  	*x = Component{}
   718  	if protoimpl.UnsafeEnabled {
   719  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[4]
   720  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   721  		ms.StoreMessageInfo(mi)
   722  	}
   723  }
   724  
   725  func (x *Component) String() string {
   726  	return protoimpl.X.MessageStringOf(x)
   727  }
   728  
   729  func (*Component) ProtoMessage() {}
   730  
   731  func (x *Component) ProtoReflect() protoreflect.Message {
   732  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[4]
   733  	if protoimpl.UnsafeEnabled && x != nil {
   734  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   735  		if ms.LoadMessageInfo() == nil {
   736  			ms.StoreMessageInfo(mi)
   737  		}
   738  		return ms
   739  	}
   740  	return mi.MessageOf(x)
   741  }
   742  
   743  // Deprecated: Use Component.ProtoReflect.Descriptor instead.
   744  func (*Component) Descriptor() ([]byte, []int) {
   745  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{4}
   746  }
   747  
   748  func (x *Component) GetClids() []int64 {
   749  	if x != nil {
   750  		return x.Clids
   751  	}
   752  	return nil
   753  }
   754  
   755  func (x *Component) GetDecisionTime() *timestamppb.Timestamp {
   756  	if x != nil {
   757  		return x.DecisionTime
   758  	}
   759  	return nil
   760  }
   761  
   762  func (x *Component) GetPruns() []*PRun {
   763  	if x != nil {
   764  		return x.Pruns
   765  	}
   766  	return nil
   767  }
   768  
   769  func (x *Component) GetTriageRequired() bool {
   770  	if x != nil {
   771  		return x.TriageRequired
   772  	}
   773  	return false
   774  }
   775  
   776  // PurgingCL represents purging of a CL due to some problem.
   777  //
   778  // The purging process is initiated during PM state mutation while atomically
   779  // adding a TQ task to perform the actual purge.
   780  //
   781  // Purging itself constitutes removing whatever triggered CV on a CL as well as
   782  // posting the reason for purging to the user.
   783  //
   784  // Individual CLs are purged independently, even if CLs are related.
   785  //
   786  // Trying to purge multiple triggers of the same type on the same CL will
   787  // result in only purging one of them. This is not possible today, but may have
   788  // an unexpected effect on future features.
   789  //
   790  // Upon TQ task completion, the task handler notifies PM back via an
   791  // PurgeCompleted event. For fail-safe reasons, there is a deadline to
   792  // perform the purge. PM keeps the PurgingCL in PState until either deadline is
   793  // reached OR PurgeCompleted event is received.
   794  type PurgingCL struct {
   795  	state         protoimpl.MessageState
   796  	sizeCache     protoimpl.SizeCache
   797  	unknownFields protoimpl.UnknownFields
   798  
   799  	// CL ID which is being purged.
   800  	Clid int64 `protobuf:"varint,1,opt,name=clid,proto3" json:"clid,omitempty"`
   801  	// Operation ID is a unique within a project identifier of a purge operation
   802  	// to use in PurgeCompleted events.
   803  	OperationId string `protobuf:"bytes,2,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
   804  	// Deadline is obeyed by the purging TQ task.
   805  	//
   806  	// TQ task SHOULD not modify a CL (e.g. via Gerrit RPCs) beyond this point.
   807  	// This is merely best effort, as an RPC to external system initiated before
   808  	// this deadline may still complete after it.
   809  	//
   810  	// If PM doesn't receive PurgeCompleted event before this deadline + some grace
   811  	// period, PM will consider purge operation expired and it'll be removed from
   812  	// PState.
   813  	Deadline *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
   814  	// What trigger(s) are being purged.
   815  	//
   816  	// Types that are assignable to ApplyTo:
   817  	//
   818  	//	*PurgingCL_Triggers
   819  	//	*PurgingCL_AllActiveTriggers
   820  	ApplyTo isPurgingCL_ApplyTo `protobuf_oneof:"apply_to"`
   821  	// If specified, the Gerrit request will be sent with the notify and
   822  	// attention.
   823  	Notification *PurgingCL_Notification `protobuf:"bytes,6,opt,name=notification,proto3" json:"notification,omitempty"`
   824  }
   825  
   826  func (x *PurgingCL) Reset() {
   827  	*x = PurgingCL{}
   828  	if protoimpl.UnsafeEnabled {
   829  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[5]
   830  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   831  		ms.StoreMessageInfo(mi)
   832  	}
   833  }
   834  
   835  func (x *PurgingCL) String() string {
   836  	return protoimpl.X.MessageStringOf(x)
   837  }
   838  
   839  func (*PurgingCL) ProtoMessage() {}
   840  
   841  func (x *PurgingCL) ProtoReflect() protoreflect.Message {
   842  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[5]
   843  	if protoimpl.UnsafeEnabled && x != nil {
   844  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   845  		if ms.LoadMessageInfo() == nil {
   846  			ms.StoreMessageInfo(mi)
   847  		}
   848  		return ms
   849  	}
   850  	return mi.MessageOf(x)
   851  }
   852  
   853  // Deprecated: Use PurgingCL.ProtoReflect.Descriptor instead.
   854  func (*PurgingCL) Descriptor() ([]byte, []int) {
   855  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{5}
   856  }
   857  
   858  func (x *PurgingCL) GetClid() int64 {
   859  	if x != nil {
   860  		return x.Clid
   861  	}
   862  	return 0
   863  }
   864  
   865  func (x *PurgingCL) GetOperationId() string {
   866  	if x != nil {
   867  		return x.OperationId
   868  	}
   869  	return ""
   870  }
   871  
   872  func (x *PurgingCL) GetDeadline() *timestamppb.Timestamp {
   873  	if x != nil {
   874  		return x.Deadline
   875  	}
   876  	return nil
   877  }
   878  
   879  func (m *PurgingCL) GetApplyTo() isPurgingCL_ApplyTo {
   880  	if m != nil {
   881  		return m.ApplyTo
   882  	}
   883  	return nil
   884  }
   885  
   886  func (x *PurgingCL) GetTriggers() *run.Triggers {
   887  	if x, ok := x.GetApplyTo().(*PurgingCL_Triggers); ok {
   888  		return x.Triggers
   889  	}
   890  	return nil
   891  }
   892  
   893  func (x *PurgingCL) GetAllActiveTriggers() bool {
   894  	if x, ok := x.GetApplyTo().(*PurgingCL_AllActiveTriggers); ok {
   895  		return x.AllActiveTriggers
   896  	}
   897  	return false
   898  }
   899  
   900  func (x *PurgingCL) GetNotification() *PurgingCL_Notification {
   901  	if x != nil {
   902  		return x.Notification
   903  	}
   904  	return nil
   905  }
   906  
   907  type isPurgingCL_ApplyTo interface {
   908  	isPurgingCL_ApplyTo()
   909  }
   910  
   911  type PurgingCL_Triggers struct {
   912  	Triggers *run.Triggers `protobuf:"bytes,4,opt,name=triggers,proto3,oneof"`
   913  }
   914  
   915  type PurgingCL_AllActiveTriggers struct {
   916  	AllActiveTriggers bool `protobuf:"varint,5,opt,name=all_active_triggers,json=allActiveTriggers,proto3,oneof"`
   917  }
   918  
   919  func (*PurgingCL_Triggers) isPurgingCL_ApplyTo() {}
   920  
   921  func (*PurgingCL_AllActiveTriggers) isPurgingCL_ApplyTo() {}
   922  
   923  // TriggeringCLDeps propagates the trigger to the deps of a given CL.
   924  type TriggeringCLDeps struct {
   925  	state         protoimpl.MessageState
   926  	sizeCache     protoimpl.SizeCache
   927  	unknownFields protoimpl.UnknownFields
   928  
   929  	// Origin CL of which dep CLs are to propagate the trigger to.
   930  	OriginClid int64 `protobuf:"varint,1,opt,name=origin_clid,json=originClid,proto3" json:"origin_clid,omitempty"`
   931  	// Dep CLs to propagate the trigger to.
   932  	DepClids []int64 `protobuf:"varint,2,rep,packed,name=dep_clids,json=depClids,proto3" json:"dep_clids,omitempty"`
   933  	// Operation ID uniquely identifies this op within the project.
   934  	OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"`
   935  	// Deadline is obeyed by the TQ task handler.
   936  	//
   937  	// TQ task SHOULD NOT modify a CL (e.g., via Gerrit RPCs) beyond this point.
   938  	// If PM doesn't receive TriggerCLDepsCompleted event before
   939  	// this deadline + grace period, PM will consider the task expired and
   940  	// the task will be removed from PState, so that the deps will be re-triaged
   941  	// and PM may schedule another TQ task for the triggering operation
   942  	// for the CL.
   943  	Deadline *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=deadline,proto3" json:"deadline,omitempty"`
   944  	// Trigger to propagate.
   945  	Trigger *run.Trigger `protobuf:"bytes,5,opt,name=trigger,proto3" json:"trigger,omitempty"`
   946  	// Name of the config group watching the origin CL.
   947  	ConfigGroupName string `protobuf:"bytes,6,opt,name=config_group_name,json=configGroupName,proto3" json:"config_group_name,omitempty"`
   948  }
   949  
   950  func (x *TriggeringCLDeps) Reset() {
   951  	*x = TriggeringCLDeps{}
   952  	if protoimpl.UnsafeEnabled {
   953  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[6]
   954  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   955  		ms.StoreMessageInfo(mi)
   956  	}
   957  }
   958  
   959  func (x *TriggeringCLDeps) String() string {
   960  	return protoimpl.X.MessageStringOf(x)
   961  }
   962  
   963  func (*TriggeringCLDeps) ProtoMessage() {}
   964  
   965  func (x *TriggeringCLDeps) ProtoReflect() protoreflect.Message {
   966  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[6]
   967  	if protoimpl.UnsafeEnabled && x != nil {
   968  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   969  		if ms.LoadMessageInfo() == nil {
   970  			ms.StoreMessageInfo(mi)
   971  		}
   972  		return ms
   973  	}
   974  	return mi.MessageOf(x)
   975  }
   976  
   977  // Deprecated: Use TriggeringCLDeps.ProtoReflect.Descriptor instead.
   978  func (*TriggeringCLDeps) Descriptor() ([]byte, []int) {
   979  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{6}
   980  }
   981  
   982  func (x *TriggeringCLDeps) GetOriginClid() int64 {
   983  	if x != nil {
   984  		return x.OriginClid
   985  	}
   986  	return 0
   987  }
   988  
   989  func (x *TriggeringCLDeps) GetDepClids() []int64 {
   990  	if x != nil {
   991  		return x.DepClids
   992  	}
   993  	return nil
   994  }
   995  
   996  func (x *TriggeringCLDeps) GetOperationId() string {
   997  	if x != nil {
   998  		return x.OperationId
   999  	}
  1000  	return ""
  1001  }
  1002  
  1003  func (x *TriggeringCLDeps) GetDeadline() *timestamppb.Timestamp {
  1004  	if x != nil {
  1005  		return x.Deadline
  1006  	}
  1007  	return nil
  1008  }
  1009  
  1010  func (x *TriggeringCLDeps) GetTrigger() *run.Trigger {
  1011  	if x != nil {
  1012  		return x.Trigger
  1013  	}
  1014  	return nil
  1015  }
  1016  
  1017  func (x *TriggeringCLDeps) GetConfigGroupName() string {
  1018  	if x != nil {
  1019  		return x.ConfigGroupName
  1020  	}
  1021  	return ""
  1022  }
  1023  
  1024  // PurgeReason represent a list of errors with the CL that would require that
  1025  // the given trigger (or the whole CL if no trigger is given) be purged.
  1026  //
  1027  // Trying to purge multiple triggers of the same type on the same CL will
  1028  // result in only purging one of them. This is not possible today, but may have
  1029  // an unexpected effect on future features.
  1030  type PurgeReason struct {
  1031  	state         protoimpl.MessageState
  1032  	sizeCache     protoimpl.SizeCache
  1033  	unknownFields protoimpl.UnknownFields
  1034  
  1035  	// ClErrors are a list of errors associated with Trigger below, or with the
  1036  	// a whole CL if Trigger is not given.
  1037  	ClError *changelist.CLError `protobuf:"bytes,1,opt,name=cl_error,json=clError,proto3" json:"cl_error,omitempty"`
  1038  	// What trigger(s) the error above applies to.
  1039  	//
  1040  	// Types that are assignable to ApplyTo:
  1041  	//
  1042  	//	*PurgeReason_Triggers
  1043  	//	*PurgeReason_AllActiveTriggers
  1044  	ApplyTo isPurgeReason_ApplyTo `protobuf_oneof:"apply_to"`
  1045  }
  1046  
  1047  func (x *PurgeReason) Reset() {
  1048  	*x = PurgeReason{}
  1049  	if protoimpl.UnsafeEnabled {
  1050  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[7]
  1051  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1052  		ms.StoreMessageInfo(mi)
  1053  	}
  1054  }
  1055  
  1056  func (x *PurgeReason) String() string {
  1057  	return protoimpl.X.MessageStringOf(x)
  1058  }
  1059  
  1060  func (*PurgeReason) ProtoMessage() {}
  1061  
  1062  func (x *PurgeReason) ProtoReflect() protoreflect.Message {
  1063  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[7]
  1064  	if protoimpl.UnsafeEnabled && x != nil {
  1065  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1066  		if ms.LoadMessageInfo() == nil {
  1067  			ms.StoreMessageInfo(mi)
  1068  		}
  1069  		return ms
  1070  	}
  1071  	return mi.MessageOf(x)
  1072  }
  1073  
  1074  // Deprecated: Use PurgeReason.ProtoReflect.Descriptor instead.
  1075  func (*PurgeReason) Descriptor() ([]byte, []int) {
  1076  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{7}
  1077  }
  1078  
  1079  func (x *PurgeReason) GetClError() *changelist.CLError {
  1080  	if x != nil {
  1081  		return x.ClError
  1082  	}
  1083  	return nil
  1084  }
  1085  
  1086  func (m *PurgeReason) GetApplyTo() isPurgeReason_ApplyTo {
  1087  	if m != nil {
  1088  		return m.ApplyTo
  1089  	}
  1090  	return nil
  1091  }
  1092  
  1093  func (x *PurgeReason) GetTriggers() *run.Triggers {
  1094  	if x, ok := x.GetApplyTo().(*PurgeReason_Triggers); ok {
  1095  		return x.Triggers
  1096  	}
  1097  	return nil
  1098  }
  1099  
  1100  func (x *PurgeReason) GetAllActiveTriggers() bool {
  1101  	if x, ok := x.GetApplyTo().(*PurgeReason_AllActiveTriggers); ok {
  1102  		return x.AllActiveTriggers
  1103  	}
  1104  	return false
  1105  }
  1106  
  1107  type isPurgeReason_ApplyTo interface {
  1108  	isPurgeReason_ApplyTo()
  1109  }
  1110  
  1111  type PurgeReason_Triggers struct {
  1112  	Triggers *run.Triggers `protobuf:"bytes,2,opt,name=triggers,proto3,oneof"`
  1113  }
  1114  
  1115  type PurgeReason_AllActiveTriggers struct {
  1116  	AllActiveTriggers bool `protobuf:"varint,3,opt,name=all_active_triggers,json=allActiveTriggers,proto3,oneof"`
  1117  }
  1118  
  1119  func (*PurgeReason_Triggers) isPurgeReason_ApplyTo() {}
  1120  
  1121  func (*PurgeReason_AllActiveTriggers) isPurgeReason_ApplyTo() {}
  1122  
  1123  type PurgingCL_Notification struct {
  1124  	state         protoimpl.MessageState
  1125  	sizeCache     protoimpl.SizeCache
  1126  	unknownFields protoimpl.UnknownFields
  1127  
  1128  	// Whom value(s) to set in Notify of the SetReview request.
  1129  	//
  1130  	// If omitted, no one will receive a notification.
  1131  	Notify []gerrit.Whom `protobuf:"varint,1,rep,packed,name=notify,proto3,enum=cv.internal.gerrit.Whom" json:"notify,omitempty"`
  1132  	// Whom value(s) to set in AddToAttentionSet of the SetReview request.
  1133  	//
  1134  	// If omitted, no one will be added into the attention set.
  1135  	Attention []gerrit.Whom `protobuf:"varint,2,rep,packed,name=attention,proto3,enum=cv.internal.gerrit.Whom" json:"attention,omitempty"`
  1136  }
  1137  
  1138  func (x *PurgingCL_Notification) Reset() {
  1139  	*x = PurgingCL_Notification{}
  1140  	if protoimpl.UnsafeEnabled {
  1141  		mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[8]
  1142  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1143  		ms.StoreMessageInfo(mi)
  1144  	}
  1145  }
  1146  
  1147  func (x *PurgingCL_Notification) String() string {
  1148  	return protoimpl.X.MessageStringOf(x)
  1149  }
  1150  
  1151  func (*PurgingCL_Notification) ProtoMessage() {}
  1152  
  1153  func (x *PurgingCL_Notification) ProtoReflect() protoreflect.Message {
  1154  	mi := &file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[8]
  1155  	if protoimpl.UnsafeEnabled && x != nil {
  1156  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1157  		if ms.LoadMessageInfo() == nil {
  1158  			ms.StoreMessageInfo(mi)
  1159  		}
  1160  		return ms
  1161  	}
  1162  	return mi.MessageOf(x)
  1163  }
  1164  
  1165  // Deprecated: Use PurgingCL_Notification.ProtoReflect.Descriptor instead.
  1166  func (*PurgingCL_Notification) Descriptor() ([]byte, []int) {
  1167  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP(), []int{5, 0}
  1168  }
  1169  
  1170  func (x *PurgingCL_Notification) GetNotify() []gerrit.Whom {
  1171  	if x != nil {
  1172  		return x.Notify
  1173  	}
  1174  	return nil
  1175  }
  1176  
  1177  func (x *PurgingCL_Notification) GetAttention() []gerrit.Whom {
  1178  	if x != nil {
  1179  		return x.Attention
  1180  	}
  1181  	return nil
  1182  }
  1183  
  1184  var File_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto protoreflect.FileDescriptor
  1185  
  1186  var file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDesc = []byte{
  1187  	0x0a, 0x3f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
  1188  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
  1189  	0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x70, 0x72,
  1190  	0x6a, 0x70, 0x62, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1191  	0x6f, 0x12, 0x1c, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70,
  1192  	0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x1a,
  1193  	0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  1194  	0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1195  	0x1a, 0x39, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
  1196  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
  1197  	0x61, 0x6c, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x2f, 0x73, 0x74,
  1198  	0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x2e,
  1199  	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63,
  1200  	0x69, 0x2f, 0x63, 0x76, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65,
  1201  	0x72, 0x72, 0x69, 0x74, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  1202  	0x74, 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e,
  1203  	0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x69, 0x6e, 0x74, 0x65,
  1204  	0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x72, 0x75, 0x6e, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
  1205  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x05, 0x0a, 0x06, 0x50, 0x53, 0x74, 0x61, 0x74,
  1206  	0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x75, 0x63, 0x69, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
  1207  	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x75, 0x63, 0x69, 0x50, 0x72, 0x6f,
  1208  	0x6a, 0x65, 0x63, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02,
  1209  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
  1210  	0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72,
  1211  	0x6a, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
  1212  	0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x68, 0x61, 0x73,
  1213  	0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
  1214  	0x61, 0x73, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x67, 0x72,
  1215  	0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
  1216  	0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65,
  1217  	0x73, 0x12, 0x35, 0x0a, 0x04, 0x70, 0x63, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1218  	0x21, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72,
  1219  	0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x50,
  1220  	0x43, 0x4c, 0x52, 0x04, 0x70, 0x63, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70,
  1221  	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63,
  1222  	0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61,
  1223  	0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
  1224  	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
  1225  	0x73, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x75, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x73,
  1226  	0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65,
  1227  	0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e,
  1228  	0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x4c, 0x52,
  1229  	0x0a, 0x70, 0x75, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6c, 0x73, 0x12, 0x5c, 0x0a, 0x12, 0x74,
  1230  	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x5f, 0x64, 0x65, 0x70,
  1231  	0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74,
  1232  	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
  1233  	0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e,
  1234  	0x67, 0x43, 0x4c, 0x44, 0x65, 0x70, 0x73, 0x52, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
  1235  	0x69, 0x6e, 0x67, 0x43, 0x6c, 0x44, 0x65, 0x70, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70,
  1236  	0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
  1237  	0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x72, 0x65, 0x70, 0x61, 0x72, 0x74, 0x69,
  1238  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x0d,
  1239  	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x16, 0x20,
  1240  	0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
  1241  	0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6a,
  1242  	0x70, 0x62, 0x2e, 0x50, 0x52, 0x75, 0x6e, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
  1243  	0x50, 0x72, 0x75, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x76,
  1244  	0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
  1245  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  1246  	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x45,
  1247  	0x76, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x52, 0x65,
  1248  	0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73,
  1249  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65,
  1250  	0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e,
  1251  	0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52,
  1252  	0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x22, 0xea, 0x04, 0x0a, 0x03, 0x50, 0x43, 0x4c,
  1253  	0x12, 0x12, 0x0a, 0x04, 0x63, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
  1254  	0x63, 0x6c, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
  1255  	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
  1256  	0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
  1257  	0x32, 0x28, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70,
  1258  	0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e,
  1259  	0x50, 0x43, 0x4c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
  1260  	0x75, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x67, 0x72, 0x6f,
  1261  	0x75, 0x70, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05,
  1262  	0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x64,
  1263  	0x65, 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, 0x18, 0x0b, 0x20, 0x03,
  1264  	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
  1265  	0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x70, 0x52,
  1266  	0x04, 0x64, 0x65, 0x70, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
  1267  	0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74,
  1268  	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
  1269  	0x72, 0x73, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09,
  1270  	0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52,
  1271  	0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x65, 0x72,
  1272  	0x72, 0x6f, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x76, 0x2e,
  1273  	0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c,
  1274  	0x69, 0x73, 0x74, 0x2e, 0x43, 0x4c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52,
  1275  	0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x70, 0x75, 0x72, 0x67, 0x65,
  1276  	0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29,
  1277  	0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a,
  1278  	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x50, 0x75,
  1279  	0x72, 0x67, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x70, 0x75, 0x72, 0x67, 0x65,
  1280  	0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x64, 0x61,
  1281  	0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x76, 0x2e, 0x69,
  1282  	0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x69,
  1283  	0x73, 0x74, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x64,
  1284  	0x61, 0x74, 0x65, 0x64, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x59,
  1285  	0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x43, 0x4c, 0x5f,
  1286  	0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
  1287  	0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
  1288  	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x57,
  1289  	0x41, 0x54, 0x43, 0x48, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45,
  1290  	0x54, 0x45, 0x44, 0x10, 0x03, 0x1a, 0x02, 0x10, 0x01, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a,
  1291  	0x04, 0x08, 0x0e, 0x10, 0x0f, 0x22, 0x5d, 0x0a, 0x04, 0x50, 0x52, 0x75, 0x6e, 0x12, 0x0e, 0x0a,
  1292  	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a,
  1293  	0x05, 0x63, 0x6c, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6c,
  1294  	0x69, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
  1295  	0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f,
  1296  	0x63, 0x6c, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74,
  1297  	0x43, 0x6c, 0x69, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
  1298  	0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
  1299  	0x03, 0x52, 0x05, 0x63, 0x6c, 0x69, 0x64, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x69,
  1300  	0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1301  	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  1302  	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x64, 0x65, 0x63,
  1303  	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x75,
  1304  	0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e,
  1305  	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
  1306  	0x72, 0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x50, 0x52, 0x75, 0x6e, 0x52, 0x05, 0x70, 0x72,
  1307  	0x75, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x69, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65,
  1308  	0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x72,
  1309  	0x69, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xc5, 0x03, 0x0a,
  1310  	0x09, 0x50, 0x75, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6c,
  1311  	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x6c, 0x69, 0x64, 0x12, 0x21,
  1312  	0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02,
  1313  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
  1314  	0x64, 0x12, 0x36, 0x0a, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20,
  1315  	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  1316  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
  1317  	0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x74, 0x72, 0x69,
  1318  	0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x76,
  1319  	0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x2e, 0x54, 0x72,
  1320  	0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65,
  1321  	0x72, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65,
  1322  	0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48,
  1323  	0x00, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x69, 0x67,
  1324  	0x67, 0x65, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
  1325  	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x76, 0x2e,
  1326  	0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61,
  1327  	0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x69, 0x6e,
  1328  	0x67, 0x43, 0x4c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1329  	0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x78,
  1330  	0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30,
  1331  	0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x18,
  1332  	0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x67, 0x65, 0x72,
  1333  	0x72, 0x69, 0x74, 0x2e, 0x57, 0x68, 0x6f, 0x6d, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79,
  1334  	0x12, 0x36, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
  1335  	0x03, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
  1336  	0x6c, 0x2e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x74, 0x2e, 0x57, 0x68, 0x6f, 0x6d, 0x52, 0x09, 0x61,
  1337  	0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x6c,
  1338  	0x79, 0x5f, 0x74, 0x6f, 0x22, 0x8b, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72,
  1339  	0x69, 0x6e, 0x67, 0x43, 0x4c, 0x44, 0x65, 0x70, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x69,
  1340  	0x67, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
  1341  	0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x43, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65,
  1342  	0x70, 0x5f, 0x63, 0x6c, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x64,
  1343  	0x65, 0x70, 0x43, 0x6c, 0x69, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61,
  1344  	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f,
  1345  	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x64, 0x65,
  1346  	0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
  1347  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
  1348  	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69,
  1349  	0x6e, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x05, 0x20,
  1350  	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
  1351  	0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74,
  1352  	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1353  	0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
  1354  	0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61,
  1355  	0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x50, 0x75, 0x72, 0x67, 0x65, 0x52, 0x65, 0x61, 0x73,
  1356  	0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01,
  1357  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
  1358  	0x61, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x43, 0x4c,
  1359  	0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x37,
  1360  	0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  1361  	0x32, 0x19, 0x2e, 0x63, 0x76, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x72,
  1362  	0x75, 0x6e, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x08, 0x74,
  1363  	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x5f, 0x61,
  1364  	0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x03,
  1365  	0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x76,
  1366  	0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x61, 0x70, 0x70,
  1367  	0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x2a, 0x48, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
  1368  	0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
  1369  	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54,
  1370  	0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47,
  1371  	0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x2a,
  1372  	0x6c, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16,
  1373  	0x4c, 0x4f, 0x47, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
  1374  	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x59, 0x49, 0x5f,
  1375  	0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x49, 0x43, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54,
  1376  	0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12,
  1377  	0x0a, 0x0e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44,
  1378  	0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x04, 0x42, 0x39, 0x5a,
  1379  	0x37, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67,
  1380  	0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
  1381  	0x6c, 0x2f, 0x70, 0x72, 0x6a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6a,
  1382  	0x70, 0x62, 0x3b, 0x70, 0x72, 0x6a, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  1383  }
  1384  
  1385  var (
  1386  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescOnce sync.Once
  1387  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescData = file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDesc
  1388  )
  1389  
  1390  func file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescGZIP() []byte {
  1391  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescOnce.Do(func() {
  1392  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescData)
  1393  	})
  1394  	return file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDescData
  1395  }
  1396  
  1397  var file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
  1398  var file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
  1399  var file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_goTypes = []interface{}{
  1400  	(Status)(0),                          // 0: cv.internal.prjmanager.prjpb.Status
  1401  	(LogReason)(0),                       // 1: cv.internal.prjmanager.prjpb.LogReason
  1402  	(PCL_Status)(0),                      // 2: cv.internal.prjmanager.prjpb.PCL.Status
  1403  	(*PState)(nil),                       // 3: cv.internal.prjmanager.prjpb.PState
  1404  	(*LogReasons)(nil),                   // 4: cv.internal.prjmanager.prjpb.LogReasons
  1405  	(*PCL)(nil),                          // 5: cv.internal.prjmanager.prjpb.PCL
  1406  	(*PRun)(nil),                         // 6: cv.internal.prjmanager.prjpb.PRun
  1407  	(*Component)(nil),                    // 7: cv.internal.prjmanager.prjpb.Component
  1408  	(*PurgingCL)(nil),                    // 8: cv.internal.prjmanager.prjpb.PurgingCL
  1409  	(*TriggeringCLDeps)(nil),             // 9: cv.internal.prjmanager.prjpb.TriggeringCLDeps
  1410  	(*PurgeReason)(nil),                  // 10: cv.internal.prjmanager.prjpb.PurgeReason
  1411  	(*PurgingCL_Notification)(nil),       // 11: cv.internal.prjmanager.prjpb.PurgingCL.Notification
  1412  	(*timestamppb.Timestamp)(nil),        // 12: google.protobuf.Timestamp
  1413  	(*changelist.Dep)(nil),               // 13: cv.internal.changelist.Dep
  1414  	(*run.Triggers)(nil),                 // 14: cv.internal.run.Triggers
  1415  	(*changelist.CLError)(nil),           // 15: cv.internal.changelist.CLError
  1416  	(*changelist.Snapshot_Outdated)(nil), // 16: cv.internal.changelist.Snapshot.Outdated
  1417  	(*run.Trigger)(nil),                  // 17: cv.internal.run.Trigger
  1418  	(gerrit.Whom)(0),                     // 18: cv.internal.gerrit.Whom
  1419  }
  1420  var file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_depIdxs = []int32{
  1421  	0,  // 0: cv.internal.prjmanager.prjpb.PState.status:type_name -> cv.internal.prjmanager.prjpb.Status
  1422  	5,  // 1: cv.internal.prjmanager.prjpb.PState.pcls:type_name -> cv.internal.prjmanager.prjpb.PCL
  1423  	7,  // 2: cv.internal.prjmanager.prjpb.PState.components:type_name -> cv.internal.prjmanager.prjpb.Component
  1424  	8,  // 3: cv.internal.prjmanager.prjpb.PState.purging_cls:type_name -> cv.internal.prjmanager.prjpb.PurgingCL
  1425  	9,  // 4: cv.internal.prjmanager.prjpb.PState.triggering_cl_deps:type_name -> cv.internal.prjmanager.prjpb.TriggeringCLDeps
  1426  	6,  // 5: cv.internal.prjmanager.prjpb.PState.created_pruns:type_name -> cv.internal.prjmanager.prjpb.PRun
  1427  	12, // 6: cv.internal.prjmanager.prjpb.PState.next_eval_time:type_name -> google.protobuf.Timestamp
  1428  	1,  // 7: cv.internal.prjmanager.prjpb.LogReasons.reasons:type_name -> cv.internal.prjmanager.prjpb.LogReason
  1429  	2,  // 8: cv.internal.prjmanager.prjpb.PCL.status:type_name -> cv.internal.prjmanager.prjpb.PCL.Status
  1430  	13, // 9: cv.internal.prjmanager.prjpb.PCL.deps:type_name -> cv.internal.changelist.Dep
  1431  	14, // 10: cv.internal.prjmanager.prjpb.PCL.triggers:type_name -> cv.internal.run.Triggers
  1432  	15, // 11: cv.internal.prjmanager.prjpb.PCL.errors:type_name -> cv.internal.changelist.CLError
  1433  	10, // 12: cv.internal.prjmanager.prjpb.PCL.purge_reasons:type_name -> cv.internal.prjmanager.prjpb.PurgeReason
  1434  	16, // 13: cv.internal.prjmanager.prjpb.PCL.outdated:type_name -> cv.internal.changelist.Snapshot.Outdated
  1435  	12, // 14: cv.internal.prjmanager.prjpb.Component.decision_time:type_name -> google.protobuf.Timestamp
  1436  	6,  // 15: cv.internal.prjmanager.prjpb.Component.pruns:type_name -> cv.internal.prjmanager.prjpb.PRun
  1437  	12, // 16: cv.internal.prjmanager.prjpb.PurgingCL.deadline:type_name -> google.protobuf.Timestamp
  1438  	14, // 17: cv.internal.prjmanager.prjpb.PurgingCL.triggers:type_name -> cv.internal.run.Triggers
  1439  	11, // 18: cv.internal.prjmanager.prjpb.PurgingCL.notification:type_name -> cv.internal.prjmanager.prjpb.PurgingCL.Notification
  1440  	12, // 19: cv.internal.prjmanager.prjpb.TriggeringCLDeps.deadline:type_name -> google.protobuf.Timestamp
  1441  	17, // 20: cv.internal.prjmanager.prjpb.TriggeringCLDeps.trigger:type_name -> cv.internal.run.Trigger
  1442  	15, // 21: cv.internal.prjmanager.prjpb.PurgeReason.cl_error:type_name -> cv.internal.changelist.CLError
  1443  	14, // 22: cv.internal.prjmanager.prjpb.PurgeReason.triggers:type_name -> cv.internal.run.Triggers
  1444  	18, // 23: cv.internal.prjmanager.prjpb.PurgingCL.Notification.notify:type_name -> cv.internal.gerrit.Whom
  1445  	18, // 24: cv.internal.prjmanager.prjpb.PurgingCL.Notification.attention:type_name -> cv.internal.gerrit.Whom
  1446  	25, // [25:25] is the sub-list for method output_type
  1447  	25, // [25:25] is the sub-list for method input_type
  1448  	25, // [25:25] is the sub-list for extension type_name
  1449  	25, // [25:25] is the sub-list for extension extendee
  1450  	0,  // [0:25] is the sub-list for field type_name
  1451  }
  1452  
  1453  func init() { file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_init() }
  1454  func file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_init() {
  1455  	if File_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto != nil {
  1456  		return
  1457  	}
  1458  	if !protoimpl.UnsafeEnabled {
  1459  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1460  			switch v := v.(*PState); i {
  1461  			case 0:
  1462  				return &v.state
  1463  			case 1:
  1464  				return &v.sizeCache
  1465  			case 2:
  1466  				return &v.unknownFields
  1467  			default:
  1468  				return nil
  1469  			}
  1470  		}
  1471  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1472  			switch v := v.(*LogReasons); i {
  1473  			case 0:
  1474  				return &v.state
  1475  			case 1:
  1476  				return &v.sizeCache
  1477  			case 2:
  1478  				return &v.unknownFields
  1479  			default:
  1480  				return nil
  1481  			}
  1482  		}
  1483  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1484  			switch v := v.(*PCL); i {
  1485  			case 0:
  1486  				return &v.state
  1487  			case 1:
  1488  				return &v.sizeCache
  1489  			case 2:
  1490  				return &v.unknownFields
  1491  			default:
  1492  				return nil
  1493  			}
  1494  		}
  1495  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1496  			switch v := v.(*PRun); i {
  1497  			case 0:
  1498  				return &v.state
  1499  			case 1:
  1500  				return &v.sizeCache
  1501  			case 2:
  1502  				return &v.unknownFields
  1503  			default:
  1504  				return nil
  1505  			}
  1506  		}
  1507  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1508  			switch v := v.(*Component); i {
  1509  			case 0:
  1510  				return &v.state
  1511  			case 1:
  1512  				return &v.sizeCache
  1513  			case 2:
  1514  				return &v.unknownFields
  1515  			default:
  1516  				return nil
  1517  			}
  1518  		}
  1519  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1520  			switch v := v.(*PurgingCL); i {
  1521  			case 0:
  1522  				return &v.state
  1523  			case 1:
  1524  				return &v.sizeCache
  1525  			case 2:
  1526  				return &v.unknownFields
  1527  			default:
  1528  				return nil
  1529  			}
  1530  		}
  1531  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1532  			switch v := v.(*TriggeringCLDeps); i {
  1533  			case 0:
  1534  				return &v.state
  1535  			case 1:
  1536  				return &v.sizeCache
  1537  			case 2:
  1538  				return &v.unknownFields
  1539  			default:
  1540  				return nil
  1541  			}
  1542  		}
  1543  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1544  			switch v := v.(*PurgeReason); i {
  1545  			case 0:
  1546  				return &v.state
  1547  			case 1:
  1548  				return &v.sizeCache
  1549  			case 2:
  1550  				return &v.unknownFields
  1551  			default:
  1552  				return nil
  1553  			}
  1554  		}
  1555  		file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1556  			switch v := v.(*PurgingCL_Notification); i {
  1557  			case 0:
  1558  				return &v.state
  1559  			case 1:
  1560  				return &v.sizeCache
  1561  			case 2:
  1562  				return &v.unknownFields
  1563  			default:
  1564  				return nil
  1565  			}
  1566  		}
  1567  	}
  1568  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[5].OneofWrappers = []interface{}{
  1569  		(*PurgingCL_Triggers)(nil),
  1570  		(*PurgingCL_AllActiveTriggers)(nil),
  1571  	}
  1572  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes[7].OneofWrappers = []interface{}{
  1573  		(*PurgeReason_Triggers)(nil),
  1574  		(*PurgeReason_AllActiveTriggers)(nil),
  1575  	}
  1576  	type x struct{}
  1577  	out := protoimpl.TypeBuilder{
  1578  		File: protoimpl.DescBuilder{
  1579  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1580  			RawDescriptor: file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDesc,
  1581  			NumEnums:      3,
  1582  			NumMessages:   9,
  1583  			NumExtensions: 0,
  1584  			NumServices:   0,
  1585  		},
  1586  		GoTypes:           file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_goTypes,
  1587  		DependencyIndexes: file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_depIdxs,
  1588  		EnumInfos:         file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_enumTypes,
  1589  		MessageInfos:      file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_msgTypes,
  1590  	}.Build()
  1591  	File_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto = out.File
  1592  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_rawDesc = nil
  1593  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_goTypes = nil
  1594  	file_go_chromium_org_luci_cv_internal_prjmanager_prjpb_storage_proto_depIdxs = nil
  1595  }