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

     1  // Copyright 2023 The LUCI Authors. All rights reserved.
     2  // Use of this source code is governed under the Apache License, Version 2.0
     3  // that can be found in the LICENSE file.
     4  
     5  // Code generated by protoc-gen-go. DO NOT EDIT.
     6  // versions:
     7  // 	protoc-gen-go v1.31.0
     8  // 	protoc        v3.21.7
     9  // source: go.chromium.org/luci/config_service/proto/config_service.proto
    10  
    11  package configpb
    12  
    13  import (
    14  	config "go.chromium.org/luci/common/proto/config"
    15  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    16  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    17  	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
    18  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    19  	reflect "reflect"
    20  	sync "sync"
    21  )
    22  
    23  const (
    24  	// Verify that this generated code is sufficiently up-to-date.
    25  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    26  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    27  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    28  )
    29  
    30  type ListConfigSetsRequest_ConfigSetDomain int32
    31  
    32  const (
    33  	// The default value when domain is omitted. Used to retrieve config sets
    34  	// in all domains.
    35  	ListConfigSetsRequest_ALL ListConfigSetsRequest_ConfigSetDomain = 0
    36  	// Service domain.
    37  	ListConfigSetsRequest_SERVICE ListConfigSetsRequest_ConfigSetDomain = 1
    38  	// Project domain.
    39  	ListConfigSetsRequest_PROJECT ListConfigSetsRequest_ConfigSetDomain = 2
    40  )
    41  
    42  // Enum value maps for ListConfigSetsRequest_ConfigSetDomain.
    43  var (
    44  	ListConfigSetsRequest_ConfigSetDomain_name = map[int32]string{
    45  		0: "ALL",
    46  		1: "SERVICE",
    47  		2: "PROJECT",
    48  	}
    49  	ListConfigSetsRequest_ConfigSetDomain_value = map[string]int32{
    50  		"ALL":     0,
    51  		"SERVICE": 1,
    52  		"PROJECT": 2,
    53  	}
    54  )
    55  
    56  func (x ListConfigSetsRequest_ConfigSetDomain) Enum() *ListConfigSetsRequest_ConfigSetDomain {
    57  	p := new(ListConfigSetsRequest_ConfigSetDomain)
    58  	*p = x
    59  	return p
    60  }
    61  
    62  func (x ListConfigSetsRequest_ConfigSetDomain) String() string {
    63  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    64  }
    65  
    66  func (ListConfigSetsRequest_ConfigSetDomain) Descriptor() protoreflect.EnumDescriptor {
    67  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_enumTypes[0].Descriptor()
    68  }
    69  
    70  func (ListConfigSetsRequest_ConfigSetDomain) Type() protoreflect.EnumType {
    71  	return &file_go_chromium_org_luci_config_service_proto_config_service_proto_enumTypes[0]
    72  }
    73  
    74  func (x ListConfigSetsRequest_ConfigSetDomain) Number() protoreflect.EnumNumber {
    75  	return protoreflect.EnumNumber(x)
    76  }
    77  
    78  // Deprecated: Use ListConfigSetsRequest_ConfigSetDomain.Descriptor instead.
    79  func (ListConfigSetsRequest_ConfigSetDomain) EnumDescriptor() ([]byte, []int) {
    80  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{6, 0}
    81  }
    82  
    83  // A request message for GetConfig rpc.
    84  type GetConfigRequest struct {
    85  	state         protoimpl.MessageState
    86  	sizeCache     protoimpl.SizeCache
    87  	unknownFields protoimpl.UnknownFields
    88  
    89  	// ConfigSet where the requested config belongs to.
    90  	//
    91  	// Required.
    92  	ConfigSet string `protobuf:"bytes,1,opt,name=config_set,json=configSet,proto3" json:"config_set,omitempty"`
    93  	// Path of the config. Mutually exclusive with content_sha256.
    94  	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
    95  	// Content SHA256 value of the config. Mutually exclusive with path.
    96  	ContentSha256 string `protobuf:"bytes,3,opt,name=content_sha256,json=contentSha256,proto3" json:"content_sha256,omitempty"`
    97  	// Fields of the Config proto to include.
    98  	//
    99  	// By default, all fields are included.
   100  	//
   101  	// Note: For content field, the client should always pass "content" to get
   102  	// the content. Populating "raw_content" or "signed_url" is a pure server
   103  	// side decision based on the size of the config. Therefore, explicitly
   104  	// passing one of "raw_content" or "signed_url" may cause unexpected
   105  	// behavior. For example, "raw_content" is passed and the content is large
   106  	// and supposed to return by signed_url field, the client would get an
   107  	// empty "raw_content".
   108  	Fields *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=fields,proto3" json:"fields,omitempty"`
   109  }
   110  
   111  func (x *GetConfigRequest) Reset() {
   112  	*x = GetConfigRequest{}
   113  	if protoimpl.UnsafeEnabled {
   114  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[0]
   115  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   116  		ms.StoreMessageInfo(mi)
   117  	}
   118  }
   119  
   120  func (x *GetConfigRequest) String() string {
   121  	return protoimpl.X.MessageStringOf(x)
   122  }
   123  
   124  func (*GetConfigRequest) ProtoMessage() {}
   125  
   126  func (x *GetConfigRequest) ProtoReflect() protoreflect.Message {
   127  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[0]
   128  	if protoimpl.UnsafeEnabled && x != nil {
   129  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   130  		if ms.LoadMessageInfo() == nil {
   131  			ms.StoreMessageInfo(mi)
   132  		}
   133  		return ms
   134  	}
   135  	return mi.MessageOf(x)
   136  }
   137  
   138  // Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead.
   139  func (*GetConfigRequest) Descriptor() ([]byte, []int) {
   140  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{0}
   141  }
   142  
   143  func (x *GetConfigRequest) GetConfigSet() string {
   144  	if x != nil {
   145  		return x.ConfigSet
   146  	}
   147  	return ""
   148  }
   149  
   150  func (x *GetConfigRequest) GetPath() string {
   151  	if x != nil {
   152  		return x.Path
   153  	}
   154  	return ""
   155  }
   156  
   157  func (x *GetConfigRequest) GetContentSha256() string {
   158  	if x != nil {
   159  		return x.ContentSha256
   160  	}
   161  	return ""
   162  }
   163  
   164  func (x *GetConfigRequest) GetFields() *fieldmaskpb.FieldMask {
   165  	if x != nil {
   166  		return x.Fields
   167  	}
   168  	return nil
   169  }
   170  
   171  // A single config.
   172  type Config struct {
   173  	state         protoimpl.MessageState
   174  	sizeCache     protoimpl.SizeCache
   175  	unknownFields protoimpl.UnknownFields
   176  
   177  	// Name of the config set.
   178  	// For a service config set, "services/<service_id>".
   179  	// For a project config set, "projects/<project_id>".
   180  	ConfigSet string `protobuf:"bytes,1,opt,name=config_set,json=configSet,proto3" json:"config_set,omitempty"`
   181  	// Path of the config file relative to the config directory.
   182  	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
   183  	// Content of the config.
   184  	//
   185  	// Types that are assignable to Content:
   186  	//
   187  	//	*Config_RawContent
   188  	//	*Config_SignedUrl
   189  	Content isConfig_Content `protobuf_oneof:"content"`
   190  	// SHA256 value of the raw content.
   191  	ContentSha256 string `protobuf:"bytes,5,opt,name=content_sha256,json=contentSha256,proto3" json:"content_sha256,omitempty"`
   192  	// Size of the raw config in bytes.
   193  	Size int64 `protobuf:"varint,8,opt,name=size,proto3" json:"size,omitempty"`
   194  	// Git revision
   195  	Revision string `protobuf:"bytes,6,opt,name=revision,proto3" json:"revision,omitempty"`
   196  	// Original config file url on Git repo.
   197  	Url string `protobuf:"bytes,7,opt,name=url,proto3" json:"url,omitempty"`
   198  }
   199  
   200  func (x *Config) Reset() {
   201  	*x = Config{}
   202  	if protoimpl.UnsafeEnabled {
   203  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[1]
   204  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   205  		ms.StoreMessageInfo(mi)
   206  	}
   207  }
   208  
   209  func (x *Config) String() string {
   210  	return protoimpl.X.MessageStringOf(x)
   211  }
   212  
   213  func (*Config) ProtoMessage() {}
   214  
   215  func (x *Config) ProtoReflect() protoreflect.Message {
   216  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[1]
   217  	if protoimpl.UnsafeEnabled && x != nil {
   218  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   219  		if ms.LoadMessageInfo() == nil {
   220  			ms.StoreMessageInfo(mi)
   221  		}
   222  		return ms
   223  	}
   224  	return mi.MessageOf(x)
   225  }
   226  
   227  // Deprecated: Use Config.ProtoReflect.Descriptor instead.
   228  func (*Config) Descriptor() ([]byte, []int) {
   229  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{1}
   230  }
   231  
   232  func (x *Config) GetConfigSet() string {
   233  	if x != nil {
   234  		return x.ConfigSet
   235  	}
   236  	return ""
   237  }
   238  
   239  func (x *Config) GetPath() string {
   240  	if x != nil {
   241  		return x.Path
   242  	}
   243  	return ""
   244  }
   245  
   246  func (m *Config) GetContent() isConfig_Content {
   247  	if m != nil {
   248  		return m.Content
   249  	}
   250  	return nil
   251  }
   252  
   253  func (x *Config) GetRawContent() []byte {
   254  	if x, ok := x.GetContent().(*Config_RawContent); ok {
   255  		return x.RawContent
   256  	}
   257  	return nil
   258  }
   259  
   260  func (x *Config) GetSignedUrl() string {
   261  	if x, ok := x.GetContent().(*Config_SignedUrl); ok {
   262  		return x.SignedUrl
   263  	}
   264  	return ""
   265  }
   266  
   267  func (x *Config) GetContentSha256() string {
   268  	if x != nil {
   269  		return x.ContentSha256
   270  	}
   271  	return ""
   272  }
   273  
   274  func (x *Config) GetSize() int64 {
   275  	if x != nil {
   276  		return x.Size
   277  	}
   278  	return 0
   279  }
   280  
   281  func (x *Config) GetRevision() string {
   282  	if x != nil {
   283  		return x.Revision
   284  	}
   285  	return ""
   286  }
   287  
   288  func (x *Config) GetUrl() string {
   289  	if x != nil {
   290  		return x.Url
   291  	}
   292  	return ""
   293  }
   294  
   295  type isConfig_Content interface {
   296  	isConfig_Content()
   297  }
   298  
   299  type Config_RawContent struct {
   300  	// For small content where its raw content is less than 30MB and gzipped
   301  	// size is less than 800KB, the raw and uncompressed content will be
   302  	// included directly.
   303  	RawContent []byte `protobuf:"bytes,3,opt,name=raw_content,json=rawContent,proto3,oneof"`
   304  }
   305  
   306  type Config_SignedUrl struct {
   307  	// For large content, a sign_url which points the actual config content
   308  	// will be provided.
   309  	// Note: The signed url is set to expire in 10 minutes. And it's encouraged
   310  	// to use "Accept-Encoding: gzip" header in the request to minimize the size
   311  	// in data transfer, and decompress it by yourself.
   312  	SignedUrl string `protobuf:"bytes,4,opt,name=signed_url,json=signedUrl,proto3,oneof"`
   313  }
   314  
   315  func (*Config_RawContent) isConfig_Content() {}
   316  
   317  func (*Config_SignedUrl) isConfig_Content() {}
   318  
   319  // Get project-level configs matched with the provided path in all `projects/xxx`
   320  // config_sets.
   321  type GetProjectConfigsRequest struct {
   322  	state         protoimpl.MessageState
   323  	sizeCache     protoimpl.SizeCache
   324  	unknownFields protoimpl.UnknownFields
   325  
   326  	// Required
   327  	// Path to the desired config in each project config set.
   328  	//
   329  	// TODO: In future, it can expand to support regex match in some ways, since
   330  	// in v2, Luci-config is supposed to support multi-file configuration.
   331  	// For example, `cr-buildbucket.cfg` can be split into smaller configs,
   332  	// e.g. `bucket-a.cfg`, `bucket-b.cfg`, etc. But file names might be dynamic
   333  	// and how these files are organized with other project configs are undecided.
   334  	// It's better to implement the regex check logic when there is a concrete
   335  	// use case.
   336  	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
   337  	// Fields of Config proto to include.
   338  	//
   339  	// By default, all fields are included.
   340  	Fields *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=fields,proto3" json:"fields,omitempty"`
   341  }
   342  
   343  func (x *GetProjectConfigsRequest) Reset() {
   344  	*x = GetProjectConfigsRequest{}
   345  	if protoimpl.UnsafeEnabled {
   346  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[2]
   347  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   348  		ms.StoreMessageInfo(mi)
   349  	}
   350  }
   351  
   352  func (x *GetProjectConfigsRequest) String() string {
   353  	return protoimpl.X.MessageStringOf(x)
   354  }
   355  
   356  func (*GetProjectConfigsRequest) ProtoMessage() {}
   357  
   358  func (x *GetProjectConfigsRequest) ProtoReflect() protoreflect.Message {
   359  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_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 GetProjectConfigsRequest.ProtoReflect.Descriptor instead.
   371  func (*GetProjectConfigsRequest) Descriptor() ([]byte, []int) {
   372  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{2}
   373  }
   374  
   375  func (x *GetProjectConfigsRequest) GetPath() string {
   376  	if x != nil {
   377  		return x.Path
   378  	}
   379  	return ""
   380  }
   381  
   382  func (x *GetProjectConfigsRequest) GetFields() *fieldmaskpb.FieldMask {
   383  	if x != nil {
   384  		return x.Fields
   385  	}
   386  	return nil
   387  }
   388  
   389  // GetProjectConfigsResponse is the response of GetProjectConfigs rpc.
   390  //
   391  // Note: When the sum of the first ith config.Content size larger than 200MB,
   392  // the rest of config.Content will be always a signed url.
   393  type GetProjectConfigsResponse struct {
   394  	state         protoimpl.MessageState
   395  	sizeCache     protoimpl.SizeCache
   396  	unknownFields protoimpl.UnknownFields
   397  
   398  	// The requested configs in each project.
   399  	Configs []*Config `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"`
   400  }
   401  
   402  func (x *GetProjectConfigsResponse) Reset() {
   403  	*x = GetProjectConfigsResponse{}
   404  	if protoimpl.UnsafeEnabled {
   405  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[3]
   406  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   407  		ms.StoreMessageInfo(mi)
   408  	}
   409  }
   410  
   411  func (x *GetProjectConfigsResponse) String() string {
   412  	return protoimpl.X.MessageStringOf(x)
   413  }
   414  
   415  func (*GetProjectConfigsResponse) ProtoMessage() {}
   416  
   417  func (x *GetProjectConfigsResponse) ProtoReflect() protoreflect.Message {
   418  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[3]
   419  	if protoimpl.UnsafeEnabled && x != nil {
   420  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   421  		if ms.LoadMessageInfo() == nil {
   422  			ms.StoreMessageInfo(mi)
   423  		}
   424  		return ms
   425  	}
   426  	return mi.MessageOf(x)
   427  }
   428  
   429  // Deprecated: Use GetProjectConfigsResponse.ProtoReflect.Descriptor instead.
   430  func (*GetProjectConfigsResponse) Descriptor() ([]byte, []int) {
   431  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{3}
   432  }
   433  
   434  func (x *GetProjectConfigsResponse) GetConfigs() []*Config {
   435  	if x != nil {
   436  		return x.Configs
   437  	}
   438  	return nil
   439  }
   440  
   441  // ValidateConfigsRequest is the request of ValidateConfigs rpc.
   442  type ValidateConfigsRequest struct {
   443  	state         protoimpl.MessageState
   444  	sizeCache     protoimpl.SizeCache
   445  	unknownFields protoimpl.UnknownFields
   446  
   447  	// ConfigSet to validate against.
   448  	//
   449  	// See: https://pkg.go.dev/go.chromium.org/luci/config#Set
   450  	ConfigSet string `protobuf:"bytes,1,opt,name=config_set,json=configSet,proto3" json:"config_set,omitempty"`
   451  	// FileHashes represent the manifest of the config directory.
   452  	FileHashes []*ValidateConfigsRequest_FileHash `protobuf:"bytes,2,rep,name=file_hashes,json=fileHashes,proto3" json:"file_hashes,omitempty"`
   453  }
   454  
   455  func (x *ValidateConfigsRequest) Reset() {
   456  	*x = ValidateConfigsRequest{}
   457  	if protoimpl.UnsafeEnabled {
   458  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[4]
   459  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   460  		ms.StoreMessageInfo(mi)
   461  	}
   462  }
   463  
   464  func (x *ValidateConfigsRequest) String() string {
   465  	return protoimpl.X.MessageStringOf(x)
   466  }
   467  
   468  func (*ValidateConfigsRequest) ProtoMessage() {}
   469  
   470  func (x *ValidateConfigsRequest) ProtoReflect() protoreflect.Message {
   471  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[4]
   472  	if protoimpl.UnsafeEnabled && x != nil {
   473  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   474  		if ms.LoadMessageInfo() == nil {
   475  			ms.StoreMessageInfo(mi)
   476  		}
   477  		return ms
   478  	}
   479  	return mi.MessageOf(x)
   480  }
   481  
   482  // Deprecated: Use ValidateConfigsRequest.ProtoReflect.Descriptor instead.
   483  func (*ValidateConfigsRequest) Descriptor() ([]byte, []int) {
   484  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{4}
   485  }
   486  
   487  func (x *ValidateConfigsRequest) GetConfigSet() string {
   488  	if x != nil {
   489  		return x.ConfigSet
   490  	}
   491  	return ""
   492  }
   493  
   494  func (x *ValidateConfigsRequest) GetFileHashes() []*ValidateConfigsRequest_FileHash {
   495  	if x != nil {
   496  		return x.FileHashes
   497  	}
   498  	return nil
   499  }
   500  
   501  // BadValidationRequestFixInfo describes the problem in `ValidateConfigsRequest`
   502  // and provide the fix instruction. The server will include this message in
   503  // grpc error status details[1] and return InvalidArgument error code.
   504  //
   505  // [1]: https://github.com/googleapis/googleapis/blob/f36c65081b19e0758ef5696feca27c7dcee5475e/google/rpc/status.proto#L48
   506  type BadValidationRequestFixInfo struct {
   507  	state         protoimpl.MessageState
   508  	sizeCache     protoimpl.SizeCache
   509  	unknownFields protoimpl.UnknownFields
   510  
   511  	// The files that have NOT been seen by LUCI Config and need to be uploaded.
   512  	UploadFiles []*BadValidationRequestFixInfo_UploadFile `protobuf:"bytes,1,rep,name=upload_files,json=uploadFiles,proto3" json:"upload_files,omitempty"`
   513  	// Files that none of the services can validate and SHOULD NOT be included
   514  	// in the ValidateConfigsRequest.
   515  	UnvalidatableFiles []string `protobuf:"bytes,2,rep,name=unvalidatable_files,json=unvalidatableFiles,proto3" json:"unvalidatable_files,omitempty"`
   516  }
   517  
   518  func (x *BadValidationRequestFixInfo) Reset() {
   519  	*x = BadValidationRequestFixInfo{}
   520  	if protoimpl.UnsafeEnabled {
   521  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[5]
   522  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   523  		ms.StoreMessageInfo(mi)
   524  	}
   525  }
   526  
   527  func (x *BadValidationRequestFixInfo) String() string {
   528  	return protoimpl.X.MessageStringOf(x)
   529  }
   530  
   531  func (*BadValidationRequestFixInfo) ProtoMessage() {}
   532  
   533  func (x *BadValidationRequestFixInfo) ProtoReflect() protoreflect.Message {
   534  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[5]
   535  	if protoimpl.UnsafeEnabled && x != nil {
   536  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   537  		if ms.LoadMessageInfo() == nil {
   538  			ms.StoreMessageInfo(mi)
   539  		}
   540  		return ms
   541  	}
   542  	return mi.MessageOf(x)
   543  }
   544  
   545  // Deprecated: Use BadValidationRequestFixInfo.ProtoReflect.Descriptor instead.
   546  func (*BadValidationRequestFixInfo) Descriptor() ([]byte, []int) {
   547  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{5}
   548  }
   549  
   550  func (x *BadValidationRequestFixInfo) GetUploadFiles() []*BadValidationRequestFixInfo_UploadFile {
   551  	if x != nil {
   552  		return x.UploadFiles
   553  	}
   554  	return nil
   555  }
   556  
   557  func (x *BadValidationRequestFixInfo) GetUnvalidatableFiles() []string {
   558  	if x != nil {
   559  		return x.UnvalidatableFiles
   560  	}
   561  	return nil
   562  }
   563  
   564  // ListConfigSetsRequest is the request of ListConfigSets rpc.
   565  type ListConfigSetsRequest struct {
   566  	state         protoimpl.MessageState
   567  	sizeCache     protoimpl.SizeCache
   568  	unknownFields protoimpl.UnknownFields
   569  
   570  	// List config sets in the specified domain.
   571  	Domain ListConfigSetsRequest_ConfigSetDomain `protobuf:"varint,1,opt,name=domain,proto3,enum=config.service.v2.ListConfigSetsRequest_ConfigSetDomain" json:"domain,omitempty"`
   572  	// Fields of ConfigSet proto to include.
   573  	// By default, only return config_set, url and revision fields.
   574  	// Note: "file_paths" and "configs" is not supported in this rpc and only be
   575  	// supported in GetConfigSet rpc.
   576  	Fields *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=fields,proto3" json:"fields,omitempty"`
   577  }
   578  
   579  func (x *ListConfigSetsRequest) Reset() {
   580  	*x = ListConfigSetsRequest{}
   581  	if protoimpl.UnsafeEnabled {
   582  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[6]
   583  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   584  		ms.StoreMessageInfo(mi)
   585  	}
   586  }
   587  
   588  func (x *ListConfigSetsRequest) String() string {
   589  	return protoimpl.X.MessageStringOf(x)
   590  }
   591  
   592  func (*ListConfigSetsRequest) ProtoMessage() {}
   593  
   594  func (x *ListConfigSetsRequest) ProtoReflect() protoreflect.Message {
   595  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[6]
   596  	if protoimpl.UnsafeEnabled && x != nil {
   597  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   598  		if ms.LoadMessageInfo() == nil {
   599  			ms.StoreMessageInfo(mi)
   600  		}
   601  		return ms
   602  	}
   603  	return mi.MessageOf(x)
   604  }
   605  
   606  // Deprecated: Use ListConfigSetsRequest.ProtoReflect.Descriptor instead.
   607  func (*ListConfigSetsRequest) Descriptor() ([]byte, []int) {
   608  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{6}
   609  }
   610  
   611  func (x *ListConfigSetsRequest) GetDomain() ListConfigSetsRequest_ConfigSetDomain {
   612  	if x != nil {
   613  		return x.Domain
   614  	}
   615  	return ListConfigSetsRequest_ALL
   616  }
   617  
   618  func (x *ListConfigSetsRequest) GetFields() *fieldmaskpb.FieldMask {
   619  	if x != nil {
   620  		return x.Fields
   621  	}
   622  	return nil
   623  }
   624  
   625  // ListConfigSetsResponse is the response of ListConfigSets rpc.
   626  type ListConfigSetsResponse struct {
   627  	state         protoimpl.MessageState
   628  	sizeCache     protoimpl.SizeCache
   629  	unknownFields protoimpl.UnknownFields
   630  
   631  	// A list of config sets.
   632  	ConfigSets []*ConfigSet `protobuf:"bytes,1,rep,name=config_sets,json=configSets,proto3" json:"config_sets,omitempty"`
   633  }
   634  
   635  func (x *ListConfigSetsResponse) Reset() {
   636  	*x = ListConfigSetsResponse{}
   637  	if protoimpl.UnsafeEnabled {
   638  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[7]
   639  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   640  		ms.StoreMessageInfo(mi)
   641  	}
   642  }
   643  
   644  func (x *ListConfigSetsResponse) String() string {
   645  	return protoimpl.X.MessageStringOf(x)
   646  }
   647  
   648  func (*ListConfigSetsResponse) ProtoMessage() {}
   649  
   650  func (x *ListConfigSetsResponse) ProtoReflect() protoreflect.Message {
   651  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[7]
   652  	if protoimpl.UnsafeEnabled && x != nil {
   653  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   654  		if ms.LoadMessageInfo() == nil {
   655  			ms.StoreMessageInfo(mi)
   656  		}
   657  		return ms
   658  	}
   659  	return mi.MessageOf(x)
   660  }
   661  
   662  // Deprecated: Use ListConfigSetsResponse.ProtoReflect.Descriptor instead.
   663  func (*ListConfigSetsResponse) Descriptor() ([]byte, []int) {
   664  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{7}
   665  }
   666  
   667  func (x *ListConfigSetsResponse) GetConfigSets() []*ConfigSet {
   668  	if x != nil {
   669  		return x.ConfigSets
   670  	}
   671  	return nil
   672  }
   673  
   674  // A single ConfigSet.
   675  type ConfigSet struct {
   676  	state         protoimpl.MessageState
   677  	sizeCache     protoimpl.SizeCache
   678  	unknownFields protoimpl.UnknownFields
   679  
   680  	// Name of the config set.
   681  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   682  	// Git Repo url which holds configs of this config set.
   683  	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
   684  	// Latest imported Git revision.
   685  	Revision *ConfigSet_Revision `protobuf:"bytes,3,opt,name=revision,proto3" json:"revision,omitempty"`
   686  	// All file paths related to the corresponding config set location.
   687  	//
   688  	// Use `configs` instead.
   689  	//
   690  	// Deprecated: Marked as deprecated in go.chromium.org/luci/config_service/proto/config_service.proto.
   691  	FilePaths []string `protobuf:"bytes,4,rep,name=file_paths,json=filePaths,proto3" json:"file_paths,omitempty"`
   692  	// Last import attempt information.
   693  	LastImportAttempt *ConfigSet_Attempt `protobuf:"bytes,5,opt,name=last_import_attempt,json=lastImportAttempt,proto3" json:"last_import_attempt,omitempty"`
   694  	// Metadata of all config files in the set.
   695  	//
   696  	// Messages here exclude `raw_content` and `signed_url`. Use separate
   697  	// GetConfig call to fetch the full config file body.
   698  	Configs []*Config `protobuf:"bytes,6,rep,name=configs,proto3" json:"configs,omitempty"`
   699  }
   700  
   701  func (x *ConfigSet) Reset() {
   702  	*x = ConfigSet{}
   703  	if protoimpl.UnsafeEnabled {
   704  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[8]
   705  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   706  		ms.StoreMessageInfo(mi)
   707  	}
   708  }
   709  
   710  func (x *ConfigSet) String() string {
   711  	return protoimpl.X.MessageStringOf(x)
   712  }
   713  
   714  func (*ConfigSet) ProtoMessage() {}
   715  
   716  func (x *ConfigSet) ProtoReflect() protoreflect.Message {
   717  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[8]
   718  	if protoimpl.UnsafeEnabled && x != nil {
   719  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   720  		if ms.LoadMessageInfo() == nil {
   721  			ms.StoreMessageInfo(mi)
   722  		}
   723  		return ms
   724  	}
   725  	return mi.MessageOf(x)
   726  }
   727  
   728  // Deprecated: Use ConfigSet.ProtoReflect.Descriptor instead.
   729  func (*ConfigSet) Descriptor() ([]byte, []int) {
   730  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{8}
   731  }
   732  
   733  func (x *ConfigSet) GetName() string {
   734  	if x != nil {
   735  		return x.Name
   736  	}
   737  	return ""
   738  }
   739  
   740  func (x *ConfigSet) GetUrl() string {
   741  	if x != nil {
   742  		return x.Url
   743  	}
   744  	return ""
   745  }
   746  
   747  func (x *ConfigSet) GetRevision() *ConfigSet_Revision {
   748  	if x != nil {
   749  		return x.Revision
   750  	}
   751  	return nil
   752  }
   753  
   754  // Deprecated: Marked as deprecated in go.chromium.org/luci/config_service/proto/config_service.proto.
   755  func (x *ConfigSet) GetFilePaths() []string {
   756  	if x != nil {
   757  		return x.FilePaths
   758  	}
   759  	return nil
   760  }
   761  
   762  func (x *ConfigSet) GetLastImportAttempt() *ConfigSet_Attempt {
   763  	if x != nil {
   764  		return x.LastImportAttempt
   765  	}
   766  	return nil
   767  }
   768  
   769  func (x *ConfigSet) GetConfigs() []*Config {
   770  	if x != nil {
   771  		return x.Configs
   772  	}
   773  	return nil
   774  }
   775  
   776  // GetConfigSetRequest is the request of GetConfigSet rpc.
   777  type GetConfigSetRequest struct {
   778  	state         protoimpl.MessageState
   779  	sizeCache     protoimpl.SizeCache
   780  	unknownFields protoimpl.UnknownFields
   781  
   782  	// Config set to fetch.
   783  	ConfigSet string `protobuf:"bytes,1,opt,name=config_set,json=configSet,proto3" json:"config_set,omitempty"`
   784  	// Fields of ConfigSet proto to include.
   785  	// By default, only return config_set, url and revision fields.
   786  	Fields *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=fields,proto3" json:"fields,omitempty"`
   787  }
   788  
   789  func (x *GetConfigSetRequest) Reset() {
   790  	*x = GetConfigSetRequest{}
   791  	if protoimpl.UnsafeEnabled {
   792  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[9]
   793  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   794  		ms.StoreMessageInfo(mi)
   795  	}
   796  }
   797  
   798  func (x *GetConfigSetRequest) String() string {
   799  	return protoimpl.X.MessageStringOf(x)
   800  }
   801  
   802  func (*GetConfigSetRequest) ProtoMessage() {}
   803  
   804  func (x *GetConfigSetRequest) ProtoReflect() protoreflect.Message {
   805  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[9]
   806  	if protoimpl.UnsafeEnabled && x != nil {
   807  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   808  		if ms.LoadMessageInfo() == nil {
   809  			ms.StoreMessageInfo(mi)
   810  		}
   811  		return ms
   812  	}
   813  	return mi.MessageOf(x)
   814  }
   815  
   816  // Deprecated: Use GetConfigSetRequest.ProtoReflect.Descriptor instead.
   817  func (*GetConfigSetRequest) Descriptor() ([]byte, []int) {
   818  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{9}
   819  }
   820  
   821  func (x *GetConfigSetRequest) GetConfigSet() string {
   822  	if x != nil {
   823  		return x.ConfigSet
   824  	}
   825  	return ""
   826  }
   827  
   828  func (x *GetConfigSetRequest) GetFields() *fieldmaskpb.FieldMask {
   829  	if x != nil {
   830  		return x.Fields
   831  	}
   832  	return nil
   833  }
   834  
   835  type ValidateConfigsRequest_FileHash struct {
   836  	state         protoimpl.MessageState
   837  	sizeCache     protoimpl.SizeCache
   838  	unknownFields protoimpl.UnknownFields
   839  
   840  	// Relative path to the config file in POSIX style.
   841  	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
   842  	// The SHA256 hash of the config file.
   843  	Sha256 string `protobuf:"bytes,2,opt,name=sha256,proto3" json:"sha256,omitempty"`
   844  }
   845  
   846  func (x *ValidateConfigsRequest_FileHash) Reset() {
   847  	*x = ValidateConfigsRequest_FileHash{}
   848  	if protoimpl.UnsafeEnabled {
   849  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[10]
   850  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   851  		ms.StoreMessageInfo(mi)
   852  	}
   853  }
   854  
   855  func (x *ValidateConfigsRequest_FileHash) String() string {
   856  	return protoimpl.X.MessageStringOf(x)
   857  }
   858  
   859  func (*ValidateConfigsRequest_FileHash) ProtoMessage() {}
   860  
   861  func (x *ValidateConfigsRequest_FileHash) ProtoReflect() protoreflect.Message {
   862  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[10]
   863  	if protoimpl.UnsafeEnabled && x != nil {
   864  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   865  		if ms.LoadMessageInfo() == nil {
   866  			ms.StoreMessageInfo(mi)
   867  		}
   868  		return ms
   869  	}
   870  	return mi.MessageOf(x)
   871  }
   872  
   873  // Deprecated: Use ValidateConfigsRequest_FileHash.ProtoReflect.Descriptor instead.
   874  func (*ValidateConfigsRequest_FileHash) Descriptor() ([]byte, []int) {
   875  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{4, 0}
   876  }
   877  
   878  func (x *ValidateConfigsRequest_FileHash) GetPath() string {
   879  	if x != nil {
   880  		return x.Path
   881  	}
   882  	return ""
   883  }
   884  
   885  func (x *ValidateConfigsRequest_FileHash) GetSha256() string {
   886  	if x != nil {
   887  		return x.Sha256
   888  	}
   889  	return ""
   890  }
   891  
   892  type BadValidationRequestFixInfo_UploadFile struct {
   893  	state         protoimpl.MessageState
   894  	sizeCache     protoimpl.SizeCache
   895  	unknownFields protoimpl.UnknownFields
   896  
   897  	// Relative path to the config file in POSIX style.
   898  	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
   899  	// The url to upload the config.
   900  	//
   901  	// The caller SHOULD send compressed config and include following headers
   902  	//   - Content-Encoding: gzip
   903  	//   - x-goog-content-length-range: 0,$max_config_size
   904  	SignedUrl string `protobuf:"bytes,2,opt,name=signed_url,json=signedUrl,proto3" json:"signed_url,omitempty"`
   905  	// Maximum config size in bytes that client can upload.
   906  	MaxConfigSize int64 `protobuf:"varint,3,opt,name=max_config_size,json=maxConfigSize,proto3" json:"max_config_size,omitempty"`
   907  }
   908  
   909  func (x *BadValidationRequestFixInfo_UploadFile) Reset() {
   910  	*x = BadValidationRequestFixInfo_UploadFile{}
   911  	if protoimpl.UnsafeEnabled {
   912  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[11]
   913  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   914  		ms.StoreMessageInfo(mi)
   915  	}
   916  }
   917  
   918  func (x *BadValidationRequestFixInfo_UploadFile) String() string {
   919  	return protoimpl.X.MessageStringOf(x)
   920  }
   921  
   922  func (*BadValidationRequestFixInfo_UploadFile) ProtoMessage() {}
   923  
   924  func (x *BadValidationRequestFixInfo_UploadFile) ProtoReflect() protoreflect.Message {
   925  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[11]
   926  	if protoimpl.UnsafeEnabled && x != nil {
   927  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   928  		if ms.LoadMessageInfo() == nil {
   929  			ms.StoreMessageInfo(mi)
   930  		}
   931  		return ms
   932  	}
   933  	return mi.MessageOf(x)
   934  }
   935  
   936  // Deprecated: Use BadValidationRequestFixInfo_UploadFile.ProtoReflect.Descriptor instead.
   937  func (*BadValidationRequestFixInfo_UploadFile) Descriptor() ([]byte, []int) {
   938  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{5, 0}
   939  }
   940  
   941  func (x *BadValidationRequestFixInfo_UploadFile) GetPath() string {
   942  	if x != nil {
   943  		return x.Path
   944  	}
   945  	return ""
   946  }
   947  
   948  func (x *BadValidationRequestFixInfo_UploadFile) GetSignedUrl() string {
   949  	if x != nil {
   950  		return x.SignedUrl
   951  	}
   952  	return ""
   953  }
   954  
   955  func (x *BadValidationRequestFixInfo_UploadFile) GetMaxConfigSize() int64 {
   956  	if x != nil {
   957  		return x.MaxConfigSize
   958  	}
   959  	return 0
   960  }
   961  
   962  type ConfigSet_Revision struct {
   963  	state         protoimpl.MessageState
   964  	sizeCache     protoimpl.SizeCache
   965  	unknownFields protoimpl.UnknownFields
   966  
   967  	// Revision id.
   968  	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   969  	// Repo url points to this revision of config set.
   970  	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
   971  	// Committer email who commit this revision
   972  	CommitterEmail string `protobuf:"bytes,3,opt,name=committer_email,json=committerEmail,proto3" json:"committer_email,omitempty"`
   973  	// The commit author email.
   974  	AuthorEmail string `protobuf:"bytes,5,opt,name=author_email,json=authorEmail,proto3" json:"author_email,omitempty"`
   975  	// Time of this committed revision.
   976  	Timestamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
   977  }
   978  
   979  func (x *ConfigSet_Revision) Reset() {
   980  	*x = ConfigSet_Revision{}
   981  	if protoimpl.UnsafeEnabled {
   982  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[12]
   983  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   984  		ms.StoreMessageInfo(mi)
   985  	}
   986  }
   987  
   988  func (x *ConfigSet_Revision) String() string {
   989  	return protoimpl.X.MessageStringOf(x)
   990  }
   991  
   992  func (*ConfigSet_Revision) ProtoMessage() {}
   993  
   994  func (x *ConfigSet_Revision) ProtoReflect() protoreflect.Message {
   995  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[12]
   996  	if protoimpl.UnsafeEnabled && x != nil {
   997  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   998  		if ms.LoadMessageInfo() == nil {
   999  			ms.StoreMessageInfo(mi)
  1000  		}
  1001  		return ms
  1002  	}
  1003  	return mi.MessageOf(x)
  1004  }
  1005  
  1006  // Deprecated: Use ConfigSet_Revision.ProtoReflect.Descriptor instead.
  1007  func (*ConfigSet_Revision) Descriptor() ([]byte, []int) {
  1008  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{8, 0}
  1009  }
  1010  
  1011  func (x *ConfigSet_Revision) GetId() string {
  1012  	if x != nil {
  1013  		return x.Id
  1014  	}
  1015  	return ""
  1016  }
  1017  
  1018  func (x *ConfigSet_Revision) GetUrl() string {
  1019  	if x != nil {
  1020  		return x.Url
  1021  	}
  1022  	return ""
  1023  }
  1024  
  1025  func (x *ConfigSet_Revision) GetCommitterEmail() string {
  1026  	if x != nil {
  1027  		return x.CommitterEmail
  1028  	}
  1029  	return ""
  1030  }
  1031  
  1032  func (x *ConfigSet_Revision) GetAuthorEmail() string {
  1033  	if x != nil {
  1034  		return x.AuthorEmail
  1035  	}
  1036  	return ""
  1037  }
  1038  
  1039  func (x *ConfigSet_Revision) GetTimestamp() *timestamppb.Timestamp {
  1040  	if x != nil {
  1041  		return x.Timestamp
  1042  	}
  1043  	return nil
  1044  }
  1045  
  1046  // Attempt information about importing this config set.
  1047  type ConfigSet_Attempt struct {
  1048  	state         protoimpl.MessageState
  1049  	sizeCache     protoimpl.SizeCache
  1050  	unknownFields protoimpl.UnknownFields
  1051  
  1052  	// Human-readable message of the attempt.
  1053  	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
  1054  	// Whether this attempt is successful or not.
  1055  	Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
  1056  	// Git revision attempt to import
  1057  	Revision *ConfigSet_Revision `protobuf:"bytes,3,opt,name=revision,proto3" json:"revision,omitempty"`
  1058  	// Time of this attempt.
  1059  	Timestamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
  1060  	// The validation result in this import attempt.
  1061  	ValidationResult *config.ValidationResult `protobuf:"bytes,5,opt,name=validationResult,proto3" json:"validationResult,omitempty"`
  1062  }
  1063  
  1064  func (x *ConfigSet_Attempt) Reset() {
  1065  	*x = ConfigSet_Attempt{}
  1066  	if protoimpl.UnsafeEnabled {
  1067  		mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[13]
  1068  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1069  		ms.StoreMessageInfo(mi)
  1070  	}
  1071  }
  1072  
  1073  func (x *ConfigSet_Attempt) String() string {
  1074  	return protoimpl.X.MessageStringOf(x)
  1075  }
  1076  
  1077  func (*ConfigSet_Attempt) ProtoMessage() {}
  1078  
  1079  func (x *ConfigSet_Attempt) ProtoReflect() protoreflect.Message {
  1080  	mi := &file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[13]
  1081  	if protoimpl.UnsafeEnabled && x != nil {
  1082  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1083  		if ms.LoadMessageInfo() == nil {
  1084  			ms.StoreMessageInfo(mi)
  1085  		}
  1086  		return ms
  1087  	}
  1088  	return mi.MessageOf(x)
  1089  }
  1090  
  1091  // Deprecated: Use ConfigSet_Attempt.ProtoReflect.Descriptor instead.
  1092  func (*ConfigSet_Attempt) Descriptor() ([]byte, []int) {
  1093  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP(), []int{8, 1}
  1094  }
  1095  
  1096  func (x *ConfigSet_Attempt) GetMessage() string {
  1097  	if x != nil {
  1098  		return x.Message
  1099  	}
  1100  	return ""
  1101  }
  1102  
  1103  func (x *ConfigSet_Attempt) GetSuccess() bool {
  1104  	if x != nil {
  1105  		return x.Success
  1106  	}
  1107  	return false
  1108  }
  1109  
  1110  func (x *ConfigSet_Attempt) GetRevision() *ConfigSet_Revision {
  1111  	if x != nil {
  1112  		return x.Revision
  1113  	}
  1114  	return nil
  1115  }
  1116  
  1117  func (x *ConfigSet_Attempt) GetTimestamp() *timestamppb.Timestamp {
  1118  	if x != nil {
  1119  		return x.Timestamp
  1120  	}
  1121  	return nil
  1122  }
  1123  
  1124  func (x *ConfigSet_Attempt) GetValidationResult() *config.ValidationResult {
  1125  	if x != nil {
  1126  		return x.ValidationResult
  1127  	}
  1128  	return nil
  1129  }
  1130  
  1131  var File_go_chromium_org_luci_config_service_proto_config_service_proto protoreflect.FileDescriptor
  1132  
  1133  var file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDesc = []byte{
  1134  	0x0a, 0x3e, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
  1135  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65,
  1136  	0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
  1137  	0x69, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1138  	0x12, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  1139  	0x2e, 0x76, 0x32, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
  1140  	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e,
  1141  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
  1142  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
  1143  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3d, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
  1144  	0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d,
  1145  	0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1146  	0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1147  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa0, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e,
  1148  	0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f,
  1149  	0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
  1150  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
  1151  	0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a,
  1152  	0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18,
  1153  	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x68,
  1154  	0x61, 0x32, 0x35, 0x36, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04,
  1155  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
  1156  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b,
  1157  	0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e,
  1158  	0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65,
  1159  	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53,
  1160  	0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
  1161  	0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0b, 0x72, 0x61, 0x77, 0x5f, 0x63, 0x6f,
  1162  	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x72,
  1163  	0x61, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x73, 0x69, 0x67,
  1164  	0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
  1165  	0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f,
  1166  	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01,
  1167  	0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35,
  1168  	0x36, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
  1169  	0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
  1170  	0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
  1171  	0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
  1172  	0x75, 0x72, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x62,
  1173  	0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66,
  1174  	0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
  1175  	0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x32,
  1176  	0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
  1177  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  1178  	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c,
  1179  	0x64, 0x73, 0x22, 0x50, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
  1180  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
  1181  	0x33, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
  1182  	0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  1183  	0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x6f, 0x6e,
  1184  	0x66, 0x69, 0x67, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x16, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
  1185  	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
  1186  	0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20,
  1187  	0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x12, 0x53,
  1188  	0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20,
  1189  	0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72,
  1190  	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
  1191  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46,
  1192  	0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73,
  1193  	0x68, 0x65, 0x73, 0x1a, 0x36, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12,
  1194  	0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
  1195  	0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x02, 0x20,
  1196  	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x22, 0x95, 0x02, 0x0a, 0x1b,
  1197  	0x42, 0x61, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
  1198  	0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x0c, 0x75,
  1199  	0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
  1200  	0x0b, 0x32, 0x39, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69,
  1201  	0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
  1202  	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x78, 0x49, 0x6e, 0x66,
  1203  	0x6f, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0b, 0x75, 0x70,
  1204  	0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x75, 0x6e, 0x76,
  1205  	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73,
  1206  	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x75, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
  1207  	0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x67, 0x0a, 0x0a, 0x55, 0x70,
  1208  	0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
  1209  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a,
  1210  	0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
  1211  	0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x6d,
  1212  	0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03,
  1213  	0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53,
  1214  	0x69, 0x7a, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66,
  1215  	0x69, 0x67, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a,
  1216  	0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e,
  1217  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76,
  1218  	0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x73,
  1219  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65,
  1220  	0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12,
  1221  	0x32, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1222  	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  1223  	0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x06, 0x66, 0x69, 0x65,
  1224  	0x6c, 0x64, 0x73, 0x22, 0x34, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74,
  1225  	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12,
  1226  	0x0b, 0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
  1227  	0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x16, 0x4c, 0x69, 0x73,
  1228  	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
  1229  	0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65,
  1230  	0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  1231  	0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e,
  1232  	0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65,
  1233  	0x74, 0x73, 0x22, 0xda, 0x05, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74,
  1234  	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
  1235  	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
  1236  	0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x41, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
  1237  	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  1238  	0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e,
  1239  	0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52,
  1240  	0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0a, 0x66, 0x69, 0x6c,
  1241  	0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18,
  1242  	0x01, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x54, 0x0a, 0x13,
  1243  	0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65,
  1244  	0x6d, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  1245  	0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f,
  1246  	0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x52,
  1247  	0x11, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x74, 0x74, 0x65, 0x6d,
  1248  	0x70, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x06, 0x20,
  1249  	0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72,
  1250  	0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07,
  1251  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0xb2, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x76, 0x69,
  1252  	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  1253  	0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
  1254  	0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
  1255  	0x74, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
  1256  	0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12,
  1257  	0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18,
  1258  	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x45, 0x6d, 0x61,
  1259  	0x69, 0x6c, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
  1260  	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  1261  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
  1262  	0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x80, 0x02, 0x0a,
  1263  	0x07, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
  1264  	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
  1265  	0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20,
  1266  	0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x08,
  1267  	0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
  1268  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e,
  1269  	0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x76,
  1270  	0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12,
  1271  	0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01,
  1272  	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  1273  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
  1274  	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x44, 0x0a, 0x10, 0x76, 0x61, 0x6c,
  1275  	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20,
  1276  	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x61, 0x6c,
  1277  	0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x10, 0x76,
  1278  	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
  1279  	0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x52,
  1280  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1281  	0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66,
  1282  	0x69, 0x67, 0x53, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18,
  1283  	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  1284  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73,
  1285  	0x6b, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x32, 0xe5, 0x03, 0x0a, 0x07, 0x43, 0x6f,
  1286  	0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66,
  1287  	0x69, 0x67, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76,
  1288  	0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1289  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1290  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
  1291  	0x69, 0x67, 0x22, 0x00, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65,
  1292  	0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  1293  	0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65,
  1294  	0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52,
  1295  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1296  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72,
  1297  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70,
  1298  	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f,
  1299  	0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  1300  	0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73,
  1301  	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
  1302  	0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76,
  1303  	0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1304  	0x67, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
  1305  	0x56, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x12,
  1306  	0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  1307  	0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74,
  1308  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1309  	0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
  1310  	0x69, 0x67, 0x53, 0x65, 0x74, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64,
  1311  	0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x6e,
  1312  	0x66, 0x69, 0x67, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x56,
  1313  	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65,
  1314  	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56,
  1315  	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
  1316  	0x00, 0x42, 0x37, 0x5a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
  1317  	0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1318  	0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x63,
  1319  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x70, 0x62, 0x90, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
  1320  	0x6f, 0x33,
  1321  }
  1322  
  1323  var (
  1324  	file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescOnce sync.Once
  1325  	file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescData = file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDesc
  1326  )
  1327  
  1328  func file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescGZIP() []byte {
  1329  	file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescOnce.Do(func() {
  1330  		file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescData)
  1331  	})
  1332  	return file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDescData
  1333  }
  1334  
  1335  var file_go_chromium_org_luci_config_service_proto_config_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
  1336  var file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
  1337  var file_go_chromium_org_luci_config_service_proto_config_service_proto_goTypes = []interface{}{
  1338  	(ListConfigSetsRequest_ConfigSetDomain)(0),     // 0: config.service.v2.ListConfigSetsRequest.ConfigSetDomain
  1339  	(*GetConfigRequest)(nil),                       // 1: config.service.v2.GetConfigRequest
  1340  	(*Config)(nil),                                 // 2: config.service.v2.Config
  1341  	(*GetProjectConfigsRequest)(nil),               // 3: config.service.v2.GetProjectConfigsRequest
  1342  	(*GetProjectConfigsResponse)(nil),              // 4: config.service.v2.GetProjectConfigsResponse
  1343  	(*ValidateConfigsRequest)(nil),                 // 5: config.service.v2.ValidateConfigsRequest
  1344  	(*BadValidationRequestFixInfo)(nil),            // 6: config.service.v2.BadValidationRequestFixInfo
  1345  	(*ListConfigSetsRequest)(nil),                  // 7: config.service.v2.ListConfigSetsRequest
  1346  	(*ListConfigSetsResponse)(nil),                 // 8: config.service.v2.ListConfigSetsResponse
  1347  	(*ConfigSet)(nil),                              // 9: config.service.v2.ConfigSet
  1348  	(*GetConfigSetRequest)(nil),                    // 10: config.service.v2.GetConfigSetRequest
  1349  	(*ValidateConfigsRequest_FileHash)(nil),        // 11: config.service.v2.ValidateConfigsRequest.FileHash
  1350  	(*BadValidationRequestFixInfo_UploadFile)(nil), // 12: config.service.v2.BadValidationRequestFixInfo.UploadFile
  1351  	(*ConfigSet_Revision)(nil),                     // 13: config.service.v2.ConfigSet.Revision
  1352  	(*ConfigSet_Attempt)(nil),                      // 14: config.service.v2.ConfigSet.Attempt
  1353  	(*fieldmaskpb.FieldMask)(nil),                  // 15: google.protobuf.FieldMask
  1354  	(*timestamppb.Timestamp)(nil),                  // 16: google.protobuf.Timestamp
  1355  	(*config.ValidationResult)(nil),                // 17: config.ValidationResult
  1356  }
  1357  var file_go_chromium_org_luci_config_service_proto_config_service_proto_depIdxs = []int32{
  1358  	15, // 0: config.service.v2.GetConfigRequest.fields:type_name -> google.protobuf.FieldMask
  1359  	15, // 1: config.service.v2.GetProjectConfigsRequest.fields:type_name -> google.protobuf.FieldMask
  1360  	2,  // 2: config.service.v2.GetProjectConfigsResponse.configs:type_name -> config.service.v2.Config
  1361  	11, // 3: config.service.v2.ValidateConfigsRequest.file_hashes:type_name -> config.service.v2.ValidateConfigsRequest.FileHash
  1362  	12, // 4: config.service.v2.BadValidationRequestFixInfo.upload_files:type_name -> config.service.v2.BadValidationRequestFixInfo.UploadFile
  1363  	0,  // 5: config.service.v2.ListConfigSetsRequest.domain:type_name -> config.service.v2.ListConfigSetsRequest.ConfigSetDomain
  1364  	15, // 6: config.service.v2.ListConfigSetsRequest.fields:type_name -> google.protobuf.FieldMask
  1365  	9,  // 7: config.service.v2.ListConfigSetsResponse.config_sets:type_name -> config.service.v2.ConfigSet
  1366  	13, // 8: config.service.v2.ConfigSet.revision:type_name -> config.service.v2.ConfigSet.Revision
  1367  	14, // 9: config.service.v2.ConfigSet.last_import_attempt:type_name -> config.service.v2.ConfigSet.Attempt
  1368  	2,  // 10: config.service.v2.ConfigSet.configs:type_name -> config.service.v2.Config
  1369  	15, // 11: config.service.v2.GetConfigSetRequest.fields:type_name -> google.protobuf.FieldMask
  1370  	16, // 12: config.service.v2.ConfigSet.Revision.timestamp:type_name -> google.protobuf.Timestamp
  1371  	13, // 13: config.service.v2.ConfigSet.Attempt.revision:type_name -> config.service.v2.ConfigSet.Revision
  1372  	16, // 14: config.service.v2.ConfigSet.Attempt.timestamp:type_name -> google.protobuf.Timestamp
  1373  	17, // 15: config.service.v2.ConfigSet.Attempt.validationResult:type_name -> config.ValidationResult
  1374  	1,  // 16: config.service.v2.Configs.GetConfig:input_type -> config.service.v2.GetConfigRequest
  1375  	3,  // 17: config.service.v2.Configs.GetProjectConfigs:input_type -> config.service.v2.GetProjectConfigsRequest
  1376  	7,  // 18: config.service.v2.Configs.ListConfigSets:input_type -> config.service.v2.ListConfigSetsRequest
  1377  	10, // 19: config.service.v2.Configs.GetConfigSet:input_type -> config.service.v2.GetConfigSetRequest
  1378  	5,  // 20: config.service.v2.Configs.ValidateConfigs:input_type -> config.service.v2.ValidateConfigsRequest
  1379  	2,  // 21: config.service.v2.Configs.GetConfig:output_type -> config.service.v2.Config
  1380  	4,  // 22: config.service.v2.Configs.GetProjectConfigs:output_type -> config.service.v2.GetProjectConfigsResponse
  1381  	8,  // 23: config.service.v2.Configs.ListConfigSets:output_type -> config.service.v2.ListConfigSetsResponse
  1382  	9,  // 24: config.service.v2.Configs.GetConfigSet:output_type -> config.service.v2.ConfigSet
  1383  	17, // 25: config.service.v2.Configs.ValidateConfigs:output_type -> config.ValidationResult
  1384  	21, // [21:26] is the sub-list for method output_type
  1385  	16, // [16:21] is the sub-list for method input_type
  1386  	16, // [16:16] is the sub-list for extension type_name
  1387  	16, // [16:16] is the sub-list for extension extendee
  1388  	0,  // [0:16] is the sub-list for field type_name
  1389  }
  1390  
  1391  func init() { file_go_chromium_org_luci_config_service_proto_config_service_proto_init() }
  1392  func file_go_chromium_org_luci_config_service_proto_config_service_proto_init() {
  1393  	if File_go_chromium_org_luci_config_service_proto_config_service_proto != nil {
  1394  		return
  1395  	}
  1396  	if !protoimpl.UnsafeEnabled {
  1397  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1398  			switch v := v.(*GetConfigRequest); i {
  1399  			case 0:
  1400  				return &v.state
  1401  			case 1:
  1402  				return &v.sizeCache
  1403  			case 2:
  1404  				return &v.unknownFields
  1405  			default:
  1406  				return nil
  1407  			}
  1408  		}
  1409  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1410  			switch v := v.(*Config); i {
  1411  			case 0:
  1412  				return &v.state
  1413  			case 1:
  1414  				return &v.sizeCache
  1415  			case 2:
  1416  				return &v.unknownFields
  1417  			default:
  1418  				return nil
  1419  			}
  1420  		}
  1421  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1422  			switch v := v.(*GetProjectConfigsRequest); i {
  1423  			case 0:
  1424  				return &v.state
  1425  			case 1:
  1426  				return &v.sizeCache
  1427  			case 2:
  1428  				return &v.unknownFields
  1429  			default:
  1430  				return nil
  1431  			}
  1432  		}
  1433  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1434  			switch v := v.(*GetProjectConfigsResponse); i {
  1435  			case 0:
  1436  				return &v.state
  1437  			case 1:
  1438  				return &v.sizeCache
  1439  			case 2:
  1440  				return &v.unknownFields
  1441  			default:
  1442  				return nil
  1443  			}
  1444  		}
  1445  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1446  			switch v := v.(*ValidateConfigsRequest); i {
  1447  			case 0:
  1448  				return &v.state
  1449  			case 1:
  1450  				return &v.sizeCache
  1451  			case 2:
  1452  				return &v.unknownFields
  1453  			default:
  1454  				return nil
  1455  			}
  1456  		}
  1457  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1458  			switch v := v.(*BadValidationRequestFixInfo); i {
  1459  			case 0:
  1460  				return &v.state
  1461  			case 1:
  1462  				return &v.sizeCache
  1463  			case 2:
  1464  				return &v.unknownFields
  1465  			default:
  1466  				return nil
  1467  			}
  1468  		}
  1469  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1470  			switch v := v.(*ListConfigSetsRequest); i {
  1471  			case 0:
  1472  				return &v.state
  1473  			case 1:
  1474  				return &v.sizeCache
  1475  			case 2:
  1476  				return &v.unknownFields
  1477  			default:
  1478  				return nil
  1479  			}
  1480  		}
  1481  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1482  			switch v := v.(*ListConfigSetsResponse); i {
  1483  			case 0:
  1484  				return &v.state
  1485  			case 1:
  1486  				return &v.sizeCache
  1487  			case 2:
  1488  				return &v.unknownFields
  1489  			default:
  1490  				return nil
  1491  			}
  1492  		}
  1493  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1494  			switch v := v.(*ConfigSet); i {
  1495  			case 0:
  1496  				return &v.state
  1497  			case 1:
  1498  				return &v.sizeCache
  1499  			case 2:
  1500  				return &v.unknownFields
  1501  			default:
  1502  				return nil
  1503  			}
  1504  		}
  1505  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1506  			switch v := v.(*GetConfigSetRequest); i {
  1507  			case 0:
  1508  				return &v.state
  1509  			case 1:
  1510  				return &v.sizeCache
  1511  			case 2:
  1512  				return &v.unknownFields
  1513  			default:
  1514  				return nil
  1515  			}
  1516  		}
  1517  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  1518  			switch v := v.(*ValidateConfigsRequest_FileHash); i {
  1519  			case 0:
  1520  				return &v.state
  1521  			case 1:
  1522  				return &v.sizeCache
  1523  			case 2:
  1524  				return &v.unknownFields
  1525  			default:
  1526  				return nil
  1527  			}
  1528  		}
  1529  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  1530  			switch v := v.(*BadValidationRequestFixInfo_UploadFile); i {
  1531  			case 0:
  1532  				return &v.state
  1533  			case 1:
  1534  				return &v.sizeCache
  1535  			case 2:
  1536  				return &v.unknownFields
  1537  			default:
  1538  				return nil
  1539  			}
  1540  		}
  1541  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  1542  			switch v := v.(*ConfigSet_Revision); i {
  1543  			case 0:
  1544  				return &v.state
  1545  			case 1:
  1546  				return &v.sizeCache
  1547  			case 2:
  1548  				return &v.unknownFields
  1549  			default:
  1550  				return nil
  1551  			}
  1552  		}
  1553  		file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  1554  			switch v := v.(*ConfigSet_Attempt); i {
  1555  			case 0:
  1556  				return &v.state
  1557  			case 1:
  1558  				return &v.sizeCache
  1559  			case 2:
  1560  				return &v.unknownFields
  1561  			default:
  1562  				return nil
  1563  			}
  1564  		}
  1565  	}
  1566  	file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes[1].OneofWrappers = []interface{}{
  1567  		(*Config_RawContent)(nil),
  1568  		(*Config_SignedUrl)(nil),
  1569  	}
  1570  	type x struct{}
  1571  	out := protoimpl.TypeBuilder{
  1572  		File: protoimpl.DescBuilder{
  1573  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1574  			RawDescriptor: file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDesc,
  1575  			NumEnums:      1,
  1576  			NumMessages:   14,
  1577  			NumExtensions: 0,
  1578  			NumServices:   1,
  1579  		},
  1580  		GoTypes:           file_go_chromium_org_luci_config_service_proto_config_service_proto_goTypes,
  1581  		DependencyIndexes: file_go_chromium_org_luci_config_service_proto_config_service_proto_depIdxs,
  1582  		EnumInfos:         file_go_chromium_org_luci_config_service_proto_config_service_proto_enumTypes,
  1583  		MessageInfos:      file_go_chromium_org_luci_config_service_proto_config_service_proto_msgTypes,
  1584  	}.Build()
  1585  	File_go_chromium_org_luci_config_service_proto_config_service_proto = out.File
  1586  	file_go_chromium_org_luci_config_service_proto_config_service_proto_rawDesc = nil
  1587  	file_go_chromium_org_luci_config_service_proto_config_service_proto_goTypes = nil
  1588  	file_go_chromium_org_luci_config_service_proto_config_service_proto_depIdxs = nil
  1589  }