go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/gce/api/config/v1/config.pb.go (about)

     1  // Copyright 2018 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/gce/api/config/v1/config.proto
    10  
    11  package config
    12  
    13  import (
    14  	_ "go.chromium.org/luci/common/proto"
    15  	dayofweek "google.golang.org/genproto/googleapis/type/dayofweek"
    16  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    17  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    18  	emptypb "google.golang.org/protobuf/types/known/emptypb"
    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  // A network access config type.
    31  // GCE's default and only value is 1:1 NAT.
    32  type AccessConfigType int32
    33  
    34  const (
    35  	// 1:1 network address translation.
    36  	AccessConfigType_ONE_TO_ONE_NAT AccessConfigType = 0
    37  )
    38  
    39  // Enum value maps for AccessConfigType.
    40  var (
    41  	AccessConfigType_name = map[int32]string{
    42  		0: "ONE_TO_ONE_NAT",
    43  	}
    44  	AccessConfigType_value = map[string]int32{
    45  		"ONE_TO_ONE_NAT": 0,
    46  	}
    47  )
    48  
    49  func (x AccessConfigType) Enum() *AccessConfigType {
    50  	p := new(AccessConfigType)
    51  	*p = x
    52  	return p
    53  }
    54  
    55  func (x AccessConfigType) String() string {
    56  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    57  }
    58  
    59  func (AccessConfigType) Descriptor() protoreflect.EnumDescriptor {
    60  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[0].Descriptor()
    61  }
    62  
    63  func (AccessConfigType) Type() protoreflect.EnumType {
    64  	return &file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[0]
    65  }
    66  
    67  func (x AccessConfigType) Number() protoreflect.EnumNumber {
    68  	return protoreflect.EnumNumber(x)
    69  }
    70  
    71  // Deprecated: Use AccessConfigType.Descriptor instead.
    72  func (AccessConfigType) EnumDescriptor() ([]byte, []int) {
    73  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{0}
    74  }
    75  
    76  // A disk interface.
    77  // GCE's default is "SCSI".
    78  type DiskInterface int32
    79  
    80  const (
    81  	DiskInterface_SCSI DiskInterface = 0
    82  	DiskInterface_NVME DiskInterface = 1
    83  )
    84  
    85  // Enum value maps for DiskInterface.
    86  var (
    87  	DiskInterface_name = map[int32]string{
    88  		0: "SCSI",
    89  		1: "NVME",
    90  	}
    91  	DiskInterface_value = map[string]int32{
    92  		"SCSI": 0,
    93  		"NVME": 1,
    94  	}
    95  )
    96  
    97  func (x DiskInterface) Enum() *DiskInterface {
    98  	p := new(DiskInterface)
    99  	*p = x
   100  	return p
   101  }
   102  
   103  func (x DiskInterface) String() string {
   104  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   105  }
   106  
   107  func (DiskInterface) Descriptor() protoreflect.EnumDescriptor {
   108  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[1].Descriptor()
   109  }
   110  
   111  func (DiskInterface) Type() protoreflect.EnumType {
   112  	return &file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[1]
   113  }
   114  
   115  func (x DiskInterface) Number() protoreflect.EnumNumber {
   116  	return protoreflect.EnumNumber(x)
   117  }
   118  
   119  // Deprecated: Use DiskInterface.Descriptor instead.
   120  func (DiskInterface) EnumDescriptor() ([]byte, []int) {
   121  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{1}
   122  }
   123  
   124  // Defines the way in which nodes are selected.
   125  type NodeAffinityOperator int32
   126  
   127  const (
   128  	NodeAffinityOperator_OPERATOR_UNSPECIFIED NodeAffinityOperator = 0
   129  	// Requires Compute Engine to seek for matched nodes.
   130  	NodeAffinityOperator_IN NodeAffinityOperator = 1
   131  	// Requires Compute Engine to avoid certain nodes.
   132  	NodeAffinityOperator_NOT_IN NodeAffinityOperator = 2
   133  )
   134  
   135  // Enum value maps for NodeAffinityOperator.
   136  var (
   137  	NodeAffinityOperator_name = map[int32]string{
   138  		0: "OPERATOR_UNSPECIFIED",
   139  		1: "IN",
   140  		2: "NOT_IN",
   141  	}
   142  	NodeAffinityOperator_value = map[string]int32{
   143  		"OPERATOR_UNSPECIFIED": 0,
   144  		"IN":                   1,
   145  		"NOT_IN":               2,
   146  	}
   147  )
   148  
   149  func (x NodeAffinityOperator) Enum() *NodeAffinityOperator {
   150  	p := new(NodeAffinityOperator)
   151  	*p = x
   152  	return p
   153  }
   154  
   155  func (x NodeAffinityOperator) String() string {
   156  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   157  }
   158  
   159  func (NodeAffinityOperator) Descriptor() protoreflect.EnumDescriptor {
   160  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[2].Descriptor()
   161  }
   162  
   163  func (NodeAffinityOperator) Type() protoreflect.EnumType {
   164  	return &file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[2]
   165  }
   166  
   167  func (x NodeAffinityOperator) Number() protoreflect.EnumNumber {
   168  	return protoreflect.EnumNumber(x)
   169  }
   170  
   171  // Deprecated: Use NodeAffinityOperator.Descriptor instead.
   172  func (NodeAffinityOperator) EnumDescriptor() ([]byte, []int) {
   173  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{2}
   174  }
   175  
   176  // GCPChannel is the version of the cloud API to use stable, beta, or alpha.
   177  type GCPChannel int32
   178  
   179  const (
   180  	GCPChannel_GCP_CHANNEL_UNSPECIFIED GCPChannel = 0
   181  	GCPChannel_GCP_CHANNEL_STABLE      GCPChannel = 1
   182  	GCPChannel_GCP_CHANNEL_BETA        GCPChannel = 2
   183  	GCPChannel_GCP_CHANNEL_ALPHA       GCPChannel = 3
   184  )
   185  
   186  // Enum value maps for GCPChannel.
   187  var (
   188  	GCPChannel_name = map[int32]string{
   189  		0: "GCP_CHANNEL_UNSPECIFIED",
   190  		1: "GCP_CHANNEL_STABLE",
   191  		2: "GCP_CHANNEL_BETA",
   192  		3: "GCP_CHANNEL_ALPHA",
   193  	}
   194  	GCPChannel_value = map[string]int32{
   195  		"GCP_CHANNEL_UNSPECIFIED": 0,
   196  		"GCP_CHANNEL_STABLE":      1,
   197  		"GCP_CHANNEL_BETA":        2,
   198  		"GCP_CHANNEL_ALPHA":       3,
   199  	}
   200  )
   201  
   202  func (x GCPChannel) Enum() *GCPChannel {
   203  	p := new(GCPChannel)
   204  	*p = x
   205  	return p
   206  }
   207  
   208  func (x GCPChannel) String() string {
   209  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   210  }
   211  
   212  func (GCPChannel) Descriptor() protoreflect.EnumDescriptor {
   213  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[3].Descriptor()
   214  }
   215  
   216  func (GCPChannel) Type() protoreflect.EnumType {
   217  	return &file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[3]
   218  }
   219  
   220  func (x GCPChannel) Number() protoreflect.EnumNumber {
   221  	return protoreflect.EnumNumber(x)
   222  }
   223  
   224  // Deprecated: Use GCPChannel.Descriptor instead.
   225  func (GCPChannel) EnumDescriptor() ([]byte, []int) {
   226  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{3}
   227  }
   228  
   229  // PerformanceMonitoringUnit tracks the types of performance monitoring units to attach to a given instance.
   230  type PerformanceMonitoringUnit int32
   231  
   232  const (
   233  	PerformanceMonitoringUnit_PERFORMANCE_MONITORING_UNIT_UNSPECIFIED PerformanceMonitoringUnit = 0 // This is not a mistake! The underlying cloud API expects the string "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED".
   234  	PerformanceMonitoringUnit_ARCHITECTURAL                           PerformanceMonitoringUnit = 1
   235  	PerformanceMonitoringUnit_ENHANCED                                PerformanceMonitoringUnit = 2
   236  	PerformanceMonitoringUnit_STANDARD                                PerformanceMonitoringUnit = 3
   237  )
   238  
   239  // Enum value maps for PerformanceMonitoringUnit.
   240  var (
   241  	PerformanceMonitoringUnit_name = map[int32]string{
   242  		0: "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED",
   243  		1: "ARCHITECTURAL",
   244  		2: "ENHANCED",
   245  		3: "STANDARD",
   246  	}
   247  	PerformanceMonitoringUnit_value = map[string]int32{
   248  		"PERFORMANCE_MONITORING_UNIT_UNSPECIFIED": 0,
   249  		"ARCHITECTURAL": 1,
   250  		"ENHANCED":      2,
   251  		"STANDARD":      3,
   252  	}
   253  )
   254  
   255  func (x PerformanceMonitoringUnit) Enum() *PerformanceMonitoringUnit {
   256  	p := new(PerformanceMonitoringUnit)
   257  	*p = x
   258  	return p
   259  }
   260  
   261  func (x PerformanceMonitoringUnit) String() string {
   262  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   263  }
   264  
   265  func (PerformanceMonitoringUnit) Descriptor() protoreflect.EnumDescriptor {
   266  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[4].Descriptor()
   267  }
   268  
   269  func (PerformanceMonitoringUnit) Type() protoreflect.EnumType {
   270  	return &file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes[4]
   271  }
   272  
   273  func (x PerformanceMonitoringUnit) Number() protoreflect.EnumNumber {
   274  	return protoreflect.EnumNumber(x)
   275  }
   276  
   277  // Deprecated: Use PerformanceMonitoringUnit.Descriptor instead.
   278  func (PerformanceMonitoringUnit) EnumDescriptor() ([]byte, []int) {
   279  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{4}
   280  }
   281  
   282  // A description of a service account.
   283  type ServiceAccount struct {
   284  	state         protoimpl.MessageState
   285  	sizeCache     protoimpl.SizeCache
   286  	unknownFields protoimpl.UnknownFields
   287  
   288  	// The email address of this service account.
   289  	Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
   290  	// The scopes available for this service account.
   291  	Scope []string `protobuf:"bytes,2,rep,name=scope,proto3" json:"scope,omitempty"`
   292  }
   293  
   294  func (x *ServiceAccount) Reset() {
   295  	*x = ServiceAccount{}
   296  	if protoimpl.UnsafeEnabled {
   297  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[0]
   298  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   299  		ms.StoreMessageInfo(mi)
   300  	}
   301  }
   302  
   303  func (x *ServiceAccount) String() string {
   304  	return protoimpl.X.MessageStringOf(x)
   305  }
   306  
   307  func (*ServiceAccount) ProtoMessage() {}
   308  
   309  func (x *ServiceAccount) ProtoReflect() protoreflect.Message {
   310  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[0]
   311  	if protoimpl.UnsafeEnabled && x != nil {
   312  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   313  		if ms.LoadMessageInfo() == nil {
   314  			ms.StoreMessageInfo(mi)
   315  		}
   316  		return ms
   317  	}
   318  	return mi.MessageOf(x)
   319  }
   320  
   321  // Deprecated: Use ServiceAccount.ProtoReflect.Descriptor instead.
   322  func (*ServiceAccount) Descriptor() ([]byte, []int) {
   323  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{0}
   324  }
   325  
   326  func (x *ServiceAccount) GetEmail() string {
   327  	if x != nil {
   328  		return x.Email
   329  	}
   330  	return ""
   331  }
   332  
   333  func (x *ServiceAccount) GetScope() []string {
   334  	if x != nil {
   335  		return x.Scope
   336  	}
   337  	return nil
   338  }
   339  
   340  // A description of a network access config.
   341  type AccessConfig struct {
   342  	state         protoimpl.MessageState
   343  	sizeCache     protoimpl.SizeCache
   344  	unknownFields protoimpl.UnknownFields
   345  
   346  	// The type of config this is.
   347  	Type AccessConfigType `protobuf:"varint,1,opt,name=type,proto3,enum=config.AccessConfigType" json:"type,omitempty"`
   348  }
   349  
   350  func (x *AccessConfig) Reset() {
   351  	*x = AccessConfig{}
   352  	if protoimpl.UnsafeEnabled {
   353  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[1]
   354  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   355  		ms.StoreMessageInfo(mi)
   356  	}
   357  }
   358  
   359  func (x *AccessConfig) String() string {
   360  	return protoimpl.X.MessageStringOf(x)
   361  }
   362  
   363  func (*AccessConfig) ProtoMessage() {}
   364  
   365  func (x *AccessConfig) ProtoReflect() protoreflect.Message {
   366  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[1]
   367  	if protoimpl.UnsafeEnabled && x != nil {
   368  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   369  		if ms.LoadMessageInfo() == nil {
   370  			ms.StoreMessageInfo(mi)
   371  		}
   372  		return ms
   373  	}
   374  	return mi.MessageOf(x)
   375  }
   376  
   377  // Deprecated: Use AccessConfig.ProtoReflect.Descriptor instead.
   378  func (*AccessConfig) Descriptor() ([]byte, []int) {
   379  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{1}
   380  }
   381  
   382  func (x *AccessConfig) GetType() AccessConfigType {
   383  	if x != nil {
   384  		return x.Type
   385  	}
   386  	return AccessConfigType_ONE_TO_ONE_NAT
   387  }
   388  
   389  // A description of a network interface.
   390  type NetworkInterface struct {
   391  	state         protoimpl.MessageState
   392  	sizeCache     protoimpl.SizeCache
   393  	unknownFields protoimpl.UnknownFields
   394  
   395  	// The access configurations for this interface.
   396  	// Required to enable external internet access.
   397  	AccessConfig []*AccessConfig `protobuf:"bytes,1,rep,name=access_config,json=accessConfig,proto3" json:"access_config,omitempty"`
   398  	// The name of a network to use for this interface.
   399  	// https://cloud.google.com/compute/docs/reference/rest/v1/networks/list.
   400  	Network string `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"`
   401  	// The name of a network to use for this interface.
   402  	// https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks/list.
   403  	// Example: regions/us-west2/subnetworks/cloudbots-network-us-west2.
   404  	Subnetwork string `protobuf:"bytes,3,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"`
   405  }
   406  
   407  func (x *NetworkInterface) Reset() {
   408  	*x = NetworkInterface{}
   409  	if protoimpl.UnsafeEnabled {
   410  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[2]
   411  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   412  		ms.StoreMessageInfo(mi)
   413  	}
   414  }
   415  
   416  func (x *NetworkInterface) String() string {
   417  	return protoimpl.X.MessageStringOf(x)
   418  }
   419  
   420  func (*NetworkInterface) ProtoMessage() {}
   421  
   422  func (x *NetworkInterface) ProtoReflect() protoreflect.Message {
   423  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[2]
   424  	if protoimpl.UnsafeEnabled && x != nil {
   425  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   426  		if ms.LoadMessageInfo() == nil {
   427  			ms.StoreMessageInfo(mi)
   428  		}
   429  		return ms
   430  	}
   431  	return mi.MessageOf(x)
   432  }
   433  
   434  // Deprecated: Use NetworkInterface.ProtoReflect.Descriptor instead.
   435  func (*NetworkInterface) Descriptor() ([]byte, []int) {
   436  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{2}
   437  }
   438  
   439  func (x *NetworkInterface) GetAccessConfig() []*AccessConfig {
   440  	if x != nil {
   441  		return x.AccessConfig
   442  	}
   443  	return nil
   444  }
   445  
   446  func (x *NetworkInterface) GetNetwork() string {
   447  	if x != nil {
   448  		return x.Network
   449  	}
   450  	return ""
   451  }
   452  
   453  func (x *NetworkInterface) GetSubnetwork() string {
   454  	if x != nil {
   455  		return x.Subnetwork
   456  	}
   457  	return ""
   458  }
   459  
   460  // A description of a disk.
   461  // https://cloud.google.com/compute/docs/reference/rest/v1/disks.
   462  type Disk struct {
   463  	state         protoimpl.MessageState
   464  	sizeCache     protoimpl.SizeCache
   465  	unknownFields protoimpl.UnknownFields
   466  
   467  	// The name of an image to use to create this disk.
   468  	// https://cloud.google.com/compute/docs/reference/rest/v1/images/list.
   469  	Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
   470  	// The size of this disk in GiB.
   471  	Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
   472  	// The name of a disk type to use for this disk.
   473  	// https://cloud.google.com/compute/docs/reference/rest/v1/diskTypes/list.
   474  	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
   475  	// The disk interface to use for attaching this disk.
   476  	Interface DiskInterface `protobuf:"varint,4,opt,name=interface,proto3,enum=config.DiskInterface" json:"interface,omitempty"`
   477  }
   478  
   479  func (x *Disk) Reset() {
   480  	*x = Disk{}
   481  	if protoimpl.UnsafeEnabled {
   482  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[3]
   483  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   484  		ms.StoreMessageInfo(mi)
   485  	}
   486  }
   487  
   488  func (x *Disk) String() string {
   489  	return protoimpl.X.MessageStringOf(x)
   490  }
   491  
   492  func (*Disk) ProtoMessage() {}
   493  
   494  func (x *Disk) ProtoReflect() protoreflect.Message {
   495  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[3]
   496  	if protoimpl.UnsafeEnabled && x != nil {
   497  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   498  		if ms.LoadMessageInfo() == nil {
   499  			ms.StoreMessageInfo(mi)
   500  		}
   501  		return ms
   502  	}
   503  	return mi.MessageOf(x)
   504  }
   505  
   506  // Deprecated: Use Disk.ProtoReflect.Descriptor instead.
   507  func (*Disk) Descriptor() ([]byte, []int) {
   508  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{3}
   509  }
   510  
   511  func (x *Disk) GetImage() string {
   512  	if x != nil {
   513  		return x.Image
   514  	}
   515  	return ""
   516  }
   517  
   518  func (x *Disk) GetSize() int64 {
   519  	if x != nil {
   520  		return x.Size
   521  	}
   522  	return 0
   523  }
   524  
   525  func (x *Disk) GetType() string {
   526  	if x != nil {
   527  		return x.Type
   528  	}
   529  	return ""
   530  }
   531  
   532  func (x *Disk) GetInterface() DiskInterface {
   533  	if x != nil {
   534  		return x.Interface
   535  	}
   536  	return DiskInterface_SCSI
   537  }
   538  
   539  // A description of instance metadata.
   540  type Metadata struct {
   541  	state         protoimpl.MessageState
   542  	sizeCache     protoimpl.SizeCache
   543  	unknownFields protoimpl.UnknownFields
   544  
   545  	// Types that are assignable to Metadata:
   546  	//
   547  	//	*Metadata_FromText
   548  	//	*Metadata_FromFile
   549  	Metadata isMetadata_Metadata `protobuf_oneof:"metadata"`
   550  }
   551  
   552  func (x *Metadata) Reset() {
   553  	*x = Metadata{}
   554  	if protoimpl.UnsafeEnabled {
   555  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[4]
   556  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   557  		ms.StoreMessageInfo(mi)
   558  	}
   559  }
   560  
   561  func (x *Metadata) String() string {
   562  	return protoimpl.X.MessageStringOf(x)
   563  }
   564  
   565  func (*Metadata) ProtoMessage() {}
   566  
   567  func (x *Metadata) ProtoReflect() protoreflect.Message {
   568  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[4]
   569  	if protoimpl.UnsafeEnabled && x != nil {
   570  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   571  		if ms.LoadMessageInfo() == nil {
   572  			ms.StoreMessageInfo(mi)
   573  		}
   574  		return ms
   575  	}
   576  	return mi.MessageOf(x)
   577  }
   578  
   579  // Deprecated: Use Metadata.ProtoReflect.Descriptor instead.
   580  func (*Metadata) Descriptor() ([]byte, []int) {
   581  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{4}
   582  }
   583  
   584  func (m *Metadata) GetMetadata() isMetadata_Metadata {
   585  	if m != nil {
   586  		return m.Metadata
   587  	}
   588  	return nil
   589  }
   590  
   591  func (x *Metadata) GetFromText() string {
   592  	if x, ok := x.GetMetadata().(*Metadata_FromText); ok {
   593  		return x.FromText
   594  	}
   595  	return ""
   596  }
   597  
   598  func (x *Metadata) GetFromFile() string {
   599  	if x, ok := x.GetMetadata().(*Metadata_FromFile); ok {
   600  		return x.FromFile
   601  	}
   602  	return ""
   603  }
   604  
   605  type isMetadata_Metadata interface {
   606  	isMetadata_Metadata()
   607  }
   608  
   609  type Metadata_FromText struct {
   610  	// A string of the form "key:value" to use as one item of metadata.
   611  	FromText string `protobuf:"bytes,1,opt,name=from_text,json=fromText,proto3,oneof"`
   612  }
   613  
   614  type Metadata_FromFile struct {
   615  	// A string of the form "key:filename".
   616  	// The contents of the file are used as the value for one item of metadata.
   617  	FromFile string `protobuf:"bytes,2,opt,name=from_file,json=fromFile,proto3,oneof"`
   618  }
   619  
   620  func (*Metadata_FromText) isMetadata_Metadata() {}
   621  
   622  func (*Metadata_FromFile) isMetadata_Metadata() {}
   623  
   624  // A description of nodes onto which an instance may be scheduled.
   625  type NodeAffinity struct {
   626  	state         protoimpl.MessageState
   627  	sizeCache     protoimpl.SizeCache
   628  	unknownFields protoimpl.UnknownFields
   629  
   630  	// Corresponds to the label key of Node resource.
   631  	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   632  	// Defines the operation of node selection.
   633  	Operator NodeAffinityOperator `protobuf:"varint,2,opt,name=operator,proto3,enum=config.NodeAffinityOperator" json:"operator,omitempty"`
   634  	// Corresponds to the label values of Node resource.
   635  	Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
   636  }
   637  
   638  func (x *NodeAffinity) Reset() {
   639  	*x = NodeAffinity{}
   640  	if protoimpl.UnsafeEnabled {
   641  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[5]
   642  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   643  		ms.StoreMessageInfo(mi)
   644  	}
   645  }
   646  
   647  func (x *NodeAffinity) String() string {
   648  	return protoimpl.X.MessageStringOf(x)
   649  }
   650  
   651  func (*NodeAffinity) ProtoMessage() {}
   652  
   653  func (x *NodeAffinity) ProtoReflect() protoreflect.Message {
   654  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[5]
   655  	if protoimpl.UnsafeEnabled && x != nil {
   656  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   657  		if ms.LoadMessageInfo() == nil {
   658  			ms.StoreMessageInfo(mi)
   659  		}
   660  		return ms
   661  	}
   662  	return mi.MessageOf(x)
   663  }
   664  
   665  // Deprecated: Use NodeAffinity.ProtoReflect.Descriptor instead.
   666  func (*NodeAffinity) Descriptor() ([]byte, []int) {
   667  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{5}
   668  }
   669  
   670  func (x *NodeAffinity) GetKey() string {
   671  	if x != nil {
   672  		return x.Key
   673  	}
   674  	return ""
   675  }
   676  
   677  func (x *NodeAffinity) GetOperator() NodeAffinityOperator {
   678  	if x != nil {
   679  		return x.Operator
   680  	}
   681  	return NodeAffinityOperator_OPERATOR_UNSPECIFIED
   682  }
   683  
   684  func (x *NodeAffinity) GetValues() []string {
   685  	if x != nil {
   686  		return x.Values
   687  	}
   688  	return nil
   689  }
   690  
   691  // A description of scheduling options for an instance.
   692  type Scheduling struct {
   693  	state         protoimpl.MessageState
   694  	sizeCache     protoimpl.SizeCache
   695  	unknownFields protoimpl.UnknownFields
   696  
   697  	// A set of node affinity and anti-affinity configurations.
   698  	// https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity
   699  	NodeAffinity []*NodeAffinity `protobuf:"bytes,1,rep,name=node_affinity,json=nodeAffinity,proto3" json:"node_affinity,omitempty"`
   700  }
   701  
   702  func (x *Scheduling) Reset() {
   703  	*x = Scheduling{}
   704  	if protoimpl.UnsafeEnabled {
   705  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[6]
   706  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   707  		ms.StoreMessageInfo(mi)
   708  	}
   709  }
   710  
   711  func (x *Scheduling) String() string {
   712  	return protoimpl.X.MessageStringOf(x)
   713  }
   714  
   715  func (*Scheduling) ProtoMessage() {}
   716  
   717  func (x *Scheduling) ProtoReflect() protoreflect.Message {
   718  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[6]
   719  	if protoimpl.UnsafeEnabled && x != nil {
   720  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   721  		if ms.LoadMessageInfo() == nil {
   722  			ms.StoreMessageInfo(mi)
   723  		}
   724  		return ms
   725  	}
   726  	return mi.MessageOf(x)
   727  }
   728  
   729  // Deprecated: Use Scheduling.ProtoReflect.Descriptor instead.
   730  func (*Scheduling) Descriptor() ([]byte, []int) {
   731  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{6}
   732  }
   733  
   734  func (x *Scheduling) GetNodeAffinity() []*NodeAffinity {
   735  	if x != nil {
   736  		return x.NodeAffinity
   737  	}
   738  	return nil
   739  }
   740  
   741  // A description of a VM.
   742  // https://cloud.google.com/compute/docs/reference/rest/v1/instances.
   743  type VM struct {
   744  	state         protoimpl.MessageState
   745  	sizeCache     protoimpl.SizeCache
   746  	unknownFields protoimpl.UnknownFields
   747  
   748  	// The disks to attach to this VM.
   749  	Disk []*Disk `protobuf:"bytes,1,rep,name=disk,proto3" json:"disk,omitempty"`
   750  	// The name of a machine type to use for this VM.
   751  	// https://cloud.google.com/compute/docs/reference/rest/v1/machineTypes/list.
   752  	MachineType string `protobuf:"bytes,2,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"`
   753  	// The metadata to attach to this VM.
   754  	Metadata []*Metadata `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty"`
   755  	// The minimum CPU platform to use for this VM.
   756  	// https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
   757  	MinCpuPlatform string `protobuf:"bytes,4,opt,name=min_cpu_platform,json=minCpuPlatform,proto3" json:"min_cpu_platform,omitempty"`
   758  	// The network interfaces to configure for this VM.
   759  	NetworkInterface []*NetworkInterface `protobuf:"bytes,5,rep,name=network_interface,json=networkInterface,proto3" json:"network_interface,omitempty"`
   760  	// The name of a GCP project to create this VM in.
   761  	Project string `protobuf:"bytes,6,opt,name=project,proto3" json:"project,omitempty"`
   762  	// The service accounts to make available to this VM.
   763  	ServiceAccount []*ServiceAccount `protobuf:"bytes,7,rep,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
   764  	// The tags to attach to this VM.
   765  	Tag []string `protobuf:"bytes,8,rep,name=tag,proto3" json:"tag,omitempty"`
   766  	// The name of a zone to create this VM in.
   767  	// https://cloud.google.com/compute/docs/reference/rest/v1/zones/list.
   768  	Zone string `protobuf:"bytes,9,opt,name=zone,proto3" json:"zone,omitempty"`
   769  	// The scheduling options for this VM.
   770  	Scheduling *Scheduling `protobuf:"bytes,10,opt,name=scheduling,proto3" json:"scheduling,omitempty"`
   771  	// The labels to attach to this VM.
   772  	Label map[string]string `protobuf:"bytes,11,rep,name=label,proto3" json:"label,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   773  	// Whether to disable integrity monitoring for this VM.
   774  	DisableIntegrityMonitoring bool `protobuf:"varint,12,opt,name=disable_integrity_monitoring,json=disableIntegrityMonitoring,proto3" json:"disable_integrity_monitoring,omitempty"`
   775  	// Whether to enable secure boot for this VM.
   776  	EnableSecureBoot bool `protobuf:"varint,13,opt,name=enable_secure_boot,json=enableSecureBoot,proto3" json:"enable_secure_boot,omitempty"`
   777  	// Whether to disable vTPM for this VM.
   778  	DisableVtpm bool `protobuf:"varint,14,opt,name=disable_vtpm,json=disableVtpm,proto3" json:"disable_vtpm,omitempty"`
   779  	// Whether to enable Confidential Compute for this VM.
   780  	EnableConfidentialCompute bool `protobuf:"varint,15,opt,name=enable_confidential_compute,json=enableConfidentialCompute,proto3" json:"enable_confidential_compute,omitempty"`
   781  	// Force_send_fields is the list of all fields to force send in the GCP API.
   782  	ForceSendFields []string `protobuf:"bytes,16,rep,name=force_send_fields,json=forceSendFields,proto3" json:"force_send_fields,omitempty"`
   783  	// These are the fields associated with force_send_fields that are specifically null.
   784  	NullFields []string `protobuf:"bytes,17,rep,name=null_fields,json=nullFields,proto3" json:"null_fields,omitempty"`
   785  	// gcp_channel of the GCP api to use, e.g. stable or alpha.
   786  	GcpChannel GCPChannel `protobuf:"varint,18,opt,name=gcp_channel,json=gcpChannel,proto3,enum=config.GCPChannel" json:"gcp_channel,omitempty"`
   787  	// The performance monitoring unit is the type of performance monitoring unit.
   788  	PerformanceMonitoringUnit PerformanceMonitoringUnit `protobuf:"varint,19,opt,name=performance_monitoring_unit,json=performanceMonitoringUnit,proto3,enum=config.PerformanceMonitoringUnit" json:"performance_monitoring_unit,omitempty"`
   789  	// Ensure VMs are terminated if under maintenance.
   790  	TerminateOnMaintenance bool `protobuf:"varint,20,opt,name=terminate_on_maintenance,json=terminateOnMaintenance,proto3" json:"terminate_on_maintenance,omitempty"`
   791  }
   792  
   793  func (x *VM) Reset() {
   794  	*x = VM{}
   795  	if protoimpl.UnsafeEnabled {
   796  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[7]
   797  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   798  		ms.StoreMessageInfo(mi)
   799  	}
   800  }
   801  
   802  func (x *VM) String() string {
   803  	return protoimpl.X.MessageStringOf(x)
   804  }
   805  
   806  func (*VM) ProtoMessage() {}
   807  
   808  func (x *VM) ProtoReflect() protoreflect.Message {
   809  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[7]
   810  	if protoimpl.UnsafeEnabled && x != nil {
   811  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   812  		if ms.LoadMessageInfo() == nil {
   813  			ms.StoreMessageInfo(mi)
   814  		}
   815  		return ms
   816  	}
   817  	return mi.MessageOf(x)
   818  }
   819  
   820  // Deprecated: Use VM.ProtoReflect.Descriptor instead.
   821  func (*VM) Descriptor() ([]byte, []int) {
   822  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{7}
   823  }
   824  
   825  func (x *VM) GetDisk() []*Disk {
   826  	if x != nil {
   827  		return x.Disk
   828  	}
   829  	return nil
   830  }
   831  
   832  func (x *VM) GetMachineType() string {
   833  	if x != nil {
   834  		return x.MachineType
   835  	}
   836  	return ""
   837  }
   838  
   839  func (x *VM) GetMetadata() []*Metadata {
   840  	if x != nil {
   841  		return x.Metadata
   842  	}
   843  	return nil
   844  }
   845  
   846  func (x *VM) GetMinCpuPlatform() string {
   847  	if x != nil {
   848  		return x.MinCpuPlatform
   849  	}
   850  	return ""
   851  }
   852  
   853  func (x *VM) GetNetworkInterface() []*NetworkInterface {
   854  	if x != nil {
   855  		return x.NetworkInterface
   856  	}
   857  	return nil
   858  }
   859  
   860  func (x *VM) GetProject() string {
   861  	if x != nil {
   862  		return x.Project
   863  	}
   864  	return ""
   865  }
   866  
   867  func (x *VM) GetServiceAccount() []*ServiceAccount {
   868  	if x != nil {
   869  		return x.ServiceAccount
   870  	}
   871  	return nil
   872  }
   873  
   874  func (x *VM) GetTag() []string {
   875  	if x != nil {
   876  		return x.Tag
   877  	}
   878  	return nil
   879  }
   880  
   881  func (x *VM) GetZone() string {
   882  	if x != nil {
   883  		return x.Zone
   884  	}
   885  	return ""
   886  }
   887  
   888  func (x *VM) GetScheduling() *Scheduling {
   889  	if x != nil {
   890  		return x.Scheduling
   891  	}
   892  	return nil
   893  }
   894  
   895  func (x *VM) GetLabel() map[string]string {
   896  	if x != nil {
   897  		return x.Label
   898  	}
   899  	return nil
   900  }
   901  
   902  func (x *VM) GetDisableIntegrityMonitoring() bool {
   903  	if x != nil {
   904  		return x.DisableIntegrityMonitoring
   905  	}
   906  	return false
   907  }
   908  
   909  func (x *VM) GetEnableSecureBoot() bool {
   910  	if x != nil {
   911  		return x.EnableSecureBoot
   912  	}
   913  	return false
   914  }
   915  
   916  func (x *VM) GetDisableVtpm() bool {
   917  	if x != nil {
   918  		return x.DisableVtpm
   919  	}
   920  	return false
   921  }
   922  
   923  func (x *VM) GetEnableConfidentialCompute() bool {
   924  	if x != nil {
   925  		return x.EnableConfidentialCompute
   926  	}
   927  	return false
   928  }
   929  
   930  func (x *VM) GetForceSendFields() []string {
   931  	if x != nil {
   932  		return x.ForceSendFields
   933  	}
   934  	return nil
   935  }
   936  
   937  func (x *VM) GetNullFields() []string {
   938  	if x != nil {
   939  		return x.NullFields
   940  	}
   941  	return nil
   942  }
   943  
   944  func (x *VM) GetGcpChannel() GCPChannel {
   945  	if x != nil {
   946  		return x.GcpChannel
   947  	}
   948  	return GCPChannel_GCP_CHANNEL_UNSPECIFIED
   949  }
   950  
   951  func (x *VM) GetPerformanceMonitoringUnit() PerformanceMonitoringUnit {
   952  	if x != nil {
   953  		return x.PerformanceMonitoringUnit
   954  	}
   955  	return PerformanceMonitoringUnit_PERFORMANCE_MONITORING_UNIT_UNSPECIFIED
   956  }
   957  
   958  func (x *VM) GetTerminateOnMaintenance() bool {
   959  	if x != nil {
   960  		return x.TerminateOnMaintenance
   961  	}
   962  	return false
   963  }
   964  
   965  // A length of time.
   966  type TimePeriod struct {
   967  	state         protoimpl.MessageState
   968  	sizeCache     protoimpl.SizeCache
   969  	unknownFields protoimpl.UnknownFields
   970  
   971  	// Types that are assignable to Time:
   972  	//
   973  	//	*TimePeriod_Duration
   974  	//	*TimePeriod_Seconds
   975  	Time isTimePeriod_Time `protobuf_oneof:"time"`
   976  }
   977  
   978  func (x *TimePeriod) Reset() {
   979  	*x = TimePeriod{}
   980  	if protoimpl.UnsafeEnabled {
   981  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[8]
   982  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   983  		ms.StoreMessageInfo(mi)
   984  	}
   985  }
   986  
   987  func (x *TimePeriod) String() string {
   988  	return protoimpl.X.MessageStringOf(x)
   989  }
   990  
   991  func (*TimePeriod) ProtoMessage() {}
   992  
   993  func (x *TimePeriod) ProtoReflect() protoreflect.Message {
   994  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[8]
   995  	if protoimpl.UnsafeEnabled && x != nil {
   996  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   997  		if ms.LoadMessageInfo() == nil {
   998  			ms.StoreMessageInfo(mi)
   999  		}
  1000  		return ms
  1001  	}
  1002  	return mi.MessageOf(x)
  1003  }
  1004  
  1005  // Deprecated: Use TimePeriod.ProtoReflect.Descriptor instead.
  1006  func (*TimePeriod) Descriptor() ([]byte, []int) {
  1007  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{8}
  1008  }
  1009  
  1010  func (m *TimePeriod) GetTime() isTimePeriod_Time {
  1011  	if m != nil {
  1012  		return m.Time
  1013  	}
  1014  	return nil
  1015  }
  1016  
  1017  func (x *TimePeriod) GetDuration() string {
  1018  	if x, ok := x.GetTime().(*TimePeriod_Duration); ok {
  1019  		return x.Duration
  1020  	}
  1021  	return ""
  1022  }
  1023  
  1024  func (x *TimePeriod) GetSeconds() int64 {
  1025  	if x, ok := x.GetTime().(*TimePeriod_Seconds); ok {
  1026  		return x.Seconds
  1027  	}
  1028  	return 0
  1029  }
  1030  
  1031  type isTimePeriod_Time interface {
  1032  	isTimePeriod_Time()
  1033  }
  1034  
  1035  type TimePeriod_Duration struct {
  1036  	// The length of time in <int><unit> form.
  1037  	// Valid units are "s", "m", "h", "d", and "mo", meaning
  1038  	// "seconds", "minutes", "hours", "days", "months" respectively.
  1039  	// A "day" is shorthand for 24 hours.
  1040  	// A "month" is shorthand for 30 days.
  1041  	Duration string `protobuf:"bytes,1,opt,name=duration,proto3,oneof"`
  1042  }
  1043  
  1044  type TimePeriod_Seconds struct {
  1045  	// The length of time in seconds.
  1046  	Seconds int64 `protobuf:"varint,2,opt,name=seconds,proto3,oneof"`
  1047  }
  1048  
  1049  func (*TimePeriod_Duration) isTimePeriod_Time() {}
  1050  
  1051  func (*TimePeriod_Seconds) isTimePeriod_Time() {}
  1052  
  1053  // A time of day.
  1054  type TimeOfDay struct {
  1055  	state         protoimpl.MessageState
  1056  	sizeCache     protoimpl.SizeCache
  1057  	unknownFields protoimpl.UnknownFields
  1058  
  1059  	// The day of the week the time applies to.
  1060  	Day dayofweek.DayOfWeek `protobuf:"varint,1,opt,name=day,proto3,enum=google.type.DayOfWeek" json:"day,omitempty"`
  1061  	// The location the time should be interpreted in.
  1062  	// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
  1063  	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
  1064  	// The time in 24-hour <hour>:<minute>.
  1065  	Time string `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
  1066  }
  1067  
  1068  func (x *TimeOfDay) Reset() {
  1069  	*x = TimeOfDay{}
  1070  	if protoimpl.UnsafeEnabled {
  1071  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[9]
  1072  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1073  		ms.StoreMessageInfo(mi)
  1074  	}
  1075  }
  1076  
  1077  func (x *TimeOfDay) String() string {
  1078  	return protoimpl.X.MessageStringOf(x)
  1079  }
  1080  
  1081  func (*TimeOfDay) ProtoMessage() {}
  1082  
  1083  func (x *TimeOfDay) ProtoReflect() protoreflect.Message {
  1084  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[9]
  1085  	if protoimpl.UnsafeEnabled && x != nil {
  1086  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1087  		if ms.LoadMessageInfo() == nil {
  1088  			ms.StoreMessageInfo(mi)
  1089  		}
  1090  		return ms
  1091  	}
  1092  	return mi.MessageOf(x)
  1093  }
  1094  
  1095  // Deprecated: Use TimeOfDay.ProtoReflect.Descriptor instead.
  1096  func (*TimeOfDay) Descriptor() ([]byte, []int) {
  1097  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{9}
  1098  }
  1099  
  1100  func (x *TimeOfDay) GetDay() dayofweek.DayOfWeek {
  1101  	if x != nil {
  1102  		return x.Day
  1103  	}
  1104  	return dayofweek.DayOfWeek(0)
  1105  }
  1106  
  1107  func (x *TimeOfDay) GetLocation() string {
  1108  	if x != nil {
  1109  		return x.Location
  1110  	}
  1111  	return ""
  1112  }
  1113  
  1114  func (x *TimeOfDay) GetTime() string {
  1115  	if x != nil {
  1116  		return x.Time
  1117  	}
  1118  	return ""
  1119  }
  1120  
  1121  // An amount of VMs for particular days of the week.
  1122  type Schedule struct {
  1123  	state         protoimpl.MessageState
  1124  	sizeCache     protoimpl.SizeCache
  1125  	unknownFields protoimpl.UnknownFields
  1126  
  1127  	// The length of time the amount is in effect.
  1128  	// With start, this creates a half-open interval.
  1129  	// During [start, start+length) the amount will apply.
  1130  	Length *TimePeriod `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"`
  1131  	// The start times when this amount goes into effect.
  1132  	Start *TimeOfDay `protobuf:"bytes,3,opt,name=start,proto3" json:"start,omitempty"`
  1133  	// The minimum amount of VMs allowed.
  1134  	Min int32 `protobuf:"varint,4,opt,name=min,proto3" json:"min,omitempty"`
  1135  	// The maximum amount of VMs allowed.
  1136  	Max int32 `protobuf:"varint,5,opt,name=max,proto3" json:"max,omitempty"`
  1137  }
  1138  
  1139  func (x *Schedule) Reset() {
  1140  	*x = Schedule{}
  1141  	if protoimpl.UnsafeEnabled {
  1142  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[10]
  1143  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1144  		ms.StoreMessageInfo(mi)
  1145  	}
  1146  }
  1147  
  1148  func (x *Schedule) String() string {
  1149  	return protoimpl.X.MessageStringOf(x)
  1150  }
  1151  
  1152  func (*Schedule) ProtoMessage() {}
  1153  
  1154  func (x *Schedule) ProtoReflect() protoreflect.Message {
  1155  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[10]
  1156  	if protoimpl.UnsafeEnabled && x != nil {
  1157  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1158  		if ms.LoadMessageInfo() == nil {
  1159  			ms.StoreMessageInfo(mi)
  1160  		}
  1161  		return ms
  1162  	}
  1163  	return mi.MessageOf(x)
  1164  }
  1165  
  1166  // Deprecated: Use Schedule.ProtoReflect.Descriptor instead.
  1167  func (*Schedule) Descriptor() ([]byte, []int) {
  1168  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{10}
  1169  }
  1170  
  1171  func (x *Schedule) GetLength() *TimePeriod {
  1172  	if x != nil {
  1173  		return x.Length
  1174  	}
  1175  	return nil
  1176  }
  1177  
  1178  func (x *Schedule) GetStart() *TimeOfDay {
  1179  	if x != nil {
  1180  		return x.Start
  1181  	}
  1182  	return nil
  1183  }
  1184  
  1185  func (x *Schedule) GetMin() int32 {
  1186  	if x != nil {
  1187  		return x.Min
  1188  	}
  1189  	return 0
  1190  }
  1191  
  1192  func (x *Schedule) GetMax() int32 {
  1193  	if x != nil {
  1194  		return x.Max
  1195  	}
  1196  	return 0
  1197  }
  1198  
  1199  // An amount of VMs.
  1200  type Amount struct {
  1201  	state         protoimpl.MessageState
  1202  	sizeCache     protoimpl.SizeCache
  1203  	unknownFields protoimpl.UnknownFields
  1204  
  1205  	// The amount of VMs to have at a particular time.
  1206  	Change []*Schedule `protobuf:"bytes,2,rep,name=change,proto3" json:"change,omitempty"`
  1207  	// The minimum amount of VMs allowed, and the amount of VMs to initialize to.
  1208  	Min int32 `protobuf:"varint,3,opt,name=min,proto3" json:"min,omitempty"`
  1209  	// The maximum amount of VMs allowed.
  1210  	Max int32 `protobuf:"varint,4,opt,name=max,proto3" json:"max,omitempty"`
  1211  }
  1212  
  1213  func (x *Amount) Reset() {
  1214  	*x = Amount{}
  1215  	if protoimpl.UnsafeEnabled {
  1216  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[11]
  1217  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1218  		ms.StoreMessageInfo(mi)
  1219  	}
  1220  }
  1221  
  1222  func (x *Amount) String() string {
  1223  	return protoimpl.X.MessageStringOf(x)
  1224  }
  1225  
  1226  func (*Amount) ProtoMessage() {}
  1227  
  1228  func (x *Amount) ProtoReflect() protoreflect.Message {
  1229  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[11]
  1230  	if protoimpl.UnsafeEnabled && x != nil {
  1231  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1232  		if ms.LoadMessageInfo() == nil {
  1233  			ms.StoreMessageInfo(mi)
  1234  		}
  1235  		return ms
  1236  	}
  1237  	return mi.MessageOf(x)
  1238  }
  1239  
  1240  // Deprecated: Use Amount.ProtoReflect.Descriptor instead.
  1241  func (*Amount) Descriptor() ([]byte, []int) {
  1242  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{11}
  1243  }
  1244  
  1245  func (x *Amount) GetChange() []*Schedule {
  1246  	if x != nil {
  1247  		return x.Change
  1248  	}
  1249  	return nil
  1250  }
  1251  
  1252  func (x *Amount) GetMin() int32 {
  1253  	if x != nil {
  1254  		return x.Min
  1255  	}
  1256  	return 0
  1257  }
  1258  
  1259  func (x *Amount) GetMax() int32 {
  1260  	if x != nil {
  1261  		return x.Max
  1262  	}
  1263  	return 0
  1264  }
  1265  
  1266  // A config for one type of VM.
  1267  type Config struct {
  1268  	state         protoimpl.MessageState
  1269  	sizeCache     protoimpl.SizeCache
  1270  	unknownFields protoimpl.UnknownFields
  1271  
  1272  	// The amount of these VMs.
  1273  	Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"`
  1274  	// The attributes of these VMs.
  1275  	Attributes *VM `protobuf:"bytes,2,opt,name=attributes,proto3" json:"attributes,omitempty"`
  1276  	// The lifetime of these VMs.
  1277  	// At the end of their lifetime, each VM is deleted and replaced. But it
  1278  	// won't happen immediately becasuse of scheduling reasons. The delay varies
  1279  	// based on the specified lifetime.
  1280  	Lifetime *TimePeriod `protobuf:"bytes,3,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
  1281  	// The prefix to use when naming these VMs.
  1282  	Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"`
  1283  	// The hostname of the Swarming server these VMs should connect to.
  1284  	Swarming string `protobuf:"bytes,6,opt,name=swarming,proto3" json:"swarming,omitempty"`
  1285  	// The timeout of these VMs.
  1286  	// If no Swarming bot has connected by the timeout,
  1287  	// the VM is deleted and replaced.
  1288  	Timeout *TimePeriod `protobuf:"bytes,7,opt,name=timeout,proto3" json:"timeout,omitempty"`
  1289  	// Chrome Infra Auth groups considered to own this config.
  1290  	Owner []string `protobuf:"bytes,9,rep,name=owner,proto3" json:"owner,omitempty"`
  1291  	// Set of VMs to be created.
  1292  	// Each VM represent a DUT.
  1293  	// Optional. Updated dynamically via RPC.
  1294  	// TODO(b/318715067): Remove once Device Manager is ready.
  1295  	Duts map[string]*emptypb.Empty `protobuf:"bytes,10,rep,name=duts,proto3" json:"duts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1296  	// Should only be set by the server. The revision of this config.
  1297  	Revision string `protobuf:"bytes,5,opt,name=revision,proto3" json:"revision,omitempty"`
  1298  	// Should only be set by the server. The current amount of VMs the server is
  1299  	// trying to create.
  1300  	CurrentAmount int32 `protobuf:"varint,8,opt,name=current_amount,json=currentAmount,proto3" json:"current_amount,omitempty"`
  1301  }
  1302  
  1303  func (x *Config) Reset() {
  1304  	*x = Config{}
  1305  	if protoimpl.UnsafeEnabled {
  1306  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[12]
  1307  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1308  		ms.StoreMessageInfo(mi)
  1309  	}
  1310  }
  1311  
  1312  func (x *Config) String() string {
  1313  	return protoimpl.X.MessageStringOf(x)
  1314  }
  1315  
  1316  func (*Config) ProtoMessage() {}
  1317  
  1318  func (x *Config) ProtoReflect() protoreflect.Message {
  1319  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[12]
  1320  	if protoimpl.UnsafeEnabled && x != nil {
  1321  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1322  		if ms.LoadMessageInfo() == nil {
  1323  			ms.StoreMessageInfo(mi)
  1324  		}
  1325  		return ms
  1326  	}
  1327  	return mi.MessageOf(x)
  1328  }
  1329  
  1330  // Deprecated: Use Config.ProtoReflect.Descriptor instead.
  1331  func (*Config) Descriptor() ([]byte, []int) {
  1332  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{12}
  1333  }
  1334  
  1335  func (x *Config) GetAmount() *Amount {
  1336  	if x != nil {
  1337  		return x.Amount
  1338  	}
  1339  	return nil
  1340  }
  1341  
  1342  func (x *Config) GetAttributes() *VM {
  1343  	if x != nil {
  1344  		return x.Attributes
  1345  	}
  1346  	return nil
  1347  }
  1348  
  1349  func (x *Config) GetLifetime() *TimePeriod {
  1350  	if x != nil {
  1351  		return x.Lifetime
  1352  	}
  1353  	return nil
  1354  }
  1355  
  1356  func (x *Config) GetPrefix() string {
  1357  	if x != nil {
  1358  		return x.Prefix
  1359  	}
  1360  	return ""
  1361  }
  1362  
  1363  func (x *Config) GetSwarming() string {
  1364  	if x != nil {
  1365  		return x.Swarming
  1366  	}
  1367  	return ""
  1368  }
  1369  
  1370  func (x *Config) GetTimeout() *TimePeriod {
  1371  	if x != nil {
  1372  		return x.Timeout
  1373  	}
  1374  	return nil
  1375  }
  1376  
  1377  func (x *Config) GetOwner() []string {
  1378  	if x != nil {
  1379  		return x.Owner
  1380  	}
  1381  	return nil
  1382  }
  1383  
  1384  func (x *Config) GetDuts() map[string]*emptypb.Empty {
  1385  	if x != nil {
  1386  		return x.Duts
  1387  	}
  1388  	return nil
  1389  }
  1390  
  1391  func (x *Config) GetRevision() string {
  1392  	if x != nil {
  1393  		return x.Revision
  1394  	}
  1395  	return ""
  1396  }
  1397  
  1398  func (x *Config) GetCurrentAmount() int32 {
  1399  	if x != nil {
  1400  		return x.CurrentAmount
  1401  	}
  1402  	return 0
  1403  }
  1404  
  1405  // A config for several types of VMs.
  1406  type Configs struct {
  1407  	state         protoimpl.MessageState
  1408  	sizeCache     protoimpl.SizeCache
  1409  	unknownFields protoimpl.UnknownFields
  1410  
  1411  	// The configs for different types of VMs.
  1412  	Vms []*Config `protobuf:"bytes,1,rep,name=vms,proto3" json:"vms,omitempty"`
  1413  }
  1414  
  1415  func (x *Configs) Reset() {
  1416  	*x = Configs{}
  1417  	if protoimpl.UnsafeEnabled {
  1418  		mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[13]
  1419  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1420  		ms.StoreMessageInfo(mi)
  1421  	}
  1422  }
  1423  
  1424  func (x *Configs) String() string {
  1425  	return protoimpl.X.MessageStringOf(x)
  1426  }
  1427  
  1428  func (*Configs) ProtoMessage() {}
  1429  
  1430  func (x *Configs) ProtoReflect() protoreflect.Message {
  1431  	mi := &file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[13]
  1432  	if protoimpl.UnsafeEnabled && x != nil {
  1433  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1434  		if ms.LoadMessageInfo() == nil {
  1435  			ms.StoreMessageInfo(mi)
  1436  		}
  1437  		return ms
  1438  	}
  1439  	return mi.MessageOf(x)
  1440  }
  1441  
  1442  // Deprecated: Use Configs.ProtoReflect.Descriptor instead.
  1443  func (*Configs) Descriptor() ([]byte, []int) {
  1444  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP(), []int{13}
  1445  }
  1446  
  1447  func (x *Configs) GetVms() []*Config {
  1448  	if x != nil {
  1449  		return x.Vms
  1450  	}
  1451  	return nil
  1452  }
  1453  
  1454  var File_go_chromium_org_luci_gce_api_config_v1_config_proto protoreflect.FileDescriptor
  1455  
  1456  var file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDesc = []byte{
  1457  	0x0a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
  1458  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x67, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63,
  1459  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1460  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x1b, 0x67,
  1461  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x79, 0x6f, 0x66,
  1462  	0x77, 0x65, 0x65, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67,
  1463  	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74,
  1464  	0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f,
  1465  	0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f,
  1466  	0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f,
  1467  	0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3c, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76,
  1468  	0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d,
  1469  	0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c,
  1470  	0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
  1471  	0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x22, 0x3c, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73,
  1472  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
  1473  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63,
  1474  	0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
  1475  	0x74, 0x79, 0x70, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
  1476  	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x61, 0x63, 0x63,
  1477  	0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
  1478  	0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73,
  1479  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f,
  1480  	0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18,
  1481  	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e,
  1482  	0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01,
  1483  	0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x79,
  1484  	0x0a, 0x04, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18,
  1485  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04,
  1486  	0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65,
  1487  	0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
  1488  	0x74, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
  1489  	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1490  	0x2e, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09,
  1491  	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x54, 0x0a, 0x08, 0x4d, 0x65, 0x74,
  1492  	0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x65,
  1493  	0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d,
  1494  	0x54, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x66, 0x69, 0x6c,
  1495  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x46,
  1496  	0x69, 0x6c, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22,
  1497  	0x72, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x12,
  1498  	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
  1499  	0x79, 0x12, 0x38, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20,
  1500  	0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x6f, 0x64,
  1501  	0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
  1502  	0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x76,
  1503  	0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c,
  1504  	0x75, 0x65, 0x73, 0x22, 0x47, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e,
  1505  	0x67, 0x12, 0x39, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69,
  1506  	0x74, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  1507  	0x67, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0c,
  1508  	0x6e, 0x6f, 0x64, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x22, 0xf6, 0x07, 0x0a,
  1509  	0x02, 0x56, 0x4d, 0x12, 0x20, 0x0a, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28,
  1510  	0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x52,
  1511  	0x04, 0x64, 0x69, 0x73, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
  1512  	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x63,
  1513  	0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
  1514  	0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e,
  1515  	0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65,
  1516  	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70,
  1517  	0x75, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
  1518  	0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  1519  	0x12, 0x45, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65,
  1520  	0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f,
  1521  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65,
  1522  	0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e,
  1523  	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65,
  1524  	0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
  1525  	0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63,
  1526  	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e,
  1527  	0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
  1528  	0x6e, 0x74, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
  1529  	0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52,
  1530  	0x03, 0x74, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01,
  1531  	0x28, 0x09, 0x52, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65,
  1532  	0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63,
  1533  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67,
  1534  	0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x2b, 0x0a, 0x05,
  1535  	0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f,
  1536  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x4d, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x45, 0x6e, 0x74,
  1537  	0x72, 0x79, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x1c, 0x64, 0x69, 0x73,
  1538  	0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6d,
  1539  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
  1540  	0x1a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74,
  1541  	0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x12, 0x65,
  1542  	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x62, 0x6f, 0x6f,
  1543  	0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53,
  1544  	0x65, 0x63, 0x75, 0x72, 0x65, 0x42, 0x6f, 0x6f, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73,
  1545  	0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x74, 0x70, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52,
  1546  	0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x74, 0x70, 0x6d, 0x12, 0x3e, 0x0a, 0x1b,
  1547  	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74,
  1548  	0x69, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28,
  1549  	0x08, 0x52, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65,
  1550  	0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11,
  1551  	0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64,
  1552  	0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x65,
  1553  	0x6e, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c,
  1554  	0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e,
  1555  	0x75, 0x6c, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x67, 0x63, 0x70,
  1556  	0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12,
  1557  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x43, 0x50, 0x43, 0x68, 0x61, 0x6e, 0x6e,
  1558  	0x65, 0x6c, 0x52, 0x0a, 0x67, 0x63, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x61,
  1559  	0x0a, 0x1b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f,
  1560  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x13, 0x20,
  1561  	0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x65, 0x72,
  1562  	0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  1563  	0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x19, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61,
  1564  	0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69,
  1565  	0x74, 0x12, 0x38, 0x0a, 0x18, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x6f,
  1566  	0x6e, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x14, 0x20,
  1567  	0x01, 0x28, 0x08, 0x52, 0x16, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x4f, 0x6e,
  1568  	0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x4c,
  1569  	0x61, 0x62, 0x65, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
  1570  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
  1571  	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
  1572  	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72,
  1573  	0x69, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
  1574  	0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
  1575  	0x6e, 0x12, 0x1a, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01,
  1576  	0x28, 0x03, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a,
  1577  	0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44,
  1578  	0x61, 0x79, 0x12, 0x28, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
  1579  	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61,
  1580  	0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x1a, 0x0a, 0x08,
  1581  	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
  1582  	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65,
  1583  	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x89, 0x01, 0x0a,
  1584  	0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x6c, 0x65, 0x6e,
  1585  	0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  1586  	0x69, 0x67, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x06, 0x6c,
  1587  	0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03,
  1588  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x69,
  1589  	0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10,
  1590  	0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x69, 0x6e,
  1591  	0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d,
  1592  	0x61, 0x78, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x5c, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75,
  1593  	0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03,
  1594  	0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x63, 0x68, 0x65,
  1595  	0x64, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03,
  1596  	0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10,
  1597  	0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6d, 0x61, 0x78,
  1598  	0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xc6, 0x03, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1599  	0x67, 0x12, 0x26, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
  1600  	0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e,
  1601  	0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x61, 0x74, 0x74,
  1602  	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
  1603  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x4d, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
  1604  	0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d,
  1605  	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1606  	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x08, 0x6c, 0x69, 0x66,
  1607  	0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18,
  1608  	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a,
  1609  	0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
  1610  	0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x07, 0x74, 0x69, 0x6d,
  1611  	0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e,
  1612  	0x66, 0x69, 0x67, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x07,
  1613  	0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
  1614  	0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x2c, 0x0a,
  1615  	0x04, 0x64, 0x75, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f,
  1616  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x75, 0x74, 0x73,
  1617  	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x75, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72,
  1618  	0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72,
  1619  	0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65,
  1620  	0x6e, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52,
  1621  	0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x4f,
  1622  	0x0a, 0x09, 0x44, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
  1623  	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a,
  1624  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
  1625  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
  1626  	0x6d, 0x70, 0x74, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
  1627  	0x2b, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x03, 0x76, 0x6d,
  1628  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1629  	0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x03, 0x76, 0x6d, 0x73, 0x2a, 0x26, 0x0a, 0x10,
  1630  	0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65,
  1631  	0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x4e, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4e,
  1632  	0x41, 0x54, 0x10, 0x00, 0x2a, 0x23, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x6e, 0x74, 0x65,
  1633  	0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, 0x53, 0x49, 0x10, 0x00, 0x12,
  1634  	0x08, 0x0a, 0x04, 0x4e, 0x56, 0x4d, 0x45, 0x10, 0x01, 0x2a, 0x44, 0x0a, 0x14, 0x4e, 0x6f, 0x64,
  1635  	0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
  1636  	0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e,
  1637  	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x49,
  1638  	0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x10, 0x02, 0x2a,
  1639  	0x6e, 0x0a, 0x0a, 0x47, 0x43, 0x50, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x0a,
  1640  	0x17, 0x47, 0x43, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53,
  1641  	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x47, 0x43,
  1642  	0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45,
  1643  	0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x43, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45,
  1644  	0x4c, 0x5f, 0x42, 0x45, 0x54, 0x41, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x43, 0x50, 0x5f,
  1645  	0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x10, 0x03, 0x2a,
  1646  	0x77, 0x0a, 0x19, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f,
  1647  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x27,
  1648  	0x50, 0x45, 0x52, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49,
  1649  	0x54, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50,
  1650  	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x52, 0x43,
  1651  	0x48, 0x49, 0x54, 0x45, 0x43, 0x54, 0x55, 0x52, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
  1652  	0x45, 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54,
  1653  	0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x03, 0x42, 0x72, 0xa2, 0xfe, 0x23, 0x3f, 0x0a, 0x3d,
  1654  	0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c,
  1655  	0x75, 0x63, 0x69, 0x2e, 0x61, 0x70, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f,
  1656  	0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x67, 0x63, 0x65, 0x2d, 0x70, 0x72, 0x6f,
  1657  	0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x76, 0x6d, 0x73, 0x2e, 0x63, 0x66, 0x67, 0x5a, 0x2d, 0x67,
  1658  	0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c,
  1659  	0x75, 0x63, 0x69, 0x2f, 0x67, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
  1660  	0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, 0x70, 0x72,
  1661  	0x6f, 0x74, 0x6f, 0x33,
  1662  }
  1663  
  1664  var (
  1665  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescOnce sync.Once
  1666  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescData = file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDesc
  1667  )
  1668  
  1669  func file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescGZIP() []byte {
  1670  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescOnce.Do(func() {
  1671  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescData)
  1672  	})
  1673  	return file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDescData
  1674  }
  1675  
  1676  var file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
  1677  var file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
  1678  var file_go_chromium_org_luci_gce_api_config_v1_config_proto_goTypes = []interface{}{
  1679  	(AccessConfigType)(0),          // 0: config.AccessConfigType
  1680  	(DiskInterface)(0),             // 1: config.DiskInterface
  1681  	(NodeAffinityOperator)(0),      // 2: config.NodeAffinityOperator
  1682  	(GCPChannel)(0),                // 3: config.GCPChannel
  1683  	(PerformanceMonitoringUnit)(0), // 4: config.PerformanceMonitoringUnit
  1684  	(*ServiceAccount)(nil),         // 5: config.ServiceAccount
  1685  	(*AccessConfig)(nil),           // 6: config.AccessConfig
  1686  	(*NetworkInterface)(nil),       // 7: config.NetworkInterface
  1687  	(*Disk)(nil),                   // 8: config.Disk
  1688  	(*Metadata)(nil),               // 9: config.Metadata
  1689  	(*NodeAffinity)(nil),           // 10: config.NodeAffinity
  1690  	(*Scheduling)(nil),             // 11: config.Scheduling
  1691  	(*VM)(nil),                     // 12: config.VM
  1692  	(*TimePeriod)(nil),             // 13: config.TimePeriod
  1693  	(*TimeOfDay)(nil),              // 14: config.TimeOfDay
  1694  	(*Schedule)(nil),               // 15: config.Schedule
  1695  	(*Amount)(nil),                 // 16: config.Amount
  1696  	(*Config)(nil),                 // 17: config.Config
  1697  	(*Configs)(nil),                // 18: config.Configs
  1698  	nil,                            // 19: config.VM.LabelEntry
  1699  	nil,                            // 20: config.Config.DutsEntry
  1700  	(dayofweek.DayOfWeek)(0),       // 21: google.type.DayOfWeek
  1701  	(*emptypb.Empty)(nil),          // 22: google.protobuf.Empty
  1702  }
  1703  var file_go_chromium_org_luci_gce_api_config_v1_config_proto_depIdxs = []int32{
  1704  	0,  // 0: config.AccessConfig.type:type_name -> config.AccessConfigType
  1705  	6,  // 1: config.NetworkInterface.access_config:type_name -> config.AccessConfig
  1706  	1,  // 2: config.Disk.interface:type_name -> config.DiskInterface
  1707  	2,  // 3: config.NodeAffinity.operator:type_name -> config.NodeAffinityOperator
  1708  	10, // 4: config.Scheduling.node_affinity:type_name -> config.NodeAffinity
  1709  	8,  // 5: config.VM.disk:type_name -> config.Disk
  1710  	9,  // 6: config.VM.metadata:type_name -> config.Metadata
  1711  	7,  // 7: config.VM.network_interface:type_name -> config.NetworkInterface
  1712  	5,  // 8: config.VM.service_account:type_name -> config.ServiceAccount
  1713  	11, // 9: config.VM.scheduling:type_name -> config.Scheduling
  1714  	19, // 10: config.VM.label:type_name -> config.VM.LabelEntry
  1715  	3,  // 11: config.VM.gcp_channel:type_name -> config.GCPChannel
  1716  	4,  // 12: config.VM.performance_monitoring_unit:type_name -> config.PerformanceMonitoringUnit
  1717  	21, // 13: config.TimeOfDay.day:type_name -> google.type.DayOfWeek
  1718  	13, // 14: config.Schedule.length:type_name -> config.TimePeriod
  1719  	14, // 15: config.Schedule.start:type_name -> config.TimeOfDay
  1720  	15, // 16: config.Amount.change:type_name -> config.Schedule
  1721  	16, // 17: config.Config.amount:type_name -> config.Amount
  1722  	12, // 18: config.Config.attributes:type_name -> config.VM
  1723  	13, // 19: config.Config.lifetime:type_name -> config.TimePeriod
  1724  	13, // 20: config.Config.timeout:type_name -> config.TimePeriod
  1725  	20, // 21: config.Config.duts:type_name -> config.Config.DutsEntry
  1726  	17, // 22: config.Configs.vms:type_name -> config.Config
  1727  	22, // 23: config.Config.DutsEntry.value:type_name -> google.protobuf.Empty
  1728  	24, // [24:24] is the sub-list for method output_type
  1729  	24, // [24:24] is the sub-list for method input_type
  1730  	24, // [24:24] is the sub-list for extension type_name
  1731  	24, // [24:24] is the sub-list for extension extendee
  1732  	0,  // [0:24] is the sub-list for field type_name
  1733  }
  1734  
  1735  func init() { file_go_chromium_org_luci_gce_api_config_v1_config_proto_init() }
  1736  func file_go_chromium_org_luci_gce_api_config_v1_config_proto_init() {
  1737  	if File_go_chromium_org_luci_gce_api_config_v1_config_proto != nil {
  1738  		return
  1739  	}
  1740  	if !protoimpl.UnsafeEnabled {
  1741  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1742  			switch v := v.(*ServiceAccount); i {
  1743  			case 0:
  1744  				return &v.state
  1745  			case 1:
  1746  				return &v.sizeCache
  1747  			case 2:
  1748  				return &v.unknownFields
  1749  			default:
  1750  				return nil
  1751  			}
  1752  		}
  1753  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1754  			switch v := v.(*AccessConfig); i {
  1755  			case 0:
  1756  				return &v.state
  1757  			case 1:
  1758  				return &v.sizeCache
  1759  			case 2:
  1760  				return &v.unknownFields
  1761  			default:
  1762  				return nil
  1763  			}
  1764  		}
  1765  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1766  			switch v := v.(*NetworkInterface); i {
  1767  			case 0:
  1768  				return &v.state
  1769  			case 1:
  1770  				return &v.sizeCache
  1771  			case 2:
  1772  				return &v.unknownFields
  1773  			default:
  1774  				return nil
  1775  			}
  1776  		}
  1777  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1778  			switch v := v.(*Disk); i {
  1779  			case 0:
  1780  				return &v.state
  1781  			case 1:
  1782  				return &v.sizeCache
  1783  			case 2:
  1784  				return &v.unknownFields
  1785  			default:
  1786  				return nil
  1787  			}
  1788  		}
  1789  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1790  			switch v := v.(*Metadata); i {
  1791  			case 0:
  1792  				return &v.state
  1793  			case 1:
  1794  				return &v.sizeCache
  1795  			case 2:
  1796  				return &v.unknownFields
  1797  			default:
  1798  				return nil
  1799  			}
  1800  		}
  1801  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1802  			switch v := v.(*NodeAffinity); i {
  1803  			case 0:
  1804  				return &v.state
  1805  			case 1:
  1806  				return &v.sizeCache
  1807  			case 2:
  1808  				return &v.unknownFields
  1809  			default:
  1810  				return nil
  1811  			}
  1812  		}
  1813  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1814  			switch v := v.(*Scheduling); i {
  1815  			case 0:
  1816  				return &v.state
  1817  			case 1:
  1818  				return &v.sizeCache
  1819  			case 2:
  1820  				return &v.unknownFields
  1821  			default:
  1822  				return nil
  1823  			}
  1824  		}
  1825  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  1826  			switch v := v.(*VM); i {
  1827  			case 0:
  1828  				return &v.state
  1829  			case 1:
  1830  				return &v.sizeCache
  1831  			case 2:
  1832  				return &v.unknownFields
  1833  			default:
  1834  				return nil
  1835  			}
  1836  		}
  1837  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  1838  			switch v := v.(*TimePeriod); i {
  1839  			case 0:
  1840  				return &v.state
  1841  			case 1:
  1842  				return &v.sizeCache
  1843  			case 2:
  1844  				return &v.unknownFields
  1845  			default:
  1846  				return nil
  1847  			}
  1848  		}
  1849  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  1850  			switch v := v.(*TimeOfDay); i {
  1851  			case 0:
  1852  				return &v.state
  1853  			case 1:
  1854  				return &v.sizeCache
  1855  			case 2:
  1856  				return &v.unknownFields
  1857  			default:
  1858  				return nil
  1859  			}
  1860  		}
  1861  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  1862  			switch v := v.(*Schedule); i {
  1863  			case 0:
  1864  				return &v.state
  1865  			case 1:
  1866  				return &v.sizeCache
  1867  			case 2:
  1868  				return &v.unknownFields
  1869  			default:
  1870  				return nil
  1871  			}
  1872  		}
  1873  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  1874  			switch v := v.(*Amount); i {
  1875  			case 0:
  1876  				return &v.state
  1877  			case 1:
  1878  				return &v.sizeCache
  1879  			case 2:
  1880  				return &v.unknownFields
  1881  			default:
  1882  				return nil
  1883  			}
  1884  		}
  1885  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  1886  			switch v := v.(*Config); i {
  1887  			case 0:
  1888  				return &v.state
  1889  			case 1:
  1890  				return &v.sizeCache
  1891  			case 2:
  1892  				return &v.unknownFields
  1893  			default:
  1894  				return nil
  1895  			}
  1896  		}
  1897  		file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  1898  			switch v := v.(*Configs); i {
  1899  			case 0:
  1900  				return &v.state
  1901  			case 1:
  1902  				return &v.sizeCache
  1903  			case 2:
  1904  				return &v.unknownFields
  1905  			default:
  1906  				return nil
  1907  			}
  1908  		}
  1909  	}
  1910  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[4].OneofWrappers = []interface{}{
  1911  		(*Metadata_FromText)(nil),
  1912  		(*Metadata_FromFile)(nil),
  1913  	}
  1914  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes[8].OneofWrappers = []interface{}{
  1915  		(*TimePeriod_Duration)(nil),
  1916  		(*TimePeriod_Seconds)(nil),
  1917  	}
  1918  	type x struct{}
  1919  	out := protoimpl.TypeBuilder{
  1920  		File: protoimpl.DescBuilder{
  1921  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1922  			RawDescriptor: file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDesc,
  1923  			NumEnums:      5,
  1924  			NumMessages:   16,
  1925  			NumExtensions: 0,
  1926  			NumServices:   0,
  1927  		},
  1928  		GoTypes:           file_go_chromium_org_luci_gce_api_config_v1_config_proto_goTypes,
  1929  		DependencyIndexes: file_go_chromium_org_luci_gce_api_config_v1_config_proto_depIdxs,
  1930  		EnumInfos:         file_go_chromium_org_luci_gce_api_config_v1_config_proto_enumTypes,
  1931  		MessageInfos:      file_go_chromium_org_luci_gce_api_config_v1_config_proto_msgTypes,
  1932  	}.Build()
  1933  	File_go_chromium_org_luci_gce_api_config_v1_config_proto = out.File
  1934  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_rawDesc = nil
  1935  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_goTypes = nil
  1936  	file_go_chromium_org_luci_gce_api_config_v1_config_proto_depIdxs = nil
  1937  }