go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/auth_service/api/rpcpb/groups.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/auth_service/api/rpcpb/groups.proto
    20  
    21  package rpcpb
    22  
    23  import (
    24  	_ "google.golang.org/genproto/googleapis/api/annotations"
    25  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    26  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    27  	emptypb "google.golang.org/protobuf/types/known/emptypb"
    28  	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    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  // PrincipalKind denotes the type of principal of a specific entity.
    42  type PrincipalKind int32
    43  
    44  const (
    45  	PrincipalKind_PRINCIPAL_KIND_UNSPECIFIED PrincipalKind = 0
    46  	// A single individual identity, e.g. "user:someone@example.com".
    47  	PrincipalKind_IDENTITY PrincipalKind = 1
    48  	// A group name, e.g. "some-group".
    49  	PrincipalKind_GROUP PrincipalKind = 2
    50  	// An identity glob, e.g. "user*@example.com".
    51  	PrincipalKind_GLOB PrincipalKind = 3
    52  )
    53  
    54  // Enum value maps for PrincipalKind.
    55  var (
    56  	PrincipalKind_name = map[int32]string{
    57  		0: "PRINCIPAL_KIND_UNSPECIFIED",
    58  		1: "IDENTITY",
    59  		2: "GROUP",
    60  		3: "GLOB",
    61  	}
    62  	PrincipalKind_value = map[string]int32{
    63  		"PRINCIPAL_KIND_UNSPECIFIED": 0,
    64  		"IDENTITY":                   1,
    65  		"GROUP":                      2,
    66  		"GLOB":                       3,
    67  	}
    68  )
    69  
    70  func (x PrincipalKind) Enum() *PrincipalKind {
    71  	p := new(PrincipalKind)
    72  	*p = x
    73  	return p
    74  }
    75  
    76  func (x PrincipalKind) String() string {
    77  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    78  }
    79  
    80  func (PrincipalKind) Descriptor() protoreflect.EnumDescriptor {
    81  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_enumTypes[0].Descriptor()
    82  }
    83  
    84  func (PrincipalKind) Type() protoreflect.EnumType {
    85  	return &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_enumTypes[0]
    86  }
    87  
    88  func (x PrincipalKind) Number() protoreflect.EnumNumber {
    89  	return protoreflect.EnumNumber(x)
    90  }
    91  
    92  // Deprecated: Use PrincipalKind.Descriptor instead.
    93  func (PrincipalKind) EnumDescriptor() ([]byte, []int) {
    94  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{0}
    95  }
    96  
    97  // ListGroupsResponse is all the groups listed in LUCI Auth Service.
    98  type ListGroupsResponse struct {
    99  	state         protoimpl.MessageState
   100  	sizeCache     protoimpl.SizeCache
   101  	unknownFields protoimpl.UnknownFields
   102  
   103  	// List of all groups. In order to keep the response lightweight, each
   104  	// AuthGroup will contain only metadata, i.e. the membership list fields will
   105  	// be left empty.
   106  	Groups []*AuthGroup `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
   107  }
   108  
   109  func (x *ListGroupsResponse) Reset() {
   110  	*x = ListGroupsResponse{}
   111  	if protoimpl.UnsafeEnabled {
   112  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[0]
   113  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   114  		ms.StoreMessageInfo(mi)
   115  	}
   116  }
   117  
   118  func (x *ListGroupsResponse) String() string {
   119  	return protoimpl.X.MessageStringOf(x)
   120  }
   121  
   122  func (*ListGroupsResponse) ProtoMessage() {}
   123  
   124  func (x *ListGroupsResponse) ProtoReflect() protoreflect.Message {
   125  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[0]
   126  	if protoimpl.UnsafeEnabled && x != nil {
   127  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   128  		if ms.LoadMessageInfo() == nil {
   129  			ms.StoreMessageInfo(mi)
   130  		}
   131  		return ms
   132  	}
   133  	return mi.MessageOf(x)
   134  }
   135  
   136  // Deprecated: Use ListGroupsResponse.ProtoReflect.Descriptor instead.
   137  func (*ListGroupsResponse) Descriptor() ([]byte, []int) {
   138  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{0}
   139  }
   140  
   141  func (x *ListGroupsResponse) GetGroups() []*AuthGroup {
   142  	if x != nil {
   143  		return x.Groups
   144  	}
   145  	return nil
   146  }
   147  
   148  // GetGroupRequest is to specify an individual group.
   149  type GetGroupRequest struct {
   150  	state         protoimpl.MessageState
   151  	sizeCache     protoimpl.SizeCache
   152  	unknownFields protoimpl.UnknownFields
   153  
   154  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // e.g: "administrators"
   155  }
   156  
   157  func (x *GetGroupRequest) Reset() {
   158  	*x = GetGroupRequest{}
   159  	if protoimpl.UnsafeEnabled {
   160  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[1]
   161  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   162  		ms.StoreMessageInfo(mi)
   163  	}
   164  }
   165  
   166  func (x *GetGroupRequest) String() string {
   167  	return protoimpl.X.MessageStringOf(x)
   168  }
   169  
   170  func (*GetGroupRequest) ProtoMessage() {}
   171  
   172  func (x *GetGroupRequest) ProtoReflect() protoreflect.Message {
   173  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[1]
   174  	if protoimpl.UnsafeEnabled && x != nil {
   175  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   176  		if ms.LoadMessageInfo() == nil {
   177  			ms.StoreMessageInfo(mi)
   178  		}
   179  		return ms
   180  	}
   181  	return mi.MessageOf(x)
   182  }
   183  
   184  // Deprecated: Use GetGroupRequest.ProtoReflect.Descriptor instead.
   185  func (*GetGroupRequest) Descriptor() ([]byte, []int) {
   186  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{1}
   187  }
   188  
   189  func (x *GetGroupRequest) GetName() string {
   190  	if x != nil {
   191  		return x.Name
   192  	}
   193  	return ""
   194  }
   195  
   196  // CreateGroupRequest requests the creation of a new group.
   197  type CreateGroupRequest struct {
   198  	state         protoimpl.MessageState
   199  	sizeCache     protoimpl.SizeCache
   200  	unknownFields protoimpl.UnknownFields
   201  
   202  	// Details of the group to create. Not all fields will be written to the new
   203  	// group: if the request specifies fields that should be automatically
   204  	// generated (e.g. created/modified timestamps), these will be ignored.
   205  	Group *AuthGroup `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
   206  }
   207  
   208  func (x *CreateGroupRequest) Reset() {
   209  	*x = CreateGroupRequest{}
   210  	if protoimpl.UnsafeEnabled {
   211  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[2]
   212  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   213  		ms.StoreMessageInfo(mi)
   214  	}
   215  }
   216  
   217  func (x *CreateGroupRequest) String() string {
   218  	return protoimpl.X.MessageStringOf(x)
   219  }
   220  
   221  func (*CreateGroupRequest) ProtoMessage() {}
   222  
   223  func (x *CreateGroupRequest) ProtoReflect() protoreflect.Message {
   224  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[2]
   225  	if protoimpl.UnsafeEnabled && x != nil {
   226  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   227  		if ms.LoadMessageInfo() == nil {
   228  			ms.StoreMessageInfo(mi)
   229  		}
   230  		return ms
   231  	}
   232  	return mi.MessageOf(x)
   233  }
   234  
   235  // Deprecated: Use CreateGroupRequest.ProtoReflect.Descriptor instead.
   236  func (*CreateGroupRequest) Descriptor() ([]byte, []int) {
   237  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{2}
   238  }
   239  
   240  func (x *CreateGroupRequest) GetGroup() *AuthGroup {
   241  	if x != nil {
   242  		return x.Group
   243  	}
   244  	return nil
   245  }
   246  
   247  // UpdateGroupRequest requests an update to an existing group.
   248  type UpdateGroupRequest struct {
   249  	state         protoimpl.MessageState
   250  	sizeCache     protoimpl.SizeCache
   251  	unknownFields protoimpl.UnknownFields
   252  
   253  	// Details of the group to update. The group's 'name' field is used to
   254  	// identify the group to update.
   255  	Group *AuthGroup `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
   256  	// The list of fields to be updated.
   257  	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
   258  }
   259  
   260  func (x *UpdateGroupRequest) Reset() {
   261  	*x = UpdateGroupRequest{}
   262  	if protoimpl.UnsafeEnabled {
   263  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[3]
   264  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   265  		ms.StoreMessageInfo(mi)
   266  	}
   267  }
   268  
   269  func (x *UpdateGroupRequest) String() string {
   270  	return protoimpl.X.MessageStringOf(x)
   271  }
   272  
   273  func (*UpdateGroupRequest) ProtoMessage() {}
   274  
   275  func (x *UpdateGroupRequest) ProtoReflect() protoreflect.Message {
   276  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[3]
   277  	if protoimpl.UnsafeEnabled && x != nil {
   278  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   279  		if ms.LoadMessageInfo() == nil {
   280  			ms.StoreMessageInfo(mi)
   281  		}
   282  		return ms
   283  	}
   284  	return mi.MessageOf(x)
   285  }
   286  
   287  // Deprecated: Use UpdateGroupRequest.ProtoReflect.Descriptor instead.
   288  func (*UpdateGroupRequest) Descriptor() ([]byte, []int) {
   289  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{3}
   290  }
   291  
   292  func (x *UpdateGroupRequest) GetGroup() *AuthGroup {
   293  	if x != nil {
   294  		return x.Group
   295  	}
   296  	return nil
   297  }
   298  
   299  func (x *UpdateGroupRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
   300  	if x != nil {
   301  		return x.UpdateMask
   302  	}
   303  	return nil
   304  }
   305  
   306  // DeleteGroupRequest requests the deletion of a group.
   307  type DeleteGroupRequest struct {
   308  	state         protoimpl.MessageState
   309  	sizeCache     protoimpl.SizeCache
   310  	unknownFields protoimpl.UnknownFields
   311  
   312  	// Name of the group to delete.
   313  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   314  	// The current etag of the group.
   315  	// If an etag is provided and does not match the current etag of the group,
   316  	// deletion will be blocked and an ABORTED error will be returned.
   317  	Etag string `protobuf:"bytes,2,opt,name=etag,proto3" json:"etag,omitempty"`
   318  }
   319  
   320  func (x *DeleteGroupRequest) Reset() {
   321  	*x = DeleteGroupRequest{}
   322  	if protoimpl.UnsafeEnabled {
   323  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[4]
   324  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   325  		ms.StoreMessageInfo(mi)
   326  	}
   327  }
   328  
   329  func (x *DeleteGroupRequest) String() string {
   330  	return protoimpl.X.MessageStringOf(x)
   331  }
   332  
   333  func (*DeleteGroupRequest) ProtoMessage() {}
   334  
   335  func (x *DeleteGroupRequest) ProtoReflect() protoreflect.Message {
   336  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[4]
   337  	if protoimpl.UnsafeEnabled && x != nil {
   338  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   339  		if ms.LoadMessageInfo() == nil {
   340  			ms.StoreMessageInfo(mi)
   341  		}
   342  		return ms
   343  	}
   344  	return mi.MessageOf(x)
   345  }
   346  
   347  // Deprecated: Use DeleteGroupRequest.ProtoReflect.Descriptor instead.
   348  func (*DeleteGroupRequest) Descriptor() ([]byte, []int) {
   349  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{4}
   350  }
   351  
   352  func (x *DeleteGroupRequest) GetName() string {
   353  	if x != nil {
   354  		return x.Name
   355  	}
   356  	return ""
   357  }
   358  
   359  func (x *DeleteGroupRequest) GetEtag() string {
   360  	if x != nil {
   361  		return x.Etag
   362  	}
   363  	return ""
   364  }
   365  
   366  // AuthGroup defines an individual group.
   367  type AuthGroup struct {
   368  	state         protoimpl.MessageState
   369  	sizeCache     protoimpl.SizeCache
   370  	unknownFields protoimpl.UnknownFields
   371  
   372  	Name        string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`                            // e.g: "auth-service-access"
   373  	Members     []string               `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`                      // e.g: ["user:t@example.com"]
   374  	Globs       []string               `protobuf:"bytes,3,rep,name=globs,proto3" json:"globs,omitempty"`                          // e.g: ["user:*@example.com"
   375  	Nested      []string               `protobuf:"bytes,4,rep,name=nested,proto3" json:"nested,omitempty"`                        // e.g: ["another-group-0", "another-group-1"]
   376  	Description string                 `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`              // e.g: "This group is used for ..."
   377  	Owners      string                 `protobuf:"bytes,6,opt,name=owners,proto3" json:"owners,omitempty"`                        // e.g: "administrators"
   378  	CreatedTs   *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_ts,json=createdTs,proto3" json:"created_ts,omitempty"` // e.g: "1972-01-01T10:00:20.021Z"
   379  	CreatedBy   string                 `protobuf:"bytes,8,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"` // e.g: "user:test@example.com"
   380  	// Output only. Whether the caller can modify this group.
   381  	CallerCanModify bool `protobuf:"varint,9,opt,name=caller_can_modify,json=callerCanModify,proto3" json:"caller_can_modify,omitempty"`
   382  	// An opaque string that indicates the version of the group being edited.
   383  	// This will be sent to the client in responses, and should be sent back
   384  	// to the server for update and delete requests in order to protect against
   385  	// concurrent modification errors. See https://google.aip.dev/154.
   386  	// Technically this is a "weak etag", meaning that if two AuthGroups have the
   387  	// same etag, they are not guaranteed to be byte-for-byte identical. This is
   388  	// because under the hood we generate it based on the last-modified time
   389  	// (though this should not be relied on as it may change in future).
   390  	Etag string `protobuf:"bytes,99,opt,name=etag,proto3" json:"etag,omitempty"`
   391  }
   392  
   393  func (x *AuthGroup) Reset() {
   394  	*x = AuthGroup{}
   395  	if protoimpl.UnsafeEnabled {
   396  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[5]
   397  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   398  		ms.StoreMessageInfo(mi)
   399  	}
   400  }
   401  
   402  func (x *AuthGroup) String() string {
   403  	return protoimpl.X.MessageStringOf(x)
   404  }
   405  
   406  func (*AuthGroup) ProtoMessage() {}
   407  
   408  func (x *AuthGroup) ProtoReflect() protoreflect.Message {
   409  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[5]
   410  	if protoimpl.UnsafeEnabled && x != nil {
   411  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   412  		if ms.LoadMessageInfo() == nil {
   413  			ms.StoreMessageInfo(mi)
   414  		}
   415  		return ms
   416  	}
   417  	return mi.MessageOf(x)
   418  }
   419  
   420  // Deprecated: Use AuthGroup.ProtoReflect.Descriptor instead.
   421  func (*AuthGroup) Descriptor() ([]byte, []int) {
   422  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{5}
   423  }
   424  
   425  func (x *AuthGroup) GetName() string {
   426  	if x != nil {
   427  		return x.Name
   428  	}
   429  	return ""
   430  }
   431  
   432  func (x *AuthGroup) GetMembers() []string {
   433  	if x != nil {
   434  		return x.Members
   435  	}
   436  	return nil
   437  }
   438  
   439  func (x *AuthGroup) GetGlobs() []string {
   440  	if x != nil {
   441  		return x.Globs
   442  	}
   443  	return nil
   444  }
   445  
   446  func (x *AuthGroup) GetNested() []string {
   447  	if x != nil {
   448  		return x.Nested
   449  	}
   450  	return nil
   451  }
   452  
   453  func (x *AuthGroup) GetDescription() string {
   454  	if x != nil {
   455  		return x.Description
   456  	}
   457  	return ""
   458  }
   459  
   460  func (x *AuthGroup) GetOwners() string {
   461  	if x != nil {
   462  		return x.Owners
   463  	}
   464  	return ""
   465  }
   466  
   467  func (x *AuthGroup) GetCreatedTs() *timestamppb.Timestamp {
   468  	if x != nil {
   469  		return x.CreatedTs
   470  	}
   471  	return nil
   472  }
   473  
   474  func (x *AuthGroup) GetCreatedBy() string {
   475  	if x != nil {
   476  		return x.CreatedBy
   477  	}
   478  	return ""
   479  }
   480  
   481  func (x *AuthGroup) GetCallerCanModify() bool {
   482  	if x != nil {
   483  		return x.CallerCanModify
   484  	}
   485  	return false
   486  }
   487  
   488  func (x *AuthGroup) GetEtag() string {
   489  	if x != nil {
   490  		return x.Etag
   491  	}
   492  	return ""
   493  }
   494  
   495  // GetSubgraphRequest contains the Principal that is the basis of the search
   496  // for inclusion and is the root of the output subgraph.
   497  type GetSubgraphRequest struct {
   498  	state         protoimpl.MessageState
   499  	sizeCache     protoimpl.SizeCache
   500  	unknownFields protoimpl.UnknownFields
   501  
   502  	Principal *Principal `protobuf:"bytes,1,opt,name=principal,proto3" json:"principal,omitempty"`
   503  }
   504  
   505  func (x *GetSubgraphRequest) Reset() {
   506  	*x = GetSubgraphRequest{}
   507  	if protoimpl.UnsafeEnabled {
   508  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[6]
   509  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   510  		ms.StoreMessageInfo(mi)
   511  	}
   512  }
   513  
   514  func (x *GetSubgraphRequest) String() string {
   515  	return protoimpl.X.MessageStringOf(x)
   516  }
   517  
   518  func (*GetSubgraphRequest) ProtoMessage() {}
   519  
   520  func (x *GetSubgraphRequest) ProtoReflect() protoreflect.Message {
   521  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[6]
   522  	if protoimpl.UnsafeEnabled && x != nil {
   523  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   524  		if ms.LoadMessageInfo() == nil {
   525  			ms.StoreMessageInfo(mi)
   526  		}
   527  		return ms
   528  	}
   529  	return mi.MessageOf(x)
   530  }
   531  
   532  // Deprecated: Use GetSubgraphRequest.ProtoReflect.Descriptor instead.
   533  func (*GetSubgraphRequest) Descriptor() ([]byte, []int) {
   534  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{6}
   535  }
   536  
   537  func (x *GetSubgraphRequest) GetPrincipal() *Principal {
   538  	if x != nil {
   539  		return x.Principal
   540  	}
   541  	return nil
   542  }
   543  
   544  // The Subgraph returned by GetSubgraph RPC.
   545  //
   546  // The node representing a principal passed to GetSubgraph is always the
   547  // first in the list.
   548  type Subgraph struct {
   549  	state         protoimpl.MessageState
   550  	sizeCache     protoimpl.SizeCache
   551  	unknownFields protoimpl.UnknownFields
   552  
   553  	Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
   554  }
   555  
   556  func (x *Subgraph) Reset() {
   557  	*x = Subgraph{}
   558  	if protoimpl.UnsafeEnabled {
   559  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[7]
   560  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   561  		ms.StoreMessageInfo(mi)
   562  	}
   563  }
   564  
   565  func (x *Subgraph) String() string {
   566  	return protoimpl.X.MessageStringOf(x)
   567  }
   568  
   569  func (*Subgraph) ProtoMessage() {}
   570  
   571  func (x *Subgraph) ProtoReflect() protoreflect.Message {
   572  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[7]
   573  	if protoimpl.UnsafeEnabled && x != nil {
   574  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   575  		if ms.LoadMessageInfo() == nil {
   576  			ms.StoreMessageInfo(mi)
   577  		}
   578  		return ms
   579  	}
   580  	return mi.MessageOf(x)
   581  }
   582  
   583  // Deprecated: Use Subgraph.ProtoReflect.Descriptor instead.
   584  func (*Subgraph) Descriptor() ([]byte, []int) {
   585  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{7}
   586  }
   587  
   588  func (x *Subgraph) GetNodes() []*Node {
   589  	if x != nil {
   590  		return x.Nodes
   591  	}
   592  	return nil
   593  }
   594  
   595  // Principal is an entity that can be found in the Subgraph. A Principal can
   596  // represent a group, identity, or glob. See PrincipalKind for clarification on
   597  // how each Principal kind is represented.
   598  type Principal struct {
   599  	state         protoimpl.MessageState
   600  	sizeCache     protoimpl.SizeCache
   601  	unknownFields protoimpl.UnknownFields
   602  
   603  	Kind PrincipalKind `protobuf:"varint,1,opt,name=kind,proto3,enum=auth.service.PrincipalKind" json:"kind,omitempty"` // e.g. IDENTITY, GROUP, GLOB
   604  	Name string        `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                                  // e.g. "user*@example.com", "some-group", "user:m0@example.com"
   605  }
   606  
   607  func (x *Principal) Reset() {
   608  	*x = Principal{}
   609  	if protoimpl.UnsafeEnabled {
   610  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[8]
   611  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   612  		ms.StoreMessageInfo(mi)
   613  	}
   614  }
   615  
   616  func (x *Principal) String() string {
   617  	return protoimpl.X.MessageStringOf(x)
   618  }
   619  
   620  func (*Principal) ProtoMessage() {}
   621  
   622  func (x *Principal) ProtoReflect() protoreflect.Message {
   623  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[8]
   624  	if protoimpl.UnsafeEnabled && x != nil {
   625  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   626  		if ms.LoadMessageInfo() == nil {
   627  			ms.StoreMessageInfo(mi)
   628  		}
   629  		return ms
   630  	}
   631  	return mi.MessageOf(x)
   632  }
   633  
   634  // Deprecated: Use Principal.ProtoReflect.Descriptor instead.
   635  func (*Principal) Descriptor() ([]byte, []int) {
   636  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{8}
   637  }
   638  
   639  func (x *Principal) GetKind() PrincipalKind {
   640  	if x != nil {
   641  		return x.Kind
   642  	}
   643  	return PrincipalKind_PRINCIPAL_KIND_UNSPECIFIED
   644  }
   645  
   646  func (x *Principal) GetName() string {
   647  	if x != nil {
   648  		return x.Name
   649  	}
   650  	return ""
   651  }
   652  
   653  // Each Node is a representation of a Principal.
   654  // Each subgraph will only contain one Node per principal; in other words,
   655  // a principal uniquely identifies a Node.
   656  type Node struct {
   657  	state         protoimpl.MessageState
   658  	sizeCache     protoimpl.SizeCache
   659  	unknownFields protoimpl.UnknownFields
   660  
   661  	// The principal represented by this node.
   662  	Principal *Principal `protobuf:"bytes,1,opt,name=principal,proto3" json:"principal,omitempty"`
   663  	// Nodes that directly include this principal.
   664  	//
   665  	// Each item is an index of a Node in Subgraph's `nodes` list.
   666  	IncludedBy []int32 `protobuf:"varint,2,rep,packed,name=included_by,json=includedBy,proto3" json:"included_by,omitempty"`
   667  }
   668  
   669  func (x *Node) Reset() {
   670  	*x = Node{}
   671  	if protoimpl.UnsafeEnabled {
   672  		mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[9]
   673  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   674  		ms.StoreMessageInfo(mi)
   675  	}
   676  }
   677  
   678  func (x *Node) String() string {
   679  	return protoimpl.X.MessageStringOf(x)
   680  }
   681  
   682  func (*Node) ProtoMessage() {}
   683  
   684  func (x *Node) ProtoReflect() protoreflect.Message {
   685  	mi := &file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[9]
   686  	if protoimpl.UnsafeEnabled && x != nil {
   687  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   688  		if ms.LoadMessageInfo() == nil {
   689  			ms.StoreMessageInfo(mi)
   690  		}
   691  		return ms
   692  	}
   693  	return mi.MessageOf(x)
   694  }
   695  
   696  // Deprecated: Use Node.ProtoReflect.Descriptor instead.
   697  func (*Node) Descriptor() ([]byte, []int) {
   698  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP(), []int{9}
   699  }
   700  
   701  func (x *Node) GetPrincipal() *Principal {
   702  	if x != nil {
   703  		return x.Principal
   704  	}
   705  	return nil
   706  }
   707  
   708  func (x *Node) GetIncludedBy() []int32 {
   709  	if x != nil {
   710  		return x.IncludedBy
   711  	}
   712  	return nil
   713  }
   714  
   715  var File_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto protoreflect.FileDescriptor
   716  
   717  var file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDesc = []byte{
   718  	0x0a, 0x38, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
   719  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76,
   720  	0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x2f, 0x67, 0x72,
   721  	0x6f, 0x75, 0x70, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x61, 0x75, 0x74, 0x68,
   722  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   723  	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76,
   724  	0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   725  	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79,
   726  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
   727  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61,
   728  	0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   729  	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
   730  	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x45, 0x0a, 0x12, 0x4c, 0x69, 0x73,
   731  	0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
   732  	0x2f, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
   733  	0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41,
   734  	0x75, 0x74, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
   735  	0x22, 0x25, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75,
   736  	0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
   737  	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74,
   738  	0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a,
   739  	0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61,
   740  	0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68,
   741  	0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
   742  	0x70, 0x22, 0x85, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
   743  	0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75,
   744  	0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73,
   745  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70,
   746  	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3b, 0x0a, 0x0b,
   747  	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
   748  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   749  	0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75,
   750  	0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x41, 0x0a, 0x12, 0x44, 0x65, 0x6c,
   751  	0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
   752  	0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
   753  	0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67,
   754  	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22, 0xc0, 0x02, 0x0a,
   755  	0x09, 0x41, 0x75, 0x74, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
   756  	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18,
   757  	0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
   758  	0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x6c, 0x6f, 0x62,
   759  	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x67, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x16,
   760  	0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
   761  	0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
   762  	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
   763  	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65,
   764  	0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73,
   765  	0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x73, 0x18, 0x07,
   766  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
   767  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
   768  	0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
   769  	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
   770  	0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x2f, 0x0a, 0x11, 0x63, 0x61,
   771  	0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x18,
   772  	0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x63, 0x61, 0x6c, 0x6c,
   773  	0x65, 0x72, 0x43, 0x61, 0x6e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x65,
   774  	0x74, 0x61, 0x67, 0x18, 0x63, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22,
   775  	0x4b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x67, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65,
   776  	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70,
   777  	0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e,
   778  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61,
   779  	0x6c, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x22, 0x34, 0x0a, 0x08,
   780  	0x53, 0x75, 0x62, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x28, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65,
   781  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73,
   782  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64,
   783  	0x65, 0x73, 0x22, 0x50, 0x0a, 0x09, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x12,
   784  	0x2f, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e,
   785  	0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x72, 0x69,
   786  	0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64,
   787  	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
   788  	0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x09,
   789  	0x70, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
   790  	0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50,
   791  	0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61, 0x6c, 0x52, 0x09, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x69,
   792  	0x70, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f,
   793  	0x62, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64,
   794  	0x65, 0x64, 0x42, 0x79, 0x2a, 0x52, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x6e, 0x63, 0x69, 0x70, 0x61,
   795  	0x6c, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x49, 0x4e, 0x43, 0x49, 0x50,
   796  	0x41, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
   797  	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54,
   798  	0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x08,
   799  	0x0a, 0x04, 0x47, 0x4c, 0x4f, 0x42, 0x10, 0x03, 0x32, 0xba, 0x03, 0x0a, 0x06, 0x47, 0x72, 0x6f,
   800  	0x75, 0x70, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
   801  	0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   802  	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68,
   803  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f,
   804  	0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x47,
   805  	0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73,
   806  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
   807  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65,
   808  	0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12,
   809  	0x48, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20,
   810  	0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x72,
   811  	0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
   812  	0x1a, 0x17, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
   813  	0x41, 0x75, 0x74, 0x68, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x0b, 0x55, 0x70, 0x64,
   814  	0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e,
   815  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72,
   816  	0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x75, 0x74,
   817  	0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x47, 0x72,
   818  	0x6f, 0x75, 0x70, 0x12, 0x47, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f,
   819  	0x75, 0x70, 0x12, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
   820  	0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
   821  	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
   822  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0b,
   823  	0x47, 0x65, 0x74, 0x53, 0x75, 0x62, 0x67, 0x72, 0x61, 0x70, 0x68, 0x12, 0x20, 0x2e, 0x61, 0x75,
   824  	0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75,
   825  	0x62, 0x67, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
   826  	0x61, 0x75, 0x74, 0x68, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62,
   827  	0x67, 0x72, 0x61, 0x70, 0x68, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f,
   828  	0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x75,
   829  	0x74, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72,
   830  	0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   831  }
   832  
   833  var (
   834  	file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescOnce sync.Once
   835  	file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescData = file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDesc
   836  )
   837  
   838  func file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescGZIP() []byte {
   839  	file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescOnce.Do(func() {
   840  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescData)
   841  	})
   842  	return file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDescData
   843  }
   844  
   845  var file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   846  var file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
   847  var file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_goTypes = []interface{}{
   848  	(PrincipalKind)(0),            // 0: auth.service.PrincipalKind
   849  	(*ListGroupsResponse)(nil),    // 1: auth.service.ListGroupsResponse
   850  	(*GetGroupRequest)(nil),       // 2: auth.service.GetGroupRequest
   851  	(*CreateGroupRequest)(nil),    // 3: auth.service.CreateGroupRequest
   852  	(*UpdateGroupRequest)(nil),    // 4: auth.service.UpdateGroupRequest
   853  	(*DeleteGroupRequest)(nil),    // 5: auth.service.DeleteGroupRequest
   854  	(*AuthGroup)(nil),             // 6: auth.service.AuthGroup
   855  	(*GetSubgraphRequest)(nil),    // 7: auth.service.GetSubgraphRequest
   856  	(*Subgraph)(nil),              // 8: auth.service.Subgraph
   857  	(*Principal)(nil),             // 9: auth.service.Principal
   858  	(*Node)(nil),                  // 10: auth.service.Node
   859  	(*fieldmaskpb.FieldMask)(nil), // 11: google.protobuf.FieldMask
   860  	(*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp
   861  	(*emptypb.Empty)(nil),         // 13: google.protobuf.Empty
   862  }
   863  var file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_depIdxs = []int32{
   864  	6,  // 0: auth.service.ListGroupsResponse.groups:type_name -> auth.service.AuthGroup
   865  	6,  // 1: auth.service.CreateGroupRequest.group:type_name -> auth.service.AuthGroup
   866  	6,  // 2: auth.service.UpdateGroupRequest.group:type_name -> auth.service.AuthGroup
   867  	11, // 3: auth.service.UpdateGroupRequest.update_mask:type_name -> google.protobuf.FieldMask
   868  	12, // 4: auth.service.AuthGroup.created_ts:type_name -> google.protobuf.Timestamp
   869  	9,  // 5: auth.service.GetSubgraphRequest.principal:type_name -> auth.service.Principal
   870  	10, // 6: auth.service.Subgraph.nodes:type_name -> auth.service.Node
   871  	0,  // 7: auth.service.Principal.kind:type_name -> auth.service.PrincipalKind
   872  	9,  // 8: auth.service.Node.principal:type_name -> auth.service.Principal
   873  	13, // 9: auth.service.Groups.ListGroups:input_type -> google.protobuf.Empty
   874  	2,  // 10: auth.service.Groups.GetGroup:input_type -> auth.service.GetGroupRequest
   875  	3,  // 11: auth.service.Groups.CreateGroup:input_type -> auth.service.CreateGroupRequest
   876  	4,  // 12: auth.service.Groups.UpdateGroup:input_type -> auth.service.UpdateGroupRequest
   877  	5,  // 13: auth.service.Groups.DeleteGroup:input_type -> auth.service.DeleteGroupRequest
   878  	7,  // 14: auth.service.Groups.GetSubgraph:input_type -> auth.service.GetSubgraphRequest
   879  	1,  // 15: auth.service.Groups.ListGroups:output_type -> auth.service.ListGroupsResponse
   880  	6,  // 16: auth.service.Groups.GetGroup:output_type -> auth.service.AuthGroup
   881  	6,  // 17: auth.service.Groups.CreateGroup:output_type -> auth.service.AuthGroup
   882  	6,  // 18: auth.service.Groups.UpdateGroup:output_type -> auth.service.AuthGroup
   883  	13, // 19: auth.service.Groups.DeleteGroup:output_type -> google.protobuf.Empty
   884  	8,  // 20: auth.service.Groups.GetSubgraph:output_type -> auth.service.Subgraph
   885  	15, // [15:21] is the sub-list for method output_type
   886  	9,  // [9:15] is the sub-list for method input_type
   887  	9,  // [9:9] is the sub-list for extension type_name
   888  	9,  // [9:9] is the sub-list for extension extendee
   889  	0,  // [0:9] is the sub-list for field type_name
   890  }
   891  
   892  func init() { file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_init() }
   893  func file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_init() {
   894  	if File_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto != nil {
   895  		return
   896  	}
   897  	if !protoimpl.UnsafeEnabled {
   898  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   899  			switch v := v.(*ListGroupsResponse); i {
   900  			case 0:
   901  				return &v.state
   902  			case 1:
   903  				return &v.sizeCache
   904  			case 2:
   905  				return &v.unknownFields
   906  			default:
   907  				return nil
   908  			}
   909  		}
   910  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   911  			switch v := v.(*GetGroupRequest); i {
   912  			case 0:
   913  				return &v.state
   914  			case 1:
   915  				return &v.sizeCache
   916  			case 2:
   917  				return &v.unknownFields
   918  			default:
   919  				return nil
   920  			}
   921  		}
   922  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   923  			switch v := v.(*CreateGroupRequest); i {
   924  			case 0:
   925  				return &v.state
   926  			case 1:
   927  				return &v.sizeCache
   928  			case 2:
   929  				return &v.unknownFields
   930  			default:
   931  				return nil
   932  			}
   933  		}
   934  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
   935  			switch v := v.(*UpdateGroupRequest); i {
   936  			case 0:
   937  				return &v.state
   938  			case 1:
   939  				return &v.sizeCache
   940  			case 2:
   941  				return &v.unknownFields
   942  			default:
   943  				return nil
   944  			}
   945  		}
   946  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
   947  			switch v := v.(*DeleteGroupRequest); i {
   948  			case 0:
   949  				return &v.state
   950  			case 1:
   951  				return &v.sizeCache
   952  			case 2:
   953  				return &v.unknownFields
   954  			default:
   955  				return nil
   956  			}
   957  		}
   958  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
   959  			switch v := v.(*AuthGroup); i {
   960  			case 0:
   961  				return &v.state
   962  			case 1:
   963  				return &v.sizeCache
   964  			case 2:
   965  				return &v.unknownFields
   966  			default:
   967  				return nil
   968  			}
   969  		}
   970  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
   971  			switch v := v.(*GetSubgraphRequest); i {
   972  			case 0:
   973  				return &v.state
   974  			case 1:
   975  				return &v.sizeCache
   976  			case 2:
   977  				return &v.unknownFields
   978  			default:
   979  				return nil
   980  			}
   981  		}
   982  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
   983  			switch v := v.(*Subgraph); i {
   984  			case 0:
   985  				return &v.state
   986  			case 1:
   987  				return &v.sizeCache
   988  			case 2:
   989  				return &v.unknownFields
   990  			default:
   991  				return nil
   992  			}
   993  		}
   994  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
   995  			switch v := v.(*Principal); i {
   996  			case 0:
   997  				return &v.state
   998  			case 1:
   999  				return &v.sizeCache
  1000  			case 2:
  1001  				return &v.unknownFields
  1002  			default:
  1003  				return nil
  1004  			}
  1005  		}
  1006  		file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1007  			switch v := v.(*Node); i {
  1008  			case 0:
  1009  				return &v.state
  1010  			case 1:
  1011  				return &v.sizeCache
  1012  			case 2:
  1013  				return &v.unknownFields
  1014  			default:
  1015  				return nil
  1016  			}
  1017  		}
  1018  	}
  1019  	type x struct{}
  1020  	out := protoimpl.TypeBuilder{
  1021  		File: protoimpl.DescBuilder{
  1022  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1023  			RawDescriptor: file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDesc,
  1024  			NumEnums:      1,
  1025  			NumMessages:   10,
  1026  			NumExtensions: 0,
  1027  			NumServices:   1,
  1028  		},
  1029  		GoTypes:           file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_goTypes,
  1030  		DependencyIndexes: file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_depIdxs,
  1031  		EnumInfos:         file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_enumTypes,
  1032  		MessageInfos:      file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_msgTypes,
  1033  	}.Build()
  1034  	File_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto = out.File
  1035  	file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_rawDesc = nil
  1036  	file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_goTypes = nil
  1037  	file_go_chromium_org_luci_auth_service_api_rpcpb_groups_proto_depIdxs = nil
  1038  }