federation

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PrivatePackageName          = "grpc.federation.private"
	MessageArgumentVariableName = "__ARG__"
)
View Source
const CELPluginProtocolVersion = cel.PluginProtocolVersion

Variables

View Source
var (
	Getenv                = os.Getenv
	GRPCErrorf            = status.Errorf
	NewGRPCStatus         = status.New
	ErrorGroupWithContext = errgroup.WithContext
	NewCELEnv             = cel.NewCustomEnv
	CELLib                = cel.Lib
	CELDoubleType         = types.DoubleType
	CELIntType            = types.IntType
	CELUintType           = types.UintType
	CELBoolType           = types.BoolType
	CELStringType         = types.StringType
	CELBytesType          = types.BytesType
	CELObjectType         = cel.ObjectType
	CELListType           = cel.ListType
	NewCELListType        = types.NewListType
	NewCELObjectType      = types.NewObjectType
)
View Source
var (
	ErrClientConfig    = errors.New("grpc-federation: Client field is not set. this field must be set")
	ErrResolverConfig  = errors.New("grpc-federation: Resolver field is not set. this field must be set")
	ErrCELPluginConfig = errors.New("grpc-federation: CELPlugin field is not set. this field must be set")
	ErrCELCacheMap     = errors.New("grpc-federation: CELCacheMap is not found")
	ErrCELCacheIndex   = errors.New("grpc-federation: CELCacheIndex is not set")
)
View Source
var (
	// optional grpc.federation.EnumRule enum = 1187;
	E_Enum = &file_grpc_federation_federation_proto_extTypes[4]
)

Extension fields to descriptorpb.EnumOptions.

View Source
var (
	// optional grpc.federation.EnumValueRule enum_value = 1187;
	E_EnumValue = &file_grpc_federation_federation_proto_extTypes[5]
)

Extension fields to descriptorpb.EnumValueOptions.

View Source
var (
	// optional grpc.federation.FieldRule field = 1187;
	E_Field = &file_grpc_federation_federation_proto_extTypes[3]
)

Extension fields to descriptorpb.FieldOptions.

View Source
var (
	// optional grpc.federation.MessageRule message = 1187;
	E_Message = &file_grpc_federation_federation_proto_extTypes[2]
)

Extension fields to descriptorpb.MessageOptions.

View Source
var (
	// optional grpc.federation.MethodRule method = 1187;
	E_Method = &file_grpc_federation_federation_proto_extTypes[1]
)

Extension fields to descriptorpb.MethodOptions.

View Source
var (
	// optional grpc.federation.OneofRule oneof = 1187;
	E_Oneof = &file_grpc_federation_federation_proto_extTypes[6]
)

Extension fields to descriptorpb.OneofOptions.

View Source
var (
	// optional grpc.federation.ServiceRule service = 1187;
	E_Service = &file_grpc_federation_federation_proto_extTypes[0]
)

Extension fields to descriptorpb.ServiceOptions.

View Source
var File_grpc_federation_federation_proto protoreflect.FileDescriptor
View Source
var Version string = "dev"

Functions

func BadRequest added in v0.10.0

func BadRequest(ctx context.Context, value localValue, violations []*BadRequestFieldViolation) *errdetails.BadRequest

func CustomMessage added in v0.10.0

func CustomMessage(ctx context.Context, param *CustomMessageParam) protoadapt.MessageV1

func DecodeCELPluginRequest added in v0.13.8

func DecodeCELPluginRequest(v []byte) (*celplugin.CELPluginRequest, error)

func EncodeCELPluginResponse added in v0.13.8

func EncodeCELPluginResponse(v *celplugin.CELPluginResponse) ([]byte, error)

func EncodeCELPluginVersion added in v0.15.0

func EncodeCELPluginVersion(v CELPluginVersionSchema) ([]byte, error)

func EnumAccessorOptions added in v0.13.0

func EnumAccessorOptions(enumName string, nameToValue map[string]int32, valueToName map[int32]string) []cel.EnvOption

func EvalCEL added in v0.4.0

func EvalCEL(ctx context.Context, req *EvalCELRequest) (any, error)

func EvalDef added in v0.10.0

func EvalDef[T any, U localValue](ctx context.Context, value U, def Def[T, U]) error

func EvalDefMap added in v0.10.0

func EvalDefMap[T any, U any, V localValue](ctx context.Context, value V, def DefMap[T, U, V]) error

func GoWithRecover added in v0.4.0

func GoWithRecover(eg *errgroup.Group, fn func() (any, error))

func If added in v0.10.0

func If[T localValue](ctx context.Context, param *IfParam[T]) error

func LocalizedMessage added in v0.10.0

func LocalizedMessage(ctx context.Context, param *LocalizedMessageParam) *errdetails.LocalizedMessage

func Logger added in v0.4.0

func Logger(ctx context.Context) *slog.Logger

func NewCELFieldType added in v0.4.0

func NewCELFieldType(typ *celtypes.Type, fieldName string) *celtypes.FieldType

func NewDefaultEnvOptions added in v0.10.0

func NewDefaultEnvOptions(celHelper *CELTypeHelper) []cel.EnvOption

func NewOneofSelectorFieldType added in v0.4.0

func NewOneofSelectorFieldType(typ *celtypes.Type, fieldName string, oneofTypes []reflect.Type, getterNames []string, zeroValue reflect.Value) *celtypes.FieldType

func OutputErrorLog added in v0.4.0

func OutputErrorLog(ctx context.Context, logger *slog.Logger, err error)

func PreconditionFailure added in v0.10.0

func PreconditionFailure(ctx context.Context, value localValue, violations []*PreconditionFailureViolation) *errdetails.PreconditionFailure

func RecordErrorToSpan added in v0.5.0

func RecordErrorToSpan(ctx context.Context, err error)

func SetCELValue added in v0.10.0

func SetCELValue[T any](ctx context.Context, param *SetCELValueParam[T]) error

func SetGRPCError added in v0.13.0

func SetGRPCError(ctx context.Context, value localValue, err error)

func ToBool added in v0.13.8

func ToBool(v *celplugin.CELPluginValue) (bool, error)

func ToBoolCELPluginResponse added in v0.13.8

func ToBoolCELPluginResponse(v bool) (*celplugin.CELPluginResponse, error)

func ToBytes added in v0.10.0

func ToBytes(v *celplugin.CELPluginValue) ([]byte, error)

func ToBytesCELPluginResponse added in v0.13.8

func ToBytesCELPluginResponse(v []byte) (*celplugin.CELPluginResponse, error)

func ToEnum added in v0.13.8

func ToEnum[T ~int32](v *celplugin.CELPluginValue) (T, error)

func ToErrorCELPluginResponse added in v0.13.8

func ToErrorCELPluginResponse(v error) *celplugin.CELPluginResponse

func ToFloat32 added in v0.10.0

func ToFloat32(v *celplugin.CELPluginValue) (float32, error)

func ToFloat32CELPluginResponse added in v0.13.8

func ToFloat32CELPluginResponse(v float32) (*celplugin.CELPluginResponse, error)

func ToFloat64 added in v0.10.0

func ToFloat64(v *celplugin.CELPluginValue) (float64, error)

func ToFloat64CELPluginResponse added in v0.13.8

func ToFloat64CELPluginResponse(v float64) (*celplugin.CELPluginResponse, error)

func ToInt32 added in v0.13.8

func ToInt32(v *celplugin.CELPluginValue) (int32, error)

func ToInt32CELPluginResponse added in v0.13.8

func ToInt32CELPluginResponse(v int32) (*celplugin.CELPluginResponse, error)

func ToInt64 added in v0.13.8

func ToInt64(v *celplugin.CELPluginValue) (int64, error)

func ToInt64CELPluginResponse added in v0.13.8

func ToInt64CELPluginResponse(v int64) (*celplugin.CELPluginResponse, error)

func ToLogAttrKey added in v0.10.0

func ToLogAttrKey(v any) string

func ToMessage added in v0.10.0

func ToMessage[T proto.Message](v *celplugin.CELPluginValue) (T, error)

func ToMessageCELPluginResponse added in v0.13.8

func ToMessageCELPluginResponse[T proto.Message](v T) (*celplugin.CELPluginResponse, error)

func ToString added in v0.10.0

func ToString(v *celplugin.CELPluginValue) (string, error)

func ToStringCELPluginResponse added in v0.13.8

func ToStringCELPluginResponse(v string) (*celplugin.CELPluginResponse, error)

func ToUint32 added in v0.13.8

func ToUint32(v *celplugin.CELPluginValue) (uint32, error)

func ToUint32CELPluginResponse added in v0.13.8

func ToUint32CELPluginResponse(v uint32) (*celplugin.CELPluginResponse, error)

func ToUint64 added in v0.13.8

func ToUint64(v *celplugin.CELPluginValue) (uint64, error)

func ToUint64CELPluginResponse added in v0.13.8

func ToUint64CELPluginResponse(v uint64) (*celplugin.CELPluginResponse, error)

func WithCELCacheMap added in v0.13.8

func WithCELCacheMap(ctx context.Context, celCacheMap *CELCacheMap) context.Context

func WithLogger added in v0.4.0

func WithLogger(ctx context.Context, logger *slog.Logger) context.Context

func WithRetry added in v0.4.0

func WithRetry[T any](ctx context.Context, param *RetryParam[T]) (*T, error)

func WithTimeout added in v0.4.0

func WithTimeout[T any](ctx context.Context, method string, timeout time.Duration, fn func(context.Context) (*T, error)) (*T, error)

Types

type Argument

type Argument struct {

	// name of the message argument.
	// Use this name to refer to the message argument.
	// For example, if `foo` is specified as the name, it is referenced by `$.foo`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// by used to refer to a name or message argument defined in a MessageRule, use `$.` to refer to the message argument.
	// Use CEL (https://github.com/google/cel-spec) to evaluate the expression.
	// Variables are already defined in MessageRule can be used.
	By *string `protobuf:"bytes,2,opt,name=by,proto3,oneof" json:"by,omitempty"`
	// inline like by, it refers to the specified value and expands all fields beyond it.
	// For this reason, the referenced value must always be of message type.
	Inline *string `protobuf:"bytes,3,opt,name=inline,proto3,oneof" json:"inline,omitempty"`
	// double literal value.
	Double *float64 `protobuf:"fixed64,4,opt,name=double,proto3,oneof" json:"double,omitempty"`
	// repeated double literal values.
	Doubles []float64 `protobuf:"fixed64,5,rep,packed,name=doubles,proto3" json:"doubles,omitempty"`
	// float literal value.
	Float *float32 `protobuf:"fixed32,6,opt,name=float,proto3,oneof" json:"float,omitempty"`
	// repeated float literal values.
	Floats []float32 `protobuf:"fixed32,7,rep,packed,name=floats,proto3" json:"floats,omitempty"`
	// int32 literal value.
	Int32 *int32 `protobuf:"varint,8,opt,name=int32,proto3,oneof" json:"int32,omitempty"`
	// repeated int32 literal values.
	Int32S []int32 `protobuf:"varint,9,rep,packed,name=int32s,proto3" json:"int32s,omitempty"`
	// int64 literal value.
	Int64 *int64 `protobuf:"varint,10,opt,name=int64,proto3,oneof" json:"int64,omitempty"`
	// repeated int64 literal values.
	Int64S []int64 `protobuf:"varint,11,rep,packed,name=int64s,proto3" json:"int64s,omitempty"`
	// uint32 literal value.
	Uint32 *uint32 `protobuf:"varint,12,opt,name=uint32,proto3,oneof" json:"uint32,omitempty"`
	// repeated uint32 literal values.
	Uint32S []uint32 `protobuf:"varint,13,rep,packed,name=uint32s,proto3" json:"uint32s,omitempty"`
	// uint64 literal value.
	Uint64 *uint64 `protobuf:"varint,14,opt,name=uint64,proto3,oneof" json:"uint64,omitempty"`
	// repeated uint64 literal values.
	Uint64S []uint64 `protobuf:"varint,15,rep,packed,name=uint64s,proto3" json:"uint64s,omitempty"`
	// sint32 literal value.
	Sint32 *int32 `protobuf:"zigzag32,16,opt,name=sint32,proto3,oneof" json:"sint32,omitempty"`
	// repeated sint32 literal values.
	Sint32S []int32 `protobuf:"zigzag32,17,rep,packed,name=sint32s,proto3" json:"sint32s,omitempty"`
	// sint64 literal value.
	Sint64 *int64 `protobuf:"zigzag64,18,opt,name=sint64,proto3,oneof" json:"sint64,omitempty"`
	// repeated sint64 literal values.
	Sint64S []int64 `protobuf:"zigzag64,19,rep,packed,name=sint64s,proto3" json:"sint64s,omitempty"`
	// fixed32 literal value.
	Fixed32 *uint32 `protobuf:"fixed32,20,opt,name=fixed32,proto3,oneof" json:"fixed32,omitempty"`
	// repeated fixed32 literal values.
	Fixed32S []uint32 `protobuf:"fixed32,21,rep,packed,name=fixed32s,proto3" json:"fixed32s,omitempty"`
	// fixed64 literal value.
	Fixed64 *uint64 `protobuf:"fixed64,22,opt,name=fixed64,proto3,oneof" json:"fixed64,omitempty"`
	// repeated fixed64 literal values.
	Fixed64S []uint64 `protobuf:"fixed64,23,rep,packed,name=fixed64s,proto3" json:"fixed64s,omitempty"`
	// sfixed32 literal value.
	Sfixed32 *int32 `protobuf:"fixed32,24,opt,name=sfixed32,proto3,oneof" json:"sfixed32,omitempty"`
	// repeated sfixed32 literal values.
	Sfixed32S []int32 `protobuf:"fixed32,25,rep,packed,name=sfixed32s,proto3" json:"sfixed32s,omitempty"`
	// sfixed64 literal value.
	Sfixed64 *int64 `protobuf:"fixed64,26,opt,name=sfixed64,proto3,oneof" json:"sfixed64,omitempty"`
	// repeated sfixed64 literal values.
	Sfixed64S []int64 `protobuf:"fixed64,27,rep,packed,name=sfixed64s,proto3" json:"sfixed64s,omitempty"`
	// bool literal value.
	Bool *bool `protobuf:"varint,28,opt,name=bool,proto3,oneof" json:"bool,omitempty"`
	// repeated bool literal values.
	Bools []bool `protobuf:"varint,29,rep,packed,name=bools,proto3" json:"bools,omitempty"`
	// string literal value.
	String_ *string `protobuf:"bytes,30,opt,name=string,proto3,oneof" json:"string,omitempty"`
	// repeated string literal values.
	Strings []string `protobuf:"bytes,31,rep,name=strings,proto3" json:"strings,omitempty"`
	// bytes literal value.
	ByteString []byte `protobuf:"bytes,32,opt,name=byte_string,json=byteString,proto3,oneof" json:"byte_string,omitempty"`
	// repeated bytes literal values.
	ByteStrings [][]byte `protobuf:"bytes,33,rep,name=byte_strings,json=byteStrings,proto3" json:"byte_strings,omitempty"`
	// message literal value.
	Message *MessageValue `protobuf:"bytes,34,opt,name=message,proto3,oneof" json:"message,omitempty"`
	// repeated message literal values.
	Messages []*MessageValue `protobuf:"bytes,35,rep,name=messages,proto3" json:"messages,omitempty"`
	// enum literal value.
	Enum *string `protobuf:"bytes,36,opt,name=enum,proto3,oneof" json:"enum,omitempty"`
	// repeated enum literal values.
	Enums []string `protobuf:"bytes,37,rep,name=enums,proto3" json:"enums,omitempty"`
	// env literal value.
	Env *string `protobuf:"bytes,38,opt,name=env,proto3,oneof" json:"env,omitempty"`
	// repeated env literal values.
	Envs []string `protobuf:"bytes,39,rep,name=envs,proto3" json:"envs,omitempty"`
	// contains filtered or unexported fields
}

Argument define message argument.

func (*Argument) Descriptor deprecated

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

Deprecated: Use Argument.ProtoReflect.Descriptor instead.

func (*Argument) GetBool

func (x *Argument) GetBool() bool

func (*Argument) GetBools

func (x *Argument) GetBools() []bool

func (*Argument) GetBy

func (x *Argument) GetBy() string

func (*Argument) GetByteString

func (x *Argument) GetByteString() []byte

func (*Argument) GetByteStrings

func (x *Argument) GetByteStrings() [][]byte

func (*Argument) GetDouble

func (x *Argument) GetDouble() float64

func (*Argument) GetDoubles

func (x *Argument) GetDoubles() []float64

func (*Argument) GetEnum

func (x *Argument) GetEnum() string

func (*Argument) GetEnums

func (x *Argument) GetEnums() []string

func (*Argument) GetEnv

func (x *Argument) GetEnv() string

func (*Argument) GetEnvs

func (x *Argument) GetEnvs() []string

func (*Argument) GetFixed32

func (x *Argument) GetFixed32() uint32

func (*Argument) GetFixed32S

func (x *Argument) GetFixed32S() []uint32

func (*Argument) GetFixed64

func (x *Argument) GetFixed64() uint64

func (*Argument) GetFixed64S

func (x *Argument) GetFixed64S() []uint64

func (*Argument) GetFloat

func (x *Argument) GetFloat() float32

func (*Argument) GetFloats

func (x *Argument) GetFloats() []float32

func (*Argument) GetInline

func (x *Argument) GetInline() string

func (*Argument) GetInt32

func (x *Argument) GetInt32() int32

func (*Argument) GetInt32S

func (x *Argument) GetInt32S() []int32

func (*Argument) GetInt64

func (x *Argument) GetInt64() int64

func (*Argument) GetInt64S

func (x *Argument) GetInt64S() []int64

func (*Argument) GetMessage

func (x *Argument) GetMessage() *MessageValue

func (*Argument) GetMessages

func (x *Argument) GetMessages() []*MessageValue

func (*Argument) GetName

func (x *Argument) GetName() string

func (*Argument) GetSfixed32

func (x *Argument) GetSfixed32() int32

func (*Argument) GetSfixed32S

func (x *Argument) GetSfixed32S() []int32

func (*Argument) GetSfixed64

func (x *Argument) GetSfixed64() int64

func (*Argument) GetSfixed64S

func (x *Argument) GetSfixed64S() []int64

func (*Argument) GetSint32

func (x *Argument) GetSint32() int32

func (*Argument) GetSint32S

func (x *Argument) GetSint32S() []int32

func (*Argument) GetSint64

func (x *Argument) GetSint64() int64

func (*Argument) GetSint64S

func (x *Argument) GetSint64S() []int64

func (*Argument) GetString_

func (x *Argument) GetString_() string

func (*Argument) GetStrings

func (x *Argument) GetStrings() []string

func (*Argument) GetUint32

func (x *Argument) GetUint32() uint32

func (*Argument) GetUint32S

func (x *Argument) GetUint32S() []uint32

func (*Argument) GetUint64

func (x *Argument) GetUint64() uint64

func (*Argument) GetUint64S

func (x *Argument) GetUint64S() []uint64

func (*Argument) ProtoMessage

func (*Argument) ProtoMessage()

func (*Argument) ProtoReflect

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

func (*Argument) Reset

func (x *Argument) Reset()

func (*Argument) String

func (x *Argument) String() string

type BackOff added in v0.10.0

type BackOff struct {
	backoff.BackOff
}

func BackOffWithContext added in v0.10.0

func BackOffWithContext(b *BackOff, ctx context.Context) *BackOff

func BackOffWithMaxRetries added in v0.10.0

func BackOffWithMaxRetries(b *BackOff, max uint64) *BackOff

func NewConstantBackOff added in v0.10.0

func NewConstantBackOff(d time.Duration) *BackOff

func NewExponentialBackOff added in v0.10.0

func NewExponentialBackOff(cfg *ExponentialBackOffConfig) *BackOff

type BadRequestFieldViolation added in v0.10.0

type BadRequestFieldViolation struct {
	Field                  string
	FieldUseContextLibrary bool
	FieldCacheIndex        int

	Desc                  string
	DescUseContextLibrary bool
	DescCacheIndex        int
}

type CELCache added in v0.13.8

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

CELCache used to speed up CEL evaluation from the second time onward. cel.Program cannot be reused to evaluate contextual libraries or plugins, so cel.Ast is reused to speed up the process.

type CELCacheMap added in v0.13.8

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

CELCacheMap service-wide in-memory cache store for CEL evaluation. The cache key is a constant value created by code-generation.

func NewCELCacheMap added in v0.13.8

func NewCELCacheMap() *CELCacheMap

NewCELCacheMap creates CELCacheMap instance.

type CELEnv added in v0.10.0

type CELEnv = cel.Env

type CELEnvOption added in v0.13.8

type CELEnvOption = cel.EnvOption

type CELFieldType added in v0.10.0

type CELFieldType = types.FieldType

type CELPluginRequest added in v0.13.8

type CELPluginRequest = celplugin.CELPluginRequest

type CELPluginResponse added in v0.13.8

type CELPluginResponse = celplugin.CELPluginResponse

type CELPluginVersionSchema added in v0.15.0

type CELPluginVersionSchema = cel.PluginVersionSchema

type CELTypeDeclare added in v0.10.0

type CELTypeDeclare = cel.Type

type CELTypeHelper added in v0.4.0

type CELTypeHelper struct {
	*celtypes.Registry
	// contains filtered or unexported fields
}

CELTypeHelper provides the cel.Registry needed to build a cel environment.

func NewCELTypeHelper added in v0.4.0

func NewCELTypeHelper(structFieldMap CELTypeHelperFieldMap) *CELTypeHelper

func (*CELTypeHelper) CELRegistry added in v0.13.8

func (h *CELTypeHelper) CELRegistry() *celtypes.Registry

func (*CELTypeHelper) EnumValue added in v0.4.0

func (h *CELTypeHelper) EnumValue(enumName string) ref.Val

func (*CELTypeHelper) FindIdent added in v0.4.0

func (h *CELTypeHelper) FindIdent(identName string) (ref.Val, bool)

func (*CELTypeHelper) FindStructFieldNames added in v0.4.0

func (h *CELTypeHelper) FindStructFieldNames(structType string) ([]string, bool)

func (*CELTypeHelper) FindStructFieldType added in v0.4.0

func (h *CELTypeHelper) FindStructFieldType(structType, fieldName string) (*celtypes.FieldType, bool)

func (*CELTypeHelper) FindStructType added in v0.4.0

func (h *CELTypeHelper) FindStructType(structType string) (*celtypes.Type, bool)

func (*CELTypeHelper) NewValue added in v0.4.0

func (h *CELTypeHelper) NewValue(structType string, fields map[string]ref.Val) ref.Val

func (*CELTypeHelper) RegisterType added in v0.13.8

func (h *CELTypeHelper) RegisterType(types ...ref.Type) error

func (*CELTypeHelper) TypeAdapter added in v0.4.0

func (h *CELTypeHelper) TypeAdapter() celtypes.Adapter

func (*CELTypeHelper) TypeProvider added in v0.4.0

func (h *CELTypeHelper) TypeProvider() celtypes.Provider

type CELTypeHelperFieldMap added in v0.13.8

type CELTypeHelperFieldMap map[string]map[string]*celtypes.FieldType

type CallExpr added in v0.6.0

type CallExpr struct {

	// method specify the FQDN for the gRPC method. format is `<package-name>.<service-name>/<method-name>`.
	Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"`
	// request specify request parameters for the gRPC method.
	Request []*MethodRequest `protobuf:"bytes,2,rep,name=request,proto3" json:"request,omitempty"`
	// the time to timeout. If the specified time period elapses, DEADLINE_EXCEEDED status is returned.
	// If you want to handle this error, you need to implement a custom error handler in Go.
	// The format is the same as Go's time.Duration format. See https://pkg.go.dev/time#ParseDuration.
	Timeout *string `protobuf:"bytes,3,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// retry specifies the retry policy if the method call fails.
	Retry *RetryPolicy `protobuf:"bytes,4,opt,name=retry,proto3,oneof" json:"retry,omitempty"`
	// error evaluated when an error occurs during a method call.
	// Multiple errors can be defined and are evaluated in the order in which they are described.
	// If an error occurs while creating an gRPC status error, original error will be returned.
	Error []*GRPCError `protobuf:"bytes,5,rep,name=error,proto3" json:"error,omitempty"`
	// contains filtered or unexported fields
}

CallExpr represents how to call gRPC method.

func (*CallExpr) Descriptor deprecated added in v0.6.0

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

Deprecated: Use CallExpr.ProtoReflect.Descriptor instead.

func (*CallExpr) GetError added in v0.13.0

func (x *CallExpr) GetError() []*GRPCError

func (*CallExpr) GetMethod added in v0.6.0

func (x *CallExpr) GetMethod() string

func (*CallExpr) GetRequest added in v0.6.0

func (x *CallExpr) GetRequest() []*MethodRequest

func (*CallExpr) GetRetry added in v0.6.0

func (x *CallExpr) GetRetry() *RetryPolicy

func (*CallExpr) GetTimeout added in v0.6.0

func (x *CallExpr) GetTimeout() string

func (*CallExpr) ProtoMessage added in v0.6.0

func (*CallExpr) ProtoMessage()

func (*CallExpr) ProtoReflect added in v0.6.0

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

func (*CallExpr) Reset added in v0.6.0

func (x *CallExpr) Reset()

func (*CallExpr) String added in v0.6.0

func (x *CallExpr) String() string

type Code added in v0.10.0

type Code = codes.Code
const (
	OKCode Code = codes.OK

	// CancelledCode this is not a typo.
	// On proto, it is defined as `CANCELLED`, but in Go's library it is defined as Canceled.
	// The name of the code is automatically generated by (*GRPCError).GoGRPCStatusCode in generator/code_generator.go.
	// So if the name is different, it will not work. Therefore, the names should be the same as the names on the proto side.
	// - Proto: https://github.com/googleapis/googleapis/blob/65277ddce9caa1cfd1a0eb7ab67980fc73d20b50/google/rpc/code.proto#L41
	// - Go: https://github.com/grpc/grpc-go/blob/9952aa83979822b5915c3fcb2bb0f60afe55aa7d/codes/codes.go#L45
	//nolint:misspell
	CancelledCode Code = codes.Canceled

	UnknownCode            Code = codes.Unknown
	InvalidArgumentCode    Code = codes.InvalidArgument
	DeadlineExceededCode   Code = codes.DeadlineExceeded
	NotFoundCode           Code = codes.NotFound
	AlreadyExistsCode      Code = codes.AlreadyExists
	PermissionDeniedCode   Code = codes.PermissionDenied
	ResourceExhaustedCode  Code = codes.ResourceExhausted
	FailedPreconditionCode Code = codes.FailedPrecondition
	AbortedCode            Code = codes.Aborted
	OutOfRangeCode         Code = codes.OutOfRange
	UnimplementedCode      Code = codes.Unimplemented
	InternalCode           Code = codes.Internal
	UnavailableCode        Code = codes.Unavailable
	DataLossCode           Code = codes.DataLoss
	UnauthenticatedCode    Code = codes.Unauthenticated
)

type CustomMessageParam added in v0.13.8

type CustomMessageParam struct {
	Value            localValue
	MessageValueName string
	CacheIndex       int
	MessageIndex     int
}

type Def added in v0.10.0

type Def[T any, U localValue] struct {
	If                  string
	Name                string
	Type                *cel.Type
	Setter              func(U, T)
	By                  string
	IfUseContextLibrary bool
	ByUseContextLibrary bool
	IfCacheIndex        int
	ByCacheIndex        int
	Message             func(context.Context, U) (any, error)
	Validation          func(context.Context, U) error
}

type DefMap added in v0.10.0

type DefMap[T any, U any, V localValue] struct {
	If                  string
	IfUseContextLibrary bool
	IfCacheIndex        int
	Name                string
	Type                *cel.Type
	Setter              func(V, T)
	IteratorName        string
	IteratorType        *cel.Type
	IteratorSource      func(V) []U
	Iterator            func(context.Context, *MapIteratorValue) (any, error)
	// contains filtered or unexported fields
}

type EnumRule

type EnumRule struct {

	// alias mapping between enums defined in other packages and enums defined on the federation service side.
	// The alias is the FQDN ( <package-name>.<enum-name> ) to the enum.
	// If this definition exists, type conversion is automatically performed before the enum value assignment operation.
	// If a enum with this option has a value that is not present in the enum specified by alias, and the alias option is not specified for that value, an error is occurred.
	Alias *string `protobuf:"bytes,1,opt,name=alias,proto3,oneof" json:"alias,omitempty"`
	// contains filtered or unexported fields
}

func (*EnumRule) Descriptor deprecated

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

Deprecated: Use EnumRule.ProtoReflect.Descriptor instead.

func (*EnumRule) GetAlias

func (x *EnumRule) GetAlias() string

func (*EnumRule) ProtoMessage

func (*EnumRule) ProtoMessage()

func (*EnumRule) ProtoReflect

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

func (*EnumRule) Reset

func (x *EnumRule) Reset()

func (*EnumRule) String

func (x *EnumRule) String() string

type EnumValueRule

type EnumValueRule struct {

	// specifies the default value of the enum.
	// All values other than those specified in alias will be default values.
	Default *bool `protobuf:"varint,1,opt,name=default,proto3,oneof" json:"default,omitempty"`
	// alias can be used when alias is specified in grpc.federation.enum option,
	// and specifies the value name to be referenced among the enums specified in alias of enum option.
	// multiple value names can be specified for alias.
	Alias []string `protobuf:"bytes,2,rep,name=alias,proto3" json:"alias,omitempty"`
	// contains filtered or unexported fields
}

func (*EnumValueRule) Descriptor deprecated

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

Deprecated: Use EnumValueRule.ProtoReflect.Descriptor instead.

func (*EnumValueRule) GetAlias

func (x *EnumValueRule) GetAlias() []string

func (*EnumValueRule) GetDefault

func (x *EnumValueRule) GetDefault() bool

func (*EnumValueRule) ProtoMessage

func (*EnumValueRule) ProtoMessage()

func (*EnumValueRule) ProtoReflect

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

func (*EnumValueRule) Reset

func (x *EnumValueRule) Reset()

func (*EnumValueRule) String

func (x *EnumValueRule) String() string

type ErrorGroup added in v0.10.0

type ErrorGroup = errgroup.Group

type ErrorHandler added in v0.4.0

type ErrorHandler func(ctx context.Context, methodName string, err error) error

ErrorHandler Federation Service often needs to convert errors received from downstream services. If an error occurs during method execution in the Federation Service, this error handler is called and the returned error is treated as a final error.

type EvalCELRequest added in v0.13.8

type EvalCELRequest struct {
	Value             localValue
	Expr              string
	UseContextLibrary bool
	OutType           reflect.Type
	CacheIndex        int
}

type ExponentialBackOffConfig added in v0.10.0

type ExponentialBackOffConfig struct {
	InitialInterval     time.Duration
	RandomizationFactor float64
	Multiplier          float64
	MaxInterval         time.Duration
	MaxElapsedTime      time.Duration
}

type FieldOneof added in v0.3.0

type FieldOneof struct {

	// cond specify either `expr` or `default`. Only one `default` can be set per oneof.
	//
	// Types that are assignable to Cond:
	//
	//	*FieldOneof_If
	//	*FieldOneof_Default
	Cond isFieldOneof_Cond `protobuf_oneof:"cond"`
	// def specify variables to be used in current oneof field's scope for field binding.
	Def []*VariableDefinition `protobuf:"bytes,3,rep,name=def,proto3" json:"def,omitempty"`
	// by used to refer to a name or message argument defined in a MessageRule, use `$.` to refer to the message argument.
	// Use CEL (https://github.com/google/cel-spec) to evaluate the expression.
	// Variables are already defined in MessageRule and FieldOneOf can be used.
	By string `protobuf:"bytes,4,opt,name=by,proto3" json:"by,omitempty"`
	// contains filtered or unexported fields
}

FieldOneof evaluate "messages" or other field only if expr is true and assign to the oneof field. This feature only available in oneof.

func (*FieldOneof) Descriptor deprecated added in v0.3.0

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

Deprecated: Use FieldOneof.ProtoReflect.Descriptor instead.

func (*FieldOneof) GetBy added in v0.3.0

func (x *FieldOneof) GetBy() string

func (*FieldOneof) GetCond added in v0.3.0

func (m *FieldOneof) GetCond() isFieldOneof_Cond

func (*FieldOneof) GetDef added in v0.7.0

func (x *FieldOneof) GetDef() []*VariableDefinition

func (*FieldOneof) GetDefault added in v0.3.0

func (x *FieldOneof) GetDefault() bool

func (*FieldOneof) GetIf added in v0.6.0

func (x *FieldOneof) GetIf() string

func (*FieldOneof) ProtoMessage added in v0.3.0

func (*FieldOneof) ProtoMessage()

func (*FieldOneof) ProtoReflect added in v0.3.0

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

func (*FieldOneof) Reset added in v0.3.0

func (x *FieldOneof) Reset()

func (*FieldOneof) String added in v0.3.0

func (x *FieldOneof) String() string

type FieldOneof_Default added in v0.3.0

type FieldOneof_Default struct {
	// default used to assign a value when none of the other fields match any of the specified expressions.
	// Only one value can be defined per oneof.
	Default bool `protobuf:"varint,2,opt,name=default,proto3,oneof"`
}

type FieldOneof_If added in v0.6.0

type FieldOneof_If struct {
	// if describes the condition to be assigned to field.
	// The return value must be of type bool.
	// Use CEL (https://github.com/google/cel-spec) to evaluate the expression.
	// Variables are already defined in MessageRule can be used.
	If string `protobuf:"bytes,1,opt,name=if,proto3,oneof"`
}

type FieldRule

type FieldRule struct {

	// If custom_resolver is true, the field binding process is to be implemented in Go.
	// If there are any values retrieved by grpc.federation.message option, they are passed as arguments for custom resolver.
	CustomResolver *bool `protobuf:"varint,1,opt,name=custom_resolver,json=customResolver,proto3,oneof" json:"custom_resolver,omitempty"`
	// by used to refer to a name or message argument defined in a MessageRule, use `$.` to refer to the message argument.
	// Use CEL (https://github.com/google/cel-spec) to evaluate the expression.
	// Variables are already defined in MessageRule can be used.
	By *string `protobuf:"bytes,2,opt,name=by,proto3,oneof" json:"by,omitempty"`
	// alias can be used when alias is specified in grpc.federation.message option,
	// and specifies the field name to be referenced among the messages specified in alias of message option.
	// If the specified field has the same type or can be converted automatically, its value is assigned.
	Alias *string `protobuf:"bytes,3,opt,name=alias,proto3,oneof" json:"alias,omitempty"`
	// double literal value.
	Double *float64 `protobuf:"fixed64,4,opt,name=double,proto3,oneof" json:"double,omitempty"`
	// repeated double literal values.
	Doubles []float64 `protobuf:"fixed64,5,rep,packed,name=doubles,proto3" json:"doubles,omitempty"`
	// float literal value.
	Float *float32 `protobuf:"fixed32,6,opt,name=float,proto3,oneof" json:"float,omitempty"`
	// repeated float literal values.
	Floats []float32 `protobuf:"fixed32,7,rep,packed,name=floats,proto3" json:"floats,omitempty"`
	// int32 literal value.
	Int32 *int32 `protobuf:"varint,8,opt,name=int32,proto3,oneof" json:"int32,omitempty"`
	// repeated int32 literal values.
	Int32S []int32 `protobuf:"varint,9,rep,packed,name=int32s,proto3" json:"int32s,omitempty"`
	// int64 literal value.
	Int64 *int64 `protobuf:"varint,10,opt,name=int64,proto3,oneof" json:"int64,omitempty"`
	// repeated int64 literal values.
	Int64S []int64 `protobuf:"varint,11,rep,packed,name=int64s,proto3" json:"int64s,omitempty"`
	// uint32 literal value.
	Uint32 *uint32 `protobuf:"varint,12,opt,name=uint32,proto3,oneof" json:"uint32,omitempty"`
	// repeated uint32 literal values.
	Uint32S []uint32 `protobuf:"varint,13,rep,packed,name=uint32s,proto3" json:"uint32s,omitempty"`
	// uint64 literal value.
	Uint64 *uint64 `protobuf:"varint,14,opt,name=uint64,proto3,oneof" json:"uint64,omitempty"`
	// repeated uint64 literal values.
	Uint64S []uint64 `protobuf:"varint,15,rep,packed,name=uint64s,proto3" json:"uint64s,omitempty"`
	// sint32 literal value.
	Sint32 *int32 `protobuf:"zigzag32,16,opt,name=sint32,proto3,oneof" json:"sint32,omitempty"`
	// repeated sint32 literal values.
	Sint32S []int32 `protobuf:"zigzag32,17,rep,packed,name=sint32s,proto3" json:"sint32s,omitempty"`
	// sint64 literal value.
	Sint64 *int64 `protobuf:"zigzag64,18,opt,name=sint64,proto3,oneof" json:"sint64,omitempty"`
	// repeated sint64 literal values.
	Sint64S []int64 `protobuf:"zigzag64,19,rep,packed,name=sint64s,proto3" json:"sint64s,omitempty"`
	// fixed32 literal value.
	Fixed32 *uint32 `protobuf:"fixed32,20,opt,name=fixed32,proto3,oneof" json:"fixed32,omitempty"`
	// repeated fixed32 literal values.
	Fixed32S []uint32 `protobuf:"fixed32,21,rep,packed,name=fixed32s,proto3" json:"fixed32s,omitempty"`
	// fixed64 literal value.
	Fixed64 *uint64 `protobuf:"fixed64,22,opt,name=fixed64,proto3,oneof" json:"fixed64,omitempty"`
	// repeated fixed64 literal values.
	Fixed64S []uint64 `protobuf:"fixed64,23,rep,packed,name=fixed64s,proto3" json:"fixed64s,omitempty"`
	// sfixed32 literal value.
	Sfixed32 *int32 `protobuf:"fixed32,24,opt,name=sfixed32,proto3,oneof" json:"sfixed32,omitempty"`
	// repeated sfixed32 literal values.
	Sfixed32S []int32 `protobuf:"fixed32,25,rep,packed,name=sfixed32s,proto3" json:"sfixed32s,omitempty"`
	// sfixed64 literal value.
	Sfixed64 *int64 `protobuf:"fixed64,26,opt,name=sfixed64,proto3,oneof" json:"sfixed64,omitempty"`
	// repeated sfixed64 literal values.
	Sfixed64S []int64 `protobuf:"fixed64,27,rep,packed,name=sfixed64s,proto3" json:"sfixed64s,omitempty"`
	// bool literal value.
	Bool *bool `protobuf:"varint,28,opt,name=bool,proto3,oneof" json:"bool,omitempty"`
	// repeated bool literal values.
	Bools []bool `protobuf:"varint,29,rep,packed,name=bools,proto3" json:"bools,omitempty"`
	// string literal value.
	String_ *string `protobuf:"bytes,30,opt,name=string,proto3,oneof" json:"string,omitempty"`
	// repeated string literal values.
	Strings []string `protobuf:"bytes,31,rep,name=strings,proto3" json:"strings,omitempty"`
	// bytes literal value.
	ByteString []byte `protobuf:"bytes,32,opt,name=byte_string,json=byteString,proto3,oneof" json:"byte_string,omitempty"`
	// repeated bytes literal values.
	ByteStrings [][]byte `protobuf:"bytes,33,rep,name=byte_strings,json=byteStrings,proto3" json:"byte_strings,omitempty"`
	// message literal value.
	Message *MessageValue `protobuf:"bytes,34,opt,name=message,proto3,oneof" json:"message,omitempty"`
	// repeated message literal values.
	Messages []*MessageValue `protobuf:"bytes,35,rep,name=messages,proto3" json:"messages,omitempty"`
	// enum literal value.
	Enum *string `protobuf:"bytes,36,opt,name=enum,proto3,oneof" json:"enum,omitempty"`
	// repeated enum literal values.
	Enums []string `protobuf:"bytes,37,rep,name=enums,proto3" json:"enums,omitempty"`
	// env literal value.
	Env *string `protobuf:"bytes,38,opt,name=env,proto3,oneof" json:"env,omitempty"`
	// repeated env literal values.
	Envs []string `protobuf:"bytes,39,rep,name=envs,proto3" json:"envs,omitempty"`
	// use to evaluate any one of fields. this field only available in oneof.
	Oneof *FieldOneof `protobuf:"bytes,40,opt,name=oneof,proto3" json:"oneof,omitempty"`
	// contains filtered or unexported fields
}

FieldRule define gRPC Federation rules for the field of message.

func (*FieldRule) Descriptor deprecated

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

Deprecated: Use FieldRule.ProtoReflect.Descriptor instead.

func (*FieldRule) GetAlias

func (x *FieldRule) GetAlias() string

func (*FieldRule) GetBool

func (x *FieldRule) GetBool() bool

func (*FieldRule) GetBools

func (x *FieldRule) GetBools() []bool

func (*FieldRule) GetBy

func (x *FieldRule) GetBy() string

func (*FieldRule) GetByteString

func (x *FieldRule) GetByteString() []byte

func (*FieldRule) GetByteStrings

func (x *FieldRule) GetByteStrings() [][]byte

func (*FieldRule) GetCustomResolver

func (x *FieldRule) GetCustomResolver() bool

func (*FieldRule) GetDouble

func (x *FieldRule) GetDouble() float64

func (*FieldRule) GetDoubles

func (x *FieldRule) GetDoubles() []float64

func (*FieldRule) GetEnum

func (x *FieldRule) GetEnum() string

func (*FieldRule) GetEnums

func (x *FieldRule) GetEnums() []string

func (*FieldRule) GetEnv

func (x *FieldRule) GetEnv() string

func (*FieldRule) GetEnvs

func (x *FieldRule) GetEnvs() []string

func (*FieldRule) GetFixed32

func (x *FieldRule) GetFixed32() uint32

func (*FieldRule) GetFixed32S

func (x *FieldRule) GetFixed32S() []uint32

func (*FieldRule) GetFixed64

func (x *FieldRule) GetFixed64() uint64

func (*FieldRule) GetFixed64S

func (x *FieldRule) GetFixed64S() []uint64

func (*FieldRule) GetFloat

func (x *FieldRule) GetFloat() float32

func (*FieldRule) GetFloats

func (x *FieldRule) GetFloats() []float32

func (*FieldRule) GetInt32

func (x *FieldRule) GetInt32() int32

func (*FieldRule) GetInt32S

func (x *FieldRule) GetInt32S() []int32

func (*FieldRule) GetInt64

func (x *FieldRule) GetInt64() int64

func (*FieldRule) GetInt64S

func (x *FieldRule) GetInt64S() []int64

func (*FieldRule) GetMessage

func (x *FieldRule) GetMessage() *MessageValue

func (*FieldRule) GetMessages

func (x *FieldRule) GetMessages() []*MessageValue

func (*FieldRule) GetOneof added in v0.3.0

func (x *FieldRule) GetOneof() *FieldOneof

func (*FieldRule) GetSfixed32

func (x *FieldRule) GetSfixed32() int32

func (*FieldRule) GetSfixed32S

func (x *FieldRule) GetSfixed32S() []int32

func (*FieldRule) GetSfixed64

func (x *FieldRule) GetSfixed64() int64

func (*FieldRule) GetSfixed64S

func (x *FieldRule) GetSfixed64S() []int64

func (*FieldRule) GetSint32

func (x *FieldRule) GetSint32() int32

func (*FieldRule) GetSint32S

func (x *FieldRule) GetSint32S() []int32

func (*FieldRule) GetSint64

func (x *FieldRule) GetSint64() int64

func (*FieldRule) GetSint64S

func (x *FieldRule) GetSint64S() []int64

func (*FieldRule) GetString_

func (x *FieldRule) GetString_() string

func (*FieldRule) GetStrings

func (x *FieldRule) GetStrings() []string

func (*FieldRule) GetUint32

func (x *FieldRule) GetUint32() uint32

func (*FieldRule) GetUint32S

func (x *FieldRule) GetUint32S() []uint32

func (*FieldRule) GetUint64

func (x *FieldRule) GetUint64() uint64

func (*FieldRule) GetUint64S

func (x *FieldRule) GetUint64S() []uint64

func (*FieldRule) ProtoMessage

func (*FieldRule) ProtoMessage()

func (*FieldRule) ProtoReflect

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

func (*FieldRule) Reset

func (x *FieldRule) Reset()

func (*FieldRule) String

func (x *FieldRule) String() string

type GRPCError added in v0.10.0

type GRPCError struct {

	// def define variables in current scope.
	Def []*VariableDefinition `protobuf:"bytes,1,rep,name=def,proto3" json:"def,omitempty"`
	// if specifies condition in CEL. If the condition is true, it returns defined error information.
	// If this field is omitted, it is always treated as 'true' and returns defined error information.
	// The return value must always be of type boolean.
	If *string `protobuf:"bytes,2,opt,name=if,proto3,oneof" json:"if,omitempty"`
	// code is a gRPC status code.
	Code code.Code `protobuf:"varint,3,opt,name=code,proto3,enum=google.rpc.Code" json:"code,omitempty"`
	// message is a gRPC status message.
	// If omitted, the message will be auto-generated from the configurations.
	Message *string `protobuf:"bytes,4,opt,name=message,proto3,oneof" json:"message,omitempty"`
	// details is a list of error details.
	// If returns error, the corresponding error details are set.
	Details []*GRPCErrorDetail `protobuf:"bytes,5,rep,name=details,proto3" json:"details,omitempty"`
	// ignore ignore the error if the condition in the "if" field is true and "ignore" field is set to true.
	// When an error is ignored, the returned response is always null value.
	// If you want to return a response that is not null, please use `ignore_and_response` feature.
	// Therefore, `ignore` and `ignore_and_response` cannot be specified same.
	Ignore *bool `protobuf:"varint,6,opt,name=ignore,proto3,oneof" json:"ignore,omitempty"`
	// ignore_and_response ignore the error if the condition in the "if" field is true and it returns response specified in CEL.
	// The evaluation value of CEL must always be the same as the response message type.
	// `ignore` and `ignore_and_response` cannot be specified same.
	IgnoreAndResponse *string `protobuf:"bytes,7,opt,name=ignore_and_response,json=ignoreAndResponse,proto3,oneof" json:"ignore_and_response,omitempty"`
	// contains filtered or unexported fields
}

GRPCError create gRPC status value.

func (*GRPCError) Descriptor deprecated added in v0.13.0

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

Deprecated: Use GRPCError.ProtoReflect.Descriptor instead.

func (*GRPCError) GetCode added in v0.13.0

func (x *GRPCError) GetCode() code.Code

func (*GRPCError) GetDef added in v0.13.0

func (x *GRPCError) GetDef() []*VariableDefinition

func (*GRPCError) GetDetails added in v0.13.0

func (x *GRPCError) GetDetails() []*GRPCErrorDetail

func (*GRPCError) GetIf added in v0.13.0

func (x *GRPCError) GetIf() string

func (*GRPCError) GetIgnore added in v0.13.0

func (x *GRPCError) GetIgnore() bool

func (*GRPCError) GetIgnoreAndResponse added in v0.14.0

func (x *GRPCError) GetIgnoreAndResponse() string

func (*GRPCError) GetMessage added in v0.13.0

func (x *GRPCError) GetMessage() string

func (*GRPCError) ProtoMessage added in v0.13.0

func (*GRPCError) ProtoMessage()

func (*GRPCError) ProtoReflect added in v0.13.0

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

func (*GRPCError) Reset added in v0.13.0

func (x *GRPCError) Reset()

func (*GRPCError) String added in v0.13.0

func (x *GRPCError) String() string

type GRPCErrorDetail added in v0.13.0

type GRPCErrorDetail struct {

	// if specifies condition rule in CEL. If the condition is true, gRPC error detail is added to the error.
	If string `protobuf:"bytes,1,opt,name=if,proto3" json:"if,omitempty"`
	// def define variables in current scope.
	Def []*VariableDefinition `protobuf:"bytes,2,rep,name=def,proto3" json:"def,omitempty"`
	// message represents arbitrary messages to describe the detail of the error.
	Message []*MessageExpr `protobuf:"bytes,3,rep,name=message,proto3" json:"message,omitempty"`
	// error_info describes the cause of the error with structured details.
	ErrorInfo []*errdetails.ErrorInfo `protobuf:"bytes,4,rep,name=error_info,json=errorInfo,proto3" json:"error_info,omitempty"`
	// retry_info describes when the clients can retry a failed request.
	RetryInfo []*errdetails.RetryInfo `protobuf:"bytes,5,rep,name=retry_info,json=retryInfo,proto3" json:"retry_info,omitempty"`
	// debug_info describes additional debugging info.
	DebugInfo []*errdetails.DebugInfo `protobuf:"bytes,6,rep,name=debug_info,json=debugInfo,proto3" json:"debug_info,omitempty"`
	// quota_failure describes how a quota check failed.
	QuotaFailure []*errdetails.QuotaFailure `protobuf:"bytes,7,rep,name=quota_failure,json=quotaFailure,proto3" json:"quota_failure,omitempty"`
	// precondition_failure describes what preconditions have failed.
	PreconditionFailure []*errdetails.PreconditionFailure `protobuf:"bytes,8,rep,name=precondition_failure,json=preconditionFailure,proto3" json:"precondition_failure,omitempty"`
	// bad_request describes violations in a client request.
	BadRequest []*errdetails.BadRequest `protobuf:"bytes,9,rep,name=bad_request,json=badRequest,proto3" json:"bad_request,omitempty"`
	// request_info contains metadata about the request that clients can attach.
	RequestInfo []*errdetails.RequestInfo `protobuf:"bytes,10,rep,name=request_info,json=requestInfo,proto3" json:"request_info,omitempty"`
	// resource_info describes the resource that is being accessed.
	ResourceInfo []*errdetails.ResourceInfo `protobuf:"bytes,11,rep,name=resource_info,json=resourceInfo,proto3" json:"resource_info,omitempty"`
	// help provides links to documentation or for performing an out of band action.
	Help []*errdetails.Help `protobuf:"bytes,12,rep,name=help,proto3" json:"help,omitempty"`
	// localized_message provides a localized error message that is safe to return to the user.
	LocalizedMessage []*errdetails.LocalizedMessage `protobuf:"bytes,13,rep,name=localized_message,json=localizedMessage,proto3" json:"localized_message,omitempty"`
	// contains filtered or unexported fields
}

func (*GRPCErrorDetail) Descriptor deprecated added in v0.13.0

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

Deprecated: Use GRPCErrorDetail.ProtoReflect.Descriptor instead.

func (*GRPCErrorDetail) GetBadRequest added in v0.13.0

func (x *GRPCErrorDetail) GetBadRequest() []*errdetails.BadRequest

func (*GRPCErrorDetail) GetDebugInfo added in v0.13.0

func (x *GRPCErrorDetail) GetDebugInfo() []*errdetails.DebugInfo

func (*GRPCErrorDetail) GetDef added in v0.13.0

func (x *GRPCErrorDetail) GetDef() []*VariableDefinition

func (*GRPCErrorDetail) GetErrorInfo added in v0.13.0

func (x *GRPCErrorDetail) GetErrorInfo() []*errdetails.ErrorInfo

func (*GRPCErrorDetail) GetHelp added in v0.13.0

func (x *GRPCErrorDetail) GetHelp() []*errdetails.Help

func (*GRPCErrorDetail) GetIf added in v0.13.0

func (x *GRPCErrorDetail) GetIf() string

func (*GRPCErrorDetail) GetLocalizedMessage added in v0.13.0

func (x *GRPCErrorDetail) GetLocalizedMessage() []*errdetails.LocalizedMessage

func (*GRPCErrorDetail) GetMessage added in v0.13.0

func (x *GRPCErrorDetail) GetMessage() []*MessageExpr

func (*GRPCErrorDetail) GetPreconditionFailure added in v0.13.0

func (x *GRPCErrorDetail) GetPreconditionFailure() []*errdetails.PreconditionFailure

func (*GRPCErrorDetail) GetQuotaFailure added in v0.13.0

func (x *GRPCErrorDetail) GetQuotaFailure() []*errdetails.QuotaFailure

func (*GRPCErrorDetail) GetRequestInfo added in v0.13.0

func (x *GRPCErrorDetail) GetRequestInfo() []*errdetails.RequestInfo

func (*GRPCErrorDetail) GetResourceInfo added in v0.13.0

func (x *GRPCErrorDetail) GetResourceInfo() []*errdetails.ResourceInfo

func (*GRPCErrorDetail) GetRetryInfo added in v0.13.0

func (x *GRPCErrorDetail) GetRetryInfo() []*errdetails.RetryInfo

func (*GRPCErrorDetail) ProtoMessage added in v0.13.0

func (*GRPCErrorDetail) ProtoMessage()

func (*GRPCErrorDetail) ProtoReflect added in v0.13.0

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

func (*GRPCErrorDetail) Reset added in v0.13.0

func (x *GRPCErrorDetail) Reset()

func (*GRPCErrorDetail) String added in v0.13.0

func (x *GRPCErrorDetail) String() string

type IfParam added in v0.13.8

type IfParam[T localValue] struct {
	Value             T
	Expr              string
	UseContextLibrary bool
	CacheIndex        int
	Body              func(T) error
}

type Iterator added in v0.6.0

type Iterator struct {

	// variable name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// src the value that will be the source for creating the iterator.
	// src must be a repeated type.
	Src string `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"`
	// contains filtered or unexported fields
}

Iterator represents iterator variable.

func (*Iterator) Descriptor deprecated added in v0.6.0

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

Deprecated: Use Iterator.ProtoReflect.Descriptor instead.

func (*Iterator) GetName added in v0.6.0

func (x *Iterator) GetName() string

func (*Iterator) GetSrc added in v0.6.0

func (x *Iterator) GetSrc() string

func (*Iterator) ProtoMessage added in v0.6.0

func (*Iterator) ProtoMessage()

func (*Iterator) ProtoReflect added in v0.6.0

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

func (*Iterator) Reset added in v0.6.0

func (x *Iterator) Reset()

func (*Iterator) String added in v0.6.0

func (x *Iterator) String() string

type LocalValue added in v0.10.0

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

func NewLocalValue added in v0.10.0

func NewLocalValue(ctx context.Context, celTypeHelper *CELTypeHelper, envOpts []cel.EnvOption, celPlugins []*grpcfedcel.CELPlugin, argName string, arg any) *LocalValue

func (*LocalValue) Close added in v0.13.8

func (v *LocalValue) Close(ctx context.Context) error

type LocalizedMessageParam added in v0.13.8

type LocalizedMessageParam struct {
	Value             localValue
	Locale            string
	Message           string
	UseContextLibrary bool
	CacheIndex        int
}

type MapExpr added in v0.6.0

type MapExpr struct {

	// iterator define iterator variable.
	// When evaluating CEL in `expr`, we can refer to the name defined in iterator.
	Iterator *Iterator `protobuf:"bytes,1,opt,name=iterator,proto3" json:"iterator,omitempty"`
	// expr creates map elements using iterator variable.
	//
	// Types that are assignable to Expr:
	//
	//	*MapExpr_By
	//	*MapExpr_Message
	Expr isMapExpr_Expr `protobuf_oneof:"expr"`
	// contains filtered or unexported fields
}

MapExpr apply map operation for the specified repeated type.

func (*MapExpr) Descriptor deprecated added in v0.6.0

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

Deprecated: Use MapExpr.ProtoReflect.Descriptor instead.

func (*MapExpr) GetBy added in v0.6.0

func (x *MapExpr) GetBy() string

func (*MapExpr) GetExpr added in v0.6.0

func (m *MapExpr) GetExpr() isMapExpr_Expr

func (*MapExpr) GetIterator added in v0.6.0

func (x *MapExpr) GetIterator() *Iterator

func (*MapExpr) GetMessage added in v0.6.0

func (x *MapExpr) GetMessage() *MessageExpr

func (*MapExpr) ProtoMessage added in v0.6.0

func (*MapExpr) ProtoMessage()

func (*MapExpr) ProtoReflect added in v0.6.0

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

func (*MapExpr) Reset added in v0.6.0

func (x *MapExpr) Reset()

func (*MapExpr) String added in v0.6.0

func (x *MapExpr) String() string

type MapExpr_By added in v0.6.0

type MapExpr_By struct {
	// `by` evaluates with CEL.
	// this can refer to the variable declared by `iterator`.
	By string `protobuf:"bytes,11,opt,name=by,proto3,oneof"`
}

type MapExpr_Message added in v0.6.0

type MapExpr_Message struct {
	// message gets with message arguments, and it is made an element of the map.
	// The result type of MapExpr is the repeated type of the specified message.
	Message *MessageExpr `protobuf:"bytes,12,opt,name=message,proto3,oneof"`
}

type MapIteratorValue added in v0.10.0

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

type MessageExpr added in v0.7.0

type MessageExpr struct {

	// name specify the message name by FQDN. format is `<package-name>.<message-name>`.
	// <package-name> can be omitted when referring to messages in the same package.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// args specify the parameters needed to get the message. This is called the "message arguments".
	Args []*Argument `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
	// contains filtered or unexported fields
}

MessageExpr represents dependent message.

func (*MessageExpr) Descriptor deprecated added in v0.7.0

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

Deprecated: Use MessageExpr.ProtoReflect.Descriptor instead.

func (*MessageExpr) GetArgs added in v0.7.0

func (x *MessageExpr) GetArgs() []*Argument

func (*MessageExpr) GetName added in v0.7.0

func (x *MessageExpr) GetName() string

func (*MessageExpr) ProtoMessage added in v0.7.0

func (*MessageExpr) ProtoMessage()

func (*MessageExpr) ProtoReflect added in v0.7.0

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

func (*MessageExpr) Reset added in v0.7.0

func (x *MessageExpr) Reset()

func (*MessageExpr) String added in v0.7.0

func (x *MessageExpr) String() string

type MessageFieldValue

type MessageFieldValue struct {
	Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	// double literal value.
	Double *float64 `protobuf:"fixed64,3,opt,name=double,proto3,oneof" json:"double,omitempty"`
	// repeated double literal values.
	Doubles []float64 `protobuf:"fixed64,4,rep,packed,name=doubles,proto3" json:"doubles,omitempty"`
	// float literal value.
	Float *float32 `protobuf:"fixed32,5,opt,name=float,proto3,oneof" json:"float,omitempty"`
	// repeated float literal values.
	Floats []float32 `protobuf:"fixed32,6,rep,packed,name=floats,proto3" json:"floats,omitempty"`
	// int32 literal value.
	Int32 *int32 `protobuf:"varint,7,opt,name=int32,proto3,oneof" json:"int32,omitempty"`
	// repeated int32 literal values.
	Int32S []int32 `protobuf:"varint,8,rep,packed,name=int32s,proto3" json:"int32s,omitempty"`
	// int64 literal value.
	Int64 *int64 `protobuf:"varint,9,opt,name=int64,proto3,oneof" json:"int64,omitempty"`
	// repeated int64 literal values.
	Int64S []int64 `protobuf:"varint,10,rep,packed,name=int64s,proto3" json:"int64s,omitempty"`
	// uint32 literal value.
	Uint32 *uint32 `protobuf:"varint,11,opt,name=uint32,proto3,oneof" json:"uint32,omitempty"`
	// repeated uint32 literal values.
	Uint32S []uint32 `protobuf:"varint,12,rep,packed,name=uint32s,proto3" json:"uint32s,omitempty"`
	// uint64 literal value.
	Uint64 *uint64 `protobuf:"varint,13,opt,name=uint64,proto3,oneof" json:"uint64,omitempty"`
	// repeated uint64 literal values.
	Uint64S []uint64 `protobuf:"varint,14,rep,packed,name=uint64s,proto3" json:"uint64s,omitempty"`
	// sint32 literal value.
	Sint32 *int32 `protobuf:"zigzag32,15,opt,name=sint32,proto3,oneof" json:"sint32,omitempty"`
	// repeated sint32 literal values.
	Sint32S []int32 `protobuf:"zigzag32,16,rep,packed,name=sint32s,proto3" json:"sint32s,omitempty"`
	// sint64 literal value.
	Sint64 *int64 `protobuf:"zigzag64,17,opt,name=sint64,proto3,oneof" json:"sint64,omitempty"`
	// repeated sint64 literal values.
	Sint64S []int64 `protobuf:"zigzag64,18,rep,packed,name=sint64s,proto3" json:"sint64s,omitempty"`
	// fixed32 literal value.
	Fixed32 *uint32 `protobuf:"fixed32,19,opt,name=fixed32,proto3,oneof" json:"fixed32,omitempty"`
	// repeated fixed32 literal values.
	Fixed32S []uint32 `protobuf:"fixed32,20,rep,packed,name=fixed32s,proto3" json:"fixed32s,omitempty"`
	// fixed64 literal value.
	Fixed64 *uint64 `protobuf:"fixed64,21,opt,name=fixed64,proto3,oneof" json:"fixed64,omitempty"`
	// repeated fixed64 literal values.
	Fixed64S []uint64 `protobuf:"fixed64,22,rep,packed,name=fixed64s,proto3" json:"fixed64s,omitempty"`
	// sfixed32 literal value.
	Sfixed32 *int32 `protobuf:"fixed32,23,opt,name=sfixed32,proto3,oneof" json:"sfixed32,omitempty"`
	// repeated sfixed32 literal values.
	Sfixed32S []int32 `protobuf:"fixed32,24,rep,packed,name=sfixed32s,proto3" json:"sfixed32s,omitempty"`
	// sfixed64 literal value.
	Sfixed64 *int64 `protobuf:"fixed64,25,opt,name=sfixed64,proto3,oneof" json:"sfixed64,omitempty"`
	// repeated sfixed64 literal values.
	Sfixed64S []int64 `protobuf:"fixed64,26,rep,packed,name=sfixed64s,proto3" json:"sfixed64s,omitempty"`
	// bool literal value.
	Bool *bool `protobuf:"varint,27,opt,name=bool,proto3,oneof" json:"bool,omitempty"`
	// repeated bool literal values.
	Bools []bool `protobuf:"varint,28,rep,packed,name=bools,proto3" json:"bools,omitempty"`
	// string literal value.
	String_ *string `protobuf:"bytes,29,opt,name=string,proto3,oneof" json:"string,omitempty"`
	// repeated string literal values.
	Strings []string `protobuf:"bytes,30,rep,name=strings,proto3" json:"strings,omitempty"`
	// bytes literal value.
	ByteString []byte `protobuf:"bytes,31,opt,name=byte_string,json=byteString,proto3,oneof" json:"byte_string,omitempty"`
	// repeated bytes literal values.
	ByteStrings [][]byte `protobuf:"bytes,32,rep,name=byte_strings,json=byteStrings,proto3" json:"byte_strings,omitempty"`
	// message literal value.
	Message *MessageValue `protobuf:"bytes,33,opt,name=message,proto3,oneof" json:"message,omitempty"`
	// repeated message literal values.
	Messages []*MessageValue `protobuf:"bytes,34,rep,name=messages,proto3" json:"messages,omitempty"`
	// enum literal value.
	Enum *string `protobuf:"bytes,35,opt,name=enum,proto3,oneof" json:"enum,omitempty"`
	// repeated enum literal values.
	Enums []string `protobuf:"bytes,36,rep,name=enums,proto3" json:"enums,omitempty"`
	// env literal value.
	Env *string `protobuf:"bytes,37,opt,name=env,proto3,oneof" json:"env,omitempty"`
	// repeated env literal values.
	Envs []string `protobuf:"bytes,38,rep,name=envs,proto3" json:"envs,omitempty"`
	// contains filtered or unexported fields
}

MessageFieldValue represents message's field.

func (*MessageFieldValue) Descriptor deprecated

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

Deprecated: Use MessageFieldValue.ProtoReflect.Descriptor instead.

func (*MessageFieldValue) GetBool

func (x *MessageFieldValue) GetBool() bool

func (*MessageFieldValue) GetBools

func (x *MessageFieldValue) GetBools() []bool

func (*MessageFieldValue) GetByteString

func (x *MessageFieldValue) GetByteString() []byte

func (*MessageFieldValue) GetByteStrings

func (x *MessageFieldValue) GetByteStrings() [][]byte

func (*MessageFieldValue) GetDouble

func (x *MessageFieldValue) GetDouble() float64

func (*MessageFieldValue) GetDoubles

func (x *MessageFieldValue) GetDoubles() []float64

func (*MessageFieldValue) GetEnum

func (x *MessageFieldValue) GetEnum() string

func (*MessageFieldValue) GetEnums

func (x *MessageFieldValue) GetEnums() []string

func (*MessageFieldValue) GetEnv

func (x *MessageFieldValue) GetEnv() string

func (*MessageFieldValue) GetEnvs

func (x *MessageFieldValue) GetEnvs() []string

func (*MessageFieldValue) GetField

func (x *MessageFieldValue) GetField() string

func (*MessageFieldValue) GetFixed32

func (x *MessageFieldValue) GetFixed32() uint32

func (*MessageFieldValue) GetFixed32S

func (x *MessageFieldValue) GetFixed32S() []uint32

func (*MessageFieldValue) GetFixed64

func (x *MessageFieldValue) GetFixed64() uint64

func (*MessageFieldValue) GetFixed64S

func (x *MessageFieldValue) GetFixed64S() []uint64

func (*MessageFieldValue) GetFloat

func (x *MessageFieldValue) GetFloat() float32

func (*MessageFieldValue) GetFloats

func (x *MessageFieldValue) GetFloats() []float32

func (*MessageFieldValue) GetInt32

func (x *MessageFieldValue) GetInt32() int32

func (*MessageFieldValue) GetInt32S

func (x *MessageFieldValue) GetInt32S() []int32

func (*MessageFieldValue) GetInt64

func (x *MessageFieldValue) GetInt64() int64

func (*MessageFieldValue) GetInt64S

func (x *MessageFieldValue) GetInt64S() []int64

func (*MessageFieldValue) GetMessage

func (x *MessageFieldValue) GetMessage() *MessageValue

func (*MessageFieldValue) GetMessages

func (x *MessageFieldValue) GetMessages() []*MessageValue

func (*MessageFieldValue) GetSfixed32

func (x *MessageFieldValue) GetSfixed32() int32

func (*MessageFieldValue) GetSfixed32S

func (x *MessageFieldValue) GetSfixed32S() []int32

func (*MessageFieldValue) GetSfixed64

func (x *MessageFieldValue) GetSfixed64() int64

func (*MessageFieldValue) GetSfixed64S

func (x *MessageFieldValue) GetSfixed64S() []int64

func (*MessageFieldValue) GetSint32

func (x *MessageFieldValue) GetSint32() int32

func (*MessageFieldValue) GetSint32S

func (x *MessageFieldValue) GetSint32S() []int32

func (*MessageFieldValue) GetSint64

func (x *MessageFieldValue) GetSint64() int64

func (*MessageFieldValue) GetSint64S

func (x *MessageFieldValue) GetSint64S() []int64

func (*MessageFieldValue) GetString_

func (x *MessageFieldValue) GetString_() string

func (*MessageFieldValue) GetStrings

func (x *MessageFieldValue) GetStrings() []string

func (*MessageFieldValue) GetUint32

func (x *MessageFieldValue) GetUint32() uint32

func (*MessageFieldValue) GetUint32S

func (x *MessageFieldValue) GetUint32S() []uint32

func (*MessageFieldValue) GetUint64

func (x *MessageFieldValue) GetUint64() uint64

func (*MessageFieldValue) GetUint64S

func (x *MessageFieldValue) GetUint64S() []uint64

func (*MessageFieldValue) ProtoMessage

func (*MessageFieldValue) ProtoMessage()

func (*MessageFieldValue) ProtoReflect

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

func (*MessageFieldValue) Reset

func (x *MessageFieldValue) Reset()

func (*MessageFieldValue) String

func (x *MessageFieldValue) String() string

type MessageRule

type MessageRule struct {

	// def specify variables to be used in field binding by `grpc.federation.field` option.
	Def []*VariableDefinition `protobuf:"bytes,1,rep,name=def,proto3" json:"def,omitempty"`
	// if custom_resolver is true, the resolver for this message is implemented by Go.
	// If there are any values retrieved by resolver or messages, they are passed as arguments for custom resolver.
	// Each field of the message returned by the custom resolver is automatically bound.
	// If you want to change the binding process for a particular field, set `custom_resolver=true` option for that field.
	CustomResolver *bool `protobuf:"varint,2,opt,name=custom_resolver,json=customResolver,proto3,oneof" json:"custom_resolver,omitempty"`
	// alias mapping between messages defined in other packages and messages defined on the federation service side.
	// The alias is the FQDN ( <package-name>.<message-name> ) to the message.
	// If this definition exists, type conversion is automatically performed before the field assignment operation.
	// If a message with this option has a field that is not present in the message specified by alias, and the alias option is not specified for that field, an error is occurred.
	Alias *string `protobuf:"bytes,3,opt,name=alias,proto3,oneof" json:"alias,omitempty"`
	// contains filtered or unexported fields
}

MessageRule define gRPC Federation rules for the message.

func (*MessageRule) Descriptor deprecated

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

Deprecated: Use MessageRule.ProtoReflect.Descriptor instead.

func (*MessageRule) GetAlias

func (x *MessageRule) GetAlias() string

func (*MessageRule) GetCustomResolver

func (x *MessageRule) GetCustomResolver() bool

func (*MessageRule) GetDef added in v0.6.0

func (x *MessageRule) GetDef() []*VariableDefinition

func (*MessageRule) ProtoMessage

func (*MessageRule) ProtoMessage()

func (*MessageRule) ProtoReflect

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

func (*MessageRule) Reset

func (x *MessageRule) Reset()

func (*MessageRule) String

func (x *MessageRule) String() string

type MessageValue

type MessageValue struct {

	// name specify the message name to be referred to by FQDN. format is `<package-name>.<message-name>`.
	// <package-name> can be omitted when referring to messages in the same package.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// fields represents message's fields.
	Fields []*MessageFieldValue `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"`
	// contains filtered or unexported fields
}

MessageValue represents message literal.

func (*MessageValue) Descriptor deprecated

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

Deprecated: Use MessageValue.ProtoReflect.Descriptor instead.

func (*MessageValue) GetFields

func (x *MessageValue) GetFields() []*MessageFieldValue

func (*MessageValue) GetName

func (x *MessageValue) GetName() string

func (*MessageValue) ProtoMessage

func (*MessageValue) ProtoMessage()

func (*MessageValue) ProtoReflect

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

func (*MessageValue) Reset

func (x *MessageValue) Reset()

func (*MessageValue) String

func (x *MessageValue) String() string

type MethodRequest

type MethodRequest struct {

	// field name of the request message.
	Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	// by used to refer to a name or message argument defined in a MessageRule, use `$.` to refer to the message argument.
	// Use CEL (https://github.com/google/cel-spec) to evaluate the expression.
	// Variables are already defined in MessageRule can be used.
	By *string `protobuf:"bytes,2,opt,name=by,proto3,oneof" json:"by,omitempty"`
	// double literal value.
	Double *float64 `protobuf:"fixed64,3,opt,name=double,proto3,oneof" json:"double,omitempty"`
	// repeated double literal values.
	Doubles []float64 `protobuf:"fixed64,4,rep,packed,name=doubles,proto3" json:"doubles,omitempty"`
	// float literal value.
	Float *float32 `protobuf:"fixed32,5,opt,name=float,proto3,oneof" json:"float,omitempty"`
	// repeated float literal values.
	Floats []float32 `protobuf:"fixed32,6,rep,packed,name=floats,proto3" json:"floats,omitempty"`
	// int32 literal value.
	Int32 *int32 `protobuf:"varint,7,opt,name=int32,proto3,oneof" json:"int32,omitempty"`
	// repeated int32 literal values.
	Int32S []int32 `protobuf:"varint,8,rep,packed,name=int32s,proto3" json:"int32s,omitempty"`
	// int64 literal value.
	Int64 *int64 `protobuf:"varint,9,opt,name=int64,proto3,oneof" json:"int64,omitempty"`
	// repeated int64 literal values.
	Int64S []int64 `protobuf:"varint,10,rep,packed,name=int64s,proto3" json:"int64s,omitempty"`
	// uint32 literal value.
	Uint32 *uint32 `protobuf:"varint,11,opt,name=uint32,proto3,oneof" json:"uint32,omitempty"`
	// repeated uint32 literal values.
	Uint32S []uint32 `protobuf:"varint,12,rep,packed,name=uint32s,proto3" json:"uint32s,omitempty"`
	// uint64 literal value.
	Uint64 *uint64 `protobuf:"varint,13,opt,name=uint64,proto3,oneof" json:"uint64,omitempty"`
	// repeated uint64 literal values.
	Uint64S []uint64 `protobuf:"varint,14,rep,packed,name=uint64s,proto3" json:"uint64s,omitempty"`
	// sint32 literal value.
	Sint32 *int32 `protobuf:"zigzag32,15,opt,name=sint32,proto3,oneof" json:"sint32,omitempty"`
	// repeated sint32 literal values.
	Sint32S []int32 `protobuf:"zigzag32,16,rep,packed,name=sint32s,proto3" json:"sint32s,omitempty"`
	// sint64 literal value.
	Sint64 *int64 `protobuf:"zigzag64,17,opt,name=sint64,proto3,oneof" json:"sint64,omitempty"`
	// repeated sint64 literal values.
	Sint64S []int64 `protobuf:"zigzag64,18,rep,packed,name=sint64s,proto3" json:"sint64s,omitempty"`
	// fixed32 literal value.
	Fixed32 *uint32 `protobuf:"fixed32,19,opt,name=fixed32,proto3,oneof" json:"fixed32,omitempty"`
	// repeated fixed32 literal values.
	Fixed32S []uint32 `protobuf:"fixed32,20,rep,packed,name=fixed32s,proto3" json:"fixed32s,omitempty"`
	// fixed64 literal value.
	Fixed64 *uint64 `protobuf:"fixed64,21,opt,name=fixed64,proto3,oneof" json:"fixed64,omitempty"`
	// repeated fixed64 literal values.
	Fixed64S []uint64 `protobuf:"fixed64,22,rep,packed,name=fixed64s,proto3" json:"fixed64s,omitempty"`
	// sfixed32 literal value.
	Sfixed32 *int32 `protobuf:"fixed32,23,opt,name=sfixed32,proto3,oneof" json:"sfixed32,omitempty"`
	// repeated sfixed32 literal values.
	Sfixed32S []int32 `protobuf:"fixed32,24,rep,packed,name=sfixed32s,proto3" json:"sfixed32s,omitempty"`
	// sfixed64 literal value.
	Sfixed64 *int64 `protobuf:"fixed64,25,opt,name=sfixed64,proto3,oneof" json:"sfixed64,omitempty"`
	// repeated sfixed64 literal values.
	Sfixed64S []int64 `protobuf:"fixed64,26,rep,packed,name=sfixed64s,proto3" json:"sfixed64s,omitempty"`
	// bool literal value.
	Bool *bool `protobuf:"varint,27,opt,name=bool,proto3,oneof" json:"bool,omitempty"`
	// repeated bool literal values.
	Bools []bool `protobuf:"varint,28,rep,packed,name=bools,proto3" json:"bools,omitempty"`
	// string literal value.
	String_ *string `protobuf:"bytes,29,opt,name=string,proto3,oneof" json:"string,omitempty"`
	// repeated string literal values.
	Strings []string `protobuf:"bytes,30,rep,name=strings,proto3" json:"strings,omitempty"`
	// bytes literal value.
	ByteString []byte `protobuf:"bytes,31,opt,name=byte_string,json=byteString,proto3,oneof" json:"byte_string,omitempty"`
	// repeated bytes literal values.
	ByteStrings [][]byte `protobuf:"bytes,32,rep,name=byte_strings,json=byteStrings,proto3" json:"byte_strings,omitempty"`
	// message literal value.
	Message *MessageValue `protobuf:"bytes,33,opt,name=message,proto3,oneof" json:"message,omitempty"`
	// repeated message literal values.
	Messages []*MessageValue `protobuf:"bytes,34,rep,name=messages,proto3" json:"messages,omitempty"`
	// enum literal value.
	Enum *string `protobuf:"bytes,35,opt,name=enum,proto3,oneof" json:"enum,omitempty"`
	// repeated enum literal values.
	Enums []string `protobuf:"bytes,36,rep,name=enums,proto3" json:"enums,omitempty"`
	// env literal value.
	Env *string `protobuf:"bytes,37,opt,name=env,proto3,oneof" json:"env,omitempty"`
	// repeated env literal values.
	Envs []string `protobuf:"bytes,38,rep,name=envs,proto3" json:"envs,omitempty"`
	// contains filtered or unexported fields
}

MethodRequest define parameters to be used for gRPC method request.

func (*MethodRequest) Descriptor deprecated

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

Deprecated: Use MethodRequest.ProtoReflect.Descriptor instead.

func (*MethodRequest) GetBool

func (x *MethodRequest) GetBool() bool

func (*MethodRequest) GetBools

func (x *MethodRequest) GetBools() []bool

func (*MethodRequest) GetBy

func (x *MethodRequest) GetBy() string

func (*MethodRequest) GetByteString

func (x *MethodRequest) GetByteString() []byte

func (*MethodRequest) GetByteStrings

func (x *MethodRequest) GetByteStrings() [][]byte

func (*MethodRequest) GetDouble

func (x *MethodRequest) GetDouble() float64

func (*MethodRequest) GetDoubles

func (x *MethodRequest) GetDoubles() []float64

func (*MethodRequest) GetEnum

func (x *MethodRequest) GetEnum() string

func (*MethodRequest) GetEnums

func (x *MethodRequest) GetEnums() []string

func (*MethodRequest) GetEnv

func (x *MethodRequest) GetEnv() string

func (*MethodRequest) GetEnvs

func (x *MethodRequest) GetEnvs() []string

func (*MethodRequest) GetField

func (x *MethodRequest) GetField() string

func (*MethodRequest) GetFixed32

func (x *MethodRequest) GetFixed32() uint32

func (*MethodRequest) GetFixed32S

func (x *MethodRequest) GetFixed32S() []uint32

func (*MethodRequest) GetFixed64

func (x *MethodRequest) GetFixed64() uint64

func (*MethodRequest) GetFixed64S

func (x *MethodRequest) GetFixed64S() []uint64

func (*MethodRequest) GetFloat

func (x *MethodRequest) GetFloat() float32

func (*MethodRequest) GetFloats

func (x *MethodRequest) GetFloats() []float32

func (*MethodRequest) GetInt32

func (x *MethodRequest) GetInt32() int32

func (*MethodRequest) GetInt32S

func (x *MethodRequest) GetInt32S() []int32

func (*MethodRequest) GetInt64

func (x *MethodRequest) GetInt64() int64

func (*MethodRequest) GetInt64S

func (x *MethodRequest) GetInt64S() []int64

func (*MethodRequest) GetMessage

func (x *MethodRequest) GetMessage() *MessageValue

func (*MethodRequest) GetMessages

func (x *MethodRequest) GetMessages() []*MessageValue

func (*MethodRequest) GetSfixed32

func (x *MethodRequest) GetSfixed32() int32

func (*MethodRequest) GetSfixed32S

func (x *MethodRequest) GetSfixed32S() []int32

func (*MethodRequest) GetSfixed64

func (x *MethodRequest) GetSfixed64() int64

func (*MethodRequest) GetSfixed64S

func (x *MethodRequest) GetSfixed64S() []int64

func (*MethodRequest) GetSint32

func (x *MethodRequest) GetSint32() int32

func (*MethodRequest) GetSint32S

func (x *MethodRequest) GetSint32S() []int32

func (*MethodRequest) GetSint64

func (x *MethodRequest) GetSint64() int64

func (*MethodRequest) GetSint64S

func (x *MethodRequest) GetSint64S() []int64

func (*MethodRequest) GetString_

func (x *MethodRequest) GetString_() string

func (*MethodRequest) GetStrings

func (x *MethodRequest) GetStrings() []string

func (*MethodRequest) GetUint32

func (x *MethodRequest) GetUint32() uint32

func (*MethodRequest) GetUint32S

func (x *MethodRequest) GetUint32S() []uint32

func (*MethodRequest) GetUint64

func (x *MethodRequest) GetUint64() uint64

func (*MethodRequest) GetUint64S

func (x *MethodRequest) GetUint64S() []uint64

func (*MethodRequest) ProtoMessage

func (*MethodRequest) ProtoMessage()

func (*MethodRequest) ProtoReflect

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

func (*MethodRequest) Reset

func (x *MethodRequest) Reset()

func (*MethodRequest) String

func (x *MethodRequest) String() string

type MethodResponse

type MethodResponse struct {

	// name specify the unique name that can be used in a `MessageRule` / `FieldRule` for the same message for a specific field in the response.
	Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"`
	// field name in response message.
	Field *string `protobuf:"bytes,2,opt,name=field,proto3,oneof" json:"field,omitempty"`
	// autobind if the value referenced by `field` is a message type,
	// the value of a field with the same name and type as the field name of its own message is automatically assigned to the value of the field in the message.
	// If multiple autobinds are used at the same message,
	// you must explicitly use the `grpc.federation.field` option to do the binding yourself, since duplicate field names cannot be correctly determined as one.
	Autobind *bool `protobuf:"varint,3,opt,name=autobind,proto3,oneof" json:"autobind,omitempty"`
	// contains filtered or unexported fields
}

MethodResponse define which value of the method response is referenced.

func (*MethodResponse) Descriptor deprecated

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

Deprecated: Use MethodResponse.ProtoReflect.Descriptor instead.

func (*MethodResponse) GetAutobind

func (x *MethodResponse) GetAutobind() bool

func (*MethodResponse) GetField

func (x *MethodResponse) GetField() string

func (*MethodResponse) GetName

func (x *MethodResponse) GetName() string

func (*MethodResponse) ProtoMessage

func (*MethodResponse) ProtoMessage()

func (*MethodResponse) ProtoReflect

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

func (*MethodResponse) Reset

func (x *MethodResponse) Reset()

func (*MethodResponse) String

func (x *MethodResponse) String() string

type MethodRule

type MethodRule struct {

	// the time to timeout. If the specified time period elapses, DEADLINE_EXCEEDED status is returned.
	// If you want to handle this error, you need to implement a custom error handler in Go.
	// The format is the same as Go's time.Duration format. See https://pkg.go.dev/time#ParseDuration.
	Timeout *string `protobuf:"bytes,1,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"`
	// contains filtered or unexported fields
}

func (*MethodRule) Descriptor deprecated

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

Deprecated: Use MethodRule.ProtoReflect.Descriptor instead.

func (*MethodRule) GetTimeout

func (x *MethodRule) GetTimeout() string

func (*MethodRule) ProtoMessage

func (*MethodRule) ProtoMessage()

func (*MethodRule) ProtoReflect

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

func (*MethodRule) Reset

func (x *MethodRule) Reset()

func (*MethodRule) String

func (x *MethodRule) String() string

type OneofRule

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

func (*OneofRule) Descriptor deprecated

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

Deprecated: Use OneofRule.ProtoReflect.Descriptor instead.

func (*OneofRule) ProtoMessage

func (*OneofRule) ProtoMessage()

func (*OneofRule) ProtoReflect

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

func (*OneofRule) Reset

func (x *OneofRule) Reset()

func (*OneofRule) String

func (x *OneofRule) String() string

type PreconditionFailureViolation added in v0.10.0

type PreconditionFailureViolation struct {
	Type                  string
	TypeUseContextLibrary bool
	TypeCacheIndex        int

	Subject                  string
	SubjectUseContextLibrary bool
	SubjectCacheIndex        int

	Desc                  string
	DescUseContextLibrary bool
	DescCacheIndex        int
}

type ProtoMessage added in v0.10.0

type ProtoMessage = protoadapt.MessageV1

type RWMutex added in v0.10.0

type RWMutex = sync.RWMutex

type RecoveredError added in v0.4.0

type RecoveredError struct {
	Message string
	Stack   []string
}

RecoveredError represents recovered error.

func RecoverError added in v0.4.0

func RecoverError(v interface{}, rawStack []byte) *RecoveredError

func (*RecoveredError) Error added in v0.4.0

func (e *RecoveredError) Error() string

type RetryParam added in v0.13.9

type RetryParam[T any] struct {
	Value             localValue
	If                string
	UseContextLibrary bool
	CacheIndex        int
	BackOff           *BackOff
	Body              func() (*T, error)
}

type RetryPolicy

type RetryPolicy struct {

	// Types that are assignable to Policy:
	//
	//	*RetryPolicy_Constant
	//	*RetryPolicy_Exponential
	Policy isRetryPolicy_Policy `protobuf_oneof:"policy"`
	// if specifies condition in CEL. If the condition is true, run the retry process according to the policy.
	// If this field is omitted, it is always treated as 'true' and run the retry process.
	// The return value must always be of type boolean.
	If string `protobuf:"bytes,3,opt,name=if,proto3" json:"if,omitempty"`
	// contains filtered or unexported fields
}

RetryPolicy define the retry policy if the method call fails.

func (*RetryPolicy) Descriptor deprecated

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

Deprecated: Use RetryPolicy.ProtoReflect.Descriptor instead.

func (*RetryPolicy) GetConstant

func (x *RetryPolicy) GetConstant() *RetryPolicyConstant

func (*RetryPolicy) GetExponential

func (x *RetryPolicy) GetExponential() *RetryPolicyExponential

func (*RetryPolicy) GetIf added in v0.13.9

func (x *RetryPolicy) GetIf() string

func (*RetryPolicy) GetPolicy

func (m *RetryPolicy) GetPolicy() isRetryPolicy_Policy

func (*RetryPolicy) ProtoMessage

func (*RetryPolicy) ProtoMessage()

func (*RetryPolicy) ProtoReflect

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

func (*RetryPolicy) Reset

func (x *RetryPolicy) Reset()

func (*RetryPolicy) String

func (x *RetryPolicy) String() string

type RetryPolicyConstant

type RetryPolicyConstant struct {

	// interval value. ( default value is 1s ).
	Interval *string `protobuf:"bytes,1,opt,name=interval,proto3,oneof" json:"interval,omitempty"`
	// max retry count. ( default value is 5. If zero is specified, it never stops )
	MaxRetries *uint64 `protobuf:"varint,2,opt,name=max_retries,json=maxRetries,proto3,oneof" json:"max_retries,omitempty"`
	// contains filtered or unexported fields
}

RetryPolicyConstant define "constant" based retry policy.

func (*RetryPolicyConstant) Descriptor deprecated

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

Deprecated: Use RetryPolicyConstant.ProtoReflect.Descriptor instead.

func (*RetryPolicyConstant) GetInterval

func (x *RetryPolicyConstant) GetInterval() string

func (*RetryPolicyConstant) GetMaxRetries

func (x *RetryPolicyConstant) GetMaxRetries() uint64

func (*RetryPolicyConstant) ProtoMessage

func (*RetryPolicyConstant) ProtoMessage()

func (*RetryPolicyConstant) ProtoReflect

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

func (*RetryPolicyConstant) Reset

func (x *RetryPolicyConstant) Reset()

func (*RetryPolicyConstant) String

func (x *RetryPolicyConstant) String() string

type RetryPolicyExponential

type RetryPolicyExponential struct {

	// initial interval value. ( default value is "500ms" ).
	InitialInterval *string `protobuf:"bytes,1,opt,name=initial_interval,json=initialInterval,proto3,oneof" json:"initial_interval,omitempty"`
	// randomization factor value. ( default value is 0.5 ).
	RandomizationFactor *float64 `` /* 126-byte string literal not displayed */
	// multiplier. ( default value is 1.5 ).
	Multiplier *float64 `protobuf:"fixed64,3,opt,name=multiplier,proto3,oneof" json:"multiplier,omitempty"`
	// max interval value. ( default value is "60s" ).
	MaxInterval *string `protobuf:"bytes,4,opt,name=max_interval,json=maxInterval,proto3,oneof" json:"max_interval,omitempty"`
	// max retry count. ( default value is 5. If zero is specified, it never stops ).
	MaxRetries *uint64 `protobuf:"varint,5,opt,name=max_retries,json=maxRetries,proto3,oneof" json:"max_retries,omitempty"`
	// contains filtered or unexported fields
}

RetryPolicyExponential define "exponential backoff" based retry policy.

func (*RetryPolicyExponential) Descriptor deprecated

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

Deprecated: Use RetryPolicyExponential.ProtoReflect.Descriptor instead.

func (*RetryPolicyExponential) GetInitialInterval

func (x *RetryPolicyExponential) GetInitialInterval() string

func (*RetryPolicyExponential) GetMaxInterval

func (x *RetryPolicyExponential) GetMaxInterval() string

func (*RetryPolicyExponential) GetMaxRetries

func (x *RetryPolicyExponential) GetMaxRetries() uint64

func (*RetryPolicyExponential) GetMultiplier

func (x *RetryPolicyExponential) GetMultiplier() float64

func (*RetryPolicyExponential) GetRandomizationFactor

func (x *RetryPolicyExponential) GetRandomizationFactor() float64

func (*RetryPolicyExponential) ProtoMessage

func (*RetryPolicyExponential) ProtoMessage()

func (*RetryPolicyExponential) ProtoReflect

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

func (*RetryPolicyExponential) Reset

func (x *RetryPolicyExponential) Reset()

func (*RetryPolicyExponential) String

func (x *RetryPolicyExponential) String() string

type RetryPolicy_Constant

type RetryPolicy_Constant struct {
	// retry according to the "constant" policy.
	Constant *RetryPolicyConstant `protobuf:"bytes,1,opt,name=constant,proto3,oneof"`
}

type RetryPolicy_Exponential

type RetryPolicy_Exponential struct {
	// retry according to the "exponential backoff" policy.
	// The following Go library is used in the implementation,
	// so please refer to the library documentation for how to specify each parameter.
	// https://pkg.go.dev/github.com/cenkalti/backoff/v4#section-readme.
	Exponential *RetryPolicyExponential `protobuf:"bytes,2,opt,name=exponential,proto3,oneof"`
}

type ServiceDependency

type ServiceDependency struct {

	// name to be used when initializing the gRPC client.
	Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"`
	// service is the name of the dependent service.
	Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"`
	// contains filtered or unexported fields
}

ServiceDependency assigns a uniquely determined name to the service.

func (*ServiceDependency) Descriptor deprecated

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

Deprecated: Use ServiceDependency.ProtoReflect.Descriptor instead.

func (*ServiceDependency) GetName

func (x *ServiceDependency) GetName() string

func (*ServiceDependency) GetService

func (x *ServiceDependency) GetService() string

func (*ServiceDependency) ProtoMessage

func (*ServiceDependency) ProtoMessage()

func (*ServiceDependency) ProtoReflect

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

func (*ServiceDependency) Reset

func (x *ServiceDependency) Reset()

func (*ServiceDependency) String

func (x *ServiceDependency) String() string

type ServiceRule

type ServiceRule struct {

	// dependencies defines a unique name for all services on which federation service depends.
	// The name will be used when creating the gRPC client.
	//
	// Deprecated: Marked as deprecated in grpc/federation/federation.proto.
	Dependencies []*ServiceDependency `protobuf:"bytes,1,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
	// contains filtered or unexported fields
}

ServiceRule define gRPC Federation rules for the service.

func (*ServiceRule) Descriptor deprecated

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

Deprecated: Use ServiceRule.ProtoReflect.Descriptor instead.

func (*ServiceRule) GetDependencies deprecated

func (x *ServiceRule) GetDependencies() []*ServiceDependency

Deprecated: Marked as deprecated in grpc/federation/federation.proto.

func (*ServiceRule) ProtoMessage

func (*ServiceRule) ProtoMessage()

func (*ServiceRule) ProtoReflect

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

func (*ServiceRule) Reset

func (x *ServiceRule) Reset()

func (*ServiceRule) String

func (x *ServiceRule) String() string

type SetCELValueParam added in v0.13.8

type SetCELValueParam[T any] struct {
	Value             localValue
	Expr              string
	UseContextLibrary bool
	CacheIndex        int
	Setter            func(T)
}

type Status added in v0.13.0

type Status = status.Status

type ValidationExpr added in v0.7.0

type ValidationExpr struct {

	// name is a unique name for the validation.
	// If set, the validation error type will be <message-name><name>Error.
	// If omitted, the validation error type will be ValidationError.
	Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"`
	// error defines the actual validation rules and an error to returned if the validation fails.
	Error *GRPCError `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	// contains filtered or unexported fields
}

Validation represents a validation rule against variables defined within the current scope.

func (*ValidationExpr) Descriptor deprecated added in v0.7.0

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

Deprecated: Use ValidationExpr.ProtoReflect.Descriptor instead.

func (*ValidationExpr) GetError added in v0.7.0

func (x *ValidationExpr) GetError() *GRPCError

func (*ValidationExpr) GetName added in v0.7.0

func (x *ValidationExpr) GetName() string

func (*ValidationExpr) ProtoMessage added in v0.7.0

func (*ValidationExpr) ProtoMessage()

func (*ValidationExpr) ProtoReflect added in v0.7.0

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

func (*ValidationExpr) Reset added in v0.7.0

func (x *ValidationExpr) Reset()

func (*ValidationExpr) String added in v0.7.0

func (x *ValidationExpr) String() string

type VariableDefinition added in v0.6.0

type VariableDefinition struct {

	// name is a variable name.
	// This name can be referenced in all CELs defined after itself in the same message.
	// It can also be referenced in `grpc.federation.field` option.
	Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"`
	// if specify the condition for evaluating expr.
	// this value evaluated by CEL and it must return a boolean value.
	// If the result of evaluation is `false`, the value assigned to name is the default value of the result of evaluation of `expr`.
	If *string `protobuf:"bytes,2,opt,name=if,proto3,oneof" json:"if,omitempty"`
	// autobind if the result value of `expr` is a message type,
	// the value of a field with the same name and type as the field name of its own message is automatically assigned to the value of the field in the message.
	// If multiple autobinds are used at the same message,
	// you must explicitly use the `grpc.federation.field` option to do the binding yourself, since duplicate field names cannot be correctly determined as one.
	Autobind *bool `protobuf:"varint,3,opt,name=autobind,proto3,oneof" json:"autobind,omitempty"`
	// expr specify the value to be assigned to name.
	//
	// Types that are assignable to Expr:
	//
	//	*VariableDefinition_By
	//	*VariableDefinition_Map
	//	*VariableDefinition_Message
	//	*VariableDefinition_Call
	//	*VariableDefinition_Validation
	Expr isVariableDefinition_Expr `protobuf_oneof:"expr"`
	// contains filtered or unexported fields
}

VariableDefinition represents variable definition.

func (*VariableDefinition) Descriptor deprecated added in v0.6.0

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

Deprecated: Use VariableDefinition.ProtoReflect.Descriptor instead.

func (*VariableDefinition) GetAutobind added in v0.6.0

func (x *VariableDefinition) GetAutobind() bool

func (*VariableDefinition) GetBy added in v0.6.0

func (x *VariableDefinition) GetBy() string

func (*VariableDefinition) GetCall added in v0.6.0

func (x *VariableDefinition) GetCall() *CallExpr

func (*VariableDefinition) GetExpr added in v0.6.0

func (m *VariableDefinition) GetExpr() isVariableDefinition_Expr

func (*VariableDefinition) GetIf added in v0.6.0

func (x *VariableDefinition) GetIf() string

func (*VariableDefinition) GetMap added in v0.6.0

func (x *VariableDefinition) GetMap() *MapExpr

func (*VariableDefinition) GetMessage added in v0.6.0

func (x *VariableDefinition) GetMessage() *MessageExpr

func (*VariableDefinition) GetName added in v0.6.0

func (x *VariableDefinition) GetName() string

func (*VariableDefinition) GetValidation added in v0.6.0

func (x *VariableDefinition) GetValidation() *ValidationExpr

func (*VariableDefinition) ProtoMessage added in v0.6.0

func (*VariableDefinition) ProtoMessage()

func (*VariableDefinition) ProtoReflect added in v0.6.0

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

func (*VariableDefinition) Reset added in v0.6.0

func (x *VariableDefinition) Reset()

func (*VariableDefinition) String added in v0.6.0

func (x *VariableDefinition) String() string

type VariableDefinition_By added in v0.6.0

type VariableDefinition_By struct {
	// `by` evaluates with CEL.
	By string `protobuf:"bytes,11,opt,name=by,proto3,oneof"`
}

type VariableDefinition_Call added in v0.6.0

type VariableDefinition_Call struct {
	// call specifies how to call gRPC method.
	Call *CallExpr `protobuf:"bytes,14,opt,name=call,proto3,oneof"`
}

type VariableDefinition_Map added in v0.6.0

type VariableDefinition_Map struct {
	// map apply map operation for the specified repeated type.
	Map *MapExpr `protobuf:"bytes,12,opt,name=map,proto3,oneof"`
}

type VariableDefinition_Message added in v0.6.0

type VariableDefinition_Message struct {
	// message gets with message arguments.
	Message *MessageExpr `protobuf:"bytes,13,opt,name=message,proto3,oneof"`
}

type VariableDefinition_Validation added in v0.6.0

type VariableDefinition_Validation struct {
	// validation defines the validation rule and error.
	Validation *ValidationExpr `protobuf:"bytes,15,opt,name=validation,proto3,oneof"`
}

Directories

Path Synopsis
cel

Jump to

Keyboard shortcuts

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