thrift_proxyv3

package
v0.0.0-...-f693697 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2024 License: Apache-2.0 Imports: 24 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	TransportType_name = map[int32]string{
		0: "AUTO_TRANSPORT",
		1: "FRAMED",
		2: "UNFRAMED",
		3: "HEADER",
	}
	TransportType_value = map[string]int32{
		"AUTO_TRANSPORT": 0,
		"FRAMED":         1,
		"UNFRAMED":       2,
		"HEADER":         3,
	}
)

Enum value maps for TransportType.

View Source
var (
	ProtocolType_name = map[int32]string{
		0: "AUTO_PROTOCOL",
		1: "BINARY",
		2: "LAX_BINARY",
		3: "COMPACT",
		4: "TWITTER",
	}
	ProtocolType_value = map[string]int32{
		"AUTO_PROTOCOL": 0,
		"BINARY":        1,
		"LAX_BINARY":    2,
		"COMPACT":       3,
		"TWITTER":       4,
	}
)

Enum value maps for ProtocolType.

View Source
var File_envoy_extensions_filters_network_thrift_proxy_v3_route_proto protoreflect.FileDescriptor
View Source
var File_envoy_extensions_filters_network_thrift_proxy_v3_thrift_proxy_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type ProtocolType

type ProtocolType int32

Thrift Protocol types supported by Envoy.

const (
	// For downstream connections, the Thrift proxy will attempt to determine which protocol to use.
	// Note that the older, non-strict (or lax) binary protocol is not included in automatic protocol
	// detection. For upstream connections, the Thrift proxy will use the same protocol as the
	// downstream connection.
	ProtocolType_AUTO_PROTOCOL ProtocolType = 0
	// The Thrift proxy will use the Thrift binary protocol.
	ProtocolType_BINARY ProtocolType = 1
	// The Thrift proxy will use Thrift non-strict binary protocol.
	ProtocolType_LAX_BINARY ProtocolType = 2
	// The Thrift proxy will use the Thrift compact protocol.
	ProtocolType_COMPACT ProtocolType = 3
	// The Thrift proxy will use the Thrift "Twitter" protocol implemented by the finagle library.
	//
	// Deprecated: Do not use.
	ProtocolType_TWITTER ProtocolType = 4
)

func (ProtocolType) Descriptor

func (ProtocolType) Enum

func (x ProtocolType) Enum() *ProtocolType

func (ProtocolType) EnumDescriptor deprecated

func (ProtocolType) EnumDescriptor() ([]byte, []int)

Deprecated: Use ProtocolType.Descriptor instead.

func (ProtocolType) Number

func (ProtocolType) String

func (x ProtocolType) String() string

func (ProtocolType) Type

type Route

type Route struct {

	// Route matching parameters.
	Match *RouteMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	// Route request to some upstream cluster.
	Route *RouteAction `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
	// contains filtered or unexported fields
}

func (*Route) Descriptor deprecated

func (*Route) Descriptor() ([]byte, []int)

Deprecated: Use Route.ProtoReflect.Descriptor instead.

func (*Route) GetMatch

func (x *Route) GetMatch() *RouteMatch

func (*Route) GetRoute

func (x *Route) GetRoute() *RouteAction

func (*Route) ProtoMessage

func (*Route) ProtoMessage()

func (*Route) ProtoReflect

func (x *Route) ProtoReflect() protoreflect.Message

func (*Route) Reset

func (x *Route) Reset()

func (*Route) String

func (x *Route) String() string

func (*Route) Validate

func (m *Route) Validate() error

Validate checks the field values on Route with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*Route) ValidateAll

func (m *Route) ValidateAll() error

ValidateAll checks the field values on Route with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in RouteMultiError, or nil if none found.

type RouteAction

type RouteAction struct {

	// Types that are assignable to ClusterSpecifier:
	//
	//	*RouteAction_Cluster
	//	*RouteAction_WeightedClusters
	//	*RouteAction_ClusterHeader
	ClusterSpecifier isRouteAction_ClusterSpecifier `protobuf_oneof:"cluster_specifier"`
	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
	// the upstream cluster with metadata matching what is set in this field will be considered.
	// Note that this will be merged with what's provided in :ref:`WeightedCluster.metadata_match
	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match>`,
	// with values there taking precedence. Keys and values should be provided under the "envoy.lb"
	// metadata key.
	MetadataMatch *v31.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
	// Specifies a set of rate limit configurations that could be applied to the route.
	// N.B. Thrift service or method name matching can be achieved by specifying a RequestHeaders
	// action with the header name ":method-name".
	RateLimits []*v3.RateLimit `protobuf:"bytes,4,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
	// Strip the service prefix from the method name, if there's a prefix. For
	// example, the method call Service:method would end up being just method.
	StripServiceName bool `protobuf:"varint,5,opt,name=strip_service_name,json=stripServiceName,proto3" json:"strip_service_name,omitempty"`
	// Indicates that the route has request mirroring policies.
	RequestMirrorPolicies []*RouteAction_RequestMirrorPolicy `` /* 126-byte string literal not displayed */
	// contains filtered or unexported fields
}

[#next-free-field: 8]

func (*RouteAction) Descriptor deprecated

func (*RouteAction) Descriptor() ([]byte, []int)

Deprecated: Use RouteAction.ProtoReflect.Descriptor instead.

func (*RouteAction) GetCluster

func (x *RouteAction) GetCluster() string

func (*RouteAction) GetClusterHeader

func (x *RouteAction) GetClusterHeader() string

func (*RouteAction) GetClusterSpecifier

func (m *RouteAction) GetClusterSpecifier() isRouteAction_ClusterSpecifier

func (*RouteAction) GetMetadataMatch

func (x *RouteAction) GetMetadataMatch() *v31.Metadata

func (*RouteAction) GetRateLimits

func (x *RouteAction) GetRateLimits() []*v3.RateLimit

func (*RouteAction) GetRequestMirrorPolicies

func (x *RouteAction) GetRequestMirrorPolicies() []*RouteAction_RequestMirrorPolicy

func (*RouteAction) GetStripServiceName

func (x *RouteAction) GetStripServiceName() bool

func (*RouteAction) GetWeightedClusters

func (x *RouteAction) GetWeightedClusters() *WeightedCluster

func (*RouteAction) ProtoMessage

func (*RouteAction) ProtoMessage()

func (*RouteAction) ProtoReflect

func (x *RouteAction) ProtoReflect() protoreflect.Message

func (*RouteAction) Reset

func (x *RouteAction) Reset()

func (*RouteAction) String

func (x *RouteAction) String() string

func (*RouteAction) Validate

func (m *RouteAction) Validate() error

Validate checks the field values on RouteAction with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*RouteAction) ValidateAll

func (m *RouteAction) ValidateAll() error

ValidateAll checks the field values on RouteAction with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in RouteActionMultiError, or nil if none found.

type RouteActionMultiError

type RouteActionMultiError []error

RouteActionMultiError is an error wrapping multiple validation errors returned by RouteAction.ValidateAll() if the designated constraints aren't met.

func (RouteActionMultiError) AllErrors

func (m RouteActionMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (RouteActionMultiError) Error

func (m RouteActionMultiError) Error() string

Error returns a concatenation of all the error messages it wraps.

type RouteActionValidationError

type RouteActionValidationError struct {
	// contains filtered or unexported fields
}

RouteActionValidationError is the validation error returned by RouteAction.Validate if the designated constraints aren't met.

func (RouteActionValidationError) Cause

Cause function returns cause value.

func (RouteActionValidationError) Error

Error satisfies the builtin error interface

func (RouteActionValidationError) ErrorName

func (e RouteActionValidationError) ErrorName() string

ErrorName returns error name.

func (RouteActionValidationError) Field

Field function returns field value.

func (RouteActionValidationError) Key

Key function returns key value.

func (RouteActionValidationError) Reason

Reason function returns reason value.

type RouteAction_Cluster

type RouteAction_Cluster struct {
	// Indicates a single upstream cluster to which the request should be routed
	// to.
	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3,oneof"`
}

type RouteAction_ClusterHeader

type RouteAction_ClusterHeader struct {
	// Envoy will determine the cluster to route to by reading the value of the
	// Thrift header named by cluster_header from the request headers. If the
	// header is not found or the referenced cluster does not exist Envoy will
	// respond with an unknown method exception or an internal error exception,
	// respectively.
	ClusterHeader string `protobuf:"bytes,6,opt,name=cluster_header,json=clusterHeader,proto3,oneof"`
}

type RouteAction_RequestMirrorPolicy

type RouteAction_RequestMirrorPolicy struct {

	// Specifies the cluster that requests will be mirrored to. The cluster must
	// exist in the cluster manager configuration when the route configuration is loaded.
	// If it disappears at runtime, the shadow request will silently be ignored.
	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// If not specified, all requests to the target cluster will be mirrored.
	//
	// For some fraction N/D, a random number in the range [0,D) is selected. If the
	// number is <= the value of the numerator N, or if the key is not present, the default
	// value, the request will be mirrored.
	RuntimeFraction *v31.RuntimeFractionalPercent `protobuf:"bytes,2,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"`
	// contains filtered or unexported fields
}

The router is capable of shadowing traffic from one cluster to another. The current implementation is "fire and forget," meaning Envoy will not wait for the shadow cluster to respond before returning the response from the primary cluster. All normal statistics are collected for the shadow cluster making this feature useful for testing.

.. note::

Shadowing will not be triggered if the primary cluster does not exist.

func (*RouteAction_RequestMirrorPolicy) Descriptor deprecated

func (*RouteAction_RequestMirrorPolicy) Descriptor() ([]byte, []int)

Deprecated: Use RouteAction_RequestMirrorPolicy.ProtoReflect.Descriptor instead.

func (*RouteAction_RequestMirrorPolicy) GetCluster

func (x *RouteAction_RequestMirrorPolicy) GetCluster() string

func (*RouteAction_RequestMirrorPolicy) GetRuntimeFraction

func (*RouteAction_RequestMirrorPolicy) ProtoMessage

func (*RouteAction_RequestMirrorPolicy) ProtoMessage()

func (*RouteAction_RequestMirrorPolicy) ProtoReflect

func (*RouteAction_RequestMirrorPolicy) Reset

func (*RouteAction_RequestMirrorPolicy) String

func (*RouteAction_RequestMirrorPolicy) Validate

func (m *RouteAction_RequestMirrorPolicy) Validate() error

Validate checks the field values on RouteAction_RequestMirrorPolicy with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*RouteAction_RequestMirrorPolicy) ValidateAll

func (m *RouteAction_RequestMirrorPolicy) ValidateAll() error

ValidateAll checks the field values on RouteAction_RequestMirrorPolicy with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in RouteAction_RequestMirrorPolicyMultiError, or nil if none found.

type RouteAction_RequestMirrorPolicyMultiError

type RouteAction_RequestMirrorPolicyMultiError []error

RouteAction_RequestMirrorPolicyMultiError is an error wrapping multiple validation errors returned by RouteAction_RequestMirrorPolicy.ValidateAll() if the designated constraints aren't met.

func (RouteAction_RequestMirrorPolicyMultiError) AllErrors

AllErrors returns a list of validation violation errors.

func (RouteAction_RequestMirrorPolicyMultiError) Error

Error returns a concatenation of all the error messages it wraps.

type RouteAction_RequestMirrorPolicyValidationError

type RouteAction_RequestMirrorPolicyValidationError struct {
	// contains filtered or unexported fields
}

RouteAction_RequestMirrorPolicyValidationError is the validation error returned by RouteAction_RequestMirrorPolicy.Validate if the designated constraints aren't met.

func (RouteAction_RequestMirrorPolicyValidationError) Cause

Cause function returns cause value.

func (RouteAction_RequestMirrorPolicyValidationError) Error

Error satisfies the builtin error interface

func (RouteAction_RequestMirrorPolicyValidationError) ErrorName

ErrorName returns error name.

func (RouteAction_RequestMirrorPolicyValidationError) Field

Field function returns field value.

func (RouteAction_RequestMirrorPolicyValidationError) Key

Key function returns key value.

func (RouteAction_RequestMirrorPolicyValidationError) Reason

Reason function returns reason value.

type RouteAction_WeightedClusters

type RouteAction_WeightedClusters struct {
	// Multiple upstream clusters can be specified for a given route. The
	// request is routed to one of the upstream clusters based on weights
	// assigned to each cluster.
	WeightedClusters *WeightedCluster `protobuf:"bytes,2,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"`
}

type RouteConfiguration

type RouteConfiguration struct {

	// The name of the route configuration. This name is used in asynchronous route discovery.
	// For example, it might match
	// :ref:`route_config_name
	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.Trds.route_config_name>` in
	// :ref:`envoy_v3_api_msg_extensions.filters.network.thrift_proxy.v3.Trds`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The list of routes that will be matched, in order, against incoming requests. The first route
	// that matches will be used.
	Routes []*Route `protobuf:"bytes,2,rep,name=routes,proto3" json:"routes,omitempty"`
	// An optional boolean that specifies whether the clusters that the route
	// table refers to will be validated by the cluster manager. If set to true
	// and a route refers to a non-existent cluster, the route table will not
	// load. If set to false and a route refers to a non-existent cluster, the
	// route table will load and the router filter will return a INTERNAL_ERROR
	// if the route is selected at runtime. This setting defaults to true if the route table
	// is statically defined via the :ref:`route_config
	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.ThriftProxy.route_config>`
	// option. This setting default to false if the route table is loaded dynamically via the
	// :ref:`trds
	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.ThriftProxy.trds>`
	// option. Users may wish to override the default behavior in certain cases (for example when
	// using CDS with a static route table).
	ValidateClusters *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=validate_clusters,json=validateClusters,proto3" json:"validate_clusters,omitempty"`
	// contains filtered or unexported fields
}

func (*RouteConfiguration) Descriptor deprecated

func (*RouteConfiguration) Descriptor() ([]byte, []int)

Deprecated: Use RouteConfiguration.ProtoReflect.Descriptor instead.

func (*RouteConfiguration) GetName

func (x *RouteConfiguration) GetName() string

func (*RouteConfiguration) GetRoutes

func (x *RouteConfiguration) GetRoutes() []*Route

func (*RouteConfiguration) GetValidateClusters

func (x *RouteConfiguration) GetValidateClusters() *wrapperspb.BoolValue

func (*RouteConfiguration) ProtoMessage

func (*RouteConfiguration) ProtoMessage()

func (*RouteConfiguration) ProtoReflect

func (x *RouteConfiguration) ProtoReflect() protoreflect.Message

func (*RouteConfiguration) Reset

func (x *RouteConfiguration) Reset()

func (*RouteConfiguration) String

func (x *RouteConfiguration) String() string

func (*RouteConfiguration) Validate

func (m *RouteConfiguration) Validate() error

Validate checks the field values on RouteConfiguration with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*RouteConfiguration) ValidateAll

func (m *RouteConfiguration) ValidateAll() error

ValidateAll checks the field values on RouteConfiguration with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in RouteConfigurationMultiError, or nil if none found.

type RouteConfigurationMultiError

type RouteConfigurationMultiError []error

RouteConfigurationMultiError is an error wrapping multiple validation errors returned by RouteConfiguration.ValidateAll() if the designated constraints aren't met.

func (RouteConfigurationMultiError) AllErrors

func (m RouteConfigurationMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (RouteConfigurationMultiError) Error

Error returns a concatenation of all the error messages it wraps.

type RouteConfigurationValidationError

type RouteConfigurationValidationError struct {
	// contains filtered or unexported fields
}

RouteConfigurationValidationError is the validation error returned by RouteConfiguration.Validate if the designated constraints aren't met.

func (RouteConfigurationValidationError) Cause

Cause function returns cause value.

func (RouteConfigurationValidationError) Error

Error satisfies the builtin error interface

func (RouteConfigurationValidationError) ErrorName

ErrorName returns error name.

func (RouteConfigurationValidationError) Field

Field function returns field value.

func (RouteConfigurationValidationError) Key

Key function returns key value.

func (RouteConfigurationValidationError) Reason

Reason function returns reason value.

type RouteMatch

type RouteMatch struct {

	// Types that are assignable to MatchSpecifier:
	//
	//	*RouteMatch_MethodName
	//	*RouteMatch_ServiceName
	MatchSpecifier isRouteMatch_MatchSpecifier `protobuf_oneof:"match_specifier"`
	// Inverts whatever matching is done in the :ref:`method_name
	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.method_name>` or
	// :ref:`service_name
	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.service_name>` fields.
	// Cannot be combined with wildcard matching as that would result in routes never being matched.
	//
	// .. note::
	//
	//	This does not invert matching done as part of the :ref:`headers field
	//	<envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.headers>` field. To
	//	invert header matching, see :ref:`invert_match
	//	<envoy_v3_api_field_config.route.v3.HeaderMatcher.invert_match>`.
	Invert bool `protobuf:"varint,3,opt,name=invert,proto3" json:"invert,omitempty"`
	// Specifies a set of headers that the route should match on. The router will check the request’s
	// headers against all the specified headers in the route config. A match will happen if all the
	// headers in the route are present in the request with the same values (or based on presence if
	// the value field is not in the config). Note that this only applies for Thrift transports and/or
	// protocols that support headers.
	Headers []*v3.HeaderMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
	// contains filtered or unexported fields
}

func (*RouteMatch) Descriptor deprecated

func (*RouteMatch) Descriptor() ([]byte, []int)

Deprecated: Use RouteMatch.ProtoReflect.Descriptor instead.

func (*RouteMatch) GetHeaders

func (x *RouteMatch) GetHeaders() []*v3.HeaderMatcher

func (*RouteMatch) GetInvert

func (x *RouteMatch) GetInvert() bool

func (*RouteMatch) GetMatchSpecifier

func (m *RouteMatch) GetMatchSpecifier() isRouteMatch_MatchSpecifier

func (*RouteMatch) GetMethodName

func (x *RouteMatch) GetMethodName() string

func (*RouteMatch) GetServiceName

func (x *RouteMatch) GetServiceName() string

func (*RouteMatch) ProtoMessage

func (*RouteMatch) ProtoMessage()

func (*RouteMatch) ProtoReflect

func (x *RouteMatch) ProtoReflect() protoreflect.Message

func (*RouteMatch) Reset

func (x *RouteMatch) Reset()

func (*RouteMatch) String

func (x *RouteMatch) String() string

func (*RouteMatch) Validate

func (m *RouteMatch) Validate() error

Validate checks the field values on RouteMatch with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*RouteMatch) ValidateAll

func (m *RouteMatch) ValidateAll() error

ValidateAll checks the field values on RouteMatch with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in RouteMatchMultiError, or nil if none found.

type RouteMatchMultiError

type RouteMatchMultiError []error

RouteMatchMultiError is an error wrapping multiple validation errors returned by RouteMatch.ValidateAll() if the designated constraints aren't met.

func (RouteMatchMultiError) AllErrors

func (m RouteMatchMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (RouteMatchMultiError) Error

func (m RouteMatchMultiError) Error() string

Error returns a concatenation of all the error messages it wraps.

type RouteMatchValidationError

type RouteMatchValidationError struct {
	// contains filtered or unexported fields
}

RouteMatchValidationError is the validation error returned by RouteMatch.Validate if the designated constraints aren't met.

func (RouteMatchValidationError) Cause

func (e RouteMatchValidationError) Cause() error

Cause function returns cause value.

func (RouteMatchValidationError) Error

Error satisfies the builtin error interface

func (RouteMatchValidationError) ErrorName

func (e RouteMatchValidationError) ErrorName() string

ErrorName returns error name.

func (RouteMatchValidationError) Field

Field function returns field value.

func (RouteMatchValidationError) Key

Key function returns key value.

func (RouteMatchValidationError) Reason

func (e RouteMatchValidationError) Reason() string

Reason function returns reason value.

type RouteMatch_MethodName

type RouteMatch_MethodName struct {
	// If specified, the route must exactly match the request method name. As a special case, an
	// empty string matches any request method name.
	MethodName string `protobuf:"bytes,1,opt,name=method_name,json=methodName,proto3,oneof"`
}

type RouteMatch_ServiceName

type RouteMatch_ServiceName struct {
	// If specified, the route must have the service name as the request method name prefix. As a
	// special case, an empty string matches any service name. Only relevant when service
	// multiplexing.
	ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3,oneof"`
}

type RouteMultiError

type RouteMultiError []error

RouteMultiError is an error wrapping multiple validation errors returned by Route.ValidateAll() if the designated constraints aren't met.

func (RouteMultiError) AllErrors

func (m RouteMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (RouteMultiError) Error

func (m RouteMultiError) Error() string

Error returns a concatenation of all the error messages it wraps.

type RouteValidationError

type RouteValidationError struct {
	// contains filtered or unexported fields
}

RouteValidationError is the validation error returned by Route.Validate if the designated constraints aren't met.

func (RouteValidationError) Cause

func (e RouteValidationError) Cause() error

Cause function returns cause value.

func (RouteValidationError) Error

func (e RouteValidationError) Error() string

Error satisfies the builtin error interface

func (RouteValidationError) ErrorName

func (e RouteValidationError) ErrorName() string

ErrorName returns error name.

func (RouteValidationError) Field

func (e RouteValidationError) Field() string

Field function returns field value.

func (RouteValidationError) Key

func (e RouteValidationError) Key() bool

Key function returns key value.

func (RouteValidationError) Reason

func (e RouteValidationError) Reason() string

Reason function returns reason value.

type ThriftFilter

type ThriftFilter struct {

	// The name of the filter to instantiate. The name must match a supported
	// filter. The built-in filters are:
	//
	// [#comment:TODO(zuercher): Auto generate the following list]
	// * :ref:`envoy.filters.thrift.router <config_thrift_filters_router>`
	// * :ref:`envoy.filters.thrift.rate_limit <config_thrift_filters_rate_limit>`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Filter specific configuration which depends on the filter being instantiated. See the supported
	// filters for further documentation.
	//
	// Types that are assignable to ConfigType:
	//
	//	*ThriftFilter_TypedConfig
	ConfigType isThriftFilter_ConfigType `protobuf_oneof:"config_type"`
	// contains filtered or unexported fields
}

ThriftFilter configures a Thrift filter.

func (*ThriftFilter) Descriptor deprecated

func (*ThriftFilter) Descriptor() ([]byte, []int)

Deprecated: Use ThriftFilter.ProtoReflect.Descriptor instead.

func (*ThriftFilter) GetConfigType

func (m *ThriftFilter) GetConfigType() isThriftFilter_ConfigType

func (*ThriftFilter) GetName

func (x *ThriftFilter) GetName() string

func (*ThriftFilter) GetTypedConfig

func (x *ThriftFilter) GetTypedConfig() *anypb.Any

func (*ThriftFilter) ProtoMessage

func (*ThriftFilter) ProtoMessage()

func (*ThriftFilter) ProtoReflect

func (x *ThriftFilter) ProtoReflect() protoreflect.Message

func (*ThriftFilter) Reset

func (x *ThriftFilter) Reset()

func (*ThriftFilter) String

func (x *ThriftFilter) String() string

func (*ThriftFilter) Validate

func (m *ThriftFilter) Validate() error

Validate checks the field values on ThriftFilter with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*ThriftFilter) ValidateAll

func (m *ThriftFilter) ValidateAll() error

ValidateAll checks the field values on ThriftFilter with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in ThriftFilterMultiError, or nil if none found.

type ThriftFilterMultiError

type ThriftFilterMultiError []error

ThriftFilterMultiError is an error wrapping multiple validation errors returned by ThriftFilter.ValidateAll() if the designated constraints aren't met.

func (ThriftFilterMultiError) AllErrors

func (m ThriftFilterMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (ThriftFilterMultiError) Error

func (m ThriftFilterMultiError) Error() string

Error returns a concatenation of all the error messages it wraps.

type ThriftFilterValidationError

type ThriftFilterValidationError struct {
	// contains filtered or unexported fields
}

ThriftFilterValidationError is the validation error returned by ThriftFilter.Validate if the designated constraints aren't met.

func (ThriftFilterValidationError) Cause

Cause function returns cause value.

func (ThriftFilterValidationError) Error

Error satisfies the builtin error interface

func (ThriftFilterValidationError) ErrorName

func (e ThriftFilterValidationError) ErrorName() string

ErrorName returns error name.

func (ThriftFilterValidationError) Field

Field function returns field value.

func (ThriftFilterValidationError) Key

Key function returns key value.

func (ThriftFilterValidationError) Reason

Reason function returns reason value.

type ThriftFilter_TypedConfig

type ThriftFilter_TypedConfig struct {
	TypedConfig *anypb.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
}

type ThriftProtocolOptions

type ThriftProtocolOptions struct {

	// Supplies the type of transport that the Thrift proxy should use for upstream connections.
	// Selecting
	// :ref:`AUTO_TRANSPORT<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`,
	// which is the default, causes the proxy to use the same transport as the downstream connection.
	Transport TransportType `` /* 140-byte string literal not displayed */
	// Supplies the type of protocol that the Thrift proxy should use for upstream connections.
	// Selecting
	// :ref:`AUTO_PROTOCOL<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`,
	// which is the default, causes the proxy to use the same protocol as the downstream connection.
	Protocol ProtocolType `` /* 137-byte string literal not displayed */
	// contains filtered or unexported fields
}

ThriftProtocolOptions specifies Thrift upstream protocol options. This object is used in in :ref:`typed_extension_protocol_options<envoy_v3_api_field_config.cluster.v3.Cluster.typed_extension_protocol_options>`, keyed by the name “envoy.filters.network.thrift_proxy“.

func (*ThriftProtocolOptions) Descriptor deprecated

func (*ThriftProtocolOptions) Descriptor() ([]byte, []int)

Deprecated: Use ThriftProtocolOptions.ProtoReflect.Descriptor instead.

func (*ThriftProtocolOptions) GetProtocol

func (x *ThriftProtocolOptions) GetProtocol() ProtocolType

func (*ThriftProtocolOptions) GetTransport

func (x *ThriftProtocolOptions) GetTransport() TransportType

func (*ThriftProtocolOptions) ProtoMessage

func (*ThriftProtocolOptions) ProtoMessage()

func (*ThriftProtocolOptions) ProtoReflect

func (x *ThriftProtocolOptions) ProtoReflect() protoreflect.Message

func (*ThriftProtocolOptions) Reset

func (x *ThriftProtocolOptions) Reset()

func (*ThriftProtocolOptions) String

func (x *ThriftProtocolOptions) String() string

func (*ThriftProtocolOptions) Validate

func (m *ThriftProtocolOptions) Validate() error

Validate checks the field values on ThriftProtocolOptions with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*ThriftProtocolOptions) ValidateAll

func (m *ThriftProtocolOptions) ValidateAll() error

ValidateAll checks the field values on ThriftProtocolOptions with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in ThriftProtocolOptionsMultiError, or nil if none found.

type ThriftProtocolOptionsMultiError

type ThriftProtocolOptionsMultiError []error

ThriftProtocolOptionsMultiError is an error wrapping multiple validation errors returned by ThriftProtocolOptions.ValidateAll() if the designated constraints aren't met.

func (ThriftProtocolOptionsMultiError) AllErrors

func (m ThriftProtocolOptionsMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (ThriftProtocolOptionsMultiError) Error

Error returns a concatenation of all the error messages it wraps.

type ThriftProtocolOptionsValidationError

type ThriftProtocolOptionsValidationError struct {
	// contains filtered or unexported fields
}

ThriftProtocolOptionsValidationError is the validation error returned by ThriftProtocolOptions.Validate if the designated constraints aren't met.

func (ThriftProtocolOptionsValidationError) Cause

Cause function returns cause value.

func (ThriftProtocolOptionsValidationError) Error

Error satisfies the builtin error interface

func (ThriftProtocolOptionsValidationError) ErrorName

ErrorName returns error name.

func (ThriftProtocolOptionsValidationError) Field

Field function returns field value.

func (ThriftProtocolOptionsValidationError) Key

Key function returns key value.

func (ThriftProtocolOptionsValidationError) Reason

Reason function returns reason value.

type ThriftProxy

type ThriftProxy struct {

	// Supplies the type of transport that the Thrift proxy should use. Defaults to
	// :ref:`AUTO_TRANSPORT<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.TransportType.AUTO_TRANSPORT>`.
	Transport TransportType `` /* 140-byte string literal not displayed */
	// Supplies the type of protocol that the Thrift proxy should use. Defaults to
	// :ref:`AUTO_PROTOCOL<envoy_v3_api_enum_value_extensions.filters.network.thrift_proxy.v3.ProtocolType.AUTO_PROTOCOL>`.
	Protocol ProtocolType `` /* 137-byte string literal not displayed */
	// The human readable prefix to use when emitting statistics.
	StatPrefix string `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
	// The route table for the connection manager is static and is specified in this property.
	// It is invalid to define both “route_config“ and “trds“.
	RouteConfig *RouteConfiguration `protobuf:"bytes,4,opt,name=route_config,json=routeConfig,proto3" json:"route_config,omitempty"`
	// Use xDS to fetch the route configuration. It is invalid to define both “route_config“ and “trds“.
	Trds *Trds `protobuf:"bytes,8,opt,name=trds,proto3" json:"trds,omitempty"`
	// A list of individual Thrift filters that make up the filter chain for requests made to the
	// Thrift proxy. Order matters as the filters are processed sequentially. For backwards
	// compatibility, if no thrift_filters are specified, a default Thrift router filter
	// (“envoy.filters.thrift.router“) is used.
	// [#extension-category: envoy.thrift_proxy.filters]
	ThriftFilters []*ThriftFilter `protobuf:"bytes,5,rep,name=thrift_filters,json=thriftFilters,proto3" json:"thrift_filters,omitempty"`
	// If set to true, Envoy will try to skip decode data after metadata in the Thrift message.
	// This mode will only work if the upstream and downstream protocols are the same and the transports
	// are Framed or Header, and the protocol is not Twitter. Otherwise Envoy will
	// fallback to decode the data.
	PayloadPassthrough bool `protobuf:"varint,6,opt,name=payload_passthrough,json=payloadPassthrough,proto3" json:"payload_passthrough,omitempty"`
	// Optional maximum requests for a single downstream connection. If not specified, there is no limit.
	MaxRequestsPerConnection *wrapperspb.UInt32Value `` /* 137-byte string literal not displayed */
	// Configuration for :ref:`access logs <arch_overview_access_logs>`
	// emitted by Thrift proxy.
	AccessLog []*v31.AccessLog `protobuf:"bytes,9,rep,name=access_log,json=accessLog,proto3" json:"access_log,omitempty"`
	// If set to true, Envoy will preserve the case of Thrift header keys instead of serializing them to
	// lower case as per the default behavior. Note that NUL, CR and LF characters will also be preserved
	// as mandated by the Thrift spec.
	//
	// More info: https://github.com/apache/thrift/commit/e165fa3c85d00cb984f4d9635ed60909a1266ce1.
	HeaderKeysPreserveCase bool `` /* 133-byte string literal not displayed */
	// contains filtered or unexported fields
}

[#next-free-field: 11]

func (*ThriftProxy) Descriptor deprecated

func (*ThriftProxy) Descriptor() ([]byte, []int)

Deprecated: Use ThriftProxy.ProtoReflect.Descriptor instead.

func (*ThriftProxy) GetAccessLog

func (x *ThriftProxy) GetAccessLog() []*v31.AccessLog

func (*ThriftProxy) GetHeaderKeysPreserveCase

func (x *ThriftProxy) GetHeaderKeysPreserveCase() bool

func (*ThriftProxy) GetMaxRequestsPerConnection

func (x *ThriftProxy) GetMaxRequestsPerConnection() *wrapperspb.UInt32Value

func (*ThriftProxy) GetPayloadPassthrough

func (x *ThriftProxy) GetPayloadPassthrough() bool

func (*ThriftProxy) GetProtocol

func (x *ThriftProxy) GetProtocol() ProtocolType

func (*ThriftProxy) GetRouteConfig

func (x *ThriftProxy) GetRouteConfig() *RouteConfiguration

func (*ThriftProxy) GetStatPrefix

func (x *ThriftProxy) GetStatPrefix() string

func (*ThriftProxy) GetThriftFilters

func (x *ThriftProxy) GetThriftFilters() []*ThriftFilter

func (*ThriftProxy) GetTransport

func (x *ThriftProxy) GetTransport() TransportType

func (*ThriftProxy) GetTrds

func (x *ThriftProxy) GetTrds() *Trds

func (*ThriftProxy) ProtoMessage

func (*ThriftProxy) ProtoMessage()

func (*ThriftProxy) ProtoReflect

func (x *ThriftProxy) ProtoReflect() protoreflect.Message

func (*ThriftProxy) Reset

func (x *ThriftProxy) Reset()

func (*ThriftProxy) String

func (x *ThriftProxy) String() string

func (*ThriftProxy) Validate

func (m *ThriftProxy) Validate() error

Validate checks the field values on ThriftProxy with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*ThriftProxy) ValidateAll

func (m *ThriftProxy) ValidateAll() error

ValidateAll checks the field values on ThriftProxy with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in ThriftProxyMultiError, or nil if none found.

type ThriftProxyMultiError

type ThriftProxyMultiError []error

ThriftProxyMultiError is an error wrapping multiple validation errors returned by ThriftProxy.ValidateAll() if the designated constraints aren't met.

func (ThriftProxyMultiError) AllErrors

func (m ThriftProxyMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (ThriftProxyMultiError) Error

func (m ThriftProxyMultiError) Error() string

Error returns a concatenation of all the error messages it wraps.

type ThriftProxyValidationError

type ThriftProxyValidationError struct {
	// contains filtered or unexported fields
}

ThriftProxyValidationError is the validation error returned by ThriftProxy.Validate if the designated constraints aren't met.

func (ThriftProxyValidationError) Cause

Cause function returns cause value.

func (ThriftProxyValidationError) Error

Error satisfies the builtin error interface

func (ThriftProxyValidationError) ErrorName

func (e ThriftProxyValidationError) ErrorName() string

ErrorName returns error name.

func (ThriftProxyValidationError) Field

Field function returns field value.

func (ThriftProxyValidationError) Key

Key function returns key value.

func (ThriftProxyValidationError) Reason

Reason function returns reason value.

type TransportType

type TransportType int32

Thrift transport types supported by Envoy.

const (
	// For downstream connections, the Thrift proxy will attempt to determine which transport to use.
	// For upstream connections, the Thrift proxy will use same transport as the downstream
	// connection.
	TransportType_AUTO_TRANSPORT TransportType = 0
	// The Thrift proxy will use the Thrift framed transport.
	TransportType_FRAMED TransportType = 1
	// The Thrift proxy will use the Thrift unframed transport.
	TransportType_UNFRAMED TransportType = 2
	// The Thrift proxy will assume the client is using the Thrift header transport.
	TransportType_HEADER TransportType = 3
)

func (TransportType) Descriptor

func (TransportType) Enum

func (x TransportType) Enum() *TransportType

func (TransportType) EnumDescriptor deprecated

func (TransportType) EnumDescriptor() ([]byte, []int)

Deprecated: Use TransportType.Descriptor instead.

func (TransportType) Number

func (TransportType) String

func (x TransportType) String() string

func (TransportType) Type

type Trds

type Trds struct {

	// Configuration source specifier.
	// In case of “api_config_source“ only aggregated “api_type“ is supported.
	ConfigSource *v3.ConfigSource `protobuf:"bytes,1,opt,name=config_source,json=configSource,proto3" json:"config_source,omitempty"`
	// The name of the route configuration. This allows to use different route
	// configurations. Tells which route configuration should be fetched from the configuration source.
	// Leave unspecified is also valid and means the unnamed route configuration.
	RouteConfigName string `protobuf:"bytes,2,opt,name=route_config_name,json=routeConfigName,proto3" json:"route_config_name,omitempty"`
	// contains filtered or unexported fields
}

func (*Trds) Descriptor deprecated

func (*Trds) Descriptor() ([]byte, []int)

Deprecated: Use Trds.ProtoReflect.Descriptor instead.

func (*Trds) GetConfigSource

func (x *Trds) GetConfigSource() *v3.ConfigSource

func (*Trds) GetRouteConfigName

func (x *Trds) GetRouteConfigName() string

func (*Trds) ProtoMessage

func (*Trds) ProtoMessage()

func (*Trds) ProtoReflect

func (x *Trds) ProtoReflect() protoreflect.Message

func (*Trds) Reset

func (x *Trds) Reset()

func (*Trds) String

func (x *Trds) String() string

func (*Trds) Validate

func (m *Trds) Validate() error

Validate checks the field values on Trds with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*Trds) ValidateAll

func (m *Trds) ValidateAll() error

ValidateAll checks the field values on Trds with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in TrdsMultiError, or nil if none found.

type TrdsMultiError

type TrdsMultiError []error

TrdsMultiError is an error wrapping multiple validation errors returned by Trds.ValidateAll() if the designated constraints aren't met.

func (TrdsMultiError) AllErrors

func (m TrdsMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (TrdsMultiError) Error

func (m TrdsMultiError) Error() string

Error returns a concatenation of all the error messages it wraps.

type TrdsValidationError

type TrdsValidationError struct {
	// contains filtered or unexported fields
}

TrdsValidationError is the validation error returned by Trds.Validate if the designated constraints aren't met.

func (TrdsValidationError) Cause

func (e TrdsValidationError) Cause() error

Cause function returns cause value.

func (TrdsValidationError) Error

func (e TrdsValidationError) Error() string

Error satisfies the builtin error interface

func (TrdsValidationError) ErrorName

func (e TrdsValidationError) ErrorName() string

ErrorName returns error name.

func (TrdsValidationError) Field

func (e TrdsValidationError) Field() string

Field function returns field value.

func (TrdsValidationError) Key

func (e TrdsValidationError) Key() bool

Key function returns key value.

func (TrdsValidationError) Reason

func (e TrdsValidationError) Reason() string

Reason function returns reason value.

type WeightedCluster

type WeightedCluster struct {

	// Specifies one or more upstream clusters associated with the route.
	Clusters []*WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
	// contains filtered or unexported fields
}

Allows for specification of multiple upstream clusters along with weights that indicate the percentage of traffic to be forwarded to each cluster. The router selects an upstream cluster based on these weights.

func (*WeightedCluster) Descriptor deprecated

func (*WeightedCluster) Descriptor() ([]byte, []int)

Deprecated: Use WeightedCluster.ProtoReflect.Descriptor instead.

func (*WeightedCluster) GetClusters

func (x *WeightedCluster) GetClusters() []*WeightedCluster_ClusterWeight

func (*WeightedCluster) ProtoMessage

func (*WeightedCluster) ProtoMessage()

func (*WeightedCluster) ProtoReflect

func (x *WeightedCluster) ProtoReflect() protoreflect.Message

func (*WeightedCluster) Reset

func (x *WeightedCluster) Reset()

func (*WeightedCluster) String

func (x *WeightedCluster) String() string

func (*WeightedCluster) Validate

func (m *WeightedCluster) Validate() error

Validate checks the field values on WeightedCluster with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*WeightedCluster) ValidateAll

func (m *WeightedCluster) ValidateAll() error

ValidateAll checks the field values on WeightedCluster with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in WeightedClusterMultiError, or nil if none found.

type WeightedClusterMultiError

type WeightedClusterMultiError []error

WeightedClusterMultiError is an error wrapping multiple validation errors returned by WeightedCluster.ValidateAll() if the designated constraints aren't met.

func (WeightedClusterMultiError) AllErrors

func (m WeightedClusterMultiError) AllErrors() []error

AllErrors returns a list of validation violation errors.

func (WeightedClusterMultiError) Error

Error returns a concatenation of all the error messages it wraps.

type WeightedClusterValidationError

type WeightedClusterValidationError struct {
	// contains filtered or unexported fields
}

WeightedClusterValidationError is the validation error returned by WeightedCluster.Validate if the designated constraints aren't met.

func (WeightedClusterValidationError) Cause

Cause function returns cause value.

func (WeightedClusterValidationError) Error

Error satisfies the builtin error interface

func (WeightedClusterValidationError) ErrorName

func (e WeightedClusterValidationError) ErrorName() string

ErrorName returns error name.

func (WeightedClusterValidationError) Field

Field function returns field value.

func (WeightedClusterValidationError) Key

Key function returns key value.

func (WeightedClusterValidationError) Reason

Reason function returns reason value.

type WeightedCluster_ClusterWeight

type WeightedCluster_ClusterWeight struct {

	// Name of the upstream cluster.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// When a request matches the route, the choice of an upstream cluster is determined by its
	// weight. The sum of weights across all entries in the clusters array determines the total
	// weight.
	Weight *wrapperspb.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"`
	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
	// the upstream cluster with metadata matching what is set in this field, combined with what's
	// provided in :ref:`RouteAction's metadata_match
	// <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match>`,
	// will be considered. Values here will take precedence. Keys and values should be provided
	// under the "envoy.lb" metadata key.
	MetadataMatch *v31.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
	// contains filtered or unexported fields
}

func (*WeightedCluster_ClusterWeight) Descriptor deprecated

func (*WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int)

Deprecated: Use WeightedCluster_ClusterWeight.ProtoReflect.Descriptor instead.

func (*WeightedCluster_ClusterWeight) GetMetadataMatch

func (x *WeightedCluster_ClusterWeight) GetMetadataMatch() *v31.Metadata

func (*WeightedCluster_ClusterWeight) GetName

func (*WeightedCluster_ClusterWeight) GetWeight

func (*WeightedCluster_ClusterWeight) ProtoMessage

func (*WeightedCluster_ClusterWeight) ProtoMessage()

func (*WeightedCluster_ClusterWeight) ProtoReflect

func (*WeightedCluster_ClusterWeight) Reset

func (x *WeightedCluster_ClusterWeight) Reset()

func (*WeightedCluster_ClusterWeight) String

func (*WeightedCluster_ClusterWeight) Validate

func (m *WeightedCluster_ClusterWeight) Validate() error

Validate checks the field values on WeightedCluster_ClusterWeight with the rules defined in the proto definition for this message. If any rules are violated, the first error encountered is returned, or nil if there are no violations.

func (*WeightedCluster_ClusterWeight) ValidateAll

func (m *WeightedCluster_ClusterWeight) ValidateAll() error

ValidateAll checks the field values on WeightedCluster_ClusterWeight with the rules defined in the proto definition for this message. If any rules are violated, the result is a list of violation errors wrapped in WeightedCluster_ClusterWeightMultiError, or nil if none found.

type WeightedCluster_ClusterWeightMultiError

type WeightedCluster_ClusterWeightMultiError []error

WeightedCluster_ClusterWeightMultiError is an error wrapping multiple validation errors returned by WeightedCluster_ClusterWeight.ValidateAll() if the designated constraints aren't met.

func (WeightedCluster_ClusterWeightMultiError) AllErrors

AllErrors returns a list of validation violation errors.

func (WeightedCluster_ClusterWeightMultiError) Error

Error returns a concatenation of all the error messages it wraps.

type WeightedCluster_ClusterWeightValidationError

type WeightedCluster_ClusterWeightValidationError struct {
	// contains filtered or unexported fields
}

WeightedCluster_ClusterWeightValidationError is the validation error returned by WeightedCluster_ClusterWeight.Validate if the designated constraints aren't met.

func (WeightedCluster_ClusterWeightValidationError) Cause

Cause function returns cause value.

func (WeightedCluster_ClusterWeightValidationError) Error

Error satisfies the builtin error interface

func (WeightedCluster_ClusterWeightValidationError) ErrorName

ErrorName returns error name.

func (WeightedCluster_ClusterWeightValidationError) Field

Field function returns field value.

func (WeightedCluster_ClusterWeightValidationError) Key

Key function returns key value.

func (WeightedCluster_ClusterWeightValidationError) Reason

Reason function returns reason value.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL