// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.4
// 	protoc        v5.29.0
// source: core/v1/httpserver.proto

package v1

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	kernel "github.com/aileron-gateway/aileron-gateway/apis/kernel"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// HTTPServer resource definition.
// apiVersion="core/v1", kind="HTTPServer".
type HTTPServer struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	APIVersion    string                 `protobuf:"bytes,1,opt,name=APIVersion,json=apiVersion,proto3" json:"APIVersion,omitempty"`
	Kind          string                 `protobuf:"bytes,2,opt,name=Kind,json=kind,proto3" json:"Kind,omitempty"`
	Metadata      *kernel.Metadata       `protobuf:"bytes,3,opt,name=Metadata,json=metadata,proto3" json:"Metadata,omitempty"`
	Spec          *HTTPServerSpec        `protobuf:"bytes,4,opt,name=Spec,json=spec,proto3" json:"Spec,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTTPServer) Reset() {
	*x = HTTPServer{}
	mi := &file_core_v1_httpserver_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTPServer) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPServer) ProtoMessage() {}

func (x *HTTPServer) ProtoReflect() protoreflect.Message {
	mi := &file_core_v1_httpserver_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPServer.ProtoReflect.Descriptor instead.
func (*HTTPServer) Descriptor() ([]byte, []int) {
	return file_core_v1_httpserver_proto_rawDescGZIP(), []int{0}
}

func (x *HTTPServer) GetAPIVersion() string {
	if x != nil {
		return x.APIVersion
	}
	return ""
}

func (x *HTTPServer) GetKind() string {
	if x != nil {
		return x.Kind
	}
	return ""
}

func (x *HTTPServer) GetMetadata() *kernel.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *HTTPServer) GetSpec() *HTTPServerSpec {
	if x != nil {
		return x.Spec
	}
	return nil
}

// HTTPServerSpec is the specifications for the HTTPServer object.
type HTTPServerSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// Addr is the address which the server listen to.
	// If not set, default port is used.
	// The format must be "host:port", ":port" or "host%zone:port".
	// For example, "0.0.0.0:443", "[::1]:443", ":443", "localhost:443", ":https".
	// See more address example at https://pkg.go.dev/net#Dial.
	// To use unix domain socket such like, "/var/run/gateway.sock" or "@gateway",
	// set Network and Address in the ListenConfig of HTTP2Config field.
	// Default is [":8080"].
	Addr string `protobuf:"bytes,1,opt,name=Addr,json=addr,proto3" json:"Addr,omitempty"`
	// [OPTIONAL]
	// ShutdownTimeout is the timeout dutation of graceful shutdown of the server in seconds.
	// Default is [30].
	ShutdownTimeout int32 `protobuf:"varint,2,opt,name=ShutdownTimeout,json=shutdownTimeout,proto3" json:"ShutdownTimeout,omitempty"`
	// [OPTIONAL]
	// HTTPConfig is the configuration for HTTP/1.1 and HTTP/2 server.
	// HTTP server is enabled if both HTTP2Config and HTTP3Config
	// are not configured.
	// Default is not set.
	HTTPConfig *HTTPConfig `protobuf:"bytes,3,opt,name=HTTPConfig,json=httpConfig,proto3" json:"HTTPConfig,omitempty"`
	// [OPTIONAL]
	// HTTP2Config is the additional config for HTTP/2 server.
	// Default is not set.
	HTTP2Config *HTTP2Config `protobuf:"bytes,4,opt,name=HTTP2Config,json=http2Config,proto3" json:"HTTP2Config,omitempty"`
	// [OPTIONAL]
	// HTTP3Config is the configuration for HTTP3, or Quic server.
	// HTTP2 server is enabled if both HTTP2Config and HTTP3Config
	// was not configured.
	// This configuration only enables quick(udp) server.
	// So, it is usually required to enable both HTTP2 (tcp) and HTTP3 (udp) servers
	// to access this server directory from browsers.
	// Default is not set.
	HTTP3Config *HTTP3Config `protobuf:"bytes,5,opt,name=HTTP3Config,json=http3Config,proto3" json:"HTTP3Config,omitempty"`
	// [OPTIONAL]
	// Middleware is the list of middleware applied for the entire server.
	// Default is not set.
	Middleware []*kernel.Reference `protobuf:"bytes,6,rep,name=Middleware,json=middleware,proto3" json:"Middleware,omitempty"`
	// [OPTIONAL]
	// VirtualHosts is the list of virtual host specification.
	// Use this for configuring the route for this server.
	// Default is not set.
	VirtualHosts []*VirtualHostSpec `protobuf:"bytes,7,rep,name=VirtualHosts,json=virtualHosts,proto3" json:"VirtualHosts,omitempty"`
	// [OPTIONAL]
	// EnableProfile enables profile endpoint for the server.
	// If true, following endpoints are registered to the server.
	//   - pprof.Index at "GET /debug/pprof/"
	//   - pprof.Cmdline at "GET /debug/pprof/cmdline"
	//   - pprof.Profile at "GET /debug/pprof/profile"
	//   - pprof.Symbol at "GET /debug/pprof/symbol"
	//   - pprof.Trace at "GET /debug/pprof/trace"
	//
	// See https://pkg.go.dev/net/http/pprof.
	// DO NOT enable this on production environment.
	// Default is [false].
	EnableProfile bool `protobuf:"varint,8,opt,name=EnableProfile,json=enableProfile,proto3" json:"EnableProfile,omitempty"`
	// [OPTIONAL]
	// EnableExpvar enables expvar endpoint for the server.
	// The endpoint is "GET /debug/vars".
	// See https://pkg.go.dev/expvar.
	// DO NOT enable this on production environment.
	// Default is [false].
	EnableExpvar  bool `protobuf:"varint,9,opt,name=EnableExpvar,json=enableExpvar,proto3" json:"EnableExpvar,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTTPServerSpec) Reset() {
	*x = HTTPServerSpec{}
	mi := &file_core_v1_httpserver_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTPServerSpec) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPServerSpec) ProtoMessage() {}

func (x *HTTPServerSpec) ProtoReflect() protoreflect.Message {
	mi := &file_core_v1_httpserver_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPServerSpec.ProtoReflect.Descriptor instead.
func (*HTTPServerSpec) Descriptor() ([]byte, []int) {
	return file_core_v1_httpserver_proto_rawDescGZIP(), []int{1}
}

func (x *HTTPServerSpec) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *HTTPServerSpec) GetShutdownTimeout() int32 {
	if x != nil {
		return x.ShutdownTimeout
	}
	return 0
}

func (x *HTTPServerSpec) GetHTTPConfig() *HTTPConfig {
	if x != nil {
		return x.HTTPConfig
	}
	return nil
}

func (x *HTTPServerSpec) GetHTTP2Config() *HTTP2Config {
	if x != nil {
		return x.HTTP2Config
	}
	return nil
}

func (x *HTTPServerSpec) GetHTTP3Config() *HTTP3Config {
	if x != nil {
		return x.HTTP3Config
	}
	return nil
}

func (x *HTTPServerSpec) GetMiddleware() []*kernel.Reference {
	if x != nil {
		return x.Middleware
	}
	return nil
}

func (x *HTTPServerSpec) GetVirtualHosts() []*VirtualHostSpec {
	if x != nil {
		return x.VirtualHosts
	}
	return nil
}

func (x *HTTPServerSpec) GetEnableProfile() bool {
	if x != nil {
		return x.EnableProfile
	}
	return false
}

func (x *HTTPServerSpec) GetEnableExpvar() bool {
	if x != nil {
		return x.EnableExpvar
	}
	return false
}

// HTTPConfig is the configuration for a HTTP 1/2 server.
type HTTPConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// EnableGeneralOptionsHandler, if false, passes "OPTIONS *" requests to the Handler,
	// otherwise responds with 200 OK and Content-Length: 0.
	// This fileid is used only for http server, not for http3 sever.
	// Default is [false].
	EnableGeneralOptionsHandler bool `protobuf:"varint,1,opt,name=EnableGeneralOptionsHandler,json=enableGeneralOptionsHandler,proto3" json:"EnableGeneralOptionsHandler,omitempty"`
	// [OPTIONAL]
	// ReadTimeout is the maximum duration for reading the entire request, including the body.
	// A zero or negative value means there will be no timeout.
	// Because each request body's acceptable deadline or upload rate are not decided per-request
	// by this ReadTimeout, most users will prefer to use ReadHeaderTimeout.
	// It is valid to use them both.
	// This fileid is used only for http server, not for http3 sever.
	// Default is [30] seconds.
	ReadTimeout int64 `protobuf:"varint,2,opt,name=ReadTimeout,json=readTimeout,proto3" json:"ReadTimeout,omitempty"`
	// [OPTIONAL]
	// ReadHeaderTimeout is the amount of time allowed to read request headers.
	// The connection's read deadline is reset after reading the headers.
	// If ReadHeaderTimeout is zero, the value of ReadTimeout is used.
	// If both are zero, there is no timeout.
	// This fileid is used only for http server, not for http3 sever.
	// Default is [30] seconds.
	ReadHeaderTimeout int64 `protobuf:"varint,3,opt,name=ReadHeaderTimeout,json=readHeaderTimeout,proto3" json:"ReadHeaderTimeout,omitempty"`
	// [OPTIONAL]
	// WriteTimeout is the maximum duration before timing out writes of the response.
	// It is reset whenever a new request's header is read.
	// Like ReadTimeout, this is not applied per-request basis.
	// A zero or negative value means there will be no timeout.
	// This fileid is used only for http server, not for http3 sever.
	// Default is [30] seconds.
	WriteTimeout int64 `protobuf:"varint,4,opt,name=WriteTimeout,json=writeTimeout,proto3" json:"WriteTimeout,omitempty"`
	// [OPTIONAL]
	// WriteTimeout is the maximum duration before timing out writes of the response.
	// It is reset whenever a new request's header is read.
	// Like ReadTimeout, this is not applied per-request basis.
	// A zero or negative value means there will be no timeout.
	// This fileid is used only for http server, not for http3 sever.
	// Default is [10] seconds.
	IdleTimeout int64 `protobuf:"varint,5,opt,name=IdleTimeout,json=idleTimeout,proto3" json:"IdleTimeout,omitempty"`
	// [OPTIONAL]
	// MaxHeaderBytes controls the maximum number of bytes the server will read
	// parsing the request header's keys and values, including the request line.
	// It does not limit the size of the request body.
	// Default is [8192].
	MaxHeaderBytes int32 `protobuf:"varint,6,opt,name=MaxHeaderBytes,json=maxHeaderBytes,proto3" json:"MaxHeaderBytes,omitempty"`
	// [OPTIONAL]
	// DisableKeepAlive disables HTTP keep-alives.
	// Only very resource-constrained environments or servers in the process of shutting down should disable them.
	// This fileid is used only for http server, not for http3 sever.
	// Default is [false].
	DisableKeepAlive bool `protobuf:"varint,7,opt,name=DisableKeepAlive,json=disableKeepAlive,proto3" json:"DisableKeepAlive,omitempty"`
	// [OPTIONAL]
	// ListenConfig is the config for TCP listener.
	// Default values are used when this field is not used.
	// TLSConfig in this field will be ignored.
	// Network must be "tcp"
	ListenConfig *kernel.ListenConfig `protobuf:"bytes,8,opt,name=ListenConfig,json=listenConfig,proto3" json:"ListenConfig,omitempty"`
	// [OPTIONAL]
	// AltSvc is the Alt-Svc header value.
	// Alt-Svc header won't be added to response headers if the value is empty
	// Default is not set, or empty string [""].
	AltSvc string `protobuf:"bytes,9,opt,name=AltSvc,json=altSvc,proto3" json:"AltSvc,omitempty"`
	// [OPTIONAL]
	// AllowHTTP2 allows HTTP/2 connection with default configuration
	// using the given TLS configurations if any.
	// Default is [false].
	AllowHTTP2    bool `protobuf:"varint,10,opt,name=AllowHTTP2,json=allowHTTP2,proto3" json:"AllowHTTP2,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTTPConfig) Reset() {
	*x = HTTPConfig{}
	mi := &file_core_v1_httpserver_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTPConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPConfig) ProtoMessage() {}

func (x *HTTPConfig) ProtoReflect() protoreflect.Message {
	mi := &file_core_v1_httpserver_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPConfig.ProtoReflect.Descriptor instead.
func (*HTTPConfig) Descriptor() ([]byte, []int) {
	return file_core_v1_httpserver_proto_rawDescGZIP(), []int{2}
}

func (x *HTTPConfig) GetEnableGeneralOptionsHandler() bool {
	if x != nil {
		return x.EnableGeneralOptionsHandler
	}
	return false
}

func (x *HTTPConfig) GetReadTimeout() int64 {
	if x != nil {
		return x.ReadTimeout
	}
	return 0
}

func (x *HTTPConfig) GetReadHeaderTimeout() int64 {
	if x != nil {
		return x.ReadHeaderTimeout
	}
	return 0
}

func (x *HTTPConfig) GetWriteTimeout() int64 {
	if x != nil {
		return x.WriteTimeout
	}
	return 0
}

func (x *HTTPConfig) GetIdleTimeout() int64 {
	if x != nil {
		return x.IdleTimeout
	}
	return 0
}

func (x *HTTPConfig) GetMaxHeaderBytes() int32 {
	if x != nil {
		return x.MaxHeaderBytes
	}
	return 0
}

func (x *HTTPConfig) GetDisableKeepAlive() bool {
	if x != nil {
		return x.DisableKeepAlive
	}
	return false
}

func (x *HTTPConfig) GetListenConfig() *kernel.ListenConfig {
	if x != nil {
		return x.ListenConfig
	}
	return nil
}

func (x *HTTPConfig) GetAltSvc() string {
	if x != nil {
		return x.AltSvc
	}
	return ""
}

func (x *HTTPConfig) GetAllowHTTP2() bool {
	if x != nil {
		return x.AllowHTTP2
	}
	return false
}

// HTTP2Config is the configuration for HTTP2 servers.
// Configuable fields are related to the HTTP2 server
// found at https://pkg.go.dev/golang.org/x/net/http2#Server
type HTTP2Config struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// MaxConcurrentStreams optionally specifies the number of
	// concurrent streams that each client may have open at a
	// time. This is unrelated to the number of http.Handler goroutines
	// which may be active globally, which is MaxHandlers.
	// If zero, MaxConcurrentStreams defaults to at least 100, per
	// the HTTP/2 spec's recommendations.
	// Default is zero, [0].
	MaxConcurrentStreams uint32 `protobuf:"varint,1,opt,name=MaxConcurrentStreams,json=maxConcurrentStreams,proto3" json:"MaxConcurrentStreams,omitempty"`
	// [OPTIONAL]
	// MaxDecoderHeaderTableSize optionally specifies the http2
	// SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It
	// informs the remote endpoint of the maximum size of the header compression
	// table used to decode header blocks, in octets. If zero, the default value
	// of 4096 is used.
	// Default is zero, [0].
	MaxDecoderHeaderTableSize uint32 `protobuf:"varint,2,opt,name=MaxDecoderHeaderTableSize,json=maxDecoderHeaderTableSize,proto3" json:"MaxDecoderHeaderTableSize,omitempty"`
	// [OPTIONAL]
	// MaxEncoderHeaderTableSize optionally specifies an upper limit for the
	// header compression table used for encoding request headers. Received
	// SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero,
	// the default value of 4096 is used.
	// Default is zero, [0].
	MaxEncoderHeaderTableSize uint32 `protobuf:"varint,3,opt,name=MaxEncoderHeaderTableSize,json=maxEncoderHeaderTableSize,proto3" json:"MaxEncoderHeaderTableSize,omitempty"`
	// [OPTIONAL]
	// MaxReadFrameSize optionally specifies the largest frame
	// this server is willing to read. A valid value is between
	// 16k and 16M, inclusive. If zero or otherwise invalid, a
	// default value is used.
	// Default is zero, [0].
	MaxReadFrameSize uint32 `protobuf:"varint,4,opt,name=MaxReadFrameSize,json=maxReadFrameSize,proto3" json:"MaxReadFrameSize,omitempty"`
	// [OPTIONAL]
	// PermitProhibitedCipherSuites, if true, permits the use of
	// cipher suites prohibited by the HTTP/2 spec.
	// Default is [false].
	PermitProhibitedCipherSuites bool `protobuf:"varint,5,opt,name=PermitProhibitedCipherSuites,json=permitProhibitedCipherSuites,proto3" json:"PermitProhibitedCipherSuites,omitempty"`
	// [OPTIONAL]
	// IdleTimeout specifies how long until idle clients should be
	// closed with a GOAWAY frame. PING frames are not considered
	// activity for the purposes of IdleTimeout.
	// If zero or negative, there is no timeout.
	// Default is zero, [0].
	IdleTimeout uint32 `protobuf:"varint,6,opt,name=IdleTimeout,json=idleTimeout,proto3" json:"IdleTimeout,omitempty"`
	// [OPTIONAL]
	// MaxUploadBufferPerConnection is the size of the initial flow
	// control window for each connections. The HTTP/2 spec does not
	// allow this to be smaller than 65535 or larger than 2^32-1.
	// If the value is outside this range, a default value will be
	// used instead.
	// Default is zero, [0].
	MaxUploadBufferPerConnection int32 `protobuf:"varint,7,opt,name=MaxUploadBufferPerConnection,json=maxUploadBufferPerConnection,proto3" json:"MaxUploadBufferPerConnection,omitempty"`
	// [OPTIONAL]
	// MaxUploadBufferPerStream is the size of the initial flow control
	// window for each stream. The HTTP/2 spec does not allow this to
	// be larger than 2^32-1. If the value is zero or larger than the
	// maximum, a default value will be used instead.
	// Default is zero, [0].
	MaxUploadBufferPerStream int32 `protobuf:"varint,8,opt,name=MaxUploadBufferPerStream,json=maxUploadBufferPerStream,proto3" json:"MaxUploadBufferPerStream,omitempty"`
	// [OPTIONAL]
	// EnableH2C is the flag to set h2c header.
	// Default is [false].
	EnableH2C bool `protobuf:"varint,9,opt,name=EnableH2C,json=enableH2C,proto3" json:"EnableH2C,omitempty"`
	// [OPTIONAL]
	// AltSvc is the Alt-Svc header value.
	// Alt-Svc header won't be added to
	// response headers if the value is empty
	// Default is not set, or empty string [""].
	AltSvc        string `protobuf:"bytes,10,opt,name=AltSvc,json=altSvc,proto3" json:"AltSvc,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTTP2Config) Reset() {
	*x = HTTP2Config{}
	mi := &file_core_v1_httpserver_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTP2Config) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTP2Config) ProtoMessage() {}

func (x *HTTP2Config) ProtoReflect() protoreflect.Message {
	mi := &file_core_v1_httpserver_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTP2Config.ProtoReflect.Descriptor instead.
func (*HTTP2Config) Descriptor() ([]byte, []int) {
	return file_core_v1_httpserver_proto_rawDescGZIP(), []int{3}
}

func (x *HTTP2Config) GetMaxConcurrentStreams() uint32 {
	if x != nil {
		return x.MaxConcurrentStreams
	}
	return 0
}

func (x *HTTP2Config) GetMaxDecoderHeaderTableSize() uint32 {
	if x != nil {
		return x.MaxDecoderHeaderTableSize
	}
	return 0
}

func (x *HTTP2Config) GetMaxEncoderHeaderTableSize() uint32 {
	if x != nil {
		return x.MaxEncoderHeaderTableSize
	}
	return 0
}

func (x *HTTP2Config) GetMaxReadFrameSize() uint32 {
	if x != nil {
		return x.MaxReadFrameSize
	}
	return 0
}

func (x *HTTP2Config) GetPermitProhibitedCipherSuites() bool {
	if x != nil {
		return x.PermitProhibitedCipherSuites
	}
	return false
}

func (x *HTTP2Config) GetIdleTimeout() uint32 {
	if x != nil {
		return x.IdleTimeout
	}
	return 0
}

func (x *HTTP2Config) GetMaxUploadBufferPerConnection() int32 {
	if x != nil {
		return x.MaxUploadBufferPerConnection
	}
	return 0
}

func (x *HTTP2Config) GetMaxUploadBufferPerStream() int32 {
	if x != nil {
		return x.MaxUploadBufferPerStream
	}
	return 0
}

func (x *HTTP2Config) GetEnableH2C() bool {
	if x != nil {
		return x.EnableH2C
	}
	return false
}

func (x *HTTP2Config) GetAltSvc() string {
	if x != nil {
		return x.AltSvc
	}
	return ""
}

// HTTP3Config is the configuration for HTTP3 servers.
// Configuable fields are related to the HTTP3 server
// found at https://pkg.go.dev/github.com/quic-go/quic-go/http3#Server
type HTTP3Config struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// QuicConfig is the configuration for quic protocol of http3 transport layer.
	// Default values are used when this field is not specified.
	// HTTP3 server is enabled when this field is set.
	QuicConfig *kernel.QuicConfig `protobuf:"bytes,1,opt,name=QuicConfig,json=quicConfig,proto3" json:"QuicConfig,omitempty"`
	// [OPTIONAL]
	// TLSConfig is the configuration for TLS connections.
	// Default values are used when this field is not specified.
	TLSConfig *kernel.TLSConfig `protobuf:"bytes,2,opt,name=TLSConfig,json=tlsConfig,proto3" json:"TLSConfig,omitempty"`
	// [OPTIONAL]
	// MaxHeaderBytes controls the maximum number of bytes the server will read
	// parsing the request header's keys and values, including the request line.
	// It does not limit the size of the request body.
	// Default is [8192].
	MaxHeaderBytes int32 `protobuf:"varint,3,opt,name=MaxHeaderBytes,json=maxHeaderBytes,proto3" json:"MaxHeaderBytes,omitempty"`
	// [OPTIONAL]
	// AltSvc is the Alt-Svc header value.
	// Alt-Svc header won't be added to
	// response headers if the value is empty
	// Default is not set, or empty string [""].
	AltSvc        string `protobuf:"bytes,4,opt,name=AltSvc,json=altSvc,proto3" json:"AltSvc,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTTP3Config) Reset() {
	*x = HTTP3Config{}
	mi := &file_core_v1_httpserver_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTP3Config) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTP3Config) ProtoMessage() {}

func (x *HTTP3Config) ProtoReflect() protoreflect.Message {
	mi := &file_core_v1_httpserver_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTP3Config.ProtoReflect.Descriptor instead.
func (*HTTP3Config) Descriptor() ([]byte, []int) {
	return file_core_v1_httpserver_proto_rawDescGZIP(), []int{4}
}

func (x *HTTP3Config) GetQuicConfig() *kernel.QuicConfig {
	if x != nil {
		return x.QuicConfig
	}
	return nil
}

func (x *HTTP3Config) GetTLSConfig() *kernel.TLSConfig {
	if x != nil {
		return x.TLSConfig
	}
	return nil
}

func (x *HTTP3Config) GetMaxHeaderBytes() int32 {
	if x != nil {
		return x.MaxHeaderBytes
	}
	return 0
}

func (x *HTTP3Config) GetAltSvc() string {
	if x != nil {
		return x.AltSvc
	}
	return ""
}

// VirtualHostSpec is the specification of each virtual hosts.
type VirtualHostSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// Hosts is the list of hostname to accept. Vertual hostnames in other words.
	// Because the Host headers of requests are used for routing, list all FQDN here including sub domains.
	// All FQDN must be unique for among the server.
	// When no hosts are set, handler are registered to the default mux.
	// Default is not set.
	Hosts []string `protobuf:"bytes,1,rep,name=Hosts,json=hosts,proto3" json:"Hosts,omitempty"`
	// [OPTIONAL]
	// Pattern is the path pattern for this hosts.
	// The specified pattern will be added as a prefix
	// to the path patterns of all handlers.
	// This pattern is joined with the registered handler.
	// Default is not set, or empty string[""].
	Pattern string `protobuf:"bytes,2,opt,name=Pattern,json=pattern,proto3" json:"Pattern,omitempty"`
	// [OPTIONAL]
	// Methods is the list of allowed HTTP methods to ba handled.
	// This list will be whitelist of HTTP methods if set at least one.
	// If not set, methods set at each handlers are used.
	// Default is not set, or allow all.
	Methods []HTTPMethod `protobuf:"varint,3,rep,packed,name=Methods,json=methods,proto3,enum=core.v1.HTTPMethod" json:"Methods,omitempty"`
	// [OPTIONAL]
	// Middleware is the list of middleware applied for all handlers.
	// Default is not set.
	Middleware []*kernel.Reference `protobuf:"bytes,4,rep,name=Middleware,json=middleware,proto3" json:"Middleware,omitempty"`
	// [OPTIONAL]
	// Handlers is the list of handler for this host.
	// This is optional but specify at least 1 handler to serve some apis.
	// Default is not set.
	Handlers      []*HTTPHandlerSpec `protobuf:"bytes,5,rep,name=Handlers,json=handlers,proto3" json:"Handlers,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *VirtualHostSpec) Reset() {
	*x = VirtualHostSpec{}
	mi := &file_core_v1_httpserver_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *VirtualHostSpec) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VirtualHostSpec) ProtoMessage() {}

func (x *VirtualHostSpec) ProtoReflect() protoreflect.Message {
	mi := &file_core_v1_httpserver_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VirtualHostSpec.ProtoReflect.Descriptor instead.
func (*VirtualHostSpec) Descriptor() ([]byte, []int) {
	return file_core_v1_httpserver_proto_rawDescGZIP(), []int{5}
}

func (x *VirtualHostSpec) GetHosts() []string {
	if x != nil {
		return x.Hosts
	}
	return nil
}

func (x *VirtualHostSpec) GetPattern() string {
	if x != nil {
		return x.Pattern
	}
	return ""
}

func (x *VirtualHostSpec) GetMethods() []HTTPMethod {
	if x != nil {
		return x.Methods
	}
	return nil
}

func (x *VirtualHostSpec) GetMiddleware() []*kernel.Reference {
	if x != nil {
		return x.Middleware
	}
	return nil
}

func (x *VirtualHostSpec) GetHandlers() []*HTTPHandlerSpec {
	if x != nil {
		return x.Handlers
	}
	return nil
}

var File_core_v1_httpserver_proto protoreflect.FileDescriptor

var file_core_v1_httpserver_proto_rawDesc = string([]byte{
	0x0a, 0x18, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x73, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x6f, 0x72, 0x65,
	0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
	0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x12, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x74,
	0x74, 0x70, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x14, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2f, 0x72, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9b, 0x01, 0x0a,
	0x0a, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x41,
	0x50, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x4b,
	0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12,
	0x2c, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x10, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64,
	0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a,
	0x04, 0x53, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f,
	0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
	0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xae, 0x03, 0x0a, 0x0e, 0x48,
	0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a,
	0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64,
	0x72, 0x12, 0x28, 0x0a, 0x0f, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x54, 0x69, 0x6d,
	0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x73, 0x68, 0x75, 0x74,
	0x64, 0x6f, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x48,
	0x54, 0x54, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x13, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x36, 0x0a, 0x0b, 0x48, 0x54, 0x54, 0x50, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x48, 0x54, 0x54, 0x50, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x68, 0x74, 0x74,
	0x70, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x0b, 0x48, 0x54, 0x54, 0x50,
	0x33, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x33, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x33, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x31, 0x0a, 0x0a, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65, 0x18, 0x06,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65,
	0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77,
	0x61, 0x72, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f,
	0x73, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x53,
	0x70, 0x65, 0x63, 0x52, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74,
	0x73, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
	0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
	0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x45, 0x78, 0x70, 0x76, 0x61, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x76, 0x61, 0x72, 0x22, 0xaa, 0x03, 0x0a, 0x0a,
	0x48, 0x54, 0x54, 0x50, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x1b, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x1b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b,
	0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2c,
	0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x72, 0x65, 0x61, 0x64, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x22, 0x0a, 0x0c,
	0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x12, 0x20, 0x0a, 0x0b, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f,
	0x75, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42,
	0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x44, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x65,
	0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6b,
	0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x16, 0x0a, 0x06, 0x41, 0x6c, 0x74, 0x53, 0x76, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x61, 0x6c, 0x74, 0x53, 0x76, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x6c, 0x6c, 0x6f,
	0x77, 0x48, 0x54, 0x54, 0x50, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c,
	0x6c, 0x6f, 0x77, 0x48, 0x54, 0x54, 0x50, 0x32, 0x22, 0x85, 0x04, 0x0a, 0x0b, 0x48, 0x54, 0x54,
	0x50, 0x32, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x14, 0x4d, 0x61, 0x78, 0x43,
	0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75,
	0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x3c, 0x0a, 0x19,
	0x4d, 0x61, 0x78, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x19, 0x6d, 0x61, 0x78, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x4d, 0x61,
	0x78, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x61,
	0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x6d,
	0x61, 0x78, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54,
	0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4d, 0x61, 0x78, 0x52,
	0x65, 0x61, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x61, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65,
	0x53, 0x69, 0x7a, 0x65, 0x12, 0x42, 0x0a, 0x1c, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x50, 0x72,
	0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x65, 0x64, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x53, 0x75,
	0x69, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x70, 0x65, 0x72, 0x6d,
	0x69, 0x74, 0x50, 0x72, 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x65, 0x64, 0x43, 0x69, 0x70, 0x68,
	0x65, 0x72, 0x53, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x64, 0x6c, 0x65,
	0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x69,
	0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x4d, 0x61,
	0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x50, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x1c, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65,
	0x72, 0x50, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a,
	0x0a, 0x18, 0x4d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65,
	0x72, 0x50, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x18, 0x6d, 0x61, 0x78, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65,
	0x72, 0x50, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e,
	0x61, 0x62, 0x6c, 0x65, 0x48, 0x32, 0x43, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x32, 0x43, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x6c, 0x74, 0x53,
	0x76, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6c, 0x74, 0x53, 0x76, 0x63,
	0x22, 0xb2, 0x01, 0x0a, 0x0b, 0x48, 0x54, 0x54, 0x50, 0x33, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x32, 0x0a, 0x0a, 0x51, 0x75, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x51, 0x75,
	0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x71, 0x75, 0x69, 0x63, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c,
	0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x74, 0x6c, 0x73, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d,
	0x61, 0x78, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a,
	0x06, 0x41, 0x6c, 0x74, 0x53, 0x76, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61,
	0x6c, 0x74, 0x53, 0x76, 0x63, 0x22, 0x83, 0x02, 0x0a, 0x0f, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61,
	0x6c, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x34, 0x0a, 0x05, 0x48, 0x6f, 0x73,
	0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x1e, 0xba, 0x48, 0x1b, 0x92, 0x01, 0x18,
	0x18, 0x01, 0x22, 0x14, 0x72, 0x12, 0x32, 0x10, 0x5e, 0x5b, 0x30, 0x2d, 0x39, 0x61, 0x2d, 0x7a,
	0x41, 0x2d, 0x5a, 0x2e, 0x2d, 0x5d, 0x2b, 0x24, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x12,
	0x18, 0x0a, 0x07, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x4d, 0x65, 0x74,
	0x68, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x72,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42,
	0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f,
	0x64, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x61, 0x72, 0x65,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e,
	0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x64, 0x64, 0x6c,
	0x65, 0x77, 0x61, 0x72, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
	0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x53, 0x70, 0x65,
	0x63, 0x52, 0x08, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x73, 0x42, 0x39, 0x5a, 0x37, 0x67,
	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x6f,
	0x6e, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x6f,
	0x6e, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
	0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
})

var (
	file_core_v1_httpserver_proto_rawDescOnce sync.Once
	file_core_v1_httpserver_proto_rawDescData []byte
)

func file_core_v1_httpserver_proto_rawDescGZIP() []byte {
	file_core_v1_httpserver_proto_rawDescOnce.Do(func() {
		file_core_v1_httpserver_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_core_v1_httpserver_proto_rawDesc), len(file_core_v1_httpserver_proto_rawDesc)))
	})
	return file_core_v1_httpserver_proto_rawDescData
}

var file_core_v1_httpserver_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_core_v1_httpserver_proto_goTypes = []any{
	(*HTTPServer)(nil),          // 0: core.v1.HTTPServer
	(*HTTPServerSpec)(nil),      // 1: core.v1.HTTPServerSpec
	(*HTTPConfig)(nil),          // 2: core.v1.HTTPConfig
	(*HTTP2Config)(nil),         // 3: core.v1.HTTP2Config
	(*HTTP3Config)(nil),         // 4: core.v1.HTTP3Config
	(*VirtualHostSpec)(nil),     // 5: core.v1.VirtualHostSpec
	(*kernel.Metadata)(nil),     // 6: kernel.Metadata
	(*kernel.Reference)(nil),    // 7: kernel.Reference
	(*kernel.ListenConfig)(nil), // 8: kernel.ListenConfig
	(*kernel.QuicConfig)(nil),   // 9: kernel.QuicConfig
	(*kernel.TLSConfig)(nil),    // 10: kernel.TLSConfig
	(HTTPMethod)(0),             // 11: core.v1.HTTPMethod
	(*HTTPHandlerSpec)(nil),     // 12: core.v1.HTTPHandlerSpec
}
var file_core_v1_httpserver_proto_depIdxs = []int32{
	6,  // 0: core.v1.HTTPServer.Metadata:type_name -> kernel.Metadata
	1,  // 1: core.v1.HTTPServer.Spec:type_name -> core.v1.HTTPServerSpec
	2,  // 2: core.v1.HTTPServerSpec.HTTPConfig:type_name -> core.v1.HTTPConfig
	3,  // 3: core.v1.HTTPServerSpec.HTTP2Config:type_name -> core.v1.HTTP2Config
	4,  // 4: core.v1.HTTPServerSpec.HTTP3Config:type_name -> core.v1.HTTP3Config
	7,  // 5: core.v1.HTTPServerSpec.Middleware:type_name -> kernel.Reference
	5,  // 6: core.v1.HTTPServerSpec.VirtualHosts:type_name -> core.v1.VirtualHostSpec
	8,  // 7: core.v1.HTTPConfig.ListenConfig:type_name -> kernel.ListenConfig
	9,  // 8: core.v1.HTTP3Config.QuicConfig:type_name -> kernel.QuicConfig
	10, // 9: core.v1.HTTP3Config.TLSConfig:type_name -> kernel.TLSConfig
	11, // 10: core.v1.VirtualHostSpec.Methods:type_name -> core.v1.HTTPMethod
	7,  // 11: core.v1.VirtualHostSpec.Middleware:type_name -> kernel.Reference
	12, // 12: core.v1.VirtualHostSpec.Handlers:type_name -> core.v1.HTTPHandlerSpec
	13, // [13:13] is the sub-list for method output_type
	13, // [13:13] is the sub-list for method input_type
	13, // [13:13] is the sub-list for extension type_name
	13, // [13:13] is the sub-list for extension extendee
	0,  // [0:13] is the sub-list for field type_name
}

func init() { file_core_v1_httpserver_proto_init() }
func file_core_v1_httpserver_proto_init() {
	if File_core_v1_httpserver_proto != nil {
		return
	}
	file_core_v1_http_proto_init()
	file_core_v1_httphandler_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_core_v1_httpserver_proto_rawDesc), len(file_core_v1_httpserver_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_core_v1_httpserver_proto_goTypes,
		DependencyIndexes: file_core_v1_httpserver_proto_depIdxs,
		MessageInfos:      file_core_v1_httpserver_proto_msgTypes,
	}.Build()
	File_core_v1_httpserver_proto = out.File
	file_core_v1_httpserver_proto_goTypes = nil
	file_core_v1_httpserver_proto_depIdxs = nil
}
