v3

package
v1.18.0-beta17 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	CommonResponse_ResponseStatus_name = map[int32]string{
		0: "CONTINUE",
		1: "CONTINUE_AND_REPLACE",
	}
	CommonResponse_ResponseStatus_value = map[string]int32{
		"CONTINUE":             0,
		"CONTINUE_AND_REPLACE": 1,
	}
)

Enum value maps for CommonResponse_ResponseStatus.

View Source
var File_github_com_solo_io_gloo_projects_gloo_api_external_envoy_service_ext_proc_v3_external_processor_proto protoreflect.FileDescriptor

Functions

func RegisterExternalProcessorServer

func RegisterExternalProcessorServer(s *grpc.Server, srv ExternalProcessorServer)

Types

type BodyMutation

type BodyMutation struct {

	// Types that are assignable to Mutation:
	//
	//	*BodyMutation_Body
	//	*BodyMutation_ClearBody
	Mutation isBodyMutation_Mutation `protobuf_oneof:"mutation"`
	// contains filtered or unexported fields
}

Replace the entire message body chunk received in the corresponding HttpBody message with this new body, or clear the body.

func (*BodyMutation) Clone

func (m *BodyMutation) Clone() proto.Message

Clone function

func (*BodyMutation) Descriptor deprecated

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

Deprecated: Use BodyMutation.ProtoReflect.Descriptor instead.

func (*BodyMutation) Equal

func (m *BodyMutation) Equal(that interface{}) bool

Equal function

func (*BodyMutation) GetBody

func (x *BodyMutation) GetBody() []byte

func (*BodyMutation) GetClearBody

func (x *BodyMutation) GetClearBody() bool

func (*BodyMutation) GetMutation

func (m *BodyMutation) GetMutation() isBodyMutation_Mutation

func (*BodyMutation) Hash

func (m *BodyMutation) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*BodyMutation) ProtoMessage

func (*BodyMutation) ProtoMessage()

func (*BodyMutation) ProtoReflect

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

func (*BodyMutation) Reset

func (x *BodyMutation) Reset()

func (*BodyMutation) String

func (x *BodyMutation) String() string

type BodyMutation_Body

type BodyMutation_Body struct {
	// The entire body to replace
	Body []byte `protobuf:"bytes,1,opt,name=body,proto3,oneof"`
}

type BodyMutation_ClearBody

type BodyMutation_ClearBody struct {
	// Clear the corresponding body chunk
	ClearBody bool `protobuf:"varint,2,opt,name=clear_body,json=clearBody,proto3,oneof"`
}

type BodyResponse

type BodyResponse struct {
	Response *CommonResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
	// contains filtered or unexported fields
}

This message must be sent in response to an HttpBody message.

func (*BodyResponse) Clone

func (m *BodyResponse) Clone() proto.Message

Clone function

func (*BodyResponse) Descriptor deprecated

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

Deprecated: Use BodyResponse.ProtoReflect.Descriptor instead.

func (*BodyResponse) Equal

func (m *BodyResponse) Equal(that interface{}) bool

Equal function

func (*BodyResponse) GetResponse

func (x *BodyResponse) GetResponse() *CommonResponse

func (*BodyResponse) Hash

func (m *BodyResponse) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*BodyResponse) ProtoMessage

func (*BodyResponse) ProtoMessage()

func (*BodyResponse) ProtoReflect

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

func (*BodyResponse) Reset

func (x *BodyResponse) Reset()

func (*BodyResponse) String

func (x *BodyResponse) String() string

type CommonResponse

type CommonResponse struct {

	// If set, provide additional direction on how the Envoy proxy should
	// handle the rest of the HTTP filter chain.
	Status CommonResponse_ResponseStatus `` /* 135-byte string literal not displayed */
	// Instructions on how to manipulate the headers. When responding to an
	// HttpBody request, header mutations will only take effect if
	// the current processing mode for the body is BUFFERED.
	HeaderMutation *HeaderMutation `protobuf:"bytes,2,opt,name=header_mutation,json=headerMutation,proto3" json:"header_mutation,omitempty"`
	// Replace the body of the last message sent to the remote server on this
	// stream. If responding to an HttpBody request, simply replace or clear
	// the body chunk that was sent with that request. Body mutations may take
	// effect in response either to “header“ or “body“ messages. When it is
	// in response to “header“ messages, it only take effect if the
	// :ref:`status <envoy_v3_api_field_service.ext_proc.v3.CommonResponse.status>`
	// is set to CONTINUE_AND_REPLACE.
	BodyMutation *BodyMutation `protobuf:"bytes,3,opt,name=body_mutation,json=bodyMutation,proto3" json:"body_mutation,omitempty"`
	// [#not-implemented-hide:]
	// Add new trailers to the message. This may be used when responding to either a
	// HttpHeaders or HttpBody message, but only if this message is returned
	// along with the CONTINUE_AND_REPLACE status.
	// The “trailers“ encoding is based on the runtime guard
	// envoy_reloadable_features_send_header_raw_value setting.
	// When it is true, the header value is encoded in the
	// :ref:`raw_value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.raw_value>` field.
	// When it is false, the header value is encoded in the
	// :ref:`value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.value>` field.
	Trailers *v3.HeaderMap `protobuf:"bytes,4,opt,name=trailers,proto3" json:"trailers,omitempty"`
	// Clear the route cache for the current client request. This is necessary
	// if the remote server modified headers that are used to calculate the route.
	// This field is ignored in the response direction. This field is also ignored
	// if the Envoy ext_proc filter is in the upstream filter chain.
	ClearRouteCache bool `protobuf:"varint,5,opt,name=clear_route_cache,json=clearRouteCache,proto3" json:"clear_route_cache,omitempty"`
	// contains filtered or unexported fields
}

This message contains common fields between header and body responses. [#next-free-field: 6]

func (*CommonResponse) Clone

func (m *CommonResponse) Clone() proto.Message

Clone function

func (*CommonResponse) Descriptor deprecated

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

Deprecated: Use CommonResponse.ProtoReflect.Descriptor instead.

func (*CommonResponse) Equal

func (m *CommonResponse) Equal(that interface{}) bool

Equal function

func (*CommonResponse) GetBodyMutation

func (x *CommonResponse) GetBodyMutation() *BodyMutation

func (*CommonResponse) GetClearRouteCache

func (x *CommonResponse) GetClearRouteCache() bool

func (*CommonResponse) GetHeaderMutation

func (x *CommonResponse) GetHeaderMutation() *HeaderMutation

func (*CommonResponse) GetStatus

func (*CommonResponse) GetTrailers

func (x *CommonResponse) GetTrailers() *v3.HeaderMap

func (*CommonResponse) Hash

func (m *CommonResponse) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*CommonResponse) ProtoMessage

func (*CommonResponse) ProtoMessage()

func (*CommonResponse) ProtoReflect

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

func (*CommonResponse) Reset

func (x *CommonResponse) Reset()

func (*CommonResponse) String

func (x *CommonResponse) String() string

type CommonResponse_ResponseStatus

type CommonResponse_ResponseStatus int32
const (
	// Apply the mutation instructions in this message to the
	// request or response, and then continue processing the filter
	// stream as normal. This is the default.
	CommonResponse_CONTINUE CommonResponse_ResponseStatus = 0
	// Apply the specified header mutation, replace the body with the body
	// specified in the body mutation (if present), and do not send any
	// further messages for this request or response even if the processing
	// mode is configured to do so.
	//
	// When used in response to a request_headers or response_headers message,
	// this status makes it possible to either completely replace the body
	// while discarding the original body, or to add a body to a message that
	// formerly did not have one.
	//
	// In other words, this response makes it possible to turn an HTTP GET
	// into a POST, PUT, or PATCH.
	CommonResponse_CONTINUE_AND_REPLACE CommonResponse_ResponseStatus = 1
)

func (CommonResponse_ResponseStatus) Descriptor

func (CommonResponse_ResponseStatus) Enum

func (CommonResponse_ResponseStatus) EnumDescriptor deprecated

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

Deprecated: Use CommonResponse_ResponseStatus.Descriptor instead.

func (CommonResponse_ResponseStatus) Number

func (CommonResponse_ResponseStatus) String

func (CommonResponse_ResponseStatus) Type

type ExternalProcessorClient

type ExternalProcessorClient interface {
	// This begins the bidirectional stream that Envoy will use to
	// give the server control over what the filter does. The actual
	// protocol is described by the ProcessingRequest and ProcessingResponse
	// messages below.
	Process(ctx context.Context, opts ...grpc.CallOption) (ExternalProcessor_ProcessClient, error)
}

ExternalProcessorClient is the client API for ExternalProcessor service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

type ExternalProcessorServer

type ExternalProcessorServer interface {
	// This begins the bidirectional stream that Envoy will use to
	// give the server control over what the filter does. The actual
	// protocol is described by the ProcessingRequest and ProcessingResponse
	// messages below.
	Process(ExternalProcessor_ProcessServer) error
}

ExternalProcessorServer is the server API for ExternalProcessor service.

type ExternalProcessor_ProcessClient

type ExternalProcessor_ProcessClient interface {
	Send(*ProcessingRequest) error
	Recv() (*ProcessingResponse, error)
	grpc.ClientStream
}

type ExternalProcessor_ProcessServer

type ExternalProcessor_ProcessServer interface {
	Send(*ProcessingResponse) error
	Recv() (*ProcessingRequest, error)
	grpc.ServerStream
}

type GrpcStatus

type GrpcStatus struct {

	// The actual gRPC status
	Status uint32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

This message specifies a gRPC status for an ImmediateResponse message.

func (*GrpcStatus) Clone

func (m *GrpcStatus) Clone() proto.Message

Clone function

func (*GrpcStatus) Descriptor deprecated

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

Deprecated: Use GrpcStatus.ProtoReflect.Descriptor instead.

func (*GrpcStatus) Equal

func (m *GrpcStatus) Equal(that interface{}) bool

Equal function

func (*GrpcStatus) GetStatus

func (x *GrpcStatus) GetStatus() uint32

func (*GrpcStatus) Hash

func (m *GrpcStatus) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*GrpcStatus) ProtoMessage

func (*GrpcStatus) ProtoMessage()

func (*GrpcStatus) ProtoReflect

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

func (*GrpcStatus) Reset

func (x *GrpcStatus) Reset()

func (*GrpcStatus) String

func (x *GrpcStatus) String() string

type HeaderMutation

type HeaderMutation struct {

	// Add or replace HTTP headers. Attempts to set the value of
	// any “x-envoy“ header, and attempts to set the “:method“,
	// “:authority“, “:scheme“, or “host“ headers will be ignored.
	// The “set_headers“ encoding is based on the runtime guard
	// envoy_reloadable_features_send_header_raw_value setting.
	// When it is true, the header value is encoded in the
	// :ref:`raw_value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.raw_value>` field.
	// When it is false, the header value is encoded in the
	// :ref:`value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.value>` field.
	SetHeaders []*v3.HeaderValueOption `protobuf:"bytes,1,rep,name=set_headers,json=setHeaders,proto3" json:"set_headers,omitempty"`
	// Remove these HTTP headers. Attempts to remove system headers --
	// any header starting with “:“, plus “host“ -- will be ignored.
	RemoveHeaders []string `protobuf:"bytes,2,rep,name=remove_headers,json=removeHeaders,proto3" json:"remove_headers,omitempty"`
	// contains filtered or unexported fields
}

Change HTTP headers or trailers by appending, replacing, or removing headers.

func (*HeaderMutation) Clone

func (m *HeaderMutation) Clone() proto.Message

Clone function

func (*HeaderMutation) Descriptor deprecated

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

Deprecated: Use HeaderMutation.ProtoReflect.Descriptor instead.

func (*HeaderMutation) Equal

func (m *HeaderMutation) Equal(that interface{}) bool

Equal function

func (*HeaderMutation) GetRemoveHeaders

func (x *HeaderMutation) GetRemoveHeaders() []string

func (*HeaderMutation) GetSetHeaders

func (x *HeaderMutation) GetSetHeaders() []*v3.HeaderValueOption

func (*HeaderMutation) Hash

func (m *HeaderMutation) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*HeaderMutation) ProtoMessage

func (*HeaderMutation) ProtoMessage()

func (*HeaderMutation) ProtoReflect

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

func (*HeaderMutation) Reset

func (x *HeaderMutation) Reset()

func (*HeaderMutation) String

func (x *HeaderMutation) String() string

type HeadersResponse

type HeadersResponse struct {
	Response *CommonResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
	// contains filtered or unexported fields
}

This message must be sent in response to an HttpHeaders message.

func (*HeadersResponse) Clone

func (m *HeadersResponse) Clone() proto.Message

Clone function

func (*HeadersResponse) Descriptor deprecated

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

Deprecated: Use HeadersResponse.ProtoReflect.Descriptor instead.

func (*HeadersResponse) Equal

func (m *HeadersResponse) Equal(that interface{}) bool

Equal function

func (*HeadersResponse) GetResponse

func (x *HeadersResponse) GetResponse() *CommonResponse

func (*HeadersResponse) Hash

func (m *HeadersResponse) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*HeadersResponse) ProtoMessage

func (*HeadersResponse) ProtoMessage()

func (*HeadersResponse) ProtoReflect

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

func (*HeadersResponse) Reset

func (x *HeadersResponse) Reset()

func (*HeadersResponse) String

func (x *HeadersResponse) String() string

type HttpBody

type HttpBody struct {
	Body        []byte `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
	EndOfStream bool   `protobuf:"varint,2,opt,name=end_of_stream,json=endOfStream,proto3" json:"end_of_stream,omitempty"`
	// contains filtered or unexported fields
}

This message contains the message body that Envoy sends to the external server.

func (*HttpBody) Clone

func (m *HttpBody) Clone() proto.Message

Clone function

func (*HttpBody) Descriptor deprecated

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

Deprecated: Use HttpBody.ProtoReflect.Descriptor instead.

func (*HttpBody) Equal

func (m *HttpBody) Equal(that interface{}) bool

Equal function

func (*HttpBody) GetBody

func (x *HttpBody) GetBody() []byte

func (*HttpBody) GetEndOfStream

func (x *HttpBody) GetEndOfStream() bool

func (*HttpBody) Hash

func (m *HttpBody) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*HttpBody) ProtoMessage

func (*HttpBody) ProtoMessage()

func (*HttpBody) ProtoReflect

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

func (*HttpBody) Reset

func (x *HttpBody) Reset()

func (*HttpBody) String

func (x *HttpBody) String() string

type HttpHeaders

type HttpHeaders struct {

	// The HTTP request headers. All header keys will be
	// lower-cased, because HTTP header keys are case-insensitive.
	// The “headers“ encoding is based on the runtime guard
	// envoy_reloadable_features_send_header_raw_value setting.
	// When it is true, the header value is encoded in the
	// :ref:`raw_value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.raw_value>` field.
	// When it is false, the header value is encoded in the
	// :ref:`value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.value>` field.
	Headers *v3.HeaderMap `protobuf:"bytes,1,opt,name=headers,proto3" json:"headers,omitempty"`
	// [#not-implemented-hide:]
	// This field is deprecated and not implemented. Attributes will be sent in
	// the  top-level :ref:`attributes <envoy_v3_api_field_service.ext_proc.v3.ProcessingRequest.attributes`
	// field.
	//
	// Deprecated: Marked as deprecated in github.com/solo-io/gloo/projects/gloo/api/external/envoy/service/ext_proc/v3/external_processor.proto.
	Attributes map[string]*_struct.Struct `` /* 161-byte string literal not displayed */
	// If true, then there is no message body associated with this
	// request or response.
	EndOfStream bool `protobuf:"varint,3,opt,name=end_of_stream,json=endOfStream,proto3" json:"end_of_stream,omitempty"`
	// contains filtered or unexported fields
}

This message is sent to the external server when the HTTP request and responses are first received.

func (*HttpHeaders) Clone

func (m *HttpHeaders) Clone() proto.Message

Clone function

func (*HttpHeaders) Descriptor deprecated

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

Deprecated: Use HttpHeaders.ProtoReflect.Descriptor instead.

func (*HttpHeaders) Equal

func (m *HttpHeaders) Equal(that interface{}) bool

Equal function

func (*HttpHeaders) GetAttributes deprecated

func (x *HttpHeaders) GetAttributes() map[string]*_struct.Struct

Deprecated: Marked as deprecated in github.com/solo-io/gloo/projects/gloo/api/external/envoy/service/ext_proc/v3/external_processor.proto.

func (*HttpHeaders) GetEndOfStream

func (x *HttpHeaders) GetEndOfStream() bool

func (*HttpHeaders) GetHeaders

func (x *HttpHeaders) GetHeaders() *v3.HeaderMap

func (*HttpHeaders) Hash

func (m *HttpHeaders) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*HttpHeaders) ProtoMessage

func (*HttpHeaders) ProtoMessage()

func (*HttpHeaders) ProtoReflect

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

func (*HttpHeaders) Reset

func (x *HttpHeaders) Reset()

func (*HttpHeaders) String

func (x *HttpHeaders) String() string

type HttpTrailers

type HttpTrailers struct {

	// The “trailers“ encoding is based on the runtime guard
	// envoy_reloadable_features_send_header_raw_value setting.
	// When it is true, the header value is encoded in the
	// :ref:`raw_value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.raw_value>` field.
	// When it is false, the header value is encoded in the
	// :ref:`value <envoy_v3_api_field_solo.io.envoy.config.core.v3.HeaderValue.value>` field.
	Trailers *v3.HeaderMap `protobuf:"bytes,1,opt,name=trailers,proto3" json:"trailers,omitempty"`
	// contains filtered or unexported fields
}

This message contains the trailers.

func (*HttpTrailers) Clone

func (m *HttpTrailers) Clone() proto.Message

Clone function

func (*HttpTrailers) Descriptor deprecated

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

Deprecated: Use HttpTrailers.ProtoReflect.Descriptor instead.

func (*HttpTrailers) Equal

func (m *HttpTrailers) Equal(that interface{}) bool

Equal function

func (*HttpTrailers) GetTrailers

func (x *HttpTrailers) GetTrailers() *v3.HeaderMap

func (*HttpTrailers) Hash

func (m *HttpTrailers) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*HttpTrailers) ProtoMessage

func (*HttpTrailers) ProtoMessage()

func (*HttpTrailers) ProtoReflect

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

func (*HttpTrailers) Reset

func (x *HttpTrailers) Reset()

func (*HttpTrailers) String

func (x *HttpTrailers) String() string

type ImmediateResponse

type ImmediateResponse struct {

	// The response code to return
	Status *v32.HttpStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// Apply changes to the default headers, which will include content-type.
	Headers *HeaderMutation `protobuf:"bytes,2,opt,name=headers,proto3" json:"headers,omitempty"`
	// The message body to return with the response which is sent using the
	// text/plain content type, or encoded in the grpc-message header.
	Body []byte `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
	// If set, then include a gRPC status trailer.
	GrpcStatus *GrpcStatus `protobuf:"bytes,4,opt,name=grpc_status,json=grpcStatus,proto3" json:"grpc_status,omitempty"`
	// A string detailing why this local reply was sent, which may be included
	// in log and debug output (e.g. this populates the %RESPONSE_CODE_DETAILS%
	// command operator field for use in access logging).
	Details string `protobuf:"bytes,5,opt,name=details,proto3" json:"details,omitempty"`
	// contains filtered or unexported fields
}

This message causes the filter to attempt to create a locally generated response, send it downstream, stop processing additional filters, and ignore any additional messages received from the remote server for this request or response. If a response has already started, then this will either ship the reply directly to the downstream codec, or reset the stream. [#next-free-field: 6]

func (*ImmediateResponse) Clone

func (m *ImmediateResponse) Clone() proto.Message

Clone function

func (*ImmediateResponse) Descriptor deprecated

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

Deprecated: Use ImmediateResponse.ProtoReflect.Descriptor instead.

func (*ImmediateResponse) Equal

func (m *ImmediateResponse) Equal(that interface{}) bool

Equal function

func (*ImmediateResponse) GetBody

func (x *ImmediateResponse) GetBody() []byte

func (*ImmediateResponse) GetDetails

func (x *ImmediateResponse) GetDetails() string

func (*ImmediateResponse) GetGrpcStatus

func (x *ImmediateResponse) GetGrpcStatus() *GrpcStatus

func (*ImmediateResponse) GetHeaders

func (x *ImmediateResponse) GetHeaders() *HeaderMutation

func (*ImmediateResponse) GetStatus

func (x *ImmediateResponse) GetStatus() *v32.HttpStatus

func (*ImmediateResponse) Hash

func (m *ImmediateResponse) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*ImmediateResponse) ProtoMessage

func (*ImmediateResponse) ProtoMessage()

func (*ImmediateResponse) ProtoReflect

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

func (*ImmediateResponse) Reset

func (x *ImmediateResponse) Reset()

func (*ImmediateResponse) String

func (x *ImmediateResponse) String() string

type ProcessingRequest

type ProcessingRequest struct {

	// Each request message will include one of the following sub-messages. Which
	// ones are set for a particular HTTP request/response depend on the
	// processing mode.
	//
	// Types that are assignable to Request:
	//
	//	*ProcessingRequest_RequestHeaders
	//	*ProcessingRequest_ResponseHeaders
	//	*ProcessingRequest_RequestBody
	//	*ProcessingRequest_ResponseBody
	//	*ProcessingRequest_RequestTrailers
	//	*ProcessingRequest_ResponseTrailers
	Request isProcessingRequest_Request `protobuf_oneof:"request"`
	// Dynamic metadata associated with the request.
	MetadataContext *v3.Metadata `protobuf:"bytes,8,opt,name=metadata_context,json=metadataContext,proto3" json:"metadata_context,omitempty"`
	// The values of properties selected by the “request_attributes“
	// or “response_attributes“ list in the configuration. Each entry
	// in the list is populated from the standard
	// :ref:`attributes <arch_overview_attributes>` supported across Envoy.
	Attributes map[string]*_struct.Struct `` /* 161-byte string literal not displayed */
	// Specify whether the filter that sent this request is running in :ref:`observability_mode
	// <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.observability_mode>`
	// and defaults to false.
	//
	//   - A value of “false“ indicates that the server must respond
	//     to this message by either sending back a matching ProcessingResponse message,
	//     or by closing the stream.
	//   - A value of “true“ indicates that the server should not respond to this message, as any
	//     responses will be ignored. However, it may still close the stream to indicate that no more messages
	//     are needed.
	ObservabilityMode bool `protobuf:"varint,10,opt,name=observability_mode,json=observabilityMode,proto3" json:"observability_mode,omitempty"`
	// contains filtered or unexported fields
}

This represents the different types of messages that Envoy can send to an external processing server. [#next-free-field: 11]

func (*ProcessingRequest) Clone

func (m *ProcessingRequest) Clone() proto.Message

Clone function

func (*ProcessingRequest) Descriptor deprecated

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

Deprecated: Use ProcessingRequest.ProtoReflect.Descriptor instead.

func (*ProcessingRequest) Equal

func (m *ProcessingRequest) Equal(that interface{}) bool

Equal function

func (*ProcessingRequest) GetAttributes

func (x *ProcessingRequest) GetAttributes() map[string]*_struct.Struct

func (*ProcessingRequest) GetMetadataContext

func (x *ProcessingRequest) GetMetadataContext() *v3.Metadata

func (*ProcessingRequest) GetObservabilityMode

func (x *ProcessingRequest) GetObservabilityMode() bool

func (*ProcessingRequest) GetRequest

func (m *ProcessingRequest) GetRequest() isProcessingRequest_Request

func (*ProcessingRequest) GetRequestBody

func (x *ProcessingRequest) GetRequestBody() *HttpBody

func (*ProcessingRequest) GetRequestHeaders

func (x *ProcessingRequest) GetRequestHeaders() *HttpHeaders

func (*ProcessingRequest) GetRequestTrailers

func (x *ProcessingRequest) GetRequestTrailers() *HttpTrailers

func (*ProcessingRequest) GetResponseBody

func (x *ProcessingRequest) GetResponseBody() *HttpBody

func (*ProcessingRequest) GetResponseHeaders

func (x *ProcessingRequest) GetResponseHeaders() *HttpHeaders

func (*ProcessingRequest) GetResponseTrailers

func (x *ProcessingRequest) GetResponseTrailers() *HttpTrailers

func (*ProcessingRequest) Hash

func (m *ProcessingRequest) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*ProcessingRequest) ProtoMessage

func (*ProcessingRequest) ProtoMessage()

func (*ProcessingRequest) ProtoReflect

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

func (*ProcessingRequest) Reset

func (x *ProcessingRequest) Reset()

func (*ProcessingRequest) String

func (x *ProcessingRequest) String() string

type ProcessingRequest_RequestBody

type ProcessingRequest_RequestBody struct {
	// A chunk of the HTTP request body. Unless “observability_mode“ is true, the server must send back
	// a BodyResponse message, an ImmediateResponse message, or close the stream.
	RequestBody *HttpBody `protobuf:"bytes,4,opt,name=request_body,json=requestBody,proto3,oneof"`
}

type ProcessingRequest_RequestHeaders

type ProcessingRequest_RequestHeaders struct {
	// Information about the HTTP request headers, as well as peer info and additional
	// properties. Unless “observability_mode“ is “true“, the server must send back a
	// HeaderResponse message, an ImmediateResponse message, or close the stream.
	RequestHeaders *HttpHeaders `protobuf:"bytes,2,opt,name=request_headers,json=requestHeaders,proto3,oneof"`
}

type ProcessingRequest_RequestTrailers

type ProcessingRequest_RequestTrailers struct {
	// The HTTP trailers for the request path. Unless “observability_mode“ is “true“, the server
	// must send back a TrailerResponse message or close the stream.
	//
	// This message is only sent if the trailers processing mode is set to “SEND“ and
	// the original downstream request has trailers.
	RequestTrailers *HttpTrailers `protobuf:"bytes,6,opt,name=request_trailers,json=requestTrailers,proto3,oneof"`
}

type ProcessingRequest_ResponseBody

type ProcessingRequest_ResponseBody struct {
	// A chunk of the HTTP response body. Unless “observability_mode“ is “true“, the server must send back
	// a BodyResponse message or close the stream.
	ResponseBody *HttpBody `protobuf:"bytes,5,opt,name=response_body,json=responseBody,proto3,oneof"`
}

type ProcessingRequest_ResponseHeaders

type ProcessingRequest_ResponseHeaders struct {
	// Information about the HTTP response headers, as well as peer info and additional
	// properties. Unless “observability_mode“ is “true“, the server must send back a
	// HeaderResponse message or close the stream.
	ResponseHeaders *HttpHeaders `protobuf:"bytes,3,opt,name=response_headers,json=responseHeaders,proto3,oneof"`
}

type ProcessingRequest_ResponseTrailers

type ProcessingRequest_ResponseTrailers struct {
	// The HTTP trailers for the response path. Unless “observability_mode“ is “true“, the server
	// must send back a TrailerResponse message or close the stream.
	//
	// This message is only sent if the trailers processing mode is set to “SEND“ and
	// the original upstream response has trailers.
	ResponseTrailers *HttpTrailers `protobuf:"bytes,7,opt,name=response_trailers,json=responseTrailers,proto3,oneof"`
}

type ProcessingResponse

type ProcessingResponse struct {

	// Types that are assignable to Response:
	//
	//	*ProcessingResponse_RequestHeaders
	//	*ProcessingResponse_ResponseHeaders
	//	*ProcessingResponse_RequestBody
	//	*ProcessingResponse_ResponseBody
	//	*ProcessingResponse_RequestTrailers
	//	*ProcessingResponse_ResponseTrailers
	//	*ProcessingResponse_ImmediateResponse
	Response isProcessingResponse_Response `protobuf_oneof:"response"`
	// Optional metadata that will be emitted as dynamic metadata to be consumed by
	// following filters. This metadata will be placed in the namespace(s) specified by the top-level
	// field name(s) of the struct.
	DynamicMetadata *_struct.Struct `protobuf:"bytes,8,opt,name=dynamic_metadata,json=dynamicMetadata,proto3" json:"dynamic_metadata,omitempty"`
	// Override how parts of the HTTP request and response are processed
	// for the duration of this particular request/response only. Servers
	// may use this to intelligently control how requests are processed
	// based on the headers and other metadata that they see.
	// This field is only applicable when servers responding to the header requests.
	// If it is set in the response to the body or trailer requests, it will be ignored by Envoy.
	// It is also ignored by Envoy when the ext_proc filter config
	// :ref:`allow_mode_override
	// <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.allow_mode_override>`
	// is set to false.
	ModeOverride *v31.ProcessingMode `protobuf:"bytes,9,opt,name=mode_override,json=modeOverride,proto3" json:"mode_override,omitempty"`
	// When ext_proc server receives a request message, in case it needs more
	// time to process the message, it sends back a ProcessingResponse message
	// with a new timeout value. When Envoy receives this response message,
	// it ignores other fields in the response, just stop the original timer,
	// which has the timeout value specified in
	// :ref:`message_timeout
	// <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.message_timeout>`
	// and start a new timer with this “override_message_timeout“ value and keep the
	// Envoy ext_proc filter state machine intact.
	// Has to be >= 1ms and <=
	// :ref:`max_message_timeout <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.max_message_timeout>`
	// Such message can be sent at most once in a particular Envoy ext_proc filter processing state.
	// To enable this API, one has to set “max_message_timeout“ to a number >= 1ms.
	OverrideMessageTimeout *duration.Duration `` /* 130-byte string literal not displayed */
	// contains filtered or unexported fields
}

For every ProcessingRequest received by the server with the “observability_mode“ field set to false, the server must send back exactly one ProcessingResponse message. [#next-free-field: 11]

func (*ProcessingResponse) Clone

func (m *ProcessingResponse) Clone() proto.Message

Clone function

func (*ProcessingResponse) Descriptor deprecated

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

Deprecated: Use ProcessingResponse.ProtoReflect.Descriptor instead.

func (*ProcessingResponse) Equal

func (m *ProcessingResponse) Equal(that interface{}) bool

Equal function

func (*ProcessingResponse) GetDynamicMetadata

func (x *ProcessingResponse) GetDynamicMetadata() *_struct.Struct

func (*ProcessingResponse) GetImmediateResponse

func (x *ProcessingResponse) GetImmediateResponse() *ImmediateResponse

func (*ProcessingResponse) GetModeOverride

func (x *ProcessingResponse) GetModeOverride() *v31.ProcessingMode

func (*ProcessingResponse) GetOverrideMessageTimeout

func (x *ProcessingResponse) GetOverrideMessageTimeout() *duration.Duration

func (*ProcessingResponse) GetRequestBody

func (x *ProcessingResponse) GetRequestBody() *BodyResponse

func (*ProcessingResponse) GetRequestHeaders

func (x *ProcessingResponse) GetRequestHeaders() *HeadersResponse

func (*ProcessingResponse) GetRequestTrailers

func (x *ProcessingResponse) GetRequestTrailers() *TrailersResponse

func (*ProcessingResponse) GetResponse

func (m *ProcessingResponse) GetResponse() isProcessingResponse_Response

func (*ProcessingResponse) GetResponseBody

func (x *ProcessingResponse) GetResponseBody() *BodyResponse

func (*ProcessingResponse) GetResponseHeaders

func (x *ProcessingResponse) GetResponseHeaders() *HeadersResponse

func (*ProcessingResponse) GetResponseTrailers

func (x *ProcessingResponse) GetResponseTrailers() *TrailersResponse

func (*ProcessingResponse) Hash

func (m *ProcessingResponse) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*ProcessingResponse) ProtoMessage

func (*ProcessingResponse) ProtoMessage()

func (*ProcessingResponse) ProtoReflect

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

func (*ProcessingResponse) Reset

func (x *ProcessingResponse) Reset()

func (*ProcessingResponse) String

func (x *ProcessingResponse) String() string

type ProcessingResponse_ImmediateResponse

type ProcessingResponse_ImmediateResponse struct {
	// If specified, attempt to create a locally generated response, send it
	// downstream, and stop processing additional filters and ignore any
	// additional messages received from the remote server for this request or
	// response. If a response has already started -- for example, if this
	// message is sent response to a “response_body“ message -- then
	// this will either ship the reply directly to the downstream codec,
	// or reset the stream.
	ImmediateResponse *ImmediateResponse `protobuf:"bytes,7,opt,name=immediate_response,json=immediateResponse,proto3,oneof"`
}

type ProcessingResponse_RequestBody

type ProcessingResponse_RequestBody struct {
	// The server must send back this message in response to a message with
	// the “request_body“ field set.
	RequestBody *BodyResponse `protobuf:"bytes,3,opt,name=request_body,json=requestBody,proto3,oneof"`
}

type ProcessingResponse_RequestHeaders

type ProcessingResponse_RequestHeaders struct {
	// The server must send back this message in response to a message with the
	// “request_headers“ field set.
	RequestHeaders *HeadersResponse `protobuf:"bytes,1,opt,name=request_headers,json=requestHeaders,proto3,oneof"`
}

type ProcessingResponse_RequestTrailers

type ProcessingResponse_RequestTrailers struct {
	// The server must send back this message in response to a message with
	// the “request_trailers“ field set.
	RequestTrailers *TrailersResponse `protobuf:"bytes,5,opt,name=request_trailers,json=requestTrailers,proto3,oneof"`
}

type ProcessingResponse_ResponseBody

type ProcessingResponse_ResponseBody struct {
	// The server must send back this message in response to a message with
	// the “response_body“ field set.
	ResponseBody *BodyResponse `protobuf:"bytes,4,opt,name=response_body,json=responseBody,proto3,oneof"`
}

type ProcessingResponse_ResponseHeaders

type ProcessingResponse_ResponseHeaders struct {
	// The server must send back this message in response to a message with the
	// “response_headers“ field set.
	ResponseHeaders *HeadersResponse `protobuf:"bytes,2,opt,name=response_headers,json=responseHeaders,proto3,oneof"`
}

type ProcessingResponse_ResponseTrailers

type ProcessingResponse_ResponseTrailers struct {
	// The server must send back this message in response to a message with
	// the “response_trailers“ field set.
	ResponseTrailers *TrailersResponse `protobuf:"bytes,6,opt,name=response_trailers,json=responseTrailers,proto3,oneof"`
}

type TrailersResponse

type TrailersResponse struct {

	// Instructions on how to manipulate the trailers
	HeaderMutation *HeaderMutation `protobuf:"bytes,1,opt,name=header_mutation,json=headerMutation,proto3" json:"header_mutation,omitempty"`
	// contains filtered or unexported fields
}

This message must be sent in response to an HttpTrailers message.

func (*TrailersResponse) Clone

func (m *TrailersResponse) Clone() proto.Message

Clone function

func (*TrailersResponse) Descriptor deprecated

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

Deprecated: Use TrailersResponse.ProtoReflect.Descriptor instead.

func (*TrailersResponse) Equal

func (m *TrailersResponse) Equal(that interface{}) bool

Equal function

func (*TrailersResponse) GetHeaderMutation

func (x *TrailersResponse) GetHeaderMutation() *HeaderMutation

func (*TrailersResponse) Hash

func (m *TrailersResponse) Hash(hasher hash.Hash64) (uint64, error)

Hash function

func (*TrailersResponse) ProtoMessage

func (*TrailersResponse) ProtoMessage()

func (*TrailersResponse) ProtoReflect

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

func (*TrailersResponse) Reset

func (x *TrailersResponse) Reset()

func (*TrailersResponse) String

func (x *TrailersResponse) String() string

type UnimplementedExternalProcessorServer

type UnimplementedExternalProcessorServer struct {
}

UnimplementedExternalProcessorServer can be embedded to have forward compatible implementations.

func (*UnimplementedExternalProcessorServer) Process

Jump to

Keyboard shortcuts

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