diff --git a/api/config/esgateway/config_request.go b/api/config/esgateway/config_request.go index 2319eecd113..e6d0f51858a 100644 --- a/api/config/esgateway/config_request.go +++ b/api/config/esgateway/config_request.go @@ -23,7 +23,9 @@ func NewConfigRequest() *ConfigRequest { Service: &ConfigRequest_V1_System_Service{}, Log: &ConfigRequest_V1_System_Log{}, Ngx: &ConfigRequest_V1_System_Nginx{ - Main: &ConfigRequest_V1_System_Nginx_Main{}, + Main: &ConfigRequest_V1_System_Nginx_Main{ + Resolvers: &ConfigRequest_V1_System_Nginx_Main_Resolvers{}, + }, Events: &ConfigRequest_V1_System_Nginx_Events{}, Http: &ConfigRequest_V1_System_Nginx_Http{}, }, @@ -48,8 +50,8 @@ func DefaultConfigRequest() *ConfigRequest { // resolvers once we are a bit more confident in the nginx // module we are using to do dynamic resolution. // - // c.V1.Sys.Ngx.Main.Resolvers = getSystemResolvers() + c.V1.Sys.Ngx.Main.Resolvers.EnableSystemNameservers = w.Bool(false) c.V1.Sys.Ngx.Events.WorkerConnections = w.Int32(1024) c.V1.Sys.Ngx.Http.ServerNamesHashBucketSize = w.Int32(128) @@ -89,6 +91,22 @@ func (c *ConfigRequest) Validate() error { // to start the service. func (c *ConfigRequest) PrepareSystemConfig(creds *ac.TLSCredentials) (ac.PreparedSystemConfig, error) { c.V1.Sys.Tls = creds + + enableSystemNameServer := c.GetV1().GetSys().GetNgx().GetMain().GetResolvers().GetEnableSystemNameservers().GetValue() + nameServers := c.GetV1().GetSys().GetNgx().GetMain().GetResolvers().GetNameservers() + if len(nameServers) == 0 && enableSystemNameServer { + c.V1.Sys.Ngx.Main.Resolvers.NameserversString = getSystemResolvers() + } else { + if len(nameServers) > 0 { + ns := make([]string, 0, len(nameServers)) + for _, n := range nameServers { + if n != nil { + ns = append(ns, n.GetValue()) + } + } + c.V1.Sys.Ngx.Main.Resolvers.NameserversString = w.String(strings.Join(ns, " ")) + } + } return c.V1.Sys, nil } diff --git a/api/config/esgateway/config_request.pb.go b/api/config/esgateway/config_request.pb.go index 064cbda4250..ab031e6c221 100644 --- a/api/config/esgateway/config_request.pb.go +++ b/api/config/esgateway/config_request.pb.go @@ -594,9 +594,9 @@ type ConfigRequest_V1_System_Nginx_Main struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkerProcesses *wrappers.Int32Value `protobuf:"bytes,1,opt,name=worker_processes,json=workerProcesses,proto3" json:"worker_processes,omitempty" toml:"worker_processes,omitempty" mapstructure:"worker_processes,omitempty"` - MaxFails *wrappers.Int32Value `protobuf:"bytes,2,opt,name=max_fails,json=maxFails,proto3" json:"max_fails,omitempty" toml:"max_fails,omitempty" mapstructure:"max_fails,omitempty"` - Resolvers *wrappers.StringValue `protobuf:"bytes,3,opt,name=resolvers,proto3" json:"resolvers,omitempty" toml:"resolvers,omitempty" mapstructure:"resolvers,omitempty"` + WorkerProcesses *wrappers.Int32Value `protobuf:"bytes,1,opt,name=worker_processes,json=workerProcesses,proto3" json:"worker_processes,omitempty" toml:"worker_processes,omitempty" mapstructure:"worker_processes,omitempty"` + MaxFails *wrappers.Int32Value `protobuf:"bytes,2,opt,name=max_fails,json=maxFails,proto3" json:"max_fails,omitempty" toml:"max_fails,omitempty" mapstructure:"max_fails,omitempty"` + Resolvers *ConfigRequest_V1_System_Nginx_Main_Resolvers `protobuf:"bytes,4,opt,name=resolvers,proto3" json:"resolvers,omitempty" toml:"resolvers,omitempty" mapstructure:"resolvers,omitempty"` } func (x *ConfigRequest_V1_System_Nginx_Main) Reset() { @@ -645,7 +645,7 @@ func (x *ConfigRequest_V1_System_Nginx_Main) GetMaxFails() *wrappers.Int32Value return nil } -func (x *ConfigRequest_V1_System_Nginx_Main) GetResolvers() *wrappers.StringValue { +func (x *ConfigRequest_V1_System_Nginx_Main) GetResolvers() *ConfigRequest_V1_System_Nginx_Main_Resolvers { if x != nil { return x.Resolvers } @@ -891,6 +891,69 @@ func (x *ConfigRequest_V1_System_Nginx_Http) GetProxySetHeaderHost() *wrappers.S return nil } +type ConfigRequest_V1_System_Nginx_Main_Resolvers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EnableSystemNameservers *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enable_system_nameservers,json=enableSystemNameservers,proto3" json:"enable_system_nameservers,omitempty" toml:"enable_system_nameservers,omitempty" mapstructure:"enable_system_nameservers,omitempty"` + Nameservers []*wrappers.StringValue `protobuf:"bytes,2,rep,name=nameservers,proto3" json:"nameservers,omitempty" toml:"nameservers,omitempty" mapstructure:"nameservers,omitempty"` + NameserversString *wrappers.StringValue `protobuf:"bytes,3,opt,name=nameservers_string,json=nameserversString,proto3" json:"nameservers_string,omitempty" toml:"nameservers_string,omitempty" mapstructure:"nameservers_string,omitempty"` +} + +func (x *ConfigRequest_V1_System_Nginx_Main_Resolvers) Reset() { + *x = ConfigRequest_V1_System_Nginx_Main_Resolvers{} + if protoimpl.UnsafeEnabled { + mi := &file_config_esgateway_config_request_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Nginx_Main_Resolvers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Nginx_Main_Resolvers) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Nginx_Main_Resolvers) ProtoReflect() protoreflect.Message { + mi := &file_config_esgateway_config_request_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConfigRequest_V1_System_Nginx_Main_Resolvers.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Nginx_Main_Resolvers) Descriptor() ([]byte, []int) { + return file_config_esgateway_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 2, 0, 0} +} + +func (x *ConfigRequest_V1_System_Nginx_Main_Resolvers) GetEnableSystemNameservers() *wrappers.BoolValue { + if x != nil { + return x.EnableSystemNameservers + } + return nil +} + +func (x *ConfigRequest_V1_System_Nginx_Main_Resolvers) GetNameservers() []*wrappers.StringValue { + if x != nil { + return x.Nameservers + } + return nil +} + +func (x *ConfigRequest_V1_System_Nginx_Main_Resolvers) GetNameserversString() *wrappers.StringValue { + if x != nil { + return x.NameserversString + } + return nil +} + var File_config_esgateway_config_request_proto protoreflect.FileDescriptor var file_config_esgateway_config_request_proto_rawDesc = []byte{ @@ -907,13 +970,13 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{ 0x61, 0x70, 0x69, 0x2f, 0x61, 0x32, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x1c, 0x0a, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x1e, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x52, 0x02, 0x76, 0x31, 0x1a, - 0xa9, 0x1b, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x48, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, + 0xd1, 0x1d, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x48, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, @@ -922,7 +985,7 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{ 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x03, 0x73, 0x76, 0x63, 0x1a, 0x82, 0x1a, 0x0a, 0x06, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x03, 0x73, 0x76, 0x63, 0x1a, 0xaa, 0x1c, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x34, 0x0a, 0x04, 0x6d, 0x6c, 0x73, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, @@ -964,7 +1027,7 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{ 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x1a, 0x82, 0x0f, 0x0a, 0x05, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x12, 0x55, 0x0a, 0x04, 0x6d, + 0x6c, 0x1a, 0xaa, 0x11, 0x0a, 0x05, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x12, 0x55, 0x0a, 0x04, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, @@ -981,7 +1044,7 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{ 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4e, 0x67, 0x69, 0x6e, 0x78, 0x2e, 0x48, 0x74, 0x74, 0x70, - 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x1a, 0xc4, 0x01, 0x0a, 0x04, 0x4d, 0x61, 0x69, 0x6e, 0x12, + 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x1a, 0xec, 0x03, 0x0a, 0x04, 0x4d, 0x61, 0x69, 0x6e, 0x12, 0x46, 0x0a, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, @@ -990,153 +1053,172 @@ var file_config_esgateway_config_request_proto_rawDesc = []byte{ 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x46, 0x61, 0x69, 0x6c, - 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x1a, 0x54, 0x0a, - 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x1a, 0xd0, 0x0a, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x12, 0x4d, 0x0a, 0x14, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x61, 0x78, 0x42, 0x6f, 0x64, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x4f, 0x0a, 0x15, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, - 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x48, 0x0a, 0x11, - 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x67, 0x7a, 0x69, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x04, 0x67, 0x7a, 0x69, 0x70, 0x12, 0x48, 0x0a, 0x11, 0x67, 0x7a, 0x69, 0x70, - 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0f, 0x67, 0x7a, 0x69, 0x70, 0x48, 0x74, 0x74, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0f, 0x67, 0x7a, 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x67, 0x7a, 0x69, 0x70, 0x43, - 0x6f, 0x6d, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3f, 0x0a, 0x0c, 0x67, 0x7a, 0x69, 0x70, - 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x67, 0x7a, - 0x69, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x67, 0x7a, 0x69, - 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x73, 0x12, 0x69, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4e, 0x67, 0x69, + 0x6e, 0x78, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, + 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x1a, 0xf0, 0x01, 0x0a, + 0x09, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x12, 0x56, 0x0a, 0x19, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x7a, 0x69, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x66, 0x69, 0x6c, 0x65, - 0x12, 0x3d, 0x0a, 0x0b, 0x74, 0x63, 0x70, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x74, 0x63, 0x70, 0x4e, 0x6f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, - 0x3b, 0x0a, 0x0a, 0x74, 0x63, 0x70, 0x5f, 0x6e, 0x6f, 0x70, 0x75, 0x73, 0x68, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x74, 0x63, 0x70, 0x4e, 0x6f, 0x70, 0x75, 0x73, 0x68, 0x12, 0x3d, 0x0a, 0x0b, - 0x73, 0x73, 0x6c, 0x5f, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0a, 0x73, 0x73, 0x6c, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x73, - 0x73, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4a, + 0x04, 0x08, 0x03, 0x10, 0x04, 0x1a, 0x54, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x4a, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xd0, 0x0a, 0x0a, 0x04, + 0x48, 0x74, 0x74, 0x70, 0x12, 0x4d, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0c, 0x73, 0x73, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x45, - 0x0a, 0x10, 0x73, 0x73, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x65, 0x70, - 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x73, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x5d, 0x0a, 0x1d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x48, 0x61, 0x73, 0x68, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x53, 0x0a, 0x17, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x62, - 0x6f, 0x64, 0x79, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x52, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x42, 0x6f, 0x64, 0x79, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x4f, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x13, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x12, 0x48, 0x0a, 0x11, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x6b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x30, + 0x0a, 0x04, 0x67, 0x7a, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x67, 0x7a, 0x69, 0x70, + 0x12, 0x48, 0x0a, 0x11, 0x67, 0x7a, 0x69, 0x70, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x67, 0x7a, 0x69, 0x70, 0x48, + 0x74, 0x74, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0f, 0x67, 0x7a, + 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0d, 0x67, 0x7a, 0x69, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x3f, 0x0a, 0x0c, 0x67, 0x7a, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x67, 0x7a, 0x69, 0x70, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, + 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x67, 0x7a, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x42, - 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x12, 0x49, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x65, - 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, - 0x4f, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x53, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, - 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x1a, 0xb7, 0x04, 0x0a, 0x08, 0x45, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x73, 0x6c, 0x5f, 0x75, - 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6c, 0x75, 0x65, 0x52, 0x09, 0x67, 0x7a, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, + 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, + 0x73, 0x65, 0x6e, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x74, 0x63, 0x70, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x73, 0x6c, 0x55, 0x70, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x52, 0x0a, 0x16, 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, - 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x14, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x43, 0x72, 0x65, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x74, 0x63, 0x70, + 0x4e, 0x6f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x63, 0x70, 0x5f, 0x6e, + 0x6f, 0x70, 0x75, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x63, 0x70, 0x4e, 0x6f, + 0x70, 0x75, 0x73, 0x68, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x73, 0x6c, 0x5f, 0x63, 0x69, 0x70, 0x68, + 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, - 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x73, 0x6c, 0x43, 0x69, 0x70, 0x68, + 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x73, 0x73, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x73, 0x6c, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x45, 0x0a, 0x10, 0x73, 0x73, 0x6c, 0x5f, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, + 0x73, 0x6c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x5d, 0x0a, + 0x1d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x19, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x48, 0x61, + 0x73, 0x68, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x53, 0x0a, 0x17, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x62, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x49, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x49, 0x0a, 0x12, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x4f, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x42, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, - 0x46, 0x69, 0x6c, 0x65, 0x12, 0x6a, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, - 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, - 0x0f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x1a, 0xad, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, - 0x09, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x69, 0x73, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x30, - 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x1a, 0x09, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x19, 0xc2, 0xf3, 0x18, - 0x15, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2d, 0x65, 0x73, 0x2d, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x73, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x1a, 0xb7, + 0x04, 0x0a, 0x08, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x32, 0x0a, 0x06, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x3d, 0x0a, 0x0c, 0x73, 0x73, 0x6c, 0x5f, 0x75, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0b, 0x73, 0x73, 0x6c, 0x55, 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, + 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x16, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, + 0x75, 0x74, 0x68, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x39, + 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, + 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x6a, 0x0a, 0x10, + 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x65, 0x73, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xad, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x69, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x36, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0x09, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x3a, 0x19, 0xc2, 0xf3, 0x18, 0x15, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x65, 0x2d, 0x65, 0x73, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x2f, + 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, + 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x73, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1151,81 +1233,85 @@ func file_config_esgateway_config_request_proto_rawDescGZIP() []byte { return file_config_esgateway_config_request_proto_rawDescData } -var file_config_esgateway_config_request_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_config_esgateway_config_request_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_config_esgateway_config_request_proto_goTypes = []interface{}{ - (*ConfigRequest)(nil), // 0: chef.automate.infra.esgateway.ConfigRequest - (*ConfigRequest_V1)(nil), // 1: chef.automate.infra.esgateway.ConfigRequest.V1 - (*ConfigRequest_V1_System)(nil), // 2: chef.automate.infra.esgateway.ConfigRequest.V1.System - (*ConfigRequest_V1_Service)(nil), // 3: chef.automate.infra.esgateway.ConfigRequest.V1.Service - (*ConfigRequest_V1_System_Service)(nil), // 4: chef.automate.infra.esgateway.ConfigRequest.V1.System.Service - (*ConfigRequest_V1_System_Log)(nil), // 5: chef.automate.infra.esgateway.ConfigRequest.V1.System.Log - (*ConfigRequest_V1_System_Nginx)(nil), // 6: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx - (*ConfigRequest_V1_System_External)(nil), // 7: chef.automate.infra.esgateway.ConfigRequest.V1.System.External - (*ConfigRequest_V1_System_Endpoint)(nil), // 8: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint - (*ConfigRequest_V1_System_Nginx_Main)(nil), // 9: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main - (*ConfigRequest_V1_System_Nginx_Events)(nil), // 10: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Events - (*ConfigRequest_V1_System_Nginx_Http)(nil), // 11: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http - (*shared.Mlsa)(nil), // 12: chef.automate.infra.config.Mlsa - (*shared.TLSCredentials)(nil), // 13: chef.automate.infra.config.TLSCredentials - (*wrappers.StringValue)(nil), // 14: google.protobuf.StringValue - (*wrappers.Int32Value)(nil), // 15: google.protobuf.Int32Value - (*wrappers.BoolValue)(nil), // 16: google.protobuf.BoolValue + (*ConfigRequest)(nil), // 0: chef.automate.infra.esgateway.ConfigRequest + (*ConfigRequest_V1)(nil), // 1: chef.automate.infra.esgateway.ConfigRequest.V1 + (*ConfigRequest_V1_System)(nil), // 2: chef.automate.infra.esgateway.ConfigRequest.V1.System + (*ConfigRequest_V1_Service)(nil), // 3: chef.automate.infra.esgateway.ConfigRequest.V1.Service + (*ConfigRequest_V1_System_Service)(nil), // 4: chef.automate.infra.esgateway.ConfigRequest.V1.System.Service + (*ConfigRequest_V1_System_Log)(nil), // 5: chef.automate.infra.esgateway.ConfigRequest.V1.System.Log + (*ConfigRequest_V1_System_Nginx)(nil), // 6: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx + (*ConfigRequest_V1_System_External)(nil), // 7: chef.automate.infra.esgateway.ConfigRequest.V1.System.External + (*ConfigRequest_V1_System_Endpoint)(nil), // 8: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint + (*ConfigRequest_V1_System_Nginx_Main)(nil), // 9: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main + (*ConfigRequest_V1_System_Nginx_Events)(nil), // 10: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Events + (*ConfigRequest_V1_System_Nginx_Http)(nil), // 11: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http + (*ConfigRequest_V1_System_Nginx_Main_Resolvers)(nil), // 12: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers + (*shared.Mlsa)(nil), // 13: chef.automate.infra.config.Mlsa + (*shared.TLSCredentials)(nil), // 14: chef.automate.infra.config.TLSCredentials + (*wrappers.StringValue)(nil), // 15: google.protobuf.StringValue + (*wrappers.Int32Value)(nil), // 16: google.protobuf.Int32Value + (*wrappers.BoolValue)(nil), // 17: google.protobuf.BoolValue } var file_config_esgateway_config_request_proto_depIdxs = []int32{ 1, // 0: chef.automate.infra.esgateway.ConfigRequest.v1:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1 2, // 1: chef.automate.infra.esgateway.ConfigRequest.V1.sys:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System 3, // 2: chef.automate.infra.esgateway.ConfigRequest.V1.svc:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.Service - 12, // 3: chef.automate.infra.esgateway.ConfigRequest.V1.System.mlsa:type_name -> chef.automate.infra.config.Mlsa - 13, // 4: chef.automate.infra.esgateway.ConfigRequest.V1.System.tls:type_name -> chef.automate.infra.config.TLSCredentials + 13, // 3: chef.automate.infra.esgateway.ConfigRequest.V1.System.mlsa:type_name -> chef.automate.infra.config.Mlsa + 14, // 4: chef.automate.infra.esgateway.ConfigRequest.V1.System.tls:type_name -> chef.automate.infra.config.TLSCredentials 4, // 5: chef.automate.infra.esgateway.ConfigRequest.V1.System.service:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Service 5, // 6: chef.automate.infra.esgateway.ConfigRequest.V1.System.log:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Log 6, // 7: chef.automate.infra.esgateway.ConfigRequest.V1.System.ngx:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx 7, // 8: chef.automate.infra.esgateway.ConfigRequest.V1.System.external:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.External - 14, // 9: chef.automate.infra.esgateway.ConfigRequest.V1.System.Service.host:type_name -> google.protobuf.StringValue - 15, // 10: chef.automate.infra.esgateway.ConfigRequest.V1.System.Service.port:type_name -> google.protobuf.Int32Value - 14, // 11: chef.automate.infra.esgateway.ConfigRequest.V1.System.Log.level:type_name -> google.protobuf.StringValue + 15, // 9: chef.automate.infra.esgateway.ConfigRequest.V1.System.Service.host:type_name -> google.protobuf.StringValue + 16, // 10: chef.automate.infra.esgateway.ConfigRequest.V1.System.Service.port:type_name -> google.protobuf.Int32Value + 15, // 11: chef.automate.infra.esgateway.ConfigRequest.V1.System.Log.level:type_name -> google.protobuf.StringValue 9, // 12: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.main:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main 10, // 13: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.events:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Events 11, // 14: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.http:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http - 16, // 15: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.enable:type_name -> google.protobuf.BoolValue - 16, // 16: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.ssl_upstream:type_name -> google.protobuf.BoolValue - 14, // 17: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.endpoints:type_name -> google.protobuf.StringValue - 14, // 18: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.basic_auth_credentials:type_name -> google.protobuf.StringValue - 14, // 19: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.root_cert:type_name -> google.protobuf.StringValue - 14, // 20: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.server_name:type_name -> google.protobuf.StringValue - 14, // 21: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.root_cert_file:type_name -> google.protobuf.StringValue + 17, // 15: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.enable:type_name -> google.protobuf.BoolValue + 17, // 16: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.ssl_upstream:type_name -> google.protobuf.BoolValue + 15, // 17: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.endpoints:type_name -> google.protobuf.StringValue + 15, // 18: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.basic_auth_credentials:type_name -> google.protobuf.StringValue + 15, // 19: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.root_cert:type_name -> google.protobuf.StringValue + 15, // 20: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.server_name:type_name -> google.protobuf.StringValue + 15, // 21: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.root_cert_file:type_name -> google.protobuf.StringValue 8, // 22: chef.automate.infra.esgateway.ConfigRequest.V1.System.External.parsed_endpoints:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint - 16, // 23: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint.is_domain:type_name -> google.protobuf.BoolValue - 14, // 24: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint.address:type_name -> google.protobuf.StringValue - 14, // 25: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint.port:type_name -> google.protobuf.StringValue - 15, // 26: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.worker_processes:type_name -> google.protobuf.Int32Value - 15, // 27: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.max_fails:type_name -> google.protobuf.Int32Value - 14, // 28: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.resolvers:type_name -> google.protobuf.StringValue - 15, // 29: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Events.worker_connections:type_name -> google.protobuf.Int32Value - 14, // 30: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.client_max_body_size:type_name -> google.protobuf.StringValue - 15, // 31: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_connect_timeout:type_name -> google.protobuf.Int32Value - 15, // 32: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.keepalive_timeout:type_name -> google.protobuf.Int32Value - 14, // 33: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip:type_name -> google.protobuf.StringValue - 14, // 34: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_http_version:type_name -> google.protobuf.StringValue - 14, // 35: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_comp_level:type_name -> google.protobuf.StringValue - 14, // 36: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_proxied:type_name -> google.protobuf.StringValue - 14, // 37: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_types:type_name -> google.protobuf.StringValue - 14, // 38: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.sendfile:type_name -> google.protobuf.StringValue - 14, // 39: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.tcp_nodelay:type_name -> google.protobuf.StringValue - 14, // 40: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.tcp_nopush:type_name -> google.protobuf.StringValue - 14, // 41: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.ssl_ciphers:type_name -> google.protobuf.StringValue - 14, // 42: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.ssl_protocols:type_name -> google.protobuf.StringValue - 15, // 43: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.ssl_verify_depth:type_name -> google.protobuf.Int32Value - 15, // 44: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.server_names_hash_bucket_size:type_name -> google.protobuf.Int32Value - 14, // 45: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.client_body_buffer_size:type_name -> google.protobuf.StringValue - 15, // 46: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_read_timeout:type_name -> google.protobuf.Int32Value - 15, // 47: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_send_timeout:type_name -> google.protobuf.Int32Value - 14, // 48: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_set_header_host:type_name -> google.protobuf.StringValue - 49, // [49:49] is the sub-list for method output_type - 49, // [49:49] is the sub-list for method input_type - 49, // [49:49] is the sub-list for extension type_name - 49, // [49:49] is the sub-list for extension extendee - 0, // [0:49] is the sub-list for field type_name + 17, // 23: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint.is_domain:type_name -> google.protobuf.BoolValue + 15, // 24: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint.address:type_name -> google.protobuf.StringValue + 15, // 25: chef.automate.infra.esgateway.ConfigRequest.V1.System.Endpoint.port:type_name -> google.protobuf.StringValue + 16, // 26: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.worker_processes:type_name -> google.protobuf.Int32Value + 16, // 27: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.max_fails:type_name -> google.protobuf.Int32Value + 12, // 28: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.resolvers:type_name -> chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers + 16, // 29: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Events.worker_connections:type_name -> google.protobuf.Int32Value + 15, // 30: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.client_max_body_size:type_name -> google.protobuf.StringValue + 16, // 31: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_connect_timeout:type_name -> google.protobuf.Int32Value + 16, // 32: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.keepalive_timeout:type_name -> google.protobuf.Int32Value + 15, // 33: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip:type_name -> google.protobuf.StringValue + 15, // 34: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_http_version:type_name -> google.protobuf.StringValue + 15, // 35: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_comp_level:type_name -> google.protobuf.StringValue + 15, // 36: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_proxied:type_name -> google.protobuf.StringValue + 15, // 37: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.gzip_types:type_name -> google.protobuf.StringValue + 15, // 38: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.sendfile:type_name -> google.protobuf.StringValue + 15, // 39: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.tcp_nodelay:type_name -> google.protobuf.StringValue + 15, // 40: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.tcp_nopush:type_name -> google.protobuf.StringValue + 15, // 41: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.ssl_ciphers:type_name -> google.protobuf.StringValue + 15, // 42: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.ssl_protocols:type_name -> google.protobuf.StringValue + 16, // 43: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.ssl_verify_depth:type_name -> google.protobuf.Int32Value + 16, // 44: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.server_names_hash_bucket_size:type_name -> google.protobuf.Int32Value + 15, // 45: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.client_body_buffer_size:type_name -> google.protobuf.StringValue + 16, // 46: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_read_timeout:type_name -> google.protobuf.Int32Value + 16, // 47: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_send_timeout:type_name -> google.protobuf.Int32Value + 15, // 48: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Http.proxy_set_header_host:type_name -> google.protobuf.StringValue + 17, // 49: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.enable_system_nameservers:type_name -> google.protobuf.BoolValue + 15, // 50: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.nameservers:type_name -> google.protobuf.StringValue + 15, // 51: chef.automate.infra.esgateway.ConfigRequest.V1.System.Nginx.Main.Resolvers.nameservers_string:type_name -> google.protobuf.StringValue + 52, // [52:52] is the sub-list for method output_type + 52, // [52:52] is the sub-list for method input_type + 52, // [52:52] is the sub-list for extension type_name + 52, // [52:52] is the sub-list for extension extendee + 0, // [0:52] is the sub-list for field type_name } func init() { file_config_esgateway_config_request_proto_init() } @@ -1378,6 +1464,18 @@ func file_config_esgateway_config_request_proto_init() { return nil } } + file_config_esgateway_config_request_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Nginx_Main_Resolvers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1385,7 +1483,7 @@ func file_config_esgateway_config_request_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_config_esgateway_config_request_proto_rawDesc, NumEnums: 0, - NumMessages: 12, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/api/config/esgateway/config_request.proto b/api/config/esgateway/config_request.proto index 609ce9ad894..005b712274c 100644 --- a/api/config/esgateway/config_request.proto +++ b/api/config/esgateway/config_request.proto @@ -43,7 +43,14 @@ message ConfigRequest { message Main { google.protobuf.Int32Value worker_processes = 1; google.protobuf.Int32Value max_fails = 2; - google.protobuf.StringValue resolvers = 3; + reserved 3; + Resolvers resolvers = 4; + + message Resolvers { + google.protobuf.BoolValue enable_system_nameservers = 1; + repeated google.protobuf.StringValue nameservers = 2; + google.protobuf.StringValue nameservers_string = 3; + } } message Events { diff --git a/api/config/esgateway/config_request_test.go b/api/config/esgateway/config_request_test.go index 0ab10496330..98d6ef90bd0 100644 --- a/api/config/esgateway/config_request_test.go +++ b/api/config/esgateway/config_request_test.go @@ -5,6 +5,7 @@ import ( wrappers "github.com/golang/protobuf/ptypes/wrappers" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ac "github.com/chef/automate/api/config/shared" w "github.com/chef/automate/api/config/shared/wrappers" @@ -267,4 +268,12 @@ func TestExternalElasticsearch(t *testing.T) { assert.Equal(t, "443", c.GetV1().GetSys().GetExternal().GetParsedEndpoints()[0].GetPort().GetValue()) assert.Equal(t, false, c.GetV1().GetSys().GetExternal().GetParsedEndpoints()[0].GetIsDomain().GetValue()) }) + + t.Run("setting platformconfig for nameservers", func(t *testing.T) { + c := DefaultConfigRequest() + c.V1.Sys.Ngx.Main.Resolvers.Nameservers = []*wrappers.StringValue{w.String("111.11.11.11:50")} + c.PrepareSystemConfig(&ac.TLSCredentials{}) + + require.Equal(t, c.V1.Sys.Ngx.Main.Resolvers.NameserversString.GetValue(), "111.11.11.11:50", "does not match with the nameserver passed") + }) } diff --git a/api/config/pg_gateway/config_request.go b/api/config/pg_gateway/config_request.go index 07edf051cec..53d325a7bc3 100644 --- a/api/config/pg_gateway/config_request.go +++ b/api/config/pg_gateway/config_request.go @@ -1,8 +1,18 @@ package pg_gateway import ( + "fmt" + "net" + ac "github.com/chef/automate/api/config/shared" w "github.com/chef/automate/api/config/shared/wrappers" + "github.com/chef/automate/lib/config" + wrappers "github.com/golang/protobuf/ptypes/wrappers" +) + +const ( + defaultResolverPort = 53 + defaultServerPort = "5432" ) // NewConfigRequest returns a new instance of ConfigRequest with zero values. @@ -10,10 +20,11 @@ func NewConfigRequest() *ConfigRequest { return &ConfigRequest{ V1: &ConfigRequest_V1{ Sys: &ConfigRequest_V1_System{ - Mlsa: &ac.Mlsa{}, - Service: &ConfigRequest_V1_System_Service{}, - Log: &ac.Log{}, - Timeouts: &ConfigRequest_V1_System_Timeouts{}, + Mlsa: &ac.Mlsa{}, + Service: &ConfigRequest_V1_System_Service{}, + Log: &ac.Log{}, + Timeouts: &ConfigRequest_V1_System_Timeouts{}, + Resolvers: &ConfigRequest_V1_System_Resolvers{}, }, }, } @@ -28,6 +39,8 @@ func DefaultConfigRequest() *ConfigRequest { c.V1.Sys.Timeouts.Connect = w.Int32(5) c.V1.Sys.Timeouts.Idle = w.Int32(43200) + c.V1.Sys.Resolvers.EnableSystemNameservers = w.Bool(false) + return c } @@ -44,11 +57,60 @@ func (c *ConfigRequest) Validate() error { func (c *ConfigRequest) SetGlobalConfig(g *ac.GlobalConfig) { c.V1.Sys.Mlsa = g.V1.Mlsa c.V1.Sys.Service.ExternalPostgresql = g.GetV1().GetExternal().GetPostgresql() + + if externalPG := c.GetV1().GetSys().Service.GetExternalPostgresql(); externalPG.GetEnable().GetValue() { + + nodes := externalPG.GetNodes() + + if len(nodes) > 0 { + endpoints := make([]*ConfigRequest_V1_System_Endpoint, 0, len(nodes)) + + for _, node := range nodes { + host, port, err := net.SplitHostPort(node.GetValue()) + if err != nil { + port = defaultServerPort + } + + n := &ConfigRequest_V1_System_Endpoint{Address: w.String(host), Port: w.String(port)} + n.IsDomain = w.Bool(!isIPAddress(host)) + endpoints = append(endpoints, n) + } + + c.V1.Sys.Service.ParsedNodes = endpoints + } + } } // PrepareSystemConfig returns a system configuration that can be used // to start the service. func (c *ConfigRequest) PrepareSystemConfig(creds *ac.TLSCredentials) (ac.PreparedSystemConfig, error) { c.V1.Sys.Tls = creds + + enableSystemNameServer := c.GetV1().GetSys().GetResolvers().GetEnableSystemNameservers().GetValue() + nameServers := c.GetV1().GetSys().GetResolvers().GetNameservers() + + if (len(nameServers) == 0) && enableSystemNameServer { + c.V1.Sys.Resolvers.Nameservers = getSystemResolvers() + } + return c.V1.Sys, nil } + +func getSystemResolvers() []*wrappers.StringValue { + ns := config.GetSystemResolvers() + resolvers := make([]*wrappers.StringValue, 0, len(ns)) + + for _, n := range ns { + _, _, err := net.SplitHostPort(n) + if err == nil { + resolvers = append(resolvers, w.String(n)) + } else { + resolvers = append(resolvers, w.String(fmt.Sprintf("%s:%d", n, defaultResolverPort))) + } + } + return resolvers +} + +func isIPAddress(addr string) bool { + return net.ParseIP(addr) != nil +} diff --git a/api/config/pg_gateway/config_request.pb.go b/api/config/pg_gateway/config_request.pb.go index 06e030aaa34..3e5a8db26ef 100644 --- a/api/config/pg_gateway/config_request.pb.go +++ b/api/config/pg_gateway/config_request.pb.go @@ -129,11 +129,12 @@ type ConfigRequest_V1_System struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Mlsa *shared.Mlsa `protobuf:"bytes,1,opt,name=mlsa,proto3" json:"mlsa,omitempty" toml:"mlsa,omitempty" mapstructure:"mlsa,omitempty"` - Service *ConfigRequest_V1_System_Service `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty" toml:"service,omitempty" mapstructure:"service,omitempty"` - Tls *shared.TLSCredentials `protobuf:"bytes,3,opt,name=tls,proto3" json:"tls,omitempty" toml:"tls,omitempty" mapstructure:"tls,omitempty"` - Log *shared.Log `protobuf:"bytes,4,opt,name=log,proto3" json:"log,omitempty" toml:"log,omitempty" mapstructure:"log,omitempty"` - Timeouts *ConfigRequest_V1_System_Timeouts `protobuf:"bytes,5,opt,name=timeouts,proto3" json:"timeouts,omitempty" toml:"timeouts,omitempty" mapstructure:"timeouts,omitempty"` + Mlsa *shared.Mlsa `protobuf:"bytes,1,opt,name=mlsa,proto3" json:"mlsa,omitempty" toml:"mlsa,omitempty" mapstructure:"mlsa,omitempty"` + Service *ConfigRequest_V1_System_Service `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty" toml:"service,omitempty" mapstructure:"service,omitempty"` + Tls *shared.TLSCredentials `protobuf:"bytes,3,opt,name=tls,proto3" json:"tls,omitempty" toml:"tls,omitempty" mapstructure:"tls,omitempty"` + Log *shared.Log `protobuf:"bytes,4,opt,name=log,proto3" json:"log,omitempty" toml:"log,omitempty" mapstructure:"log,omitempty"` + Timeouts *ConfigRequest_V1_System_Timeouts `protobuf:"bytes,5,opt,name=timeouts,proto3" json:"timeouts,omitempty" toml:"timeouts,omitempty" mapstructure:"timeouts,omitempty"` + Resolvers *ConfigRequest_V1_System_Resolvers `protobuf:"bytes,6,opt,name=resolvers,proto3" json:"resolvers,omitempty" toml:"resolvers,omitempty" mapstructure:"resolvers,omitempty"` } func (x *ConfigRequest_V1_System) Reset() { @@ -203,21 +204,147 @@ func (x *ConfigRequest_V1_System) GetTimeouts() *ConfigRequest_V1_System_Timeout return nil } +func (x *ConfigRequest_V1_System) GetResolvers() *ConfigRequest_V1_System_Resolvers { + if x != nil { + return x.Resolvers + } + return nil +} + +type ConfigRequest_V1_System_Resolvers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nameservers []*wrappers.StringValue `protobuf:"bytes,1,rep,name=nameservers,proto3" json:"nameservers,omitempty" toml:"nameservers,omitempty" mapstructure:"nameservers,omitempty"` + EnableSystemNameservers *wrappers.BoolValue `protobuf:"bytes,2,opt,name=enable_system_nameservers,json=enableSystemNameservers,proto3" json:"enable_system_nameservers,omitempty" toml:"enable_system_nameservers,omitempty" mapstructure:"enable_system_nameservers,omitempty"` +} + +func (x *ConfigRequest_V1_System_Resolvers) Reset() { + *x = ConfigRequest_V1_System_Resolvers{} + if protoimpl.UnsafeEnabled { + mi := &file_config_pg_gateway_config_request_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Resolvers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Resolvers) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Resolvers) ProtoReflect() protoreflect.Message { + mi := &file_config_pg_gateway_config_request_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConfigRequest_V1_System_Resolvers.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Resolvers) Descriptor() ([]byte, []int) { + return file_config_pg_gateway_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 0} +} + +func (x *ConfigRequest_V1_System_Resolvers) GetNameservers() []*wrappers.StringValue { + if x != nil { + return x.Nameservers + } + return nil +} + +func (x *ConfigRequest_V1_System_Resolvers) GetEnableSystemNameservers() *wrappers.BoolValue { + if x != nil { + return x.EnableSystemNameservers + } + return nil +} + +type ConfigRequest_V1_System_Endpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsDomain *wrappers.BoolValue `protobuf:"bytes,1,opt,name=is_domain,json=isDomain,proto3" json:"is_domain,omitempty" toml:"is_domain,omitempty" mapstructure:"is_domain,omitempty"` + Address *wrappers.StringValue `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty" toml:"address,omitempty" mapstructure:"address,omitempty"` + Port *wrappers.StringValue `protobuf:"bytes,3,opt,name=port,proto3" json:"port,omitempty" toml:"port,omitempty" mapstructure:"port,omitempty"` +} + +func (x *ConfigRequest_V1_System_Endpoint) Reset() { + *x = ConfigRequest_V1_System_Endpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_config_pg_gateway_config_request_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfigRequest_V1_System_Endpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfigRequest_V1_System_Endpoint) ProtoMessage() {} + +func (x *ConfigRequest_V1_System_Endpoint) ProtoReflect() protoreflect.Message { + mi := &file_config_pg_gateway_config_request_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConfigRequest_V1_System_Endpoint.ProtoReflect.Descriptor instead. +func (*ConfigRequest_V1_System_Endpoint) Descriptor() ([]byte, []int) { + return file_config_pg_gateway_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 1} +} + +func (x *ConfigRequest_V1_System_Endpoint) GetIsDomain() *wrappers.BoolValue { + if x != nil { + return x.IsDomain + } + return nil +} + +func (x *ConfigRequest_V1_System_Endpoint) GetAddress() *wrappers.StringValue { + if x != nil { + return x.Address + } + return nil +} + +func (x *ConfigRequest_V1_System_Endpoint) GetPort() *wrappers.StringValue { + if x != nil { + return x.Port + } + return nil +} + type ConfigRequest_V1_System_Service struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Deprecated: Do not use. - Host *wrappers.StringValue `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty" toml:"host,omitempty" mapstructure:"host,omitempty"` // The listen host is no longer setable(localhost only) - Port *wrappers.Int32Value `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty" toml:"port,omitempty" mapstructure:"port,omitempty"` - ExternalPostgresql *shared.External_Postgresql `protobuf:"bytes,4,opt,name=external_postgresql,json=externalPostgresql,proto3" json:"external_postgresql,omitempty" toml:"external_postgresql,omitempty" mapstructure:"external_postgresql,omitempty"` + Host *wrappers.StringValue `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty" toml:"host,omitempty" mapstructure:"host,omitempty"` // The listen host is no longer setable(localhost only) + Port *wrappers.Int32Value `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty" toml:"port,omitempty" mapstructure:"port,omitempty"` + ExternalPostgresql *shared.External_Postgresql `protobuf:"bytes,4,opt,name=external_postgresql,json=externalPostgresql,proto3" json:"external_postgresql,omitempty" toml:"external_postgresql,omitempty" mapstructure:"external_postgresql,omitempty"` + ParsedNodes []*ConfigRequest_V1_System_Endpoint `protobuf:"bytes,5,rep,name=parsed_nodes,json=parsedNodes,proto3" json:"parsed_nodes,omitempty" toml:"parsed_nodes,omitempty" mapstructure:"parsed_nodes,omitempty"` } func (x *ConfigRequest_V1_System_Service) Reset() { *x = ConfigRequest_V1_System_Service{} if protoimpl.UnsafeEnabled { - mi := &file_config_pg_gateway_config_request_proto_msgTypes[3] + mi := &file_config_pg_gateway_config_request_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -230,7 +357,7 @@ func (x *ConfigRequest_V1_System_Service) String() string { func (*ConfigRequest_V1_System_Service) ProtoMessage() {} func (x *ConfigRequest_V1_System_Service) ProtoReflect() protoreflect.Message { - mi := &file_config_pg_gateway_config_request_proto_msgTypes[3] + mi := &file_config_pg_gateway_config_request_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -243,7 +370,7 @@ func (x *ConfigRequest_V1_System_Service) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigRequest_V1_System_Service.ProtoReflect.Descriptor instead. func (*ConfigRequest_V1_System_Service) Descriptor() ([]byte, []int) { - return file_config_pg_gateway_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 0} + return file_config_pg_gateway_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 2} } // Deprecated: Do not use. @@ -268,6 +395,13 @@ func (x *ConfigRequest_V1_System_Service) GetExternalPostgresql() *shared.Extern return nil } +func (x *ConfigRequest_V1_System_Service) GetParsedNodes() []*ConfigRequest_V1_System_Endpoint { + if x != nil { + return x.ParsedNodes + } + return nil +} + type ConfigRequest_V1_System_Timeouts struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -280,7 +414,7 @@ type ConfigRequest_V1_System_Timeouts struct { func (x *ConfigRequest_V1_System_Timeouts) Reset() { *x = ConfigRequest_V1_System_Timeouts{} if protoimpl.UnsafeEnabled { - mi := &file_config_pg_gateway_config_request_proto_msgTypes[4] + mi := &file_config_pg_gateway_config_request_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -293,7 +427,7 @@ func (x *ConfigRequest_V1_System_Timeouts) String() string { func (*ConfigRequest_V1_System_Timeouts) ProtoMessage() {} func (x *ConfigRequest_V1_System_Timeouts) ProtoReflect() protoreflect.Message { - mi := &file_config_pg_gateway_config_request_proto_msgTypes[4] + mi := &file_config_pg_gateway_config_request_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -306,7 +440,7 @@ func (x *ConfigRequest_V1_System_Timeouts) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigRequest_V1_System_Timeouts.ProtoReflect.Descriptor instead. func (*ConfigRequest_V1_System_Timeouts) Descriptor() ([]byte, []int) { - return file_config_pg_gateway_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 1} + return file_config_pg_gateway_config_request_proto_rawDescGZIP(), []int{0, 0, 0, 3} } func (x *ConfigRequest_V1_System_Timeouts) GetConnect() *wrappers.Int32Value { @@ -339,18 +473,18 @@ var file_config_pg_gateway_config_request_proto_rawDesc = []byte{ 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x32, 0x63, 0x6f, 0x6e, 0x66, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, - 0x07, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, + 0x0b, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x02, 0x76, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x52, 0x02, - 0x76, 0x31, 0x1a, 0xa0, 0x06, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x49, 0x0a, 0x03, 0x73, 0x79, 0x73, + 0x76, 0x31, 0x1a, 0xbc, 0x0a, 0x0a, 0x02, 0x56, 0x31, 0x12, 0x49, 0x0a, 0x03, 0x73, 0x79, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, - 0x03, 0x73, 0x79, 0x73, 0x1a, 0xce, 0x05, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, + 0x03, 0x73, 0x79, 0x73, 0x1a, 0xea, 0x09, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x34, 0x0a, 0x04, 0x6d, 0x6c, 0x73, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x6c, 0x73, 0x61, 0x52, @@ -372,35 +506,69 @@ var file_config_pg_gateway_config_request_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x73, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x1a, - 0xef, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x68, - 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, - 0x74, 0x12, 0x46, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x15, 0xc2, 0xf3, - 0x18, 0x11, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0xa1, 0x4f, 0x1a, 0x03, - 0x74, 0x63, 0x70, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x60, 0x0a, 0x13, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x50, 0x6f, 0x73, - 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x4a, 0x04, 0x08, 0x03, 0x10, - 0x04, 0x1a, 0x72, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x35, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x65, 0x6f, 0x75, 0x74, 0x73, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x12, + 0x5f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x72, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, + 0x1a, 0xa3, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x12, 0x3e, + 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x56, + 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x1a, 0xad, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x69, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a, 0xd4, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x15, 0xc2, 0xf3, 0x18, 0x11, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x10, 0xa1, 0x4f, 0x1a, 0x03, 0x74, 0x63, 0x70, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x60, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x63, 0x68, 0x65, 0x66, 0x2e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, 0x71, 0x6c, 0x52, 0x12, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x73, + 0x71, 0x6c, 0x12, 0x63, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x68, 0x65, 0x66, 0x2e, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2e, 0x70, + 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x1a, 0x72, 0x0a, + 0x08, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x12, 0x2f, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x04, 0x69, 0x64, 0x6c, 0x65, 0x3a, 0x19, 0xc2, 0xf3, 0x18, 0x15, 0x0a, 0x13, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2d, 0x70, 0x67, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x68, 0x65, 0x66, 0x2f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x69, 0x64, 0x6c, + 0x65, 0x3a, 0x19, 0xc2, 0xf3, 0x18, 0x15, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x2d, 0x70, 0x67, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x30, 0x5a, 0x2e, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x65, 0x66, 0x2f, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2f, 0x70, 0x67, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -415,38 +583,48 @@ func file_config_pg_gateway_config_request_proto_rawDescGZIP() []byte { return file_config_pg_gateway_config_request_proto_rawDescData } -var file_config_pg_gateway_config_request_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_config_pg_gateway_config_request_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_config_pg_gateway_config_request_proto_goTypes = []interface{}{ - (*ConfigRequest)(nil), // 0: chef.automate.infra.pg_gateway.ConfigRequest - (*ConfigRequest_V1)(nil), // 1: chef.automate.infra.pg_gateway.ConfigRequest.V1 - (*ConfigRequest_V1_System)(nil), // 2: chef.automate.infra.pg_gateway.ConfigRequest.V1.System - (*ConfigRequest_V1_System_Service)(nil), // 3: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service - (*ConfigRequest_V1_System_Timeouts)(nil), // 4: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts - (*shared.Mlsa)(nil), // 5: chef.automate.infra.config.Mlsa - (*shared.TLSCredentials)(nil), // 6: chef.automate.infra.config.TLSCredentials - (*shared.Log)(nil), // 7: chef.automate.infra.config.Log - (*wrappers.StringValue)(nil), // 8: google.protobuf.StringValue - (*wrappers.Int32Value)(nil), // 9: google.protobuf.Int32Value - (*shared.External_Postgresql)(nil), // 10: chef.automate.infra.config.External.Postgresql + (*ConfigRequest)(nil), // 0: chef.automate.infra.pg_gateway.ConfigRequest + (*ConfigRequest_V1)(nil), // 1: chef.automate.infra.pg_gateway.ConfigRequest.V1 + (*ConfigRequest_V1_System)(nil), // 2: chef.automate.infra.pg_gateway.ConfigRequest.V1.System + (*ConfigRequest_V1_System_Resolvers)(nil), // 3: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Resolvers + (*ConfigRequest_V1_System_Endpoint)(nil), // 4: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Endpoint + (*ConfigRequest_V1_System_Service)(nil), // 5: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service + (*ConfigRequest_V1_System_Timeouts)(nil), // 6: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts + (*shared.Mlsa)(nil), // 7: chef.automate.infra.config.Mlsa + (*shared.TLSCredentials)(nil), // 8: chef.automate.infra.config.TLSCredentials + (*shared.Log)(nil), // 9: chef.automate.infra.config.Log + (*wrappers.StringValue)(nil), // 10: google.protobuf.StringValue + (*wrappers.BoolValue)(nil), // 11: google.protobuf.BoolValue + (*wrappers.Int32Value)(nil), // 12: google.protobuf.Int32Value + (*shared.External_Postgresql)(nil), // 13: chef.automate.infra.config.External.Postgresql } var file_config_pg_gateway_config_request_proto_depIdxs = []int32{ 1, // 0: chef.automate.infra.pg_gateway.ConfigRequest.v1:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1 2, // 1: chef.automate.infra.pg_gateway.ConfigRequest.V1.sys:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1.System - 5, // 2: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.mlsa:type_name -> chef.automate.infra.config.Mlsa - 3, // 3: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.service:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service - 6, // 4: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.tls:type_name -> chef.automate.infra.config.TLSCredentials - 7, // 5: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.log:type_name -> chef.automate.infra.config.Log - 4, // 6: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.timeouts:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts - 8, // 7: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service.host:type_name -> google.protobuf.StringValue - 9, // 8: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service.port:type_name -> google.protobuf.Int32Value - 10, // 9: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service.external_postgresql:type_name -> chef.automate.infra.config.External.Postgresql - 9, // 10: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts.connect:type_name -> google.protobuf.Int32Value - 9, // 11: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts.idle:type_name -> google.protobuf.Int32Value - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 7, // 2: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.mlsa:type_name -> chef.automate.infra.config.Mlsa + 5, // 3: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.service:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service + 8, // 4: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.tls:type_name -> chef.automate.infra.config.TLSCredentials + 9, // 5: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.log:type_name -> chef.automate.infra.config.Log + 6, // 6: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.timeouts:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts + 3, // 7: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.resolvers:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Resolvers + 10, // 8: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Resolvers.nameservers:type_name -> google.protobuf.StringValue + 11, // 9: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Resolvers.enable_system_nameservers:type_name -> google.protobuf.BoolValue + 11, // 10: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Endpoint.is_domain:type_name -> google.protobuf.BoolValue + 10, // 11: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Endpoint.address:type_name -> google.protobuf.StringValue + 10, // 12: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Endpoint.port:type_name -> google.protobuf.StringValue + 10, // 13: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service.host:type_name -> google.protobuf.StringValue + 12, // 14: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service.port:type_name -> google.protobuf.Int32Value + 13, // 15: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service.external_postgresql:type_name -> chef.automate.infra.config.External.Postgresql + 4, // 16: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Service.parsed_nodes:type_name -> chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Endpoint + 12, // 17: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts.connect:type_name -> google.protobuf.Int32Value + 12, // 18: chef.automate.infra.pg_gateway.ConfigRequest.V1.System.Timeouts.idle:type_name -> google.protobuf.Int32Value + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_config_pg_gateway_config_request_proto_init() } @@ -492,7 +670,7 @@ func file_config_pg_gateway_config_request_proto_init() { } } file_config_pg_gateway_config_request_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConfigRequest_V1_System_Service); i { + switch v := v.(*ConfigRequest_V1_System_Resolvers); i { case 0: return &v.state case 1: @@ -504,6 +682,30 @@ func file_config_pg_gateway_config_request_proto_init() { } } file_config_pg_gateway_config_request_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Endpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_pg_gateway_config_request_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigRequest_V1_System_Service); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_config_pg_gateway_config_request_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigRequest_V1_System_Timeouts); i { case 0: return &v.state @@ -522,7 +724,7 @@ func file_config_pg_gateway_config_request_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_config_pg_gateway_config_request_proto_rawDesc, NumEnums: 0, - NumMessages: 5, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/api/config/pg_gateway/config_request.proto b/api/config/pg_gateway/config_request.proto index 736c6f32f0c..7559fb70c6b 100644 --- a/api/config/pg_gateway/config_request.proto +++ b/api/config/pg_gateway/config_request.proto @@ -22,12 +22,25 @@ message ConfigRequest { chef.automate.infra.config.TLSCredentials tls = 3; chef.automate.infra.config.Log log = 4; Timeouts timeouts = 5; + Resolvers resolvers = 6; + + message Resolvers { + repeated google.protobuf.StringValue nameservers = 1; + google.protobuf.BoolValue enable_system_nameservers = 2; + } + + message Endpoint { + google.protobuf.BoolValue is_domain = 1; + google.protobuf.StringValue address = 2; + google.protobuf.StringValue port = 3; + } message Service { google.protobuf.StringValue host = 1 [deprecated=true]; // The listen host is no longer setable(localhost only) google.protobuf.Int32Value port = 2 [ (chef.automate.api.port) = { name: "service", default: 10145, protocol: "tcp" } ]; reserved 3; chef.automate.infra.config.External.Postgresql external_postgresql = 4; + repeated Endpoint parsed_nodes = 5; } message Timeouts { diff --git a/api/config/pg_gateway/config_request_test.go b/api/config/pg_gateway/config_request_test.go new file mode 100644 index 00000000000..500cfa97464 --- /dev/null +++ b/api/config/pg_gateway/config_request_test.go @@ -0,0 +1,65 @@ +package pg_gateway + +import ( + "testing" + + ac "github.com/chef/automate/api/config/shared" + w "github.com/chef/automate/api/config/shared/wrappers" + "github.com/golang/protobuf/ptypes/wrappers" + "github.com/stretchr/testify/require" +) + +func TestPgGateway(t *testing.T) { + t.Run("check nameserver by setting the enable nameserver flag", func(t *testing.T) { + c := DefaultConfigRequest() + c.V1.Sys.Resolvers.EnableSystemNameservers = w.Bool(true) + c.PrepareSystemConfig(&ac.TLSCredentials{}) + + require.True(t, len(c.V1.Sys.Resolvers.Nameservers) > 0) + }) + + t.Run("check nameserver by setting the nameservers", func(t *testing.T) { + c := DefaultConfigRequest() + c.V1.Sys.Resolvers.Nameservers = []*wrappers.StringValue{w.String("111.11.111.0")} + c.PrepareSystemConfig(&ac.TLSCredentials{}) + + require.True(t, len(c.V1.Sys.Resolvers.Nameservers) > 0) + require.False(t, c.V1.Sys.Resolvers.EnableSystemNameservers.GetValue()) + }) + + t.Run("check nameserver by setting both the enable nameserver flag and the nameservers", func(t *testing.T) { + c := DefaultConfigRequest() + c.V1.Sys.Resolvers.Nameservers = []*wrappers.StringValue{w.String("111.11.111.0")} + c.V1.Sys.Resolvers.EnableSystemNameservers = w.Bool(true) + c.PrepareSystemConfig(&ac.TLSCredentials{}) + + require.Equal(t, len(c.V1.Sys.Resolvers.Nameservers), 1) + require.Equal(t, c.V1.Sys.Resolvers.Nameservers[0].GetValue(), "111.11.111.0") + require.True(t, c.V1.Sys.Resolvers.EnableSystemNameservers.GetValue()) + }) + + t.Run("check node parsing from the config", func(t *testing.T) { + c := DefaultConfigRequest() + c.SetGlobalConfig((&ac.GlobalConfig{ + V1: &ac.V1{ + External: &ac.External{ + Postgresql: &ac.External_Postgresql{ + Enable: w.Bool(true), + Nodes: []*wrappers.StringValue{ + w.String("172.17.0.2:7432"), + w.String("172.17.0.3:7432"), + }, + }, + }, + }, + })) + + require.Equal(t, c.V1.Sys.Service.ParsedNodes[0].Address.GetValue(), "172.17.0.2") + require.Equal(t, c.V1.Sys.Service.ParsedNodes[0].Port.GetValue(), "7432") + require.False(t, c.V1.Sys.Service.ParsedNodes[0].IsDomain.GetValue()) + require.Equal(t, c.V1.Sys.Service.ParsedNodes[1].Address.GetValue(), "172.17.0.3") + require.Equal(t, c.V1.Sys.Service.ParsedNodes[1].Port.GetValue(), "7432") + require.False(t, c.V1.Sys.Service.ParsedNodes[1].IsDomain.GetValue()) + + }) +} diff --git a/buf.yaml b/buf.yaml index 92b034c90eb..524595a74f1 100644 --- a/buf.yaml +++ b/buf.yaml @@ -398,3 +398,4 @@ breaking: # it's the best/least bad option, you can add it here and remove it in a # later PR: # - external/oops/oops.proto + - config/esgateway/config_request.proto diff --git a/components/automate-es-gateway/habitat/config/nginx.conf b/components/automate-es-gateway/habitat/config/nginx.conf index 77278850f20..34c3b143bae 100644 --- a/components/automate-es-gateway/habitat/config/nginx.conf +++ b/components/automate-es-gateway/habitat/config/nginx.conf @@ -24,15 +24,15 @@ http { gzip_proxied {{cfg.ngx.http.gzip_proxied}}; gzip_types {{cfg.ngx.http.gzip_types}}; - {{~#if cfg.ngx.main.resolvers}} - resolver {{cfg.ngx.main.resolvers}}; - {{/if~}} + {{#if cfg.ngx.main.resolvers.nameservers_string}} + resolver {{cfg.ngx.main.resolvers.nameservers_string}}; + {{/if}} upstream external-es { {{~#if cfg.external.enable }} {{~#each cfg.external.parsed_endpoints as |endpoint|}} {{~#if endpoint.is_domain}} - {{~#if ../cfg.ngx.main.resolvers}} + {{~#if ../cfg.ngx.main.resolvers.nameservers_string}} # TODO(ssd) 2020-12-04: max_fails not currently supported by jdomain plugin. jdomain {{endpoint.address}} port={{endpoint.port}}; {{~else}} @@ -57,7 +57,7 @@ http { {{/if ~}} {{/if ~}} {{/eachAlive }} -{{/if}} +{{/if~}} keepalive 8; } diff --git a/components/automate-pg-gateway/habitat/config/haproxy.conf b/components/automate-pg-gateway/habitat/config/haproxy.conf index 661c2537680..aed747a968e 100644 --- a/components/automate-pg-gateway/habitat/config/haproxy.conf +++ b/components/automate-pg-gateway/habitat/config/haproxy.conf @@ -32,6 +32,12 @@ defaults log global option tcplog +{{~#if cfg.resolvers.nameservers}} +resolvers pgdns + {{~#each cfg.resolvers.nameservers as |resolver|}} + nameserver dns{{@index}} {{resolver}} + {{~/each}} +{{~/if}} frontend postgresql bind 127.0.0.1:{{cfg.service.port}} @@ -41,13 +47,21 @@ frontend postgresql backend automate_postgresql {{~#if cfg.service.external_postgresql.enable }} balance roundrobin - {{~#each cfg.service.external_postgresql.nodes as |node|}} - server {{node}} {{node}} - {{~/each}} -{{else}} - {{~#eachAlive bind.automate-postgresql.members as |member|}} - {{#if @last}} - server 127.0.0.1 127.0.0.1:{{member.cfg.port}} - {{~/if}} - {{~/eachAlive}} -{{~/if}} + {{~#each cfg.service.parsed_nodes as |node|}} + {{~#if node.is_domain}} + {{~#if ../cfg.resolvers.nameservers }} + server-template {{node.address}} 8 {{node.address}}:{{node.port}} check resolvers pgdns init-addr none resolve-prefer ipv4 + {{else}} + server {{node.address}} {{node.address}}:{{node.port}} + {{~/if}} + {{else}} + server {{node.address}} {{node.address}}:{{node.port}} + {{~/if}} + {{~/each}} +{{else~}} + {{~#eachAlive bind.automate-postgresql.members as |member|}} + {{#if @last}} + server 127.0.0.1 127.0.0.1:{{member.cfg.port}} + {{~/if}} + {{~/eachAlive}} +{{/if~}}