Documentation
¶
Overview ¶
Package transformation is a generated protocol buffer package.
It is generated from these files:
transformation_filter.proto
It has these top-level messages:
Transformations Transformation RouteTransformations Extraction TransformationTemplate InjaTemplate Passthrough MergeExtractorsToBody HeaderBodyTransform
Index ¶
- Constants
- func EncodeFunctionSpec(spec Template) *types.Struct
- func EncodeRouteExtension(spec RouteExtension) *types.Struct
- type Extraction
- type GetTransformationFunction
- type HeaderBodyTransform
- type InjaTemplate
- type MergeExtractorsToBody
- type Parameters
- type Passthrough
- type Plugin
- type RouteExtension
- type RouteTransformations
- func (*RouteTransformations) Descriptor() ([]byte, []int)
- func (m *RouteTransformations) GetRequestTransformation() *Transformation
- func (m *RouteTransformations) GetResponseTransformation() *Transformation
- func (*RouteTransformations) ProtoMessage()
- func (m *RouteTransformations) Reset()
- func (m *RouteTransformations) String() string
- type Template
- type Transformation
- func (*Transformation) Descriptor() ([]byte, []int)
- func (m *Transformation) GetHeaderBodyTransform() *HeaderBodyTransform
- func (m *Transformation) GetTransformationTemplate() *TransformationTemplate
- func (m *Transformation) GetTransformationType() isTransformation_TransformationType
- func (*Transformation) ProtoMessage()
- func (m *Transformation) Reset()
- func (m *Transformation) String() string
- func (*Transformation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type TransformationTemplate
- func (*TransformationTemplate) Descriptor() ([]byte, []int)
- func (m *TransformationTemplate) GetAdvancedTemplates() bool
- func (m *TransformationTemplate) GetBody() *InjaTemplate
- func (m *TransformationTemplate) GetBodyTransformation() isTransformationTemplate_BodyTransformation
- func (m *TransformationTemplate) GetExtractors() map[string]*Extraction
- func (m *TransformationTemplate) GetHeaders() map[string]*InjaTemplate
- func (m *TransformationTemplate) GetMergeExtractorsToBody() *MergeExtractorsToBody
- func (m *TransformationTemplate) GetPassthrough() *Passthrough
- func (*TransformationTemplate) ProtoMessage()
- func (m *TransformationTemplate) Reset()
- func (m *TransformationTemplate) String() string
- func (*TransformationTemplate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type TransformationTemplate_Body
- type TransformationTemplate_MergeExtractorsToBody
- type TransformationTemplate_Passthrough
- type Transformation_HeaderBodyTransform
- type Transformation_TransformationTemplate
- type Transformations
Constants ¶
View Source
const (
ServiceTypeTransformation = "HTTP-Functions"
)
Variables ¶
This section is empty.
Functions ¶
func EncodeFunctionSpec ¶
func EncodeRouteExtension ¶
func EncodeRouteExtension(spec RouteExtension) *types.Struct
Types ¶
type Extraction ¶
type Extraction struct {
Header string `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
// what information to extract. if extraction fails the result is
// an empty value.
Regex string `protobuf:"bytes,2,opt,name=regex,proto3" json:"regex,omitempty"`
Subgroup uint32 `protobuf:"varint,3,opt,name=subgroup,proto3" json:"subgroup,omitempty"`
}
func (*Extraction) Descriptor ¶
func (*Extraction) Descriptor() ([]byte, []int)
func (*Extraction) GetHeader ¶
func (m *Extraction) GetHeader() string
func (*Extraction) GetRegex ¶
func (m *Extraction) GetRegex() string
func (*Extraction) GetSubgroup ¶
func (m *Extraction) GetSubgroup() uint32
func (*Extraction) ProtoMessage ¶
func (*Extraction) ProtoMessage()
func (*Extraction) Reset ¶
func (m *Extraction) Reset()
func (*Extraction) String ¶
func (m *Extraction) String() string
type GetTransformationFunction ¶
type GetTransformationFunction func(destination *v1.Destination_Function) (*TransformationTemplate, error)
type HeaderBodyTransform ¶
type HeaderBodyTransform struct {
}
func (*HeaderBodyTransform) Descriptor ¶
func (*HeaderBodyTransform) Descriptor() ([]byte, []int)
func (*HeaderBodyTransform) ProtoMessage ¶
func (*HeaderBodyTransform) ProtoMessage()
func (*HeaderBodyTransform) Reset ¶
func (m *HeaderBodyTransform) Reset()
func (*HeaderBodyTransform) String ¶
func (m *HeaderBodyTransform) String() string
type InjaTemplate ¶
type InjaTemplate struct {
Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
}
custom functions: header_value(name) -> from the original headers extracted_value(name, index) -> from the extracted values
func (*InjaTemplate) Descriptor ¶
func (*InjaTemplate) Descriptor() ([]byte, []int)
func (*InjaTemplate) GetText ¶
func (m *InjaTemplate) GetText() string
func (*InjaTemplate) ProtoMessage ¶
func (*InjaTemplate) ProtoMessage()
func (*InjaTemplate) Reset ¶
func (m *InjaTemplate) Reset()
func (*InjaTemplate) String ¶
func (m *InjaTemplate) String() string
type MergeExtractorsToBody ¶
type MergeExtractorsToBody struct {
}
func (*MergeExtractorsToBody) Descriptor ¶
func (*MergeExtractorsToBody) Descriptor() ([]byte, []int)
func (*MergeExtractorsToBody) ProtoMessage ¶
func (*MergeExtractorsToBody) ProtoMessage()
func (*MergeExtractorsToBody) Reset ¶
func (m *MergeExtractorsToBody) Reset()
func (*MergeExtractorsToBody) String ¶
func (m *MergeExtractorsToBody) String() string
type Parameters ¶
type Parameters struct {
// headers that will be used to derive the data for processing the output templates
// if no syntax containing {variables} are detected in the header value,
// the whole value will be substituted by its name into the template
// for example:
/*
input:
header_parmeters:
x-header-foo: bar
output:
body_template: "{\"path\": {{ path }}}"
*/
Headers map[string]string `json:"headers,omitempty"`
Path *string `json:"path,omitempty"`
Authority *string `json:"authority,omitempty"`
}
type Passthrough ¶
type Passthrough struct {
}
func (*Passthrough) Descriptor ¶
func (*Passthrough) Descriptor() ([]byte, []int)
func (*Passthrough) ProtoMessage ¶
func (*Passthrough) ProtoMessage()
func (*Passthrough) Reset ¶
func (m *Passthrough) Reset()
func (*Passthrough) String ¶
func (m *Passthrough) String() string
type Plugin ¶
type Plugin interface {
ActivateFilterForCluster(out *envoyapi.Cluster)
AddRequestTransformationsToRoute(getTemplate GetTransformationFunction, in *v1.Route, out *envoyroute.Route) error
AddResponseTransformationsToRoute(in *v1.Route, out *envoyroute.Route) error
GetTransformationFilter() *plugins.StagedHttpFilter
}
func NewTransformationPlugin ¶
func NewTransformationPlugin() Plugin
type RouteExtension ¶
type RouteExtension struct {
Parameters *Parameters `json:"parameters,omitempty"`
ResponseTemplate *Template `json:"response_template,omitempty"`
ResponseParams *Parameters `json:"response_parameters,omitempty"`
}
this goes on the route extension
func DecodeRouteExtension ¶
func DecodeRouteExtension(generic *types.Struct) (RouteExtension, error)
type RouteTransformations ¶
type RouteTransformations struct {
RequestTransformation *Transformation `protobuf:"bytes,1,opt,name=request_transformation,json=requestTransformation" json:"request_transformation,omitempty"`
ResponseTransformation *Transformation `protobuf:"bytes,2,opt,name=response_transformation,json=responseTransformation" json:"response_transformation,omitempty"`
}
func (*RouteTransformations) Descriptor ¶
func (*RouteTransformations) Descriptor() ([]byte, []int)
func (*RouteTransformations) GetRequestTransformation ¶
func (m *RouteTransformations) GetRequestTransformation() *Transformation
func (*RouteTransformations) GetResponseTransformation ¶
func (m *RouteTransformations) GetResponseTransformation() *Transformation
func (*RouteTransformations) ProtoMessage ¶
func (*RouteTransformations) ProtoMessage()
func (*RouteTransformations) Reset ¶
func (m *RouteTransformations) Reset()
func (*RouteTransformations) String ¶
func (m *RouteTransformations) String() string
type Template ¶
type Template struct {
Path string `json:"path"`
Header map[string]string `json:"headers"`
// body is a pointer because, if null, pass through original body
Body *string `json:"body"`
// if enabled, the request body will be passed through untouched
PassthroughBody bool `json:"passthrough_body"`
}
this goes on the function spec or on the response transformation
type Transformation ¶
type Transformation struct {
// Template is in the transformed request language domain
// currently both are JSON
//
// Types that are valid to be assigned to TransformationType:
// *Transformation_TransformationTemplate
// *Transformation_HeaderBodyTransform
TransformationType isTransformation_TransformationType `protobuf_oneof:"transformation_type"`
}
[#proto-status: experimental]
func (*Transformation) Descriptor ¶
func (*Transformation) Descriptor() ([]byte, []int)
func (*Transformation) GetHeaderBodyTransform ¶
func (m *Transformation) GetHeaderBodyTransform() *HeaderBodyTransform
func (*Transformation) GetTransformationTemplate ¶
func (m *Transformation) GetTransformationTemplate() *TransformationTemplate
func (*Transformation) GetTransformationType ¶
func (m *Transformation) GetTransformationType() isTransformation_TransformationType
func (*Transformation) ProtoMessage ¶
func (*Transformation) ProtoMessage()
func (*Transformation) Reset ¶
func (m *Transformation) Reset()
func (*Transformation) String ¶
func (m *Transformation) String() string
func (*Transformation) XXX_OneofFuncs ¶
func (*Transformation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})
XXX_OneofFuncs is for the internal use of the proto package.
type TransformationTemplate ¶
type TransformationTemplate struct {
AdvancedTemplates bool `protobuf:"varint,1,opt,name=advanced_templates,json=advancedTemplates,proto3" json:"advanced_templates,omitempty"`
// Extractors are in the origin request language domain
Extractors map[string]*Extraction `` /* 147-byte string literal not displayed */
Headers map[string]*InjaTemplate `` /* 141-byte string literal not displayed */
// Types that are valid to be assigned to BodyTransformation:
// *TransformationTemplate_Body
// *TransformationTemplate_Passthrough
// *TransformationTemplate_MergeExtractorsToBody
BodyTransformation isTransformationTemplate_BodyTransformation `protobuf_oneof:"body_transformation"`
}
func (*TransformationTemplate) Descriptor ¶
func (*TransformationTemplate) Descriptor() ([]byte, []int)
func (*TransformationTemplate) GetAdvancedTemplates ¶
func (m *TransformationTemplate) GetAdvancedTemplates() bool
func (*TransformationTemplate) GetBody ¶
func (m *TransformationTemplate) GetBody() *InjaTemplate
func (*TransformationTemplate) GetBodyTransformation ¶
func (m *TransformationTemplate) GetBodyTransformation() isTransformationTemplate_BodyTransformation
func (*TransformationTemplate) GetExtractors ¶
func (m *TransformationTemplate) GetExtractors() map[string]*Extraction
func (*TransformationTemplate) GetHeaders ¶
func (m *TransformationTemplate) GetHeaders() map[string]*InjaTemplate
func (*TransformationTemplate) GetMergeExtractorsToBody ¶
func (m *TransformationTemplate) GetMergeExtractorsToBody() *MergeExtractorsToBody
func (*TransformationTemplate) GetPassthrough ¶
func (m *TransformationTemplate) GetPassthrough() *Passthrough
func (*TransformationTemplate) ProtoMessage ¶
func (*TransformationTemplate) ProtoMessage()
func (*TransformationTemplate) Reset ¶
func (m *TransformationTemplate) Reset()
func (*TransformationTemplate) String ¶
func (m *TransformationTemplate) String() string
func (*TransformationTemplate) XXX_OneofFuncs ¶
func (*TransformationTemplate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})
XXX_OneofFuncs is for the internal use of the proto package.
type TransformationTemplate_Body ¶
type TransformationTemplate_Body struct {
Body *InjaTemplate `protobuf:"bytes,4,opt,name=body,oneof"`
}
type TransformationTemplate_MergeExtractorsToBody ¶
type TransformationTemplate_MergeExtractorsToBody struct {
MergeExtractorsToBody *MergeExtractorsToBody `protobuf:"bytes,6,opt,name=merge_extractors_to_body,json=mergeExtractorsToBody,oneof"`
}
type TransformationTemplate_Passthrough ¶
type TransformationTemplate_Passthrough struct {
Passthrough *Passthrough `protobuf:"bytes,5,opt,name=passthrough,oneof"`
}
type Transformation_HeaderBodyTransform ¶
type Transformation_HeaderBodyTransform struct {
HeaderBodyTransform *HeaderBodyTransform `protobuf:"bytes,2,opt,name=header_body_transform,json=headerBodyTransform,oneof"`
}
type Transformation_TransformationTemplate ¶
type Transformation_TransformationTemplate struct {
TransformationTemplate *TransformationTemplate `protobuf:"bytes,1,opt,name=transformation_template,json=transformationTemplate,oneof"`
}
type Transformations ¶
type Transformations struct {
Transformations map[string]*Transformation `` /* 157-byte string literal not displayed */
// if use_routes_for_config is set transformations will be ignored. the plan
// is to eventually deprecate it. Ideally they should be in a oneof, but a map
// can't be in a oneof...
UseRoutesForConfig bool `protobuf:"varint,2,opt,name=use_routes_for_config,json=useRoutesForConfig,proto3" json:"use_routes_for_config,omitempty"`
}
func (*Transformations) Descriptor ¶
func (*Transformations) Descriptor() ([]byte, []int)
func (*Transformations) GetTransformations ¶
func (m *Transformations) GetTransformations() map[string]*Transformation
func (*Transformations) GetUseRoutesForConfig ¶
func (m *Transformations) GetUseRoutesForConfig() bool
func (*Transformations) ProtoMessage ¶
func (*Transformations) ProtoMessage()
func (*Transformations) Reset ¶
func (m *Transformations) Reset()
func (*Transformations) String ¶
func (m *Transformations) String() string
Click to show internal directories.
Click to hide internal directories.