go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/proto/v1/rules.pb.go (about)

     1  // Copyright 2022 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.32.0
    18  // 	protoc        v3.21.7
    19  // source: go.chromium.org/luci/analysis/proto/v1/rules.proto
    20  
    21  package analysispb
    22  
    23  import prpc "go.chromium.org/luci/grpc/prpc"
    24  
    25  import (
    26  	context "context"
    27  	_ "google.golang.org/genproto/googleapis/api/annotations"
    28  	grpc "google.golang.org/grpc"
    29  	codes "google.golang.org/grpc/codes"
    30  	status "google.golang.org/grpc/status"
    31  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    32  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    33  	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    34  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    35  	reflect "reflect"
    36  	sync "sync"
    37  )
    38  
    39  const (
    40  	// Verify that this generated code is sufficiently up-to-date.
    41  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    42  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    43  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    44  )
    45  
    46  // A rule associating failures with a bug.
    47  type Rule struct {
    48  	state         protoimpl.MessageState
    49  	sizeCache     protoimpl.SizeCache
    50  	unknownFields protoimpl.UnknownFields
    51  
    52  	// The resource name of the failure association rule.
    53  	// Can be used to refer to this rule, e.g. in Rules.Get RPC.
    54  	// Format: projects/{project}/rules/{rule_id}.
    55  	// See also https://google.aip.dev/122.
    56  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
    57  	// The LUCI Project for which this rule is defined.
    58  	Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
    59  	// The unique identifier for the failure association rule,
    60  	// as 32 lowercase hexadecimal characters.
    61  	RuleId string `protobuf:"bytes,3,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"`
    62  	// The rule predicate, defining which failures are being associated.
    63  	// For example, 'reason LIKE "Some error: %"'.
    64  	//
    65  	// analysis/internal/clustering/rules/lang/lang.go contains the
    66  	// EBNF grammar for the language used to define rule predicates;
    67  	// it is a subset of Google Standard SQL.
    68  	//
    69  	// The maximum allowed length is 65536 characters.
    70  	RuleDefinition string `protobuf:"bytes,4,opt,name=rule_definition,json=ruleDefinition,proto3" json:"rule_definition,omitempty"`
    71  	// The bug that the failures are associated with.
    72  	Bug *AssociatedBug `protobuf:"bytes,5,opt,name=bug,proto3" json:"bug,omitempty"`
    73  	// Whether the bug should be updated by LUCI Analysis, and whether
    74  	// failures should still be matched against the rule.
    75  	IsActive bool `protobuf:"varint,6,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
    76  	// Whether LUCI Analysis should manage the priority and verified status
    77  	// of the associated bug based on the impact established via this rule.
    78  	IsManagingBug bool `protobuf:"varint,14,opt,name=is_managing_bug,json=isManagingBug,proto3" json:"is_managing_bug,omitempty"`
    79  	// Determines whether LUCI Analysis is managing the bug priority updates
    80  	// of the bug.
    81  	IsManagingBugPriority bool `protobuf:"varint,15,opt,name=is_managing_bug_priority,json=isManagingBugPriority,proto3" json:"is_managing_bug_priority,omitempty"`
    82  	// Output Only. The time is_managing_bug_priority was last updated.
    83  	IsManagingBugPriorityLastUpdateTime *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=is_managing_bug_priority_last_update_time,json=isManagingBugPriorityLastUpdateTime,proto3" json:"is_managing_bug_priority_last_update_time,omitempty"`
    84  	// The suggested cluster this rule was created from (if any).
    85  	// Until re-clustering is complete and has reduced the residual impact
    86  	// of the source cluster, this cluster ID tells bug filing to ignore
    87  	// the source cluster when determining whether new bugs need to be filed.
    88  	// Immutable after creation.
    89  	SourceCluster *ClusterId `protobuf:"bytes,7,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"`
    90  	// Bug management state.
    91  	// System controlled data, cannot be modified by the user.
    92  	BugManagementState *BugManagementState `protobuf:"bytes,17,opt,name=bug_management_state,json=bugManagementState,proto3" json:"bug_management_state,omitempty"`
    93  	// The time the rule was created.
    94  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
    95  	// The user which created the rule.
    96  	// This could be an email address or the value 'system' (for rules
    97  	// automaticatically created by LUCI Analysis itself).
    98  	// This value may not be available, as its disclosure is limited
    99  	// to Googlers only and is subject to automatic deletion after 30 days.
   100  	CreateUser string `protobuf:"bytes,9,opt,name=create_user,json=createUser,proto3" json:"create_user,omitempty"`
   101  	// The last time an auditable field was updated. An auditable field
   102  	// is any field other than a system controlled data field.
   103  	LastAuditableUpdateTime *timestamppb.Timestamp `protobuf:"bytes,18,opt,name=last_auditable_update_time,json=lastAuditableUpdateTime,proto3" json:"last_auditable_update_time,omitempty"`
   104  	// The last user which updated an auditable field. An auditable field
   105  	// is any field other than a system controlled data field.
   106  	// This could be an email address or the value 'system' (for rules
   107  	// automaticatically modified by LUCI Analysis itself).
   108  	// This value may not be available, as its disclosure is limited
   109  	// to Googlers only and is subject to automatic deletion after 30 days.
   110  	LastAuditableUpdateUser string `protobuf:"bytes,19,opt,name=last_auditable_update_user,json=lastAuditableUpdateUser,proto3" json:"last_auditable_update_user,omitempty"`
   111  	// The time the rule was last updated.
   112  	LastUpdateTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
   113  	// The time the rule was last updated in a way that caused the
   114  	// matched failures to change, i.e. because of a change to rule_definition
   115  	// or is_active. (By contrast, updating the associated bug does NOT change
   116  	// the matched failures, so does NOT update this field.)
   117  	// Output only.
   118  	PredicateLastUpdateTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=predicate_last_update_time,json=predicateLastUpdateTime,proto3" json:"predicate_last_update_time,omitempty"`
   119  	// This checksum is computed by the server based on the value of other
   120  	// fields, and may be sent on update requests to ensure the client
   121  	// has an up-to-date value before proceeding.
   122  	// See also https://google.aip.dev/154.
   123  	Etag string `protobuf:"bytes,12,opt,name=etag,proto3" json:"etag,omitempty"`
   124  }
   125  
   126  func (x *Rule) Reset() {
   127  	*x = Rule{}
   128  	if protoimpl.UnsafeEnabled {
   129  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[0]
   130  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   131  		ms.StoreMessageInfo(mi)
   132  	}
   133  }
   134  
   135  func (x *Rule) String() string {
   136  	return protoimpl.X.MessageStringOf(x)
   137  }
   138  
   139  func (*Rule) ProtoMessage() {}
   140  
   141  func (x *Rule) ProtoReflect() protoreflect.Message {
   142  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[0]
   143  	if protoimpl.UnsafeEnabled && x != nil {
   144  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   145  		if ms.LoadMessageInfo() == nil {
   146  			ms.StoreMessageInfo(mi)
   147  		}
   148  		return ms
   149  	}
   150  	return mi.MessageOf(x)
   151  }
   152  
   153  // Deprecated: Use Rule.ProtoReflect.Descriptor instead.
   154  func (*Rule) Descriptor() ([]byte, []int) {
   155  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{0}
   156  }
   157  
   158  func (x *Rule) GetName() string {
   159  	if x != nil {
   160  		return x.Name
   161  	}
   162  	return ""
   163  }
   164  
   165  func (x *Rule) GetProject() string {
   166  	if x != nil {
   167  		return x.Project
   168  	}
   169  	return ""
   170  }
   171  
   172  func (x *Rule) GetRuleId() string {
   173  	if x != nil {
   174  		return x.RuleId
   175  	}
   176  	return ""
   177  }
   178  
   179  func (x *Rule) GetRuleDefinition() string {
   180  	if x != nil {
   181  		return x.RuleDefinition
   182  	}
   183  	return ""
   184  }
   185  
   186  func (x *Rule) GetBug() *AssociatedBug {
   187  	if x != nil {
   188  		return x.Bug
   189  	}
   190  	return nil
   191  }
   192  
   193  func (x *Rule) GetIsActive() bool {
   194  	if x != nil {
   195  		return x.IsActive
   196  	}
   197  	return false
   198  }
   199  
   200  func (x *Rule) GetIsManagingBug() bool {
   201  	if x != nil {
   202  		return x.IsManagingBug
   203  	}
   204  	return false
   205  }
   206  
   207  func (x *Rule) GetIsManagingBugPriority() bool {
   208  	if x != nil {
   209  		return x.IsManagingBugPriority
   210  	}
   211  	return false
   212  }
   213  
   214  func (x *Rule) GetIsManagingBugPriorityLastUpdateTime() *timestamppb.Timestamp {
   215  	if x != nil {
   216  		return x.IsManagingBugPriorityLastUpdateTime
   217  	}
   218  	return nil
   219  }
   220  
   221  func (x *Rule) GetSourceCluster() *ClusterId {
   222  	if x != nil {
   223  		return x.SourceCluster
   224  	}
   225  	return nil
   226  }
   227  
   228  func (x *Rule) GetBugManagementState() *BugManagementState {
   229  	if x != nil {
   230  		return x.BugManagementState
   231  	}
   232  	return nil
   233  }
   234  
   235  func (x *Rule) GetCreateTime() *timestamppb.Timestamp {
   236  	if x != nil {
   237  		return x.CreateTime
   238  	}
   239  	return nil
   240  }
   241  
   242  func (x *Rule) GetCreateUser() string {
   243  	if x != nil {
   244  		return x.CreateUser
   245  	}
   246  	return ""
   247  }
   248  
   249  func (x *Rule) GetLastAuditableUpdateTime() *timestamppb.Timestamp {
   250  	if x != nil {
   251  		return x.LastAuditableUpdateTime
   252  	}
   253  	return nil
   254  }
   255  
   256  func (x *Rule) GetLastAuditableUpdateUser() string {
   257  	if x != nil {
   258  		return x.LastAuditableUpdateUser
   259  	}
   260  	return ""
   261  }
   262  
   263  func (x *Rule) GetLastUpdateTime() *timestamppb.Timestamp {
   264  	if x != nil {
   265  		return x.LastUpdateTime
   266  	}
   267  	return nil
   268  }
   269  
   270  func (x *Rule) GetPredicateLastUpdateTime() *timestamppb.Timestamp {
   271  	if x != nil {
   272  		return x.PredicateLastUpdateTime
   273  	}
   274  	return nil
   275  }
   276  
   277  func (x *Rule) GetEtag() string {
   278  	if x != nil {
   279  		return x.Etag
   280  	}
   281  	return ""
   282  }
   283  
   284  // BugManagementState is the state of bug management for a rule.
   285  type BugManagementState struct {
   286  	state         protoimpl.MessageState
   287  	sizeCache     protoimpl.SizeCache
   288  	unknownFields protoimpl.UnknownFields
   289  
   290  	// The state of each bug management policy.
   291  	PolicyState []*BugManagementState_PolicyState `protobuf:"bytes,1,rep,name=policy_state,json=policyState,proto3" json:"policy_state,omitempty"`
   292  }
   293  
   294  func (x *BugManagementState) Reset() {
   295  	*x = BugManagementState{}
   296  	if protoimpl.UnsafeEnabled {
   297  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[1]
   298  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   299  		ms.StoreMessageInfo(mi)
   300  	}
   301  }
   302  
   303  func (x *BugManagementState) String() string {
   304  	return protoimpl.X.MessageStringOf(x)
   305  }
   306  
   307  func (*BugManagementState) ProtoMessage() {}
   308  
   309  func (x *BugManagementState) ProtoReflect() protoreflect.Message {
   310  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[1]
   311  	if protoimpl.UnsafeEnabled && x != nil {
   312  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   313  		if ms.LoadMessageInfo() == nil {
   314  			ms.StoreMessageInfo(mi)
   315  		}
   316  		return ms
   317  	}
   318  	return mi.MessageOf(x)
   319  }
   320  
   321  // Deprecated: Use BugManagementState.ProtoReflect.Descriptor instead.
   322  func (*BugManagementState) Descriptor() ([]byte, []int) {
   323  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{1}
   324  }
   325  
   326  func (x *BugManagementState) GetPolicyState() []*BugManagementState_PolicyState {
   327  	if x != nil {
   328  		return x.PolicyState
   329  	}
   330  	return nil
   331  }
   332  
   333  type GetRuleRequest struct {
   334  	state         protoimpl.MessageState
   335  	sizeCache     protoimpl.SizeCache
   336  	unknownFields protoimpl.UnknownFields
   337  
   338  	// The name of the rule to retrieve.
   339  	// Format: projects/{project}/rules/{rule_id}.
   340  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   341  }
   342  
   343  func (x *GetRuleRequest) Reset() {
   344  	*x = GetRuleRequest{}
   345  	if protoimpl.UnsafeEnabled {
   346  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[2]
   347  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   348  		ms.StoreMessageInfo(mi)
   349  	}
   350  }
   351  
   352  func (x *GetRuleRequest) String() string {
   353  	return protoimpl.X.MessageStringOf(x)
   354  }
   355  
   356  func (*GetRuleRequest) ProtoMessage() {}
   357  
   358  func (x *GetRuleRequest) ProtoReflect() protoreflect.Message {
   359  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[2]
   360  	if protoimpl.UnsafeEnabled && x != nil {
   361  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   362  		if ms.LoadMessageInfo() == nil {
   363  			ms.StoreMessageInfo(mi)
   364  		}
   365  		return ms
   366  	}
   367  	return mi.MessageOf(x)
   368  }
   369  
   370  // Deprecated: Use GetRuleRequest.ProtoReflect.Descriptor instead.
   371  func (*GetRuleRequest) Descriptor() ([]byte, []int) {
   372  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{2}
   373  }
   374  
   375  func (x *GetRuleRequest) GetName() string {
   376  	if x != nil {
   377  		return x.Name
   378  	}
   379  	return ""
   380  }
   381  
   382  type ListRulesRequest struct {
   383  	state         protoimpl.MessageState
   384  	sizeCache     protoimpl.SizeCache
   385  	unknownFields protoimpl.UnknownFields
   386  
   387  	// The parent, which owns this collection of rules.
   388  	// Format: projects/{project}.
   389  	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
   390  }
   391  
   392  func (x *ListRulesRequest) Reset() {
   393  	*x = ListRulesRequest{}
   394  	if protoimpl.UnsafeEnabled {
   395  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[3]
   396  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   397  		ms.StoreMessageInfo(mi)
   398  	}
   399  }
   400  
   401  func (x *ListRulesRequest) String() string {
   402  	return protoimpl.X.MessageStringOf(x)
   403  }
   404  
   405  func (*ListRulesRequest) ProtoMessage() {}
   406  
   407  func (x *ListRulesRequest) ProtoReflect() protoreflect.Message {
   408  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[3]
   409  	if protoimpl.UnsafeEnabled && x != nil {
   410  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   411  		if ms.LoadMessageInfo() == nil {
   412  			ms.StoreMessageInfo(mi)
   413  		}
   414  		return ms
   415  	}
   416  	return mi.MessageOf(x)
   417  }
   418  
   419  // Deprecated: Use ListRulesRequest.ProtoReflect.Descriptor instead.
   420  func (*ListRulesRequest) Descriptor() ([]byte, []int) {
   421  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{3}
   422  }
   423  
   424  func (x *ListRulesRequest) GetParent() string {
   425  	if x != nil {
   426  		return x.Parent
   427  	}
   428  	return ""
   429  }
   430  
   431  type ListRulesResponse struct {
   432  	state         protoimpl.MessageState
   433  	sizeCache     protoimpl.SizeCache
   434  	unknownFields protoimpl.UnknownFields
   435  
   436  	// The rules.
   437  	Rules []*Rule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
   438  }
   439  
   440  func (x *ListRulesResponse) Reset() {
   441  	*x = ListRulesResponse{}
   442  	if protoimpl.UnsafeEnabled {
   443  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[4]
   444  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   445  		ms.StoreMessageInfo(mi)
   446  	}
   447  }
   448  
   449  func (x *ListRulesResponse) String() string {
   450  	return protoimpl.X.MessageStringOf(x)
   451  }
   452  
   453  func (*ListRulesResponse) ProtoMessage() {}
   454  
   455  func (x *ListRulesResponse) ProtoReflect() protoreflect.Message {
   456  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[4]
   457  	if protoimpl.UnsafeEnabled && x != nil {
   458  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   459  		if ms.LoadMessageInfo() == nil {
   460  			ms.StoreMessageInfo(mi)
   461  		}
   462  		return ms
   463  	}
   464  	return mi.MessageOf(x)
   465  }
   466  
   467  // Deprecated: Use ListRulesResponse.ProtoReflect.Descriptor instead.
   468  func (*ListRulesResponse) Descriptor() ([]byte, []int) {
   469  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{4}
   470  }
   471  
   472  func (x *ListRulesResponse) GetRules() []*Rule {
   473  	if x != nil {
   474  		return x.Rules
   475  	}
   476  	return nil
   477  }
   478  
   479  type CreateRuleRequest struct {
   480  	state         protoimpl.MessageState
   481  	sizeCache     protoimpl.SizeCache
   482  	unknownFields protoimpl.UnknownFields
   483  
   484  	// The parent resource where the rule will be created.
   485  	// Format: projects/{project}.
   486  	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
   487  	// The rule to create.
   488  	Rule *Rule `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule,omitempty"`
   489  }
   490  
   491  func (x *CreateRuleRequest) Reset() {
   492  	*x = CreateRuleRequest{}
   493  	if protoimpl.UnsafeEnabled {
   494  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[5]
   495  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   496  		ms.StoreMessageInfo(mi)
   497  	}
   498  }
   499  
   500  func (x *CreateRuleRequest) String() string {
   501  	return protoimpl.X.MessageStringOf(x)
   502  }
   503  
   504  func (*CreateRuleRequest) ProtoMessage() {}
   505  
   506  func (x *CreateRuleRequest) ProtoReflect() protoreflect.Message {
   507  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[5]
   508  	if protoimpl.UnsafeEnabled && x != nil {
   509  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   510  		if ms.LoadMessageInfo() == nil {
   511  			ms.StoreMessageInfo(mi)
   512  		}
   513  		return ms
   514  	}
   515  	return mi.MessageOf(x)
   516  }
   517  
   518  // Deprecated: Use CreateRuleRequest.ProtoReflect.Descriptor instead.
   519  func (*CreateRuleRequest) Descriptor() ([]byte, []int) {
   520  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{5}
   521  }
   522  
   523  func (x *CreateRuleRequest) GetParent() string {
   524  	if x != nil {
   525  		return x.Parent
   526  	}
   527  	return ""
   528  }
   529  
   530  func (x *CreateRuleRequest) GetRule() *Rule {
   531  	if x != nil {
   532  		return x.Rule
   533  	}
   534  	return nil
   535  }
   536  
   537  type UpdateRuleRequest struct {
   538  	state         protoimpl.MessageState
   539  	sizeCache     protoimpl.SizeCache
   540  	unknownFields protoimpl.UnknownFields
   541  
   542  	// The rule to update.
   543  	//
   544  	// The rule's `name` field is used to identify the book to update.
   545  	// Format: projects/{project}/rules/{rule_id}.
   546  	Rule *Rule `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"`
   547  	// The list of fields to update.
   548  	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
   549  	// The current etag of the rule.
   550  	// If an etag is provided and does not match the current etag of the rule,
   551  	// update will be blocked and an ABORTED error will be returned.
   552  	Etag string `protobuf:"bytes,3,opt,name=etag,proto3" json:"etag,omitempty"`
   553  }
   554  
   555  func (x *UpdateRuleRequest) Reset() {
   556  	*x = UpdateRuleRequest{}
   557  	if protoimpl.UnsafeEnabled {
   558  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[6]
   559  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   560  		ms.StoreMessageInfo(mi)
   561  	}
   562  }
   563  
   564  func (x *UpdateRuleRequest) String() string {
   565  	return protoimpl.X.MessageStringOf(x)
   566  }
   567  
   568  func (*UpdateRuleRequest) ProtoMessage() {}
   569  
   570  func (x *UpdateRuleRequest) ProtoReflect() protoreflect.Message {
   571  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[6]
   572  	if protoimpl.UnsafeEnabled && x != nil {
   573  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   574  		if ms.LoadMessageInfo() == nil {
   575  			ms.StoreMessageInfo(mi)
   576  		}
   577  		return ms
   578  	}
   579  	return mi.MessageOf(x)
   580  }
   581  
   582  // Deprecated: Use UpdateRuleRequest.ProtoReflect.Descriptor instead.
   583  func (*UpdateRuleRequest) Descriptor() ([]byte, []int) {
   584  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{6}
   585  }
   586  
   587  func (x *UpdateRuleRequest) GetRule() *Rule {
   588  	if x != nil {
   589  		return x.Rule
   590  	}
   591  	return nil
   592  }
   593  
   594  func (x *UpdateRuleRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
   595  	if x != nil {
   596  		return x.UpdateMask
   597  	}
   598  	return nil
   599  }
   600  
   601  func (x *UpdateRuleRequest) GetEtag() string {
   602  	if x != nil {
   603  		return x.Etag
   604  	}
   605  	return ""
   606  }
   607  
   608  type LookupBugRequest struct {
   609  	state         protoimpl.MessageState
   610  	sizeCache     protoimpl.SizeCache
   611  	unknownFields protoimpl.UnknownFields
   612  
   613  	// System is the bug tracking system of the bug. This is either
   614  	// "monorail" or "buganizer".
   615  	System string `protobuf:"bytes,1,opt,name=system,proto3" json:"system,omitempty"`
   616  	// Id is the bug tracking system-specific identity of the bug.
   617  	// For monorail, the scheme is {project}/{numeric_id}, for
   618  	// buganizer the scheme is {numeric_id}.
   619  	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   620  }
   621  
   622  func (x *LookupBugRequest) Reset() {
   623  	*x = LookupBugRequest{}
   624  	if protoimpl.UnsafeEnabled {
   625  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[7]
   626  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   627  		ms.StoreMessageInfo(mi)
   628  	}
   629  }
   630  
   631  func (x *LookupBugRequest) String() string {
   632  	return protoimpl.X.MessageStringOf(x)
   633  }
   634  
   635  func (*LookupBugRequest) ProtoMessage() {}
   636  
   637  func (x *LookupBugRequest) ProtoReflect() protoreflect.Message {
   638  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[7]
   639  	if protoimpl.UnsafeEnabled && x != nil {
   640  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   641  		if ms.LoadMessageInfo() == nil {
   642  			ms.StoreMessageInfo(mi)
   643  		}
   644  		return ms
   645  	}
   646  	return mi.MessageOf(x)
   647  }
   648  
   649  // Deprecated: Use LookupBugRequest.ProtoReflect.Descriptor instead.
   650  func (*LookupBugRequest) Descriptor() ([]byte, []int) {
   651  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{7}
   652  }
   653  
   654  func (x *LookupBugRequest) GetSystem() string {
   655  	if x != nil {
   656  		return x.System
   657  	}
   658  	return ""
   659  }
   660  
   661  func (x *LookupBugRequest) GetId() string {
   662  	if x != nil {
   663  		return x.Id
   664  	}
   665  	return ""
   666  }
   667  
   668  type LookupBugResponse struct {
   669  	state         protoimpl.MessageState
   670  	sizeCache     protoimpl.SizeCache
   671  	unknownFields protoimpl.UnknownFields
   672  
   673  	// The rules corresponding to the requested bug.
   674  	// Format: projects/{project}/rules/{rule_id}.
   675  	Rules []string `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
   676  }
   677  
   678  func (x *LookupBugResponse) Reset() {
   679  	*x = LookupBugResponse{}
   680  	if protoimpl.UnsafeEnabled {
   681  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[8]
   682  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   683  		ms.StoreMessageInfo(mi)
   684  	}
   685  }
   686  
   687  func (x *LookupBugResponse) String() string {
   688  	return protoimpl.X.MessageStringOf(x)
   689  }
   690  
   691  func (*LookupBugResponse) ProtoMessage() {}
   692  
   693  func (x *LookupBugResponse) ProtoReflect() protoreflect.Message {
   694  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[8]
   695  	if protoimpl.UnsafeEnabled && x != nil {
   696  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   697  		if ms.LoadMessageInfo() == nil {
   698  			ms.StoreMessageInfo(mi)
   699  		}
   700  		return ms
   701  	}
   702  	return mi.MessageOf(x)
   703  }
   704  
   705  // Deprecated: Use LookupBugResponse.ProtoReflect.Descriptor instead.
   706  func (*LookupBugResponse) Descriptor() ([]byte, []int) {
   707  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{8}
   708  }
   709  
   710  func (x *LookupBugResponse) GetRules() []string {
   711  	if x != nil {
   712  		return x.Rules
   713  	}
   714  	return nil
   715  }
   716  
   717  // The state of a bug management policy for a rule.
   718  type BugManagementState_PolicyState struct {
   719  	state         protoimpl.MessageState
   720  	sizeCache     protoimpl.SizeCache
   721  	unknownFields protoimpl.UnknownFields
   722  
   723  	// The identifier of the bug management policy.
   724  	PolicyId string `protobuf:"bytes,1,opt,name=policy_id,json=policyId,proto3" json:"policy_id,omitempty"`
   725  	// Whether the given policy is active for the rule.
   726  	// Updated on every bug-filing run as follows:
   727  	// - Set to true if the policy activation criteria was met.
   728  	// - Set to false if the policy deactivation criteria was met.
   729  	IsActive bool `protobuf:"varint,2,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
   730  	// The last time the policy was made active.
   731  	// Allows detecting if policy is made active for the first time (as a
   732  	// zero last_activation_time indicates the policy was never active).
   733  	// Allows UI to filter to showing policies that were at least once active.
   734  	// Allows UI to sort which policy was most recently active.
   735  	// Allows UI to show when a policy last activated.
   736  	LastActivationTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=last_activation_time,json=lastActivationTime,proto3" json:"last_activation_time,omitempty"`
   737  	// The last time the policy was made inactive.
   738  	// Allows UI to show when a policy last deactivated.
   739  	LastDeactivationTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_deactivation_time,json=lastDeactivationTime,proto3" json:"last_deactivation_time,omitempty"`
   740  }
   741  
   742  func (x *BugManagementState_PolicyState) Reset() {
   743  	*x = BugManagementState_PolicyState{}
   744  	if protoimpl.UnsafeEnabled {
   745  		mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[9]
   746  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   747  		ms.StoreMessageInfo(mi)
   748  	}
   749  }
   750  
   751  func (x *BugManagementState_PolicyState) String() string {
   752  	return protoimpl.X.MessageStringOf(x)
   753  }
   754  
   755  func (*BugManagementState_PolicyState) ProtoMessage() {}
   756  
   757  func (x *BugManagementState_PolicyState) ProtoReflect() protoreflect.Message {
   758  	mi := &file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[9]
   759  	if protoimpl.UnsafeEnabled && x != nil {
   760  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   761  		if ms.LoadMessageInfo() == nil {
   762  			ms.StoreMessageInfo(mi)
   763  		}
   764  		return ms
   765  	}
   766  	return mi.MessageOf(x)
   767  }
   768  
   769  // Deprecated: Use BugManagementState_PolicyState.ProtoReflect.Descriptor instead.
   770  func (*BugManagementState_PolicyState) Descriptor() ([]byte, []int) {
   771  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP(), []int{1, 0}
   772  }
   773  
   774  func (x *BugManagementState_PolicyState) GetPolicyId() string {
   775  	if x != nil {
   776  		return x.PolicyId
   777  	}
   778  	return ""
   779  }
   780  
   781  func (x *BugManagementState_PolicyState) GetIsActive() bool {
   782  	if x != nil {
   783  		return x.IsActive
   784  	}
   785  	return false
   786  }
   787  
   788  func (x *BugManagementState_PolicyState) GetLastActivationTime() *timestamppb.Timestamp {
   789  	if x != nil {
   790  		return x.LastActivationTime
   791  	}
   792  	return nil
   793  }
   794  
   795  func (x *BugManagementState_PolicyState) GetLastDeactivationTime() *timestamppb.Timestamp {
   796  	if x != nil {
   797  		return x.LastDeactivationTime
   798  	}
   799  	return nil
   800  }
   801  
   802  var File_go_chromium_org_luci_analysis_proto_v1_rules_proto protoreflect.FileDescriptor
   803  
   804  var file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDesc = []byte{
   805  	0x0a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
   806  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f,
   807  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x70,
   808  	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
   809  	0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61,
   810  	0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f,
   811  	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
   812  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d,
   813  	0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   814  	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
   815  	0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63,
   816  	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69,
   817  	0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
   818  	0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
   819  	0x9b, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
   820  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07,
   821  	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
   822  	0x41, 0x03, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x72,
   823  	0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
   824  	0x03, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x75, 0x6c,
   825  	0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
   826  	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x72, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x66,
   827  	0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x03, 0x62, 0x75, 0x67, 0x18, 0x05,
   828  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
   829  	0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74,
   830  	0x65, 0x64, 0x42, 0x75, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x62, 0x75, 0x67, 0x12,
   831  	0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01,
   832  	0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0f,
   833  	0x69, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x67, 0x18,
   834  	0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e,
   835  	0x67, 0x42, 0x75, 0x67, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
   836  	0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
   837  	0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x69,
   838  	0x6e, 0x67, 0x42, 0x75, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x72, 0x0a,
   839  	0x29, 0x69, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x67,
   840  	0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75,
   841  	0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b,
   842  	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
   843  	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x23, 0x69, 0x73,
   844  	0x4d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72,
   845  	0x69, 0x74, 0x79, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
   846  	0x65, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73,
   847  	0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x75, 0x63, 0x69,
   848  	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75,
   849  	0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c,
   850  	0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x14, 0x62, 0x75, 0x67, 0x5f, 0x6d, 0x61, 0x6e,
   851  	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x11, 0x20,
   852  	0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
   853  	0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x67, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
   854  	0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12,
   855  	0x62, 0x75, 0x67, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
   856  	0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
   857  	0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   858  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
   859  	0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
   860  	0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x75,
   861  	0x73, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a,
   862  	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x1a, 0x6c, 0x61,
   863  	0x73, 0x74, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64,
   864  	0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
   865  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
   866  	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
   867  	0x17, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x70,
   868  	0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x1a, 0x6c, 0x61, 0x73, 0x74,
   869  	0x5f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74,
   870  	0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
   871  	0x03, 0x52, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x75, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65,
   872  	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x10, 0x6c, 0x61,
   873  	0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a,
   874  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
   875  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
   876  	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74,
   877  	0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x1a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61,
   878  	0x74, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74,
   879  	0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
   880  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
   881  	0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x70, 0x72, 0x65, 0x64,
   882  	0x69, 0x63, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
   883  	0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28,
   884  	0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, 0xd3, 0x02,
   885  	0x0a, 0x12, 0x42, 0x75, 0x67, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53,
   886  	0x74, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73,
   887  	0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6c, 0x75, 0x63,
   888  	0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75,
   889  	0x67, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65,
   890  	0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x70, 0x6f,
   891  	0x6c, 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xe7, 0x01, 0x0a, 0x0b, 0x50, 0x6f,
   892  	0x6c, 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6c,
   893  	0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f,
   894  	0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74,
   895  	0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74,
   896  	0x69, 0x76, 0x65, 0x12, 0x4c, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69,
   897  	0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
   898  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   899  	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x6c,
   900  	0x61, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d,
   901  	0x65, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69,
   902  	0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
   903  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   904  	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x14, 0x6c,
   905  	0x61, 0x73, 0x74, 0x44, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
   906  	0x69, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65,
   907  	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
   908  	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2f,
   909  	0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
   910  	0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
   911  	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22,
   912  	0x41, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
   913  	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20,
   914  	0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
   915  	0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c,
   916  	0x65, 0x73, 0x22, 0x61, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65,
   917  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
   918  	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61,
   919  	0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,
   920  	0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73,
   921  	0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
   922  	0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
   923  	0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x72,
   924  	0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x69,
   925  	0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c,
   926  	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x0b,
   927  	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
   928  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   929  	0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75,
   930  	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61,
   931  	0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22, 0x44, 0x0a,
   932  	0x10, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
   933  	0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
   934  	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x13,
   935  	0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
   936  	0x02, 0x69, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x75, 0x67,
   937  	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65,
   938  	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x32, 0x87,
   939  	0x03, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12,
   940  	0x20, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e,
   941  	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
   942  	0x74, 0x1a, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
   943  	0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x04, 0x4c,
   944  	0x69, 0x73, 0x74, 0x12, 0x22, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
   945  	0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73,
   946  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61,
   947  	0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52,
   948  	0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47,
   949  	0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e,
   950  	0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61,
   951  	0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
   952  	0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31,
   953  	0x2e, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74,
   954  	0x65, 0x12, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
   955  	0x73, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x52,
   956  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e,
   957  	0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x22, 0x00,
   958  	0x12, 0x56, 0x0a, 0x09, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x75, 0x67, 0x12, 0x22, 0x2e,
   959  	0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31,
   960  	0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
   961  	0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
   962  	0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x75, 0x67, 0x52, 0x65,
   963  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x6f, 0x2e, 0x63,
   964  	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69,
   965  	0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
   966  	0x76, 0x31, 0x3b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70,
   967  	0x72, 0x6f, 0x74, 0x6f, 0x33,
   968  }
   969  
   970  var (
   971  	file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescOnce sync.Once
   972  	file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescData = file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDesc
   973  )
   974  
   975  func file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescGZIP() []byte {
   976  	file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescOnce.Do(func() {
   977  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescData)
   978  	})
   979  	return file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDescData
   980  }
   981  
   982  var file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
   983  var file_go_chromium_org_luci_analysis_proto_v1_rules_proto_goTypes = []interface{}{
   984  	(*Rule)(nil),                           // 0: luci.analysis.v1.Rule
   985  	(*BugManagementState)(nil),             // 1: luci.analysis.v1.BugManagementState
   986  	(*GetRuleRequest)(nil),                 // 2: luci.analysis.v1.GetRuleRequest
   987  	(*ListRulesRequest)(nil),               // 3: luci.analysis.v1.ListRulesRequest
   988  	(*ListRulesResponse)(nil),              // 4: luci.analysis.v1.ListRulesResponse
   989  	(*CreateRuleRequest)(nil),              // 5: luci.analysis.v1.CreateRuleRequest
   990  	(*UpdateRuleRequest)(nil),              // 6: luci.analysis.v1.UpdateRuleRequest
   991  	(*LookupBugRequest)(nil),               // 7: luci.analysis.v1.LookupBugRequest
   992  	(*LookupBugResponse)(nil),              // 8: luci.analysis.v1.LookupBugResponse
   993  	(*BugManagementState_PolicyState)(nil), // 9: luci.analysis.v1.BugManagementState.PolicyState
   994  	(*AssociatedBug)(nil),                  // 10: luci.analysis.v1.AssociatedBug
   995  	(*timestamppb.Timestamp)(nil),          // 11: google.protobuf.Timestamp
   996  	(*ClusterId)(nil),                      // 12: luci.analysis.v1.ClusterId
   997  	(*fieldmaskpb.FieldMask)(nil),          // 13: google.protobuf.FieldMask
   998  }
   999  var file_go_chromium_org_luci_analysis_proto_v1_rules_proto_depIdxs = []int32{
  1000  	10, // 0: luci.analysis.v1.Rule.bug:type_name -> luci.analysis.v1.AssociatedBug
  1001  	11, // 1: luci.analysis.v1.Rule.is_managing_bug_priority_last_update_time:type_name -> google.protobuf.Timestamp
  1002  	12, // 2: luci.analysis.v1.Rule.source_cluster:type_name -> luci.analysis.v1.ClusterId
  1003  	1,  // 3: luci.analysis.v1.Rule.bug_management_state:type_name -> luci.analysis.v1.BugManagementState
  1004  	11, // 4: luci.analysis.v1.Rule.create_time:type_name -> google.protobuf.Timestamp
  1005  	11, // 5: luci.analysis.v1.Rule.last_auditable_update_time:type_name -> google.protobuf.Timestamp
  1006  	11, // 6: luci.analysis.v1.Rule.last_update_time:type_name -> google.protobuf.Timestamp
  1007  	11, // 7: luci.analysis.v1.Rule.predicate_last_update_time:type_name -> google.protobuf.Timestamp
  1008  	9,  // 8: luci.analysis.v1.BugManagementState.policy_state:type_name -> luci.analysis.v1.BugManagementState.PolicyState
  1009  	0,  // 9: luci.analysis.v1.ListRulesResponse.rules:type_name -> luci.analysis.v1.Rule
  1010  	0,  // 10: luci.analysis.v1.CreateRuleRequest.rule:type_name -> luci.analysis.v1.Rule
  1011  	0,  // 11: luci.analysis.v1.UpdateRuleRequest.rule:type_name -> luci.analysis.v1.Rule
  1012  	13, // 12: luci.analysis.v1.UpdateRuleRequest.update_mask:type_name -> google.protobuf.FieldMask
  1013  	11, // 13: luci.analysis.v1.BugManagementState.PolicyState.last_activation_time:type_name -> google.protobuf.Timestamp
  1014  	11, // 14: luci.analysis.v1.BugManagementState.PolicyState.last_deactivation_time:type_name -> google.protobuf.Timestamp
  1015  	2,  // 15: luci.analysis.v1.Rules.Get:input_type -> luci.analysis.v1.GetRuleRequest
  1016  	3,  // 16: luci.analysis.v1.Rules.List:input_type -> luci.analysis.v1.ListRulesRequest
  1017  	5,  // 17: luci.analysis.v1.Rules.Create:input_type -> luci.analysis.v1.CreateRuleRequest
  1018  	6,  // 18: luci.analysis.v1.Rules.Update:input_type -> luci.analysis.v1.UpdateRuleRequest
  1019  	7,  // 19: luci.analysis.v1.Rules.LookupBug:input_type -> luci.analysis.v1.LookupBugRequest
  1020  	0,  // 20: luci.analysis.v1.Rules.Get:output_type -> luci.analysis.v1.Rule
  1021  	4,  // 21: luci.analysis.v1.Rules.List:output_type -> luci.analysis.v1.ListRulesResponse
  1022  	0,  // 22: luci.analysis.v1.Rules.Create:output_type -> luci.analysis.v1.Rule
  1023  	0,  // 23: luci.analysis.v1.Rules.Update:output_type -> luci.analysis.v1.Rule
  1024  	8,  // 24: luci.analysis.v1.Rules.LookupBug:output_type -> luci.analysis.v1.LookupBugResponse
  1025  	20, // [20:25] is the sub-list for method output_type
  1026  	15, // [15:20] is the sub-list for method input_type
  1027  	15, // [15:15] is the sub-list for extension type_name
  1028  	15, // [15:15] is the sub-list for extension extendee
  1029  	0,  // [0:15] is the sub-list for field type_name
  1030  }
  1031  
  1032  func init() { file_go_chromium_org_luci_analysis_proto_v1_rules_proto_init() }
  1033  func file_go_chromium_org_luci_analysis_proto_v1_rules_proto_init() {
  1034  	if File_go_chromium_org_luci_analysis_proto_v1_rules_proto != nil {
  1035  		return
  1036  	}
  1037  	file_go_chromium_org_luci_analysis_proto_v1_common_proto_init()
  1038  	if !protoimpl.UnsafeEnabled {
  1039  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1040  			switch v := v.(*Rule); i {
  1041  			case 0:
  1042  				return &v.state
  1043  			case 1:
  1044  				return &v.sizeCache
  1045  			case 2:
  1046  				return &v.unknownFields
  1047  			default:
  1048  				return nil
  1049  			}
  1050  		}
  1051  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1052  			switch v := v.(*BugManagementState); i {
  1053  			case 0:
  1054  				return &v.state
  1055  			case 1:
  1056  				return &v.sizeCache
  1057  			case 2:
  1058  				return &v.unknownFields
  1059  			default:
  1060  				return nil
  1061  			}
  1062  		}
  1063  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1064  			switch v := v.(*GetRuleRequest); i {
  1065  			case 0:
  1066  				return &v.state
  1067  			case 1:
  1068  				return &v.sizeCache
  1069  			case 2:
  1070  				return &v.unknownFields
  1071  			default:
  1072  				return nil
  1073  			}
  1074  		}
  1075  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1076  			switch v := v.(*ListRulesRequest); i {
  1077  			case 0:
  1078  				return &v.state
  1079  			case 1:
  1080  				return &v.sizeCache
  1081  			case 2:
  1082  				return &v.unknownFields
  1083  			default:
  1084  				return nil
  1085  			}
  1086  		}
  1087  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1088  			switch v := v.(*ListRulesResponse); i {
  1089  			case 0:
  1090  				return &v.state
  1091  			case 1:
  1092  				return &v.sizeCache
  1093  			case 2:
  1094  				return &v.unknownFields
  1095  			default:
  1096  				return nil
  1097  			}
  1098  		}
  1099  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1100  			switch v := v.(*CreateRuleRequest); i {
  1101  			case 0:
  1102  				return &v.state
  1103  			case 1:
  1104  				return &v.sizeCache
  1105  			case 2:
  1106  				return &v.unknownFields
  1107  			default:
  1108  				return nil
  1109  			}
  1110  		}
  1111  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1112  			switch v := v.(*UpdateRuleRequest); i {
  1113  			case 0:
  1114  				return &v.state
  1115  			case 1:
  1116  				return &v.sizeCache
  1117  			case 2:
  1118  				return &v.unknownFields
  1119  			default:
  1120  				return nil
  1121  			}
  1122  		}
  1123  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1124  			switch v := v.(*LookupBugRequest); i {
  1125  			case 0:
  1126  				return &v.state
  1127  			case 1:
  1128  				return &v.sizeCache
  1129  			case 2:
  1130  				return &v.unknownFields
  1131  			default:
  1132  				return nil
  1133  			}
  1134  		}
  1135  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1136  			switch v := v.(*LookupBugResponse); i {
  1137  			case 0:
  1138  				return &v.state
  1139  			case 1:
  1140  				return &v.sizeCache
  1141  			case 2:
  1142  				return &v.unknownFields
  1143  			default:
  1144  				return nil
  1145  			}
  1146  		}
  1147  		file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1148  			switch v := v.(*BugManagementState_PolicyState); i {
  1149  			case 0:
  1150  				return &v.state
  1151  			case 1:
  1152  				return &v.sizeCache
  1153  			case 2:
  1154  				return &v.unknownFields
  1155  			default:
  1156  				return nil
  1157  			}
  1158  		}
  1159  	}
  1160  	type x struct{}
  1161  	out := protoimpl.TypeBuilder{
  1162  		File: protoimpl.DescBuilder{
  1163  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1164  			RawDescriptor: file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDesc,
  1165  			NumEnums:      0,
  1166  			NumMessages:   10,
  1167  			NumExtensions: 0,
  1168  			NumServices:   1,
  1169  		},
  1170  		GoTypes:           file_go_chromium_org_luci_analysis_proto_v1_rules_proto_goTypes,
  1171  		DependencyIndexes: file_go_chromium_org_luci_analysis_proto_v1_rules_proto_depIdxs,
  1172  		MessageInfos:      file_go_chromium_org_luci_analysis_proto_v1_rules_proto_msgTypes,
  1173  	}.Build()
  1174  	File_go_chromium_org_luci_analysis_proto_v1_rules_proto = out.File
  1175  	file_go_chromium_org_luci_analysis_proto_v1_rules_proto_rawDesc = nil
  1176  	file_go_chromium_org_luci_analysis_proto_v1_rules_proto_goTypes = nil
  1177  	file_go_chromium_org_luci_analysis_proto_v1_rules_proto_depIdxs = nil
  1178  }
  1179  
  1180  // Reference imports to suppress errors if they are not otherwise used.
  1181  var _ context.Context
  1182  var _ grpc.ClientConnInterface
  1183  
  1184  // This is a compile-time assertion to ensure that this generated file
  1185  // is compatible with the grpc package it is being compiled against.
  1186  const _ = grpc.SupportPackageIsVersion6
  1187  
  1188  // RulesClient is the client API for Rules service.
  1189  //
  1190  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
  1191  type RulesClient interface {
  1192  	// Retrieves a rule.
  1193  	// Designed to conform to https://google.aip.dev/131.
  1194  	Get(ctx context.Context, in *GetRuleRequest, opts ...grpc.CallOption) (*Rule, error)
  1195  	// Lists rules.
  1196  	// TODO: implement pagination to make this
  1197  	// RPC compliant with https://google.aip.dev/132.
  1198  	// This RPC is incomplete. Future breaking changes are
  1199  	// expressly flagged.
  1200  	List(ctx context.Context, in *ListRulesRequest, opts ...grpc.CallOption) (*ListRulesResponse, error)
  1201  	// Creates a new rule.
  1202  	// Designed to conform to https://google.aip.dev/133.
  1203  	Create(ctx context.Context, in *CreateRuleRequest, opts ...grpc.CallOption) (*Rule, error)
  1204  	// Updates a rule.
  1205  	// Designed to conform to https://google.aip.dev/134.
  1206  	Update(ctx context.Context, in *UpdateRuleRequest, opts ...grpc.CallOption) (*Rule, error)
  1207  	// Looks up the rule associated with a given bug, without knowledge
  1208  	// of the LUCI project the rule is in.
  1209  	// Designed to conform to https://google.aip.dev/136.
  1210  	LookupBug(ctx context.Context, in *LookupBugRequest, opts ...grpc.CallOption) (*LookupBugResponse, error)
  1211  }
  1212  type rulesPRPCClient struct {
  1213  	client *prpc.Client
  1214  }
  1215  
  1216  func NewRulesPRPCClient(client *prpc.Client) RulesClient {
  1217  	return &rulesPRPCClient{client}
  1218  }
  1219  
  1220  func (c *rulesPRPCClient) Get(ctx context.Context, in *GetRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
  1221  	out := new(Rule)
  1222  	err := c.client.Call(ctx, "luci.analysis.v1.Rules", "Get", in, out, opts...)
  1223  	if err != nil {
  1224  		return nil, err
  1225  	}
  1226  	return out, nil
  1227  }
  1228  
  1229  func (c *rulesPRPCClient) List(ctx context.Context, in *ListRulesRequest, opts ...grpc.CallOption) (*ListRulesResponse, error) {
  1230  	out := new(ListRulesResponse)
  1231  	err := c.client.Call(ctx, "luci.analysis.v1.Rules", "List", in, out, opts...)
  1232  	if err != nil {
  1233  		return nil, err
  1234  	}
  1235  	return out, nil
  1236  }
  1237  
  1238  func (c *rulesPRPCClient) Create(ctx context.Context, in *CreateRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
  1239  	out := new(Rule)
  1240  	err := c.client.Call(ctx, "luci.analysis.v1.Rules", "Create", in, out, opts...)
  1241  	if err != nil {
  1242  		return nil, err
  1243  	}
  1244  	return out, nil
  1245  }
  1246  
  1247  func (c *rulesPRPCClient) Update(ctx context.Context, in *UpdateRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
  1248  	out := new(Rule)
  1249  	err := c.client.Call(ctx, "luci.analysis.v1.Rules", "Update", in, out, opts...)
  1250  	if err != nil {
  1251  		return nil, err
  1252  	}
  1253  	return out, nil
  1254  }
  1255  
  1256  func (c *rulesPRPCClient) LookupBug(ctx context.Context, in *LookupBugRequest, opts ...grpc.CallOption) (*LookupBugResponse, error) {
  1257  	out := new(LookupBugResponse)
  1258  	err := c.client.Call(ctx, "luci.analysis.v1.Rules", "LookupBug", in, out, opts...)
  1259  	if err != nil {
  1260  		return nil, err
  1261  	}
  1262  	return out, nil
  1263  }
  1264  
  1265  type rulesClient struct {
  1266  	cc grpc.ClientConnInterface
  1267  }
  1268  
  1269  func NewRulesClient(cc grpc.ClientConnInterface) RulesClient {
  1270  	return &rulesClient{cc}
  1271  }
  1272  
  1273  func (c *rulesClient) Get(ctx context.Context, in *GetRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
  1274  	out := new(Rule)
  1275  	err := c.cc.Invoke(ctx, "/luci.analysis.v1.Rules/Get", in, out, opts...)
  1276  	if err != nil {
  1277  		return nil, err
  1278  	}
  1279  	return out, nil
  1280  }
  1281  
  1282  func (c *rulesClient) List(ctx context.Context, in *ListRulesRequest, opts ...grpc.CallOption) (*ListRulesResponse, error) {
  1283  	out := new(ListRulesResponse)
  1284  	err := c.cc.Invoke(ctx, "/luci.analysis.v1.Rules/List", in, out, opts...)
  1285  	if err != nil {
  1286  		return nil, err
  1287  	}
  1288  	return out, nil
  1289  }
  1290  
  1291  func (c *rulesClient) Create(ctx context.Context, in *CreateRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
  1292  	out := new(Rule)
  1293  	err := c.cc.Invoke(ctx, "/luci.analysis.v1.Rules/Create", in, out, opts...)
  1294  	if err != nil {
  1295  		return nil, err
  1296  	}
  1297  	return out, nil
  1298  }
  1299  
  1300  func (c *rulesClient) Update(ctx context.Context, in *UpdateRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
  1301  	out := new(Rule)
  1302  	err := c.cc.Invoke(ctx, "/luci.analysis.v1.Rules/Update", in, out, opts...)
  1303  	if err != nil {
  1304  		return nil, err
  1305  	}
  1306  	return out, nil
  1307  }
  1308  
  1309  func (c *rulesClient) LookupBug(ctx context.Context, in *LookupBugRequest, opts ...grpc.CallOption) (*LookupBugResponse, error) {
  1310  	out := new(LookupBugResponse)
  1311  	err := c.cc.Invoke(ctx, "/luci.analysis.v1.Rules/LookupBug", in, out, opts...)
  1312  	if err != nil {
  1313  		return nil, err
  1314  	}
  1315  	return out, nil
  1316  }
  1317  
  1318  // RulesServer is the server API for Rules service.
  1319  type RulesServer interface {
  1320  	// Retrieves a rule.
  1321  	// Designed to conform to https://google.aip.dev/131.
  1322  	Get(context.Context, *GetRuleRequest) (*Rule, error)
  1323  	// Lists rules.
  1324  	// TODO: implement pagination to make this
  1325  	// RPC compliant with https://google.aip.dev/132.
  1326  	// This RPC is incomplete. Future breaking changes are
  1327  	// expressly flagged.
  1328  	List(context.Context, *ListRulesRequest) (*ListRulesResponse, error)
  1329  	// Creates a new rule.
  1330  	// Designed to conform to https://google.aip.dev/133.
  1331  	Create(context.Context, *CreateRuleRequest) (*Rule, error)
  1332  	// Updates a rule.
  1333  	// Designed to conform to https://google.aip.dev/134.
  1334  	Update(context.Context, *UpdateRuleRequest) (*Rule, error)
  1335  	// Looks up the rule associated with a given bug, without knowledge
  1336  	// of the LUCI project the rule is in.
  1337  	// Designed to conform to https://google.aip.dev/136.
  1338  	LookupBug(context.Context, *LookupBugRequest) (*LookupBugResponse, error)
  1339  }
  1340  
  1341  // UnimplementedRulesServer can be embedded to have forward compatible implementations.
  1342  type UnimplementedRulesServer struct {
  1343  }
  1344  
  1345  func (*UnimplementedRulesServer) Get(context.Context, *GetRuleRequest) (*Rule, error) {
  1346  	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
  1347  }
  1348  func (*UnimplementedRulesServer) List(context.Context, *ListRulesRequest) (*ListRulesResponse, error) {
  1349  	return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
  1350  }
  1351  func (*UnimplementedRulesServer) Create(context.Context, *CreateRuleRequest) (*Rule, error) {
  1352  	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
  1353  }
  1354  func (*UnimplementedRulesServer) Update(context.Context, *UpdateRuleRequest) (*Rule, error) {
  1355  	return nil, status.Errorf(codes.Unimplemented, "method Update not implemented")
  1356  }
  1357  func (*UnimplementedRulesServer) LookupBug(context.Context, *LookupBugRequest) (*LookupBugResponse, error) {
  1358  	return nil, status.Errorf(codes.Unimplemented, "method LookupBug not implemented")
  1359  }
  1360  
  1361  func RegisterRulesServer(s prpc.Registrar, srv RulesServer) {
  1362  	s.RegisterService(&_Rules_serviceDesc, srv)
  1363  }
  1364  
  1365  func _Rules_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1366  	in := new(GetRuleRequest)
  1367  	if err := dec(in); err != nil {
  1368  		return nil, err
  1369  	}
  1370  	if interceptor == nil {
  1371  		return srv.(RulesServer).Get(ctx, in)
  1372  	}
  1373  	info := &grpc.UnaryServerInfo{
  1374  		Server:     srv,
  1375  		FullMethod: "/luci.analysis.v1.Rules/Get",
  1376  	}
  1377  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1378  		return srv.(RulesServer).Get(ctx, req.(*GetRuleRequest))
  1379  	}
  1380  	return interceptor(ctx, in, info, handler)
  1381  }
  1382  
  1383  func _Rules_List_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1384  	in := new(ListRulesRequest)
  1385  	if err := dec(in); err != nil {
  1386  		return nil, err
  1387  	}
  1388  	if interceptor == nil {
  1389  		return srv.(RulesServer).List(ctx, in)
  1390  	}
  1391  	info := &grpc.UnaryServerInfo{
  1392  		Server:     srv,
  1393  		FullMethod: "/luci.analysis.v1.Rules/List",
  1394  	}
  1395  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1396  		return srv.(RulesServer).List(ctx, req.(*ListRulesRequest))
  1397  	}
  1398  	return interceptor(ctx, in, info, handler)
  1399  }
  1400  
  1401  func _Rules_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1402  	in := new(CreateRuleRequest)
  1403  	if err := dec(in); err != nil {
  1404  		return nil, err
  1405  	}
  1406  	if interceptor == nil {
  1407  		return srv.(RulesServer).Create(ctx, in)
  1408  	}
  1409  	info := &grpc.UnaryServerInfo{
  1410  		Server:     srv,
  1411  		FullMethod: "/luci.analysis.v1.Rules/Create",
  1412  	}
  1413  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1414  		return srv.(RulesServer).Create(ctx, req.(*CreateRuleRequest))
  1415  	}
  1416  	return interceptor(ctx, in, info, handler)
  1417  }
  1418  
  1419  func _Rules_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1420  	in := new(UpdateRuleRequest)
  1421  	if err := dec(in); err != nil {
  1422  		return nil, err
  1423  	}
  1424  	if interceptor == nil {
  1425  		return srv.(RulesServer).Update(ctx, in)
  1426  	}
  1427  	info := &grpc.UnaryServerInfo{
  1428  		Server:     srv,
  1429  		FullMethod: "/luci.analysis.v1.Rules/Update",
  1430  	}
  1431  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1432  		return srv.(RulesServer).Update(ctx, req.(*UpdateRuleRequest))
  1433  	}
  1434  	return interceptor(ctx, in, info, handler)
  1435  }
  1436  
  1437  func _Rules_LookupBug_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  1438  	in := new(LookupBugRequest)
  1439  	if err := dec(in); err != nil {
  1440  		return nil, err
  1441  	}
  1442  	if interceptor == nil {
  1443  		return srv.(RulesServer).LookupBug(ctx, in)
  1444  	}
  1445  	info := &grpc.UnaryServerInfo{
  1446  		Server:     srv,
  1447  		FullMethod: "/luci.analysis.v1.Rules/LookupBug",
  1448  	}
  1449  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  1450  		return srv.(RulesServer).LookupBug(ctx, req.(*LookupBugRequest))
  1451  	}
  1452  	return interceptor(ctx, in, info, handler)
  1453  }
  1454  
  1455  var _Rules_serviceDesc = grpc.ServiceDesc{
  1456  	ServiceName: "luci.analysis.v1.Rules",
  1457  	HandlerType: (*RulesServer)(nil),
  1458  	Methods: []grpc.MethodDesc{
  1459  		{
  1460  			MethodName: "Get",
  1461  			Handler:    _Rules_Get_Handler,
  1462  		},
  1463  		{
  1464  			MethodName: "List",
  1465  			Handler:    _Rules_List_Handler,
  1466  		},
  1467  		{
  1468  			MethodName: "Create",
  1469  			Handler:    _Rules_Create_Handler,
  1470  		},
  1471  		{
  1472  			MethodName: "Update",
  1473  			Handler:    _Rules_Update_Handler,
  1474  		},
  1475  		{
  1476  			MethodName: "LookupBug",
  1477  			Handler:    _Rules_LookupBug_Handler,
  1478  		},
  1479  	},
  1480  	Streams:  []grpc.StreamDesc{},
  1481  	Metadata: "go.chromium.org/luci/analysis/proto/v1/rules.proto",
  1482  }