v3

package
v1.18.0-beta29 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2024 License: Apache-2.0 Imports: 31 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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*BodyMutation) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*BodyResponse) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*CommonResponse) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*GrpcStatus) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HeaderMutation) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HeadersResponse) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HttpBody) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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]*structpb.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]*structpb.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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HttpHeaders) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*HttpTrailers) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*ImmediateResponse) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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]*structpb.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]*structpb.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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*ProcessingRequest) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 *structpb.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 *durationpb.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() *structpb.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() *durationpb.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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*ProcessingResponse) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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 deprecated

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

Hash function

Deprecated: due to hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions. Prefer the HashUnique function instead.

func (*TrailersResponse) HashUnique

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

HashUnique function generates a hash of the object that is unique to the object by hashing field name and value pairs. Replaces Hash due to original hashing implemention only using field values. The omission of the field name in the hash calculation can lead to hash collisions.

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