api

package
v0.12.6 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2024 License: BSD-3-Clause Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CodeUnknown              = "unknown error"
	CodeMaxEventSizeExceeded = "maximum event size has been exceeded"
	CodeTopicUnknown         = "topic unknown or unhandled"
	CodeTopicArchived        = "cannot publish to an archived topic"
	CodeTopicDeleted         = "topic is currently being deleted"
	CodePermissionDenied     = "not authorized to perform this action"
	CodeConsensusFailure     = "could not commit event, please try again"
	CodeShardingFailure      = "wrong node for event sharding policy, please try again"
	CodeRedirect             = "redirect to correct node"
	CodeInternal             = "internal error, please wait and try again"
	CodeUnprocessed          = "client did not process event"
	CodeTimeout              = "client deadline exceeded"
	CodeUnhandledMimetype    = "unhandled mimetype"
	CodeUnknownType          = "unhandled schema"
	CodeDeliverAgainAny      = "deliver again to any subscriber"
	CodeDeliverAgainNotMe    = "deliver again to any subscriber but me"
)
View Source
const (
	Ensign_Publish_FullMethodName        = "/ensign.v1beta1.Ensign/Publish"
	Ensign_Subscribe_FullMethodName      = "/ensign.v1beta1.Ensign/Subscribe"
	Ensign_EnSQL_FullMethodName          = "/ensign.v1beta1.Ensign/EnSQL"
	Ensign_Explain_FullMethodName        = "/ensign.v1beta1.Ensign/Explain"
	Ensign_ListTopics_FullMethodName     = "/ensign.v1beta1.Ensign/ListTopics"
	Ensign_CreateTopic_FullMethodName    = "/ensign.v1beta1.Ensign/CreateTopic"
	Ensign_RetrieveTopic_FullMethodName  = "/ensign.v1beta1.Ensign/RetrieveTopic"
	Ensign_DeleteTopic_FullMethodName    = "/ensign.v1beta1.Ensign/DeleteTopic"
	Ensign_TopicNames_FullMethodName     = "/ensign.v1beta1.Ensign/TopicNames"
	Ensign_TopicExists_FullMethodName    = "/ensign.v1beta1.Ensign/TopicExists"
	Ensign_SetTopicPolicy_FullMethodName = "/ensign.v1beta1.Ensign/SetTopicPolicy"
	Ensign_Info_FullMethodName           = "/ensign.v1beta1.Ensign/Info"
	Ensign_Status_FullMethodName         = "/ensign.v1beta1.Ensign/Status"
)
View Source
const (
	NameHashLength     = 16
	MaxTopicNameLength = 512
)
View Source
const Unspecified = "Unspecified"

Unspecified is the type name of the unspecified type.

Variables

View Source
var (
	Nack_Code_name = map[int32]string{
		0:   "UNKNOWN",
		1:   "MAX_EVENT_SIZE_EXCEEDED",
		2:   "TOPIC_UNKNOWN",
		3:   "TOPIC_ARCHIVED",
		4:   "TOPIC_DELETED",
		5:   "PERMISSION_DENIED",
		6:   "CONSENSUS_FAILURE",
		7:   "SHARDING_FAILURE",
		8:   "REDIRECT",
		9:   "INTERNAL",
		100: "UNPROCESSED",
		101: "TIMEOUT",
		102: "UNHANDLED_MIMETYPE",
		103: "UNKNOWN_TYPE",
		104: "DELIVER_AGAIN_ANY",
		105: "DELIVER_AGAIN_NOT_ME",
	}
	Nack_Code_value = map[string]int32{
		"UNKNOWN":                 0,
		"MAX_EVENT_SIZE_EXCEEDED": 1,
		"TOPIC_UNKNOWN":           2,
		"TOPIC_ARCHIVED":          3,
		"TOPIC_DELETED":           4,
		"PERMISSION_DENIED":       5,
		"CONSENSUS_FAILURE":       6,
		"SHARDING_FAILURE":        7,
		"REDIRECT":                8,
		"INTERNAL":                9,
		"UNPROCESSED":             100,
		"TIMEOUT":                 101,
		"UNHANDLED_MIMETYPE":      102,
		"UNKNOWN_TYPE":            103,
		"DELIVER_AGAIN_ANY":       104,
		"DELIVER_AGAIN_NOT_ME":    105,
	}
)

Enum value maps for Nack_Code.

View Source
var (
	ServiceState_Status_name = map[int32]string{
		0: "UNKNOWN",
		1: "HEALTHY",
		2: "UNHEALTHY",
		3: "DANGER",
		4: "OFFLINE",
		5: "MAINTENANCE",
	}
	ServiceState_Status_value = map[string]int32{
		"UNKNOWN":     0,
		"HEALTHY":     1,
		"UNHEALTHY":   2,
		"DANGER":      3,
		"OFFLINE":     4,
		"MAINTENANCE": 5,
	}
)

Enum value maps for ServiceState_Status.

View Source
var (
	ErrNoEvent              = errors.New("event wrapper contains no event")
	ErrNoKeys               = errors.New("no keys specified for key based hashing")
	ErrNoFields             = errors.New("no fields specified for field based hashing")
	ErrKeysNotAllowed       = errors.New("do not specify keys for this policy")
	ErrFieldsNotAllowed     = errors.New("do not specify fields for this policy")
	ErrNoGroupID            = errors.New("consumer group requires either id or name")
	ErrDuplicatesNotAllowed = errors.New("duplicates not allowed by specified policy")
)

Statically defined errors for error checking the type of error returned by a method or function in the api package.

View Source
var (
	Encryption_Algorithm_name = map[int32]string{
		0:   "PLAINTEXT",
		110: "AES256_GCM",
		120: "AES192_GCM",
		130: "AES128_GCM",
		310: "HMAC_SHA256",
		510: "RSA_OAEP_SHA512",
	}
	Encryption_Algorithm_value = map[string]int32{
		"PLAINTEXT":       0,
		"AES256_GCM":      110,
		"AES192_GCM":      120,
		"AES128_GCM":      130,
		"HMAC_SHA256":     310,
		"RSA_OAEP_SHA512": 510,
	}
)

Enum value maps for Encryption_Algorithm.

View Source
var (
	Compression_Algorithm_name = map[int32]string{
		0: "NONE",
		1: "GZIP",
		2: "COMPRESS",
		3: "DEFLATE",
		4: "BROTLI",
	}
	Compression_Algorithm_value = map[string]int32{
		"NONE":     0,
		"GZIP":     1,
		"COMPRESS": 2,
		"DEFLATE":  3,
		"BROTLI":   4,
	}
)

Enum value maps for Compression_Algorithm.

View Source
var (
	DeliverySemantic_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "AT_MOST_ONCE",
		2: "AT_LEAST_ONCE",
		3: "EXACTLY_ONCE",
	}
	DeliverySemantic_value = map[string]int32{
		"UNSPECIFIED":   0,
		"AT_MOST_ONCE":  1,
		"AT_LEAST_ONCE": 2,
		"EXACTLY_ONCE":  3,
	}
)

Enum value maps for DeliverySemantic.

View Source
var (
	TopicState_name = map[int32]string{
		0: "UNDEFINED",
		1: "READY",
		2: "READONLY",
		3: "DELETING",
		4: "PENDING",
		5: "ALLOCATING",
		6: "REPAIRING",
	}
	TopicState_value = map[string]int32{
		"UNDEFINED":  0,
		"READY":      1,
		"READONLY":   2,
		"DELETING":   3,
		"PENDING":    4,
		"ALLOCATING": 5,
		"REPAIRING":  6,
	}
)

Enum value maps for TopicState.

View Source
var (
	ShardingStrategy_name = map[int32]string{
		0: "UNKNOWN",
		1: "NO_SHARDING",
		2: "CONSISTENT_KEY_HASH",
		3: "RANDOM",
		4: "PUBLISHER_ORDERING",
	}
	ShardingStrategy_value = map[string]int32{
		"UNKNOWN":             0,
		"NO_SHARDING":         1,
		"CONSISTENT_KEY_HASH": 2,
		"RANDOM":              3,
		"PUBLISHER_ORDERING":  4,
	}
)

Enum value maps for ShardingStrategy.

View Source
var (
	TopicMod_Operation_name = map[int32]string{
		0: "NOOP",
		1: "ARCHIVE",
		2: "DESTROY",
	}
	TopicMod_Operation_value = map[string]int32{
		"NOOP":    0,
		"ARCHIVE": 1,
		"DESTROY": 2,
	}
)

Enum value maps for TopicMod_Operation.

View Source
var (
	Deduplication_Strategy_name = map[int32]string{
		0: "UNKNOWN",
		1: "NONE",
		2: "STRICT",
		3: "DATAGRAM",
		4: "KEY_GROUPED",
		5: "UNIQUE_KEY",
		6: "UNIQUE_FIELD",
	}
	Deduplication_Strategy_value = map[string]int32{
		"UNKNOWN":      0,
		"NONE":         1,
		"STRICT":       2,
		"DATAGRAM":     3,
		"KEY_GROUPED":  4,
		"UNIQUE_KEY":   5,
		"UNIQUE_FIELD": 6,
	}
)

Enum value maps for Deduplication_Strategy.

View Source
var (
	Deduplication_OffsetPosition_name = map[int32]string{
		0: "OFFSET_UNKNOWN",
		1: "OFFSET_EARLIEST",
		2: "OFFSET_LATEST",
	}
	Deduplication_OffsetPosition_value = map[string]int32{
		"OFFSET_UNKNOWN":  0,
		"OFFSET_EARLIEST": 1,
		"OFFSET_LATEST":   2,
	}
)

Enum value maps for Deduplication_OffsetPosition.

View Source
var Ensign_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "ensign.v1beta1.Ensign",
	HandlerType: (*EnsignServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Explain",
			Handler:    _Ensign_Explain_Handler,
		},
		{
			MethodName: "ListTopics",
			Handler:    _Ensign_ListTopics_Handler,
		},
		{
			MethodName: "CreateTopic",
			Handler:    _Ensign_CreateTopic_Handler,
		},
		{
			MethodName: "RetrieveTopic",
			Handler:    _Ensign_RetrieveTopic_Handler,
		},
		{
			MethodName: "DeleteTopic",
			Handler:    _Ensign_DeleteTopic_Handler,
		},
		{
			MethodName: "TopicNames",
			Handler:    _Ensign_TopicNames_Handler,
		},
		{
			MethodName: "TopicExists",
			Handler:    _Ensign_TopicExists_Handler,
		},
		{
			MethodName: "SetTopicPolicy",
			Handler:    _Ensign_SetTopicPolicy_Handler,
		},
		{
			MethodName: "Info",
			Handler:    _Ensign_Info_Handler,
		},
		{
			MethodName: "Status",
			Handler:    _Ensign_Status_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Publish",
			Handler:       _Ensign_Publish_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "Subscribe",
			Handler:       _Ensign_Subscribe_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "EnSQL",
			Handler:       _Ensign_EnSQL_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "api/v1beta1/ensign.proto",
}

Ensign_ServiceDesc is the grpc.ServiceDesc for Ensign service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_api_v1beta1_ensign_proto protoreflect.FileDescriptor
View Source
var File_api_v1beta1_event_proto protoreflect.FileDescriptor
View Source
var File_api_v1beta1_groups_proto protoreflect.FileDescriptor
View Source
var File_api_v1beta1_query_proto protoreflect.FileDescriptor
View Source
var File_api_v1beta1_topic_proto protoreflect.FileDescriptor
View Source
var UnspecifiedType = &Type{Name: Unspecified}

UnspecifiedType is returned when the event has no type.

Functions

func DefaultNackMessage added in v0.9.0

func DefaultNackMessage(code Nack_Code) string

func RegisterEnsignServer

func RegisterEnsignServer(s grpc.ServiceRegistrar, srv EnsignServer)

func TopicNameHash added in v0.7.0

func TopicNameHash(name string) []byte

TopicNameHash returns an indexable hash of a topic name using murmur3.

func ValidTopicName added in v0.7.0

func ValidTopicName(name string) bool

ValidTopicName returns true if the string is usable as a topic name.

Types

type Ack

type Ack struct {
	Id        []byte                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Committed *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=committed,proto3" json:"committed,omitempty"`
	// contains filtered or unexported fields
}

Ack represents the receipt and final handling of an event. This datatype should be small so that throughput is not affected and generally only contains the ID of the event being acknowledged. When Ensign commits an event to the log from the producer, the commit timestamp is returned to help determine event latency. When clients ack an event back to the Ensign server, they only need contain the id.

func (*Ack) Descriptor deprecated

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

Deprecated: Use Ack.ProtoReflect.Descriptor instead.

func (*Ack) GetCommitted

func (x *Ack) GetCommitted() *timestamppb.Timestamp

func (*Ack) GetId

func (x *Ack) GetId() []byte

func (*Ack) ProtoMessage

func (*Ack) ProtoMessage()

func (*Ack) ProtoReflect

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

func (*Ack) Reset

func (x *Ack) Reset()

func (*Ack) String

func (x *Ack) String() string

type CloseStream

type CloseStream struct {
	Events uint64 `protobuf:"varint,1,opt,name=events,proto3" json:"events,omitempty"`
	Topics uint64 `protobuf:"varint,2,opt,name=topics,proto3" json:"topics,omitempty"`
	Acks   uint64 `protobuf:"varint,3,opt,name=acks,proto3" json:"acks,omitempty"`
	Nacks  uint64 `protobuf:"varint,4,opt,name=nacks,proto3" json:"nacks,omitempty"`
	// contains filtered or unexported fields
}

CloseStream returns some basic stats and topic information to the publisher or subscriber when the stream is closed and provides feedback that the stream was closed successfully.

func (*CloseStream) Descriptor deprecated

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

Deprecated: Use CloseStream.ProtoReflect.Descriptor instead.

func (*CloseStream) GetAcks added in v0.9.0

func (x *CloseStream) GetAcks() uint64

func (*CloseStream) GetEvents

func (x *CloseStream) GetEvents() uint64

func (*CloseStream) GetNacks added in v0.9.0

func (x *CloseStream) GetNacks() uint64

func (*CloseStream) GetTopics added in v0.7.0

func (x *CloseStream) GetTopics() uint64

func (*CloseStream) ProtoMessage

func (*CloseStream) ProtoMessage()

func (*CloseStream) ProtoReflect

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

func (*CloseStream) Reset

func (x *CloseStream) Reset()

func (*CloseStream) String

func (x *CloseStream) String() string

type Compression

type Compression struct {
	Algorithm Compression_Algorithm `protobuf:"varint,1,opt,name=algorithm,proto3,enum=ensign.v1beta1.Compression_Algorithm" json:"algorithm,omitempty"`
	Level     int64                 `protobuf:"varint,2,opt,name=level,proto3" json:"level,omitempty"`
	// contains filtered or unexported fields
}

Metadata about compression used to reduce the storage size of the event.

func (*Compression) Descriptor deprecated

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

Deprecated: Use Compression.ProtoReflect.Descriptor instead.

func (*Compression) GetAlgorithm

func (x *Compression) GetAlgorithm() Compression_Algorithm

func (*Compression) GetLevel added in v0.7.0

func (x *Compression) GetLevel() int64

func (*Compression) ProtoMessage

func (*Compression) ProtoMessage()

func (*Compression) ProtoReflect

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

func (*Compression) Reset

func (x *Compression) Reset()

func (*Compression) String

func (x *Compression) String() string

type Compression_Algorithm added in v0.7.0

type Compression_Algorithm int32
const (
	Compression_NONE     Compression_Algorithm = 0
	Compression_GZIP     Compression_Algorithm = 1
	Compression_COMPRESS Compression_Algorithm = 2
	Compression_DEFLATE  Compression_Algorithm = 3
	Compression_BROTLI   Compression_Algorithm = 4
)

func (Compression_Algorithm) Descriptor added in v0.7.0

func (Compression_Algorithm) Enum added in v0.7.0

func (Compression_Algorithm) EnumDescriptor deprecated added in v0.7.0

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

Deprecated: Use Compression_Algorithm.Descriptor instead.

func (Compression_Algorithm) Number added in v0.7.0

func (Compression_Algorithm) String added in v0.7.0

func (x Compression_Algorithm) String() string

func (Compression_Algorithm) Type added in v0.7.0

type ConsumerGroup

type ConsumerGroup struct {

	// Unique ID of the group and the project ID found in the API Key of the group.
	Id        []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ProjectId []byte `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// Optional name for the group for easier identification.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// The delivery semantic for handling concurrent reads by multiple consumers.
	// Default is "at most once", a fire-and-forget mode that is also used by Kafka.
	Delivery DeliverySemantic `protobuf:"varint,4,opt,name=delivery,proto3,enum=ensign.v1beta1.DeliverySemantic" json:"delivery,omitempty"`
	// Delivery timeout to wait for an ack if a delivery semantic requires it.
	// Defaults to 20 seconds.
	DeliveryTimeout *durationpb.Duration `protobuf:"bytes,5,opt,name=delivery_timeout,json=deliveryTimeout,proto3" json:"delivery_timeout,omitempty"`
	// A map of the topics consumed by the consumer group and their delivered offsets.
	TopicOffsets map[string]uint64 `` /* 187-byte string literal not displayed */
	// IDs of the consumers that have connected to the consumer group.
	Consumers [][]byte               `protobuf:"bytes,13,rep,name=consumers,proto3" json:"consumers,omitempty"`
	Created   *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=created,proto3" json:"created,omitempty"`
	Modified  *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=modified,proto3" json:"modified,omitempty"`
	// contains filtered or unexported fields
}

ConsumerGroups are used to collect a group of related subscribers that consume events together according to some consistency semantic. Subscribers join consumer groups by specifying the same group ID. Individual subscribers create their own "group" so that they can disconnect and reconnect at the same offset where they left off.

func (*ConsumerGroup) Descriptor deprecated

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

Deprecated: Use ConsumerGroup.ProtoReflect.Descriptor instead.

func (*ConsumerGroup) GetConsumers

func (x *ConsumerGroup) GetConsumers() [][]byte

func (*ConsumerGroup) GetCreated

func (x *ConsumerGroup) GetCreated() *timestamppb.Timestamp

func (*ConsumerGroup) GetDelivery

func (x *ConsumerGroup) GetDelivery() DeliverySemantic

func (*ConsumerGroup) GetDeliveryTimeout

func (x *ConsumerGroup) GetDeliveryTimeout() *durationpb.Duration

func (*ConsumerGroup) GetId

func (x *ConsumerGroup) GetId() []byte

func (*ConsumerGroup) GetModified

func (x *ConsumerGroup) GetModified() *timestamppb.Timestamp

func (*ConsumerGroup) GetName

func (x *ConsumerGroup) GetName() string

func (*ConsumerGroup) GetProjectId

func (x *ConsumerGroup) GetProjectId() []byte

func (*ConsumerGroup) GetTopicOffsets

func (x *ConsumerGroup) GetTopicOffsets() map[string]uint64

func (*ConsumerGroup) Key added in v0.5.1

func (c *ConsumerGroup) Key() ([16]byte, error)

func (*ConsumerGroup) ProtoMessage

func (*ConsumerGroup) ProtoMessage()

func (*ConsumerGroup) ProtoReflect

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

func (*ConsumerGroup) Reset

func (x *ConsumerGroup) Reset()

func (*ConsumerGroup) String

func (x *ConsumerGroup) String() string

type Deduplication added in v0.10.0

type Deduplication struct {
	Strategy Deduplication_Strategy       `protobuf:"varint,1,opt,name=strategy,proto3,enum=ensign.v1beta1.Deduplication_Strategy" json:"strategy,omitempty"`
	Offset   Deduplication_OffsetPosition `protobuf:"varint,2,opt,name=offset,proto3,enum=ensign.v1beta1.Deduplication_OffsetPosition" json:"offset,omitempty"`
	// Keys and fields for the KEY_GROUPED, UNIQUE_KEY, and UNIQUE_FIELD strategies.
	Keys   []string `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"`
	Fields []string `protobuf:"bytes,4,rep,name=fields,proto3" json:"fields,omitempty"`
	// If overwrite_duplicate is true (default false) then the duplicate event is
	// completely overwritten by the original event including differences in metadata,
	// type, mimetype, and even the created timestamp (though the committed timestamp
	// and provenance information will remain the same). This policy can significantly
	// reduce data storage but may cause loss of data if the deduplication policy
	// changes (if false, deduplication attempts to preserve as much information as
	// possible in the case where the policy may change).
	OverwriteDuplicate bool `protobuf:"varint,5,opt,name=overwrite_duplicate,json=overwriteDuplicate,proto3" json:"overwrite_duplicate,omitempty"`
	// contains filtered or unexported fields
}

Deduplication stores information about how the topic handles deduplication policies. The deduplication strategy describes the mechanism that duplicates are detected; for example a strict deduplication strategy means that the data and metadata of the event has to match for it to be a duplicate, where as for unique key deduplication, the presence of the same key in the metadata is enough to determine a duplicate.

The offset position determines where the data is stored and which offsets are duplicate pointers pointing back to the original data. The earliest offset is the default - the data is stored when it was first seen and duplicates point back to the original data; the latest offset means that the data is moved to the front of the queue and duplicates point forward to it.

func (*Deduplication) Descriptor deprecated added in v0.10.0

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

Deprecated: Use Deduplication.ProtoReflect.Descriptor instead.

func (*Deduplication) Equals added in v0.11.0

func (d *Deduplication) Equals(o *Deduplication) bool

Equals compares deduplication polices to see if they would be implemented the same. It first compares the strategy, and returns false if the strategies are different. If the strategies are identical, it then compares keys for the key grouped and unique key strategies and fields for the unique fields strategy.

NOTE: This method normalizes both deduplication policy structs, which might change the underlying data stored in the pointer.

func (*Deduplication) GetFields added in v0.10.0

func (x *Deduplication) GetFields() []string

func (*Deduplication) GetKeys added in v0.10.0

func (x *Deduplication) GetKeys() []string

func (*Deduplication) GetOffset added in v0.10.0

func (*Deduplication) GetOverwriteDuplicate added in v0.12.0

func (x *Deduplication) GetOverwriteDuplicate() bool

func (*Deduplication) GetStrategy added in v0.10.0

func (x *Deduplication) GetStrategy() Deduplication_Strategy

func (*Deduplication) Normalize added in v0.11.0

func (d *Deduplication) Normalize() *Deduplication

Normalize the deduplication policy based on the strategy. If the strategy does not require keys or fields, then keys and fields are set to nil (no matter user input), if the strategy does require keys or fields then they are sorted and deduplicated.

NOTE: This method also sets the offset to the default if it is unknown. NOTE: This method sets the deduplication strategy to None if it is unknown

func (*Deduplication) ProtoMessage added in v0.10.0

func (*Deduplication) ProtoMessage()

func (*Deduplication) ProtoReflect added in v0.10.0

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

func (*Deduplication) Reset added in v0.10.0

func (x *Deduplication) Reset()

func (*Deduplication) String added in v0.10.0

func (x *Deduplication) String() string

func (*Deduplication) Validate added in v0.12.0

func (d *Deduplication) Validate() error

Validates that the deduplication strategy can be implemented after normalization.

type Deduplication_OffsetPosition added in v0.10.0

type Deduplication_OffsetPosition int32
const (
	Deduplication_OFFSET_UNKNOWN  Deduplication_OffsetPosition = 0
	Deduplication_OFFSET_EARLIEST Deduplication_OffsetPosition = 1
	Deduplication_OFFSET_LATEST   Deduplication_OffsetPosition = 2
)

func (Deduplication_OffsetPosition) Descriptor added in v0.10.0

func (Deduplication_OffsetPosition) Enum added in v0.10.0

func (Deduplication_OffsetPosition) EnumDescriptor deprecated added in v0.10.0

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

Deprecated: Use Deduplication_OffsetPosition.Descriptor instead.

func (Deduplication_OffsetPosition) Number added in v0.10.0

func (Deduplication_OffsetPosition) String added in v0.10.0

func (Deduplication_OffsetPosition) Type added in v0.10.0

type Deduplication_Strategy added in v0.10.0

type Deduplication_Strategy int32
const (
	Deduplication_UNKNOWN      Deduplication_Strategy = 0
	Deduplication_NONE         Deduplication_Strategy = 1
	Deduplication_STRICT       Deduplication_Strategy = 2
	Deduplication_DATAGRAM     Deduplication_Strategy = 3
	Deduplication_KEY_GROUPED  Deduplication_Strategy = 4
	Deduplication_UNIQUE_KEY   Deduplication_Strategy = 5
	Deduplication_UNIQUE_FIELD Deduplication_Strategy = 6
)

func (Deduplication_Strategy) Descriptor added in v0.10.0

func (Deduplication_Strategy) Enum added in v0.10.0

func (Deduplication_Strategy) EnumDescriptor deprecated added in v0.10.0

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

Deprecated: Use Deduplication_Strategy.Descriptor instead.

func (Deduplication_Strategy) Number added in v0.10.0

func (Deduplication_Strategy) String added in v0.10.0

func (x Deduplication_Strategy) String() string

func (Deduplication_Strategy) Type added in v0.10.0

type DeliverySemantic

type DeliverySemantic int32
const (
	DeliverySemantic_UNSPECIFIED   DeliverySemantic = 0
	DeliverySemantic_AT_MOST_ONCE  DeliverySemantic = 1
	DeliverySemantic_AT_LEAST_ONCE DeliverySemantic = 2
	DeliverySemantic_EXACTLY_ONCE  DeliverySemantic = 3
)

func (DeliverySemantic) Descriptor

func (DeliverySemantic) Enum

func (DeliverySemantic) EnumDescriptor deprecated

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

Deprecated: Use DeliverySemantic.Descriptor instead.

func (DeliverySemantic) Number

func (DeliverySemantic) String

func (x DeliverySemantic) String() string

func (DeliverySemantic) Type

type Encryption

type Encryption struct {
	PublicKeyId         string               `protobuf:"bytes,1,opt,name=public_key_id,json=publicKeyId,proto3" json:"public_key_id,omitempty"`
	EncryptionKey       []byte               `protobuf:"bytes,2,opt,name=encryption_key,json=encryptionKey,proto3" json:"encryption_key,omitempty"`
	HmacSecret          []byte               `protobuf:"bytes,3,opt,name=hmac_secret,json=hmacSecret,proto3" json:"hmac_secret,omitempty"`
	Signature           []byte               `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
	SealingAlgorithm    Encryption_Algorithm `` /* 151-byte string literal not displayed */
	EncryptionAlgorithm Encryption_Algorithm `` /* 160-byte string literal not displayed */
	SignatureAlgorithm  Encryption_Algorithm `` /* 157-byte string literal not displayed */
	// contains filtered or unexported fields
}

Metadata about the cryptography used to secure the event.

func (*Encryption) Descriptor deprecated

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

Deprecated: Use Encryption.ProtoReflect.Descriptor instead.

func (*Encryption) GetEncryptionAlgorithm added in v0.7.0

func (x *Encryption) GetEncryptionAlgorithm() Encryption_Algorithm

func (*Encryption) GetEncryptionKey added in v0.7.0

func (x *Encryption) GetEncryptionKey() []byte

func (*Encryption) GetHmacSecret added in v0.7.0

func (x *Encryption) GetHmacSecret() []byte

func (*Encryption) GetPublicKeyId added in v0.7.0

func (x *Encryption) GetPublicKeyId() string

func (*Encryption) GetSealingAlgorithm added in v0.7.0

func (x *Encryption) GetSealingAlgorithm() Encryption_Algorithm

func (*Encryption) GetSignature added in v0.7.0

func (x *Encryption) GetSignature() []byte

func (*Encryption) GetSignatureAlgorithm added in v0.7.0

func (x *Encryption) GetSignatureAlgorithm() Encryption_Algorithm

func (*Encryption) ProtoMessage

func (*Encryption) ProtoMessage()

func (*Encryption) ProtoReflect

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

func (*Encryption) Reset

func (x *Encryption) Reset()

func (*Encryption) String

func (x *Encryption) String() string

type Encryption_Algorithm added in v0.7.0

type Encryption_Algorithm int32
const (
	// No cryptography is being used
	Encryption_PLAINTEXT Encryption_Algorithm = 0
	// Encryption Algorithms
	Encryption_AES256_GCM Encryption_Algorithm = 110
	Encryption_AES192_GCM Encryption_Algorithm = 120
	Encryption_AES128_GCM Encryption_Algorithm = 130
	// Signature Algorithms
	Encryption_HMAC_SHA256 Encryption_Algorithm = 310
	// Sealing Algorithms (Asymmetric)
	Encryption_RSA_OAEP_SHA512 Encryption_Algorithm = 510
)

func (Encryption_Algorithm) Descriptor added in v0.7.0

func (Encryption_Algorithm) Enum added in v0.7.0

func (Encryption_Algorithm) EnumDescriptor deprecated added in v0.7.0

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

Deprecated: Use Encryption_Algorithm.Descriptor instead.

func (Encryption_Algorithm) Number added in v0.7.0

func (Encryption_Algorithm) String added in v0.7.0

func (x Encryption_Algorithm) String() string

func (Encryption_Algorithm) Type added in v0.7.0

type EnsignClient

type EnsignClient interface {
	// Both the Publish and Subscribe RPCs are bidirectional streaming to allow for acks
	// and nacks of events to be sent between Ensign and the client. The Publish stream
	// is opened and the client sends events and receives acks/nacks -- when the client
	// closes the publish stream, the server sends back information about the current
	// state of the topic. When the Subscribe stream is opened, the client must send an
	// open stream message with the subscription info before receiving events. Once it
	// receives events it must send back acks/nacks up the stream so that Ensign
	// advances the topic offset for the rest of the clients in the group.
	Publish(ctx context.Context, opts ...grpc.CallOption) (Ensign_PublishClient, error)
	Subscribe(ctx context.Context, opts ...grpc.CallOption) (Ensign_SubscribeClient, error)
	// EnSQL is a server-side streaming RPC that executes an query and returns a stream
	// of events as a result set back from the query. It terminates once all results
	// have been returned or the client terminates the stream.
	EnSQL(ctx context.Context, in *Query, opts ...grpc.CallOption) (Ensign_EnSQLClient, error)
	Explain(ctx context.Context, in *Query, opts ...grpc.CallOption) (*QueryExplanation, error)
	// This is a simple topic management interface. Right now we assume that topics are
	// immutable, therefore there is no update topic RPC call. There are two ways to
	// delete a topic - archiving it makes the topic readonly so that no events can be
	// published to it, but it can still be read. Destroying the topic deletes it and
	// removes all of its data, freeing up the topic name to be used again.
	ListTopics(ctx context.Context, in *PageInfo, opts ...grpc.CallOption) (*TopicsPage, error)
	CreateTopic(ctx context.Context, in *Topic, opts ...grpc.CallOption) (*Topic, error)
	RetrieveTopic(ctx context.Context, in *Topic, opts ...grpc.CallOption) (*Topic, error)
	DeleteTopic(ctx context.Context, in *TopicMod, opts ...grpc.CallOption) (*TopicStatus, error)
	TopicNames(ctx context.Context, in *PageInfo, opts ...grpc.CallOption) (*TopicNamesPage, error)
	TopicExists(ctx context.Context, in *TopicName, opts ...grpc.CallOption) (*TopicExistsInfo, error)
	// SetTopicPolicy allows users to specify topic management policies, setting the
	// topic into a pending mode while the update takes place. This is a patch endpoint
	// so if a policy is set to UNKNOWN it is ignored; only named policies initiate
	// changes on the topic. If the topic is already in the policy, a READY status is
	// returned, otherwise a PENDING status is returned while the topic updates.
	SetTopicPolicy(ctx context.Context, in *TopicPolicy, opts ...grpc.CallOption) (*TopicStatus, error)
	// Info provides statistics and metrics describing the state of a project
	Info(ctx context.Context, in *InfoRequest, opts ...grpc.CallOption) (*ProjectInfo, error)
	// Implements a client-side heartbeat that can also be used by monitoring tools.
	Status(ctx context.Context, in *HealthCheck, opts ...grpc.CallOption) (*ServiceState, error)
}

EnsignClient is the client API for Ensign service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewEnsignClient

func NewEnsignClient(cc grpc.ClientConnInterface) EnsignClient

type EnsignServer

type EnsignServer interface {
	// Both the Publish and Subscribe RPCs are bidirectional streaming to allow for acks
	// and nacks of events to be sent between Ensign and the client. The Publish stream
	// is opened and the client sends events and receives acks/nacks -- when the client
	// closes the publish stream, the server sends back information about the current
	// state of the topic. When the Subscribe stream is opened, the client must send an
	// open stream message with the subscription info before receiving events. Once it
	// receives events it must send back acks/nacks up the stream so that Ensign
	// advances the topic offset for the rest of the clients in the group.
	Publish(Ensign_PublishServer) error
	Subscribe(Ensign_SubscribeServer) error
	// EnSQL is a server-side streaming RPC that executes an query and returns a stream
	// of events as a result set back from the query. It terminates once all results
	// have been returned or the client terminates the stream.
	EnSQL(*Query, Ensign_EnSQLServer) error
	Explain(context.Context, *Query) (*QueryExplanation, error)
	// This is a simple topic management interface. Right now we assume that topics are
	// immutable, therefore there is no update topic RPC call. There are two ways to
	// delete a topic - archiving it makes the topic readonly so that no events can be
	// published to it, but it can still be read. Destroying the topic deletes it and
	// removes all of its data, freeing up the topic name to be used again.
	ListTopics(context.Context, *PageInfo) (*TopicsPage, error)
	CreateTopic(context.Context, *Topic) (*Topic, error)
	RetrieveTopic(context.Context, *Topic) (*Topic, error)
	DeleteTopic(context.Context, *TopicMod) (*TopicStatus, error)
	TopicNames(context.Context, *PageInfo) (*TopicNamesPage, error)
	TopicExists(context.Context, *TopicName) (*TopicExistsInfo, error)
	// SetTopicPolicy allows users to specify topic management policies, setting the
	// topic into a pending mode while the update takes place. This is a patch endpoint
	// so if a policy is set to UNKNOWN it is ignored; only named policies initiate
	// changes on the topic. If the topic is already in the policy, a READY status is
	// returned, otherwise a PENDING status is returned while the topic updates.
	SetTopicPolicy(context.Context, *TopicPolicy) (*TopicStatus, error)
	// Info provides statistics and metrics describing the state of a project
	Info(context.Context, *InfoRequest) (*ProjectInfo, error)
	// Implements a client-side heartbeat that can also be used by monitoring tools.
	Status(context.Context, *HealthCheck) (*ServiceState, error)
	// contains filtered or unexported methods
}

EnsignServer is the server API for Ensign service. All implementations must embed UnimplementedEnsignServer for forward compatibility

type Ensign_EnSQLClient added in v0.9.0

type Ensign_EnSQLClient interface {
	Recv() (*EventWrapper, error)
	grpc.ClientStream
}

type Ensign_EnSQLServer added in v0.9.0

type Ensign_EnSQLServer interface {
	Send(*EventWrapper) error
	grpc.ServerStream
}

type Ensign_PublishClient

type Ensign_PublishClient interface {
	Send(*PublisherRequest) error
	Recv() (*PublisherReply, error)
	grpc.ClientStream
}

type Ensign_PublishServer

type Ensign_PublishServer interface {
	Send(*PublisherReply) error
	Recv() (*PublisherRequest, error)
	grpc.ServerStream
}

type Ensign_SubscribeClient

type Ensign_SubscribeClient interface {
	Send(*SubscribeRequest) error
	Recv() (*SubscribeReply, error)
	grpc.ClientStream
}

type Ensign_SubscribeServer

type Ensign_SubscribeServer interface {
	Send(*SubscribeReply) error
	Recv() (*SubscribeRequest, error)
	grpc.ServerStream
}

type Event

type Event struct {

	// The datagram for the event.
	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	// User-defined key-value pairs that can be optionally added to the event.
	Metadata map[string]string `` /* 157-byte string literal not displayed */
	// The mimetype describes how to parse the event datagram.
	Mimetype v1beta11.MIME `protobuf:"varint,4,opt,name=mimetype,proto3,enum=mimetype.v1beta1.MIME" json:"mimetype,omitempty"`
	// Type defines the schema of he event datagram.
	Type *Type `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"`
	// Timestamp that the event was created according to the client's clock.
	Created *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=created,proto3" json:"created,omitempty"`
	// contains filtered or unexported fields
}

Event is a high level wrapper for a datagram that is totally ordered by the Ensign event-driven framework. Events are simply blobs of data and associated metadata that can be published by a producer, inserted into a log, and consumed by a subscriber. The mimetype of the event allows subscribers to deserialize the data into a specific format such as JSON or protocol buffers. The type acts as a key for heterogeneous topics and can also be used to lookup schema information for data validation.

func (*Event) DataEquals added in v0.11.0

func (e *Event) DataEquals(o *Event) bool

DataEquals returns true if neither event is nil and the datagram in each event is equal using bytes.Equal. Metadata, mimetype, and type are not considered.

func (*Event) Descriptor deprecated

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

Deprecated: Use Event.ProtoReflect.Descriptor instead.

func (*Event) Equals added in v0.11.0

func (e *Event) Equals(o *Event) bool

Equals returns strict equality of an event. The event's mimetype and type must match and the data must be equal. Finally, the events must have identical metadata - e.g. the same keys and values (without omission). Note that the created timestamp is not included in the equality check.

func (*Event) GetCreated

func (x *Event) GetCreated() *timestamppb.Timestamp

func (*Event) GetData

func (x *Event) GetData() []byte

func (*Event) GetMetadata added in v0.7.0

func (x *Event) GetMetadata() map[string]string

func (*Event) GetMimetype

func (x *Event) GetMimetype() v1beta11.MIME

func (*Event) GetType

func (x *Event) GetType() *Type

func (*Event) MetaEquals added in v0.11.0

func (e *Event) MetaEquals(o *Event, keys ...string) bool

MetaEquals returns true if neither event is nil and the metadata in each event is identical. If keys are specified then only that subset of keys is used to compare the metadata -- both events must contain the key (case-sensitive) and have a matching value. Data, mimetype, and type are not considered.

func (*Event) ProtoMessage

func (*Event) ProtoMessage()

func (*Event) ProtoReflect

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

func (*Event) Reset

func (x *Event) Reset()

func (*Event) ResolveType added in v0.9.0

func (e *Event) ResolveType() *Type

ResolveType returns the event's type if it has one, otherwise if the event's type is nil or empty, returns the "Unspecified" type, which is the default type for typeless events. It is important to have a named unspecified type for type checking and downstream event logging (such a logging in tenant).

func (*Event) String

func (x *Event) String() string

type EventContainer added in v0.7.0

type EventContainer struct {

	// All events in a container must belong to the same topic.
	TopicId []byte `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"`
	// The offsets of the events in the container.
	StartOffset uint64 `protobuf:"varint,2,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"`
	EndOffset   uint64 `protobuf:"varint,3,opt,name=end_offset,json=endOffset,proto3" json:"end_offset,omitempty"`
	// Mapping of an index to the epoch; it is assumed that all offsets following the
	// mapping share the epoch until the next epoch is specified.
	Epochs map[uint32]uint64 `` /* 155-byte string literal not displayed */
	// The event data, possibly encrypted and compressed. The raw data is an array of
	// serialized event-wrappers with duplicated data removed from the wrapper and moved
	// to the top-level of the container.
	Events []byte `protobuf:"bytes,5,opt,name=events,proto3" json:"events,omitempty"`
	// Encryption and compression information for deserializing event data.
	Encryption  *Encryption  `protobuf:"bytes,6,opt,name=encryption,proto3" json:"encryption,omitempty"`
	Compression *Compression `protobuf:"bytes,7,opt,name=compression,proto3" json:"compression,omitempty"`
	// De-duplication of event metadata by storing only the unique values and mapping
	// the index of each event to the specified metadata as an index in its array.
	Regions        []v1beta1.Region  `protobuf:"varint,8,rep,packed,name=regions,proto3,enum=region.v1beta1.Region" json:"regions,omitempty"`
	RegionIndex    map[uint32]uint32 `` /* 184-byte string literal not displayed */
	Publishers     []*Publisher      `protobuf:"bytes,10,rep,name=publishers,proto3" json:"publishers,omitempty"`
	PublisherIndex map[uint32]uint32 `` /* 194-byte string literal not displayed */
	Keys           [][]byte          `protobuf:"bytes,12,rep,name=keys,proto3" json:"keys,omitempty"`
	KeyIndex       map[uint32]uint32 `` /* 176-byte string literal not displayed */
	Shards         []uint64          `protobuf:"varint,14,rep,packed,name=shards,proto3" json:"shards,omitempty"`
	ShardIndex     map[uint32]uint32 `` /* 182-byte string literal not displayed */
	// Access timestamps for the container
	Created  *timestamppb.Timestamp `protobuf:"bytes,31,opt,name=created,proto3" json:"created,omitempty"`
	Modified *timestamppb.Timestamp `protobuf:"bytes,32,opt,name=modified,proto3" json:"modified,omitempty"`
	// contains filtered or unexported fields
}

EventContainer is used to store events in blocks on disk. It is intended as a more generic version of the event wrapper but for multiple events. EventContainers require all events in the container to belong to the same topic and have a contiguous range of event IDs and offsets. EventContainers reduce the amount of data needed to store multiple events by reducing the amount of duplicated data. For example the topic ID, offset, and epoch are removed from the inner event and stored on the container. Even though zeros are still stored for offset and epoch it results in a 4.3x compression. Similar techniques are used for other metadata in the container.

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

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

Deprecated: Use EventContainer.ProtoReflect.Descriptor instead.

func (*EventContainer) GetCompression added in v0.7.0

func (x *EventContainer) GetCompression() *Compression

func (*EventContainer) GetCreated added in v0.7.0

func (x *EventContainer) GetCreated() *timestamppb.Timestamp

func (*EventContainer) GetEncryption added in v0.7.0

func (x *EventContainer) GetEncryption() *Encryption

func (*EventContainer) GetEndOffset added in v0.7.0

func (x *EventContainer) GetEndOffset() uint64

func (*EventContainer) GetEpochs added in v0.7.0

func (x *EventContainer) GetEpochs() map[uint32]uint64

func (*EventContainer) GetEvents added in v0.7.0

func (x *EventContainer) GetEvents() []byte

func (*EventContainer) GetKeyIndex added in v0.7.0

func (x *EventContainer) GetKeyIndex() map[uint32]uint32

func (*EventContainer) GetKeys added in v0.7.0

func (x *EventContainer) GetKeys() [][]byte

func (*EventContainer) GetModified added in v0.7.0

func (x *EventContainer) GetModified() *timestamppb.Timestamp

func (*EventContainer) GetPublisherIndex added in v0.7.0

func (x *EventContainer) GetPublisherIndex() map[uint32]uint32

func (*EventContainer) GetPublishers added in v0.7.0

func (x *EventContainer) GetPublishers() []*Publisher

func (*EventContainer) GetRegionIndex added in v0.7.0

func (x *EventContainer) GetRegionIndex() map[uint32]uint32

func (*EventContainer) GetRegions added in v0.7.0

func (x *EventContainer) GetRegions() []v1beta1.Region

func (*EventContainer) GetShardIndex added in v0.7.0

func (x *EventContainer) GetShardIndex() map[uint32]uint32

func (*EventContainer) GetShards added in v0.7.0

func (x *EventContainer) GetShards() []uint64

func (*EventContainer) GetStartOffset added in v0.7.0

func (x *EventContainer) GetStartOffset() uint64

func (*EventContainer) GetTopicId added in v0.7.0

func (x *EventContainer) GetTopicId() []byte

func (*EventContainer) ProtoMessage added in v0.7.0

func (*EventContainer) ProtoMessage()

func (*EventContainer) ProtoReflect added in v0.7.0

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

func (*EventContainer) Reset added in v0.7.0

func (x *EventContainer) Reset()

func (*EventContainer) String added in v0.7.0

func (x *EventContainer) String() string

type EventTypeInfo added in v0.9.0

type EventTypeInfo struct {
	Type          *Type                  `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	Mimetype      v1beta11.MIME          `protobuf:"varint,2,opt,name=mimetype,proto3,enum=mimetype.v1beta1.MIME" json:"mimetype,omitempty"`
	Events        uint64                 `protobuf:"varint,10,opt,name=events,proto3" json:"events,omitempty"`
	Duplicates    uint64                 `protobuf:"varint,11,opt,name=duplicates,proto3" json:"duplicates,omitempty"`
	DataSizeBytes uint64                 `protobuf:"varint,12,opt,name=data_size_bytes,json=dataSizeBytes,proto3" json:"data_size_bytes,omitempty"`
	Modified      *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=modified,proto3" json:"modified,omitempty"`
	// contains filtered or unexported fields
}

func (*EventTypeInfo) Descriptor deprecated added in v0.9.0

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

Deprecated: Use EventTypeInfo.ProtoReflect.Descriptor instead.

func (*EventTypeInfo) GetDataSizeBytes added in v0.9.0

func (x *EventTypeInfo) GetDataSizeBytes() uint64

func (*EventTypeInfo) GetDuplicates added in v0.9.0

func (x *EventTypeInfo) GetDuplicates() uint64

func (*EventTypeInfo) GetEvents added in v0.9.0

func (x *EventTypeInfo) GetEvents() uint64

func (*EventTypeInfo) GetMimetype added in v0.9.0

func (x *EventTypeInfo) GetMimetype() v1beta11.MIME

func (*EventTypeInfo) GetModified added in v0.9.0

func (x *EventTypeInfo) GetModified() *timestamppb.Timestamp

func (*EventTypeInfo) GetType added in v0.9.0

func (x *EventTypeInfo) GetType() *Type

func (*EventTypeInfo) ProtoMessage added in v0.9.0

func (*EventTypeInfo) ProtoMessage()

func (*EventTypeInfo) ProtoReflect added in v0.9.0

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

func (*EventTypeInfo) Reset added in v0.9.0

func (x *EventTypeInfo) Reset()

func (*EventTypeInfo) String added in v0.9.0

func (x *EventTypeInfo) String() string

type EventWrapper added in v0.7.0

type EventWrapper struct {

	// The event ID is an RLID that represents an ordered series of concurrent events.
	Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The topic ID the event should be published to.
	TopicId []byte `protobuf:"bytes,2,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"`
	// Offset and epoch are related to guarantee total ordering through consensus.
	Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"`
	Epoch  uint64 `protobuf:"varint,4,opt,name=epoch,proto3" json:"epoch,omitempty"`
	// Publisher and geography information about the provenance of the event.
	Region    v1beta1.Region `protobuf:"varint,5,opt,name=region,proto3,enum=region.v1beta1.Region" json:"region,omitempty"`
	Publisher *Publisher     `protobuf:"bytes,6,opt,name=publisher,proto3" json:"publisher,omitempty"`
	// Keys allow the event to be sharded across topics and must be part of the wrapper.
	// The shard specifies which shard the key was assigned to by the sharding strategy.
	Key   []byte `protobuf:"bytes,7,opt,name=key,proto3" json:"key,omitempty"`
	Shard uint64 `protobuf:"varint,8,opt,name=shard,proto3" json:"shard,omitempty"`
	// The event data should be a proto marshaled Event that is serialized at the client.
	Event []byte `protobuf:"bytes,9,opt,name=event,proto3" json:"event,omitempty"`
	// Events can be encrypted and compressed individually but more often are encrypted
	// and compressed in event containers. This allows parity with containers but also
	// enables end-to-end encryption of specific events.
	Encryption  *Encryption  `protobuf:"bytes,10,opt,name=encryption,proto3" json:"encryption,omitempty"`
	Compression *Compression `protobuf:"bytes,11,opt,name=compression,proto3" json:"compression,omitempty"`
	// Deduplication pointer; if this event wrapper is a duplicate then it should be
	// omitted from standard queries depending on the deduplication strategy of the
	// topic. The DuplicateID points to the event that contains the data referred to by
	// this duplicated event wrapper. A duplicate event wrapper will likely have all of
	// the metadata but no event data.
	IsDuplicate bool   `protobuf:"varint,12,opt,name=is_duplicate,json=isDuplicate,proto3" json:"is_duplicate,omitempty"`
	DuplicateId []byte `protobuf:"bytes,13,opt,name=duplicate_id,json=duplicateId,proto3" json:"duplicate_id,omitempty"`
	// The timestamp that the event was committed by the consensus protocol.
	Committed *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=committed,proto3" json:"committed,omitempty"`
	// LocalID is an ID that must be unique to the publisher and is used to send acks
	// back to the publisher. This field should be solely managed by the SDK publisher.
	// The field is discarded before saving to disk and is not available to subscribers
	// or any time after the publish ack/nack has been sent back to the publisher.
	LocalId []byte `protobuf:"bytes,16,opt,name=local_id,json=localId,proto3" json:"local_id,omitempty"`
	// contains filtered or unexported fields
}

EventWrapper is a header wrapper for processing events by the Ensign server. It is intended to reduce the processing time of events to increase throughput on the server even though it will require more work from the SDKs to serialize events. However, this will happen on the client-side making Ensign nodes much more parallel. The only data in the EventWrapper should be data that is required for the Ensign node to process events.

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

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

Deprecated: Use EventWrapper.ProtoReflect.Descriptor instead.

func (*EventWrapper) DuplicateFrom added in v0.12.0

func (w *EventWrapper) DuplicateFrom(o *EventWrapper) (err error)

DuplicateFrom is the inverse of DuplicateOf: it modifies the event w, populating it with the duplicated data from the original event. It still keeps the event w marked as a duplicate (this has to be undone manually), but it allows the duplicate to be returned to the user with any unique information it may have contained.

func (*EventWrapper) DuplicateOf added in v0.12.0

func (w *EventWrapper) DuplicateOf(o *EventWrapper, policy *Deduplication) (err error)

DuplicateOf marks the original event (w) as a duplicate of the original event (o). In other words, the original event (w) becomes a duplicate reference to the original. The duplicate is updated in place to mark the wrapper as a duplicate of the original and to reduce the data storage depending on the policy. For example, in strict mode, the event data is nilified and only the wrapper metadata is kept, whereas in unique keys mode, the data may not be removed depending on the policy.

NOTE: this method does not check if the events are duplicates! Use the Duplicates() method for verification that the two events are duplicates of each other.

func (*EventWrapper) Duplicates added in v0.11.0

func (w *EventWrapper) Duplicates(o *EventWrapper, policy *Deduplication) (bool, error)

Duplicates uses a non-hash equality method to determine if the input event is a duplicate of the current event using the deduplication policy. Hashing shoud be used to determine duplication candidates, but the duplicates method should be used to confirm if two events are duplicates or not.

func (*EventWrapper) DuplicatesDatagram added in v0.11.0

func (w *EventWrapper) DuplicatesDatagram(o *EventWrapper) (_ bool, err error)

Datagram duplicates only compare the event's data to determine duplication, ignoring the metadata, mimetype, and type fields. This method uses Event.DataEquals.

func (*EventWrapper) DuplicatesKeyGrouped added in v0.11.0

func (w *EventWrapper) DuplicatesKeyGrouped(o *EventWrapper, keys []string) (_ bool, err error)

Key grouped duplicates must have identical values for the specified keys (if not then the events are not considered duplicates, even if the data is the same in both events), then the events must have identical data. This method uses the Event.MetaEquals first, then Event.DataEquals second.

func (*EventWrapper) DuplicatesStrict added in v0.11.0

func (w *EventWrapper) DuplicatesStrict(o *EventWrapper) (_ bool, err error)

Strict deduplication requires that the events data, metadata, mimetype, and type are all identical in order for an event to be marked a duplicate. This method uses the Event.Equals method for comparing the wrapped events in the source and target.

func (*EventWrapper) DuplicatesUniqueField added in v0.11.0

func (w *EventWrapper) DuplicatesUniqueField(o *EventWrapper, fields []string) (_ bool, err error)

Unique field duplication focuses on data duplication but rather than checking the entire datagram, parses the data and only compares specified fields. This requires Ensign to be able to parse the data and unparseable mimetypes (such as protocol buffers) will return an error.

BUG: this is currently unimplemented

func (*EventWrapper) DuplicatesUniqueKey added in v0.11.0

func (w *EventWrapper) DuplicatesUniqueKey(o *EventWrapper, keys []string) (_ bool, err error)

Unique key duplication only checks that the events have the same values for the keys specified in the policy, ignoring other keys, data, mimetype, and type information. This method uses Event.MetaEquals to perform the comparison.

func (*EventWrapper) Equals added in v0.12.0

func (w *EventWrapper) Equals(o *EventWrapper) bool

Equals compares two events in wrappers to see if they are identical using event equality. This is essentially a shortcut for unwrapping the two events and comparing them directly.

func (*EventWrapper) EqualsEvent added in v0.12.0

func (w *EventWrapper) EqualsEvent(o *Event) bool

Equals compares a wrapped event to an wrapped event to see if the wrapped event is identical using event equality. This is a shortcut for unwrapping the wrapped event.

func (*EventWrapper) GetCommitted added in v0.7.0

func (x *EventWrapper) GetCommitted() *timestamppb.Timestamp

func (*EventWrapper) GetCompression added in v0.7.0

func (x *EventWrapper) GetCompression() *Compression

func (*EventWrapper) GetDuplicateId added in v0.10.0

func (x *EventWrapper) GetDuplicateId() []byte

func (*EventWrapper) GetEncryption added in v0.7.0

func (x *EventWrapper) GetEncryption() *Encryption

func (*EventWrapper) GetEpoch added in v0.7.0

func (x *EventWrapper) GetEpoch() uint64

func (*EventWrapper) GetEvent added in v0.7.0

func (x *EventWrapper) GetEvent() []byte

func (*EventWrapper) GetId added in v0.7.0

func (x *EventWrapper) GetId() []byte

func (*EventWrapper) GetIsDuplicate added in v0.10.0

func (x *EventWrapper) GetIsDuplicate() bool

func (*EventWrapper) GetKey added in v0.7.0

func (x *EventWrapper) GetKey() []byte

func (*EventWrapper) GetLocalId added in v0.7.0

func (x *EventWrapper) GetLocalId() []byte

func (*EventWrapper) GetOffset added in v0.7.0

func (x *EventWrapper) GetOffset() uint64

func (*EventWrapper) GetPublisher added in v0.7.0

func (x *EventWrapper) GetPublisher() *Publisher

func (*EventWrapper) GetRegion added in v0.7.0

func (x *EventWrapper) GetRegion() v1beta1.Region

func (*EventWrapper) GetShard added in v0.7.0

func (x *EventWrapper) GetShard() uint64

func (*EventWrapper) GetTopicId added in v0.7.0

func (x *EventWrapper) GetTopicId() []byte

func (*EventWrapper) Hash added in v0.11.0

func (w *EventWrapper) Hash(policy *Deduplication) ([]byte, error)

Hash uses the deduplication policy to determine the hash signature of the event wrapped by the event wrapper and returns the appropriate signature that should be used to detect duplicates in the event stream.

func (*EventWrapper) HashDatagram added in v0.11.0

func (w *EventWrapper) HashDatagram() (_ []byte, err error)

Datagram hashing is used to detect duplicates in data only, ignoring metadata, mimetype, and type as in strict hashing. This method returns a murmur3 hash of the data field of the event only.

func (*EventWrapper) HashKeyGrouped added in v0.11.0

func (w *EventWrapper) HashKeyGrouped(keys []string) (_ []byte, err error)

Key grouped hashing returns the murmur3 hash of the data of the event prefixed with the metadata values of the the specified keys. E.g. if the data is foobar and the hash is grouped by the key month - then for two events with month jan and month feb will have different hashes: murmur3(janfoobar) and murmur3(febfoobar).

NOTE: this method does not take into account mimetype or type but in the future we may have "reserved keys" to factor in these elements to the hash.

func (*EventWrapper) HashStrict added in v0.11.0

func (w *EventWrapper) HashStrict() (_ []byte, err error)

Strict hashing is used to detect duplicates where two events have identical metadata, data, mimetype, and type. This method works by setting any non-hash fields to zero values then marshaling the protocol buffers of the event and computing the murmur3 hash on the serialized data.

func (*EventWrapper) HashUniqueField added in v0.11.0

func (w *EventWrapper) HashUniqueField(fields []string) (_ []byte, err error)

Unique field hashing determines duplicates not from the entire datagram, but rather from specified fields in the datagram. This requires Ensign to be able to parse the data, and unparsable mimetypes (such as protocol buffers) will return an error.

BUG: this is currently unimplemented

func (*EventWrapper) HashUniqueKey added in v0.11.0

func (w *EventWrapper) HashUniqueKey(keys []string) (_ []byte, err error)

Unique key hashes determine duplicates not from the event data but from the keys specified in the metadata (useful for creating lookup indexes). The hash is the murmur3 hash of the concatenated key values for the specified keys.

func (*EventWrapper) ParseEventID added in v0.9.0

func (w *EventWrapper) ParseEventID() (eventID rlid.RLID, err error)

Parse the eventID on the event wrapper as an RLID.

func (*EventWrapper) ParseTopicID added in v0.7.0

func (w *EventWrapper) ParseTopicID() (topicID ulid.ULID, err error)

Parse the topicID on the event wrapper as a ULID.

func (*EventWrapper) ProtoMessage added in v0.7.0

func (*EventWrapper) ProtoMessage()

func (*EventWrapper) ProtoReflect added in v0.7.0

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

func (*EventWrapper) Reset added in v0.7.0

func (x *EventWrapper) Reset()

func (*EventWrapper) String added in v0.7.0

func (x *EventWrapper) String() string

func (*EventWrapper) Unwrap added in v0.7.0

func (w *EventWrapper) Unwrap() (e *Event, err error)

Unwrap an event from the event wrapper, marshaling the event bytes into an event protocol buffer for event-specific processing.

func (*EventWrapper) Wrap added in v0.7.0

func (w *EventWrapper) Wrap(e *Event) (err error)

Wrap an event inside of the event wrapper, marshaling the event into bytes and storing it in its raw form so that it doesn't have to be parsed during wrapper unmarshaling (the Broker uses the event wrapper metadata not the event itself).

type HealthCheck

type HealthCheck struct {

	// The number of failed health checks that proceeded the current check.
	Attempts uint32 `protobuf:"varint,1,opt,name=attempts,proto3" json:"attempts,omitempty"`
	// The timestamp of the last health check, successful or otherwise.
	LastCheckedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_checked_at,json=lastCheckedAt,proto3" json:"last_checked_at,omitempty"`
	// contains filtered or unexported fields
}

HealthCheck is used to query the service state of an Ensign node.

func (*HealthCheck) Descriptor deprecated

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

Deprecated: Use HealthCheck.ProtoReflect.Descriptor instead.

func (*HealthCheck) GetAttempts

func (x *HealthCheck) GetAttempts() uint32

func (*HealthCheck) GetLastCheckedAt

func (x *HealthCheck) GetLastCheckedAt() *timestamppb.Timestamp

func (*HealthCheck) ProtoMessage

func (*HealthCheck) ProtoMessage()

func (*HealthCheck) ProtoReflect

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

func (*HealthCheck) Reset

func (x *HealthCheck) Reset()

func (*HealthCheck) String

func (x *HealthCheck) String() string

type InfoRequest added in v0.7.0

type InfoRequest struct {
	Topics [][]byte `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"`
	// contains filtered or unexported fields
}

InfoRequest allows the project info to be filtered by a list of specific topics.

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

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

Deprecated: Use InfoRequest.ProtoReflect.Descriptor instead.

func (*InfoRequest) GetTopics added in v0.7.0

func (x *InfoRequest) GetTopics() [][]byte

func (*InfoRequest) ProtoMessage added in v0.7.0

func (*InfoRequest) ProtoMessage()

func (*InfoRequest) ProtoReflect added in v0.7.0

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

func (*InfoRequest) Reset added in v0.7.0

func (x *InfoRequest) Reset()

func (*InfoRequest) String added in v0.7.0

func (x *InfoRequest) String() string

type Nack

type Nack struct {
	Id    []byte    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Code  Nack_Code `protobuf:"varint,2,opt,name=code,proto3,enum=ensign.v1beta1.Nack_Code" json:"code,omitempty"`
	Error string    `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
	// contains filtered or unexported fields
}

Nack means that an event could not be handled or committed. This datatype should be small so that throughput is not affected and generally only conains the id of the event and the error code describing what went wrong. Longer error messages are optional and should only be used when something abnormal has occurred. The Ensign server will return a Nack if the event could not be appended to the log. Clients should return a Nack if the event couldn't be handled or processed so that Ensign ensures another client retrieves the event.

func (*Nack) Descriptor deprecated

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

Deprecated: Use Nack.ProtoReflect.Descriptor instead.

func (*Nack) GetCode

func (x *Nack) GetCode() Nack_Code

func (*Nack) GetError

func (x *Nack) GetError() string

func (*Nack) GetId

func (x *Nack) GetId() []byte

func (*Nack) ProtoMessage

func (*Nack) ProtoMessage()

func (*Nack) ProtoReflect

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

func (*Nack) Reset

func (x *Nack) Reset()

func (*Nack) String

func (x *Nack) String() string

type Nack_Code added in v0.7.0

type Nack_Code int32
const (
	Nack_UNKNOWN Nack_Code = 0
	// Server-side NACK codes.
	Nack_MAX_EVENT_SIZE_EXCEEDED Nack_Code = 1
	Nack_TOPIC_UNKNOWN           Nack_Code = 2
	Nack_TOPIC_ARCHIVED          Nack_Code = 3
	Nack_TOPIC_DELETED           Nack_Code = 4
	Nack_PERMISSION_DENIED       Nack_Code = 5
	Nack_CONSENSUS_FAILURE       Nack_Code = 6
	Nack_SHARDING_FAILURE        Nack_Code = 7
	Nack_REDIRECT                Nack_Code = 8
	Nack_INTERNAL                Nack_Code = 9
	// Client-side NACK codes
	Nack_UNPROCESSED          Nack_Code = 100
	Nack_TIMEOUT              Nack_Code = 101
	Nack_UNHANDLED_MIMETYPE   Nack_Code = 102
	Nack_UNKNOWN_TYPE         Nack_Code = 103
	Nack_DELIVER_AGAIN_ANY    Nack_Code = 104
	Nack_DELIVER_AGAIN_NOT_ME Nack_Code = 105
)

func (Nack_Code) Descriptor added in v0.7.0

func (Nack_Code) Descriptor() protoreflect.EnumDescriptor

func (Nack_Code) Enum added in v0.7.0

func (x Nack_Code) Enum() *Nack_Code

func (Nack_Code) EnumDescriptor deprecated added in v0.7.0

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

Deprecated: Use Nack_Code.Descriptor instead.

func (Nack_Code) Number added in v0.7.0

func (x Nack_Code) Number() protoreflect.EnumNumber

func (Nack_Code) String added in v0.7.0

func (x Nack_Code) String() string

func (Nack_Code) Type added in v0.7.0

type Node

type Node struct {
	Id       string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Hostname string         `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Quorum   uint64         `protobuf:"varint,3,opt,name=quorum,proto3" json:"quorum,omitempty"`
	Shard    uint64         `protobuf:"varint,4,opt,name=shard,proto3" json:"shard,omitempty"`
	Region   v1beta1.Region `protobuf:"varint,5,opt,name=region,proto3,enum=region.v1beta1.Region" json:"region,omitempty"`
	Url      string         `protobuf:"bytes,6,opt,name=url,proto3" json:"url,omitempty"`
	// contains filtered or unexported fields
}

func (*Node) Descriptor deprecated

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

Deprecated: Use Node.ProtoReflect.Descriptor instead.

func (*Node) GetHostname

func (x *Node) GetHostname() string

func (*Node) GetId

func (x *Node) GetId() string

func (*Node) GetQuorum

func (x *Node) GetQuorum() uint64

func (*Node) GetRegion

func (x *Node) GetRegion() v1beta1.Region

func (*Node) GetShard

func (x *Node) GetShard() uint64

func (*Node) GetUrl

func (x *Node) GetUrl() string

func (*Node) ProtoMessage

func (*Node) ProtoMessage()

func (*Node) ProtoReflect

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

func (*Node) Reset

func (x *Node) Reset()

func (*Node) String

func (x *Node) String() string

type OpenStream

type OpenStream struct {
	ClientId string   `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	Topics   []string `protobuf:"bytes,2,rep,name=topics,proto3" json:"topics,omitempty"`
	// contains filtered or unexported fields
}

OpenStream is the first message that should be sent in a Publish stream in order to identify and authenticate the publisher. Optionally, the publisher can specify the topics that they want to publish to in order to check that they are being sent to the correct node.

func (*OpenStream) Descriptor deprecated

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

Deprecated: Use OpenStream.ProtoReflect.Descriptor instead.

func (*OpenStream) GetClientId added in v0.7.0

func (x *OpenStream) GetClientId() string

func (*OpenStream) GetTopics added in v0.5.1

func (x *OpenStream) GetTopics() []string

func (*OpenStream) ProtoMessage

func (*OpenStream) ProtoMessage()

func (*OpenStream) ProtoReflect

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

func (*OpenStream) Reset

func (x *OpenStream) Reset()

func (*OpenStream) String

func (x *OpenStream) String() string

type PageInfo

type PageInfo struct {
	PageSize      uint32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

A basic request for paginated list queries.

func (*PageInfo) Descriptor deprecated

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

Deprecated: Use PageInfo.ProtoReflect.Descriptor instead.

func (*PageInfo) GetNextPageToken

func (x *PageInfo) GetNextPageToken() string

func (*PageInfo) GetPageSize

func (x *PageInfo) GetPageSize() uint32

func (*PageInfo) ProtoMessage

func (*PageInfo) ProtoMessage()

func (*PageInfo) ProtoReflect

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

func (*PageInfo) Reset

func (x *PageInfo) Reset()

func (*PageInfo) String

func (x *PageInfo) String() string

type Parameter added in v0.9.0

type Parameter struct {

	// Types that are assignable to Value:
	//
	//	*Parameter_I
	//	*Parameter_D
	//	*Parameter_B
	//	*Parameter_Y
	//	*Parameter_S
	Value isParameter_Value `protobuf_oneof:"value"`
	Name  string            `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

Parameter holds a primitive value for passing as a placeholder to a sqlite query.

func (*Parameter) Descriptor deprecated added in v0.9.0

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

Deprecated: Use Parameter.ProtoReflect.Descriptor instead.

func (*Parameter) GetB added in v0.9.0

func (x *Parameter) GetB() bool

func (*Parameter) GetD added in v0.9.0

func (x *Parameter) GetD() float64

func (*Parameter) GetI added in v0.9.0

func (x *Parameter) GetI() int64

func (*Parameter) GetName added in v0.9.0

func (x *Parameter) GetName() string

func (*Parameter) GetS added in v0.9.0

func (x *Parameter) GetS() string

func (*Parameter) GetValue added in v0.9.0

func (m *Parameter) GetValue() isParameter_Value

func (*Parameter) GetY added in v0.9.0

func (x *Parameter) GetY() []byte

func (*Parameter) ProtoMessage added in v0.9.0

func (*Parameter) ProtoMessage()

func (*Parameter) ProtoReflect added in v0.9.0

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

func (*Parameter) Reset added in v0.9.0

func (x *Parameter) Reset()

func (*Parameter) String added in v0.9.0

func (x *Parameter) String() string

type Parameter_B added in v0.9.0

type Parameter_B struct {
	B bool `protobuf:"varint,3,opt,name=b,proto3,oneof"`
}

type Parameter_D added in v0.9.0

type Parameter_D struct {
	D float64 `protobuf:"fixed64,2,opt,name=d,proto3,oneof"`
}

type Parameter_I added in v0.9.0

type Parameter_I struct {
	I int64 `protobuf:"zigzag64,1,opt,name=i,proto3,oneof"`
}

type Parameter_S added in v0.9.0

type Parameter_S struct {
	S string `protobuf:"bytes,5,opt,name=s,proto3,oneof"`
}

type Parameter_Y added in v0.9.0

type Parameter_Y struct {
	Y []byte `protobuf:"bytes,4,opt,name=y,proto3,oneof"`
}

type Placement

type Placement struct {
	Epoch    uint64           `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
	Sharding ShardingStrategy `protobuf:"varint,2,opt,name=sharding,proto3,enum=ensign.v1beta1.ShardingStrategy" json:"sharding,omitempty"`
	Regions  []v1beta1.Region `protobuf:"varint,3,rep,packed,name=regions,proto3,enum=region.v1beta1.Region" json:"regions,omitempty"`
	Nodes    []*Node          `protobuf:"bytes,4,rep,name=nodes,proto3" json:"nodes,omitempty"`
	// contains filtered or unexported fields
}

Placement represents the nodes and regions a topic is assigned to for routing.

func (*Placement) Descriptor deprecated

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

Deprecated: Use Placement.ProtoReflect.Descriptor instead.

func (*Placement) GetEpoch

func (x *Placement) GetEpoch() uint64

func (*Placement) GetNodes

func (x *Placement) GetNodes() []*Node

func (*Placement) GetRegions

func (x *Placement) GetRegions() []v1beta1.Region

func (*Placement) GetSharding

func (x *Placement) GetSharding() ShardingStrategy

func (*Placement) ProtoMessage

func (*Placement) ProtoMessage()

func (*Placement) ProtoReflect

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

func (*Placement) Reset

func (x *Placement) Reset()

func (*Placement) String

func (x *Placement) String() string

type ProjectInfo added in v0.7.0

type ProjectInfo struct {
	ProjectId         []byte `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	NumTopics         uint64 `protobuf:"varint,2,opt,name=num_topics,json=numTopics,proto3" json:"num_topics,omitempty"`
	NumReadonlyTopics uint64 `protobuf:"varint,3,opt,name=num_readonly_topics,json=numReadonlyTopics,proto3" json:"num_readonly_topics,omitempty"`
	// These are simply sums of the data in topics; however they may be prone to
	// overflow given a sufficiently sized project.
	Events        uint64       `protobuf:"varint,7,opt,name=events,proto3" json:"events,omitempty"`
	Duplicates    uint64       `protobuf:"varint,8,opt,name=duplicates,proto3" json:"duplicates,omitempty"`
	DataSizeBytes uint64       `protobuf:"varint,9,opt,name=data_size_bytes,json=dataSizeBytes,proto3" json:"data_size_bytes,omitempty"`
	Topics        []*TopicInfo `protobuf:"bytes,15,rep,name=topics,proto3" json:"topics,omitempty"`
	// contains filtered or unexported fields
}

ProjectInfo describes overall project statistics for the project described in the authentication claims that the user connects with.

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

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

Deprecated: Use ProjectInfo.ProtoReflect.Descriptor instead.

func (*ProjectInfo) GetDataSizeBytes added in v0.9.0

func (x *ProjectInfo) GetDataSizeBytes() uint64

func (*ProjectInfo) GetDuplicates added in v0.9.0

func (x *ProjectInfo) GetDuplicates() uint64

func (*ProjectInfo) GetEvents added in v0.7.0

func (x *ProjectInfo) GetEvents() uint64

func (*ProjectInfo) GetNumReadonlyTopics added in v0.9.0

func (x *ProjectInfo) GetNumReadonlyTopics() uint64

func (*ProjectInfo) GetNumTopics added in v0.9.0

func (x *ProjectInfo) GetNumTopics() uint64

func (*ProjectInfo) GetProjectId added in v0.7.0

func (x *ProjectInfo) GetProjectId() []byte

func (*ProjectInfo) GetTopics added in v0.7.0

func (x *ProjectInfo) GetTopics() []*TopicInfo

func (*ProjectInfo) ProtoMessage added in v0.7.0

func (*ProjectInfo) ProtoMessage()

func (*ProjectInfo) ProtoReflect added in v0.7.0

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

func (*ProjectInfo) Reset added in v0.7.0

func (x *ProjectInfo) Reset()

func (*ProjectInfo) String added in v0.7.0

func (x *ProjectInfo) String() string

type Publisher

type Publisher struct {
	PublisherId string `protobuf:"bytes,1,opt,name=publisher_id,json=publisherId,proto3" json:"publisher_id,omitempty"`
	Ipaddr      string `protobuf:"bytes,2,opt,name=ipaddr,proto3" json:"ipaddr,omitempty"`
	ClientId    string `protobuf:"bytes,3,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	UserAgent   string `protobuf:"bytes,4,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
	// contains filtered or unexported fields
}

Information about the publisher of the event for provenance and auditing purposes. TODO: this is only partially implemented

func (*Publisher) Descriptor deprecated

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

Deprecated: Use Publisher.ProtoReflect.Descriptor instead.

func (*Publisher) GetClientId

func (x *Publisher) GetClientId() string

func (*Publisher) GetIpaddr

func (x *Publisher) GetIpaddr() string

func (*Publisher) GetPublisherId added in v0.7.0

func (x *Publisher) GetPublisherId() string

func (*Publisher) GetUserAgent added in v0.7.0

func (x *Publisher) GetUserAgent() string

func (*Publisher) ProtoMessage

func (*Publisher) ProtoMessage()

func (*Publisher) ProtoReflect

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

func (*Publisher) Reset

func (x *Publisher) Reset()

func (*Publisher) ResolveClientID added in v0.9.0

func (p *Publisher) ResolveClientID() string

Returns the user-specified client ID if set, otherwise returns the publisher ID.

func (*Publisher) String

func (x *Publisher) String() string

type PublisherReply added in v0.7.0

type PublisherReply struct {

	// Types that are assignable to Embed:
	//
	//	*PublisherReply_Ack
	//	*PublisherReply_Nack
	//	*PublisherReply_Ready
	//	*PublisherReply_CloseStream
	Embed isPublisherReply_Embed `protobuf_oneof:"embed"`
	// contains filtered or unexported fields
}

PublisherReply messages are sent back to publishers from the server. Generally they are responses to receiving events (e.g. ack and nack) but the last message contains information about the performance of the publisher and the topic itself. This message can be extended to allow more general interactions between the publisher and the server including redirects, topic queries, etc.

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

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

Deprecated: Use PublisherReply.ProtoReflect.Descriptor instead.

func (*PublisherReply) GetAck added in v0.7.0

func (x *PublisherReply) GetAck() *Ack

func (*PublisherReply) GetCloseStream added in v0.7.0

func (x *PublisherReply) GetCloseStream() *CloseStream

func (*PublisherReply) GetEmbed added in v0.7.0

func (m *PublisherReply) GetEmbed() isPublisherReply_Embed

func (*PublisherReply) GetNack added in v0.7.0

func (x *PublisherReply) GetNack() *Nack

func (*PublisherReply) GetReady added in v0.7.0

func (x *PublisherReply) GetReady() *StreamReady

func (*PublisherReply) ProtoMessage added in v0.7.0

func (*PublisherReply) ProtoMessage()

func (*PublisherReply) ProtoReflect added in v0.7.0

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

func (*PublisherReply) Reset added in v0.7.0

func (x *PublisherReply) Reset()

func (*PublisherReply) String added in v0.7.0

func (x *PublisherReply) String() string

type PublisherReply_Ack added in v0.7.0

type PublisherReply_Ack struct {
	Ack *Ack `protobuf:"bytes,1,opt,name=ack,proto3,oneof"`
}

type PublisherReply_CloseStream added in v0.7.0

type PublisherReply_CloseStream struct {
	CloseStream *CloseStream `protobuf:"bytes,4,opt,name=close_stream,json=closeStream,proto3,oneof"`
}

type PublisherReply_Nack added in v0.7.0

type PublisherReply_Nack struct {
	Nack *Nack `protobuf:"bytes,2,opt,name=nack,proto3,oneof"`
}

type PublisherReply_Ready added in v0.7.0

type PublisherReply_Ready struct {
	Ready *StreamReady `protobuf:"bytes,3,opt,name=ready,proto3,oneof"`
}

type PublisherRequest added in v0.7.0

type PublisherRequest struct {

	// Types that are assignable to Embed:
	//
	//	*PublisherRequest_Event
	//	*PublisherRequest_OpenStream
	Embed isPublisherRequest_Embed `protobuf_oneof:"embed"`
	// contains filtered or unexported fields
}

PublisherRequest messages are sent from the publisher to the server. Generally they are events that need to be published but the first message must be a stream initialization message to ensure that the publisher is authenticated and can identify itself. This message can be extended to allow for other interactions between the publisher and the server including topic queries, redirects, etc.

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

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

Deprecated: Use PublisherRequest.ProtoReflect.Descriptor instead.

func (*PublisherRequest) GetEmbed added in v0.7.0

func (m *PublisherRequest) GetEmbed() isPublisherRequest_Embed

func (*PublisherRequest) GetEvent added in v0.7.0

func (x *PublisherRequest) GetEvent() *EventWrapper

func (*PublisherRequest) GetOpenStream added in v0.7.0

func (x *PublisherRequest) GetOpenStream() *OpenStream

func (*PublisherRequest) ProtoMessage added in v0.7.0

func (*PublisherRequest) ProtoMessage()

func (*PublisherRequest) ProtoReflect added in v0.7.0

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

func (*PublisherRequest) Reset added in v0.7.0

func (x *PublisherRequest) Reset()

func (*PublisherRequest) String added in v0.7.0

func (x *PublisherRequest) String() string

type PublisherRequest_Event added in v0.7.0

type PublisherRequest_Event struct {
	Event *EventWrapper `protobuf:"bytes,1,opt,name=event,proto3,oneof"`
}

type PublisherRequest_OpenStream added in v0.7.0

type PublisherRequest_OpenStream struct {
	OpenStream *OpenStream `protobuf:"bytes,2,opt,name=open_stream,json=openStream,proto3,oneof"`
}

type Query added in v0.9.0

type Query struct {
	Query             string       `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	Params            []*Parameter `protobuf:"bytes,2,rep,name=params,proto3" json:"params,omitempty"`
	IncludeDuplicates bool         `protobuf:"varint,3,opt,name=include_duplicates,json=includeDuplicates,proto3" json:"include_duplicates,omitempty"`
	// contains filtered or unexported fields
}

Query represents a single EnSQL query with associated placeholder parameters.

func (*Query) Descriptor deprecated added in v0.9.0

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

Deprecated: Use Query.ProtoReflect.Descriptor instead.

func (*Query) GetIncludeDuplicates added in v0.12.0

func (x *Query) GetIncludeDuplicates() bool

func (*Query) GetParams added in v0.9.0

func (x *Query) GetParams() []*Parameter

func (*Query) GetQuery added in v0.9.0

func (x *Query) GetQuery() string

func (*Query) ProtoMessage added in v0.9.0

func (*Query) ProtoMessage()

func (*Query) ProtoReflect added in v0.9.0

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

func (*Query) Reset added in v0.9.0

func (x *Query) Reset()

func (*Query) String added in v0.9.0

func (x *Query) String() string

type QueryExplanation added in v0.9.0

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

Explanation returns information about the plan for executing a query and approximate results or errors that might be returned.

func (*QueryExplanation) Descriptor deprecated added in v0.9.0

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

Deprecated: Use QueryExplanation.ProtoReflect.Descriptor instead.

func (*QueryExplanation) ProtoMessage added in v0.9.0

func (*QueryExplanation) ProtoMessage()

func (*QueryExplanation) ProtoReflect added in v0.9.0

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

func (*QueryExplanation) Reset added in v0.9.0

func (x *QueryExplanation) Reset()

func (*QueryExplanation) String added in v0.9.0

func (x *QueryExplanation) String() string

type ServiceState

type ServiceState struct {

	// Current service status as defined by the recieving system. The system is obliged
	// to respond with the closest matching status in a best-effort fashion. Alerts will
	// be triggered on service status changes if the system does not respond and the
	// previous system state was not unknown.
	Status ServiceState_Status `protobuf:"varint,1,opt,name=status,proto3,enum=ensign.v1beta1.ServiceState_Status" json:"status,omitempty"`
	// The current version of the node running the Ensign service
	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
	// How long the node has been up and running since it was last rebooted
	Uptime *durationpb.Duration `protobuf:"bytes,3,opt,name=uptime,proto3" json:"uptime,omitempty"`
	// Hint to the client when to check the health status again.
	NotBefore *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=not_before,json=notBefore,proto3" json:"not_before,omitempty"`
	NotAfter  *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=not_after,json=notAfter,proto3" json:"not_after,omitempty"`
	// contains filtered or unexported fields
}

ServiceState describes the health status of the Ensign node and can be used for heartbeats and monitoring.

func (*ServiceState) Descriptor deprecated

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

Deprecated: Use ServiceState.ProtoReflect.Descriptor instead.

func (*ServiceState) GetNotAfter

func (x *ServiceState) GetNotAfter() *timestamppb.Timestamp

func (*ServiceState) GetNotBefore

func (x *ServiceState) GetNotBefore() *timestamppb.Timestamp

func (*ServiceState) GetStatus

func (x *ServiceState) GetStatus() ServiceState_Status

func (*ServiceState) GetUptime

func (x *ServiceState) GetUptime() *durationpb.Duration

func (*ServiceState) GetVersion

func (x *ServiceState) GetVersion() string

func (*ServiceState) ProtoMessage

func (*ServiceState) ProtoMessage()

func (*ServiceState) ProtoReflect

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

func (*ServiceState) Reset

func (x *ServiceState) Reset()

func (*ServiceState) String

func (x *ServiceState) String() string

type ServiceState_Status

type ServiceState_Status int32
const (
	ServiceState_UNKNOWN     ServiceState_Status = 0
	ServiceState_HEALTHY     ServiceState_Status = 1
	ServiceState_UNHEALTHY   ServiceState_Status = 2
	ServiceState_DANGER      ServiceState_Status = 3
	ServiceState_OFFLINE     ServiceState_Status = 4
	ServiceState_MAINTENANCE ServiceState_Status = 5
)

func (ServiceState_Status) Descriptor

func (ServiceState_Status) Enum

func (ServiceState_Status) EnumDescriptor deprecated

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

Deprecated: Use ServiceState_Status.Descriptor instead.

func (ServiceState_Status) Number

func (ServiceState_Status) String

func (x ServiceState_Status) String() string

func (ServiceState_Status) Type

type ShardingStrategy

type ShardingStrategy int32
const (
	ShardingStrategy_UNKNOWN             ShardingStrategy = 0
	ShardingStrategy_NO_SHARDING         ShardingStrategy = 1
	ShardingStrategy_CONSISTENT_KEY_HASH ShardingStrategy = 2
	ShardingStrategy_RANDOM              ShardingStrategy = 3
	ShardingStrategy_PUBLISHER_ORDERING  ShardingStrategy = 4
)

func (ShardingStrategy) Descriptor

func (ShardingStrategy) Enum

func (ShardingStrategy) EnumDescriptor deprecated

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

Deprecated: Use ShardingStrategy.Descriptor instead.

func (ShardingStrategy) Number

func (ShardingStrategy) String

func (x ShardingStrategy) String() string

func (ShardingStrategy) Type

type StreamReady added in v0.7.0

type StreamReady struct {
	ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` // repeated back to the client for sanity
	ServerId string `protobuf:"bytes,2,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` // the node that the stream is conneced to
	// Maps the topic name to the topic ID (ULID bytes) that are available on this node.
	// TODO: handle topic redirects to other nodes.
	Topics map[string][]byte `` /* 153-byte string literal not displayed */
	// contains filtered or unexported fields
}

Sent in response to an OpenStream or Subscription message so that the client knows it can start sending or receiving events from the stream.

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

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

Deprecated: Use StreamReady.ProtoReflect.Descriptor instead.

func (*StreamReady) GetClientId added in v0.7.0

func (x *StreamReady) GetClientId() string

func (*StreamReady) GetServerId added in v0.7.0

func (x *StreamReady) GetServerId() string

func (*StreamReady) GetTopics added in v0.7.0

func (x *StreamReady) GetTopics() map[string][]byte

func (*StreamReady) ProtoMessage added in v0.7.0

func (*StreamReady) ProtoMessage()

func (*StreamReady) ProtoReflect added in v0.7.0

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

func (*StreamReady) Reset added in v0.7.0

func (x *StreamReady) Reset()

func (*StreamReady) String added in v0.7.0

func (x *StreamReady) String() string

type SubscribeReply added in v0.7.0

type SubscribeReply struct {

	// Types that are assignable to Embed:
	//
	//	*SubscribeReply_Event
	//	*SubscribeReply_Ready
	//	*SubscribeReply_CloseStream
	Embed isSubscribeReply_Embed `protobuf_oneof:"embed"`
	// contains filtered or unexported fields
}

SubscribeReply messages are sent to the subscriber from the server. In most cases this message is an event that matches the subscription information. However, this message can also contain control messages such as redirects, topic information, etc.

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

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

Deprecated: Use SubscribeReply.ProtoReflect.Descriptor instead.

func (*SubscribeReply) GetCloseStream added in v0.7.0

func (x *SubscribeReply) GetCloseStream() *CloseStream

func (*SubscribeReply) GetEmbed added in v0.7.0

func (m *SubscribeReply) GetEmbed() isSubscribeReply_Embed

func (*SubscribeReply) GetEvent added in v0.7.0

func (x *SubscribeReply) GetEvent() *EventWrapper

func (*SubscribeReply) GetReady added in v0.7.0

func (x *SubscribeReply) GetReady() *StreamReady

func (*SubscribeReply) ProtoMessage added in v0.7.0

func (*SubscribeReply) ProtoMessage()

func (*SubscribeReply) ProtoReflect added in v0.7.0

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

func (*SubscribeReply) Reset added in v0.7.0

func (x *SubscribeReply) Reset()

func (*SubscribeReply) String added in v0.7.0

func (x *SubscribeReply) String() string

type SubscribeReply_CloseStream added in v0.7.0

type SubscribeReply_CloseStream struct {
	CloseStream *CloseStream `protobuf:"bytes,3,opt,name=close_stream,json=closeStream,proto3,oneof"`
}

type SubscribeReply_Event added in v0.7.0

type SubscribeReply_Event struct {
	Event *EventWrapper `protobuf:"bytes,1,opt,name=event,proto3,oneof"`
}

type SubscribeReply_Ready added in v0.7.0

type SubscribeReply_Ready struct {
	Ready *StreamReady `protobuf:"bytes,2,opt,name=ready,proto3,oneof"`
}

type SubscribeRequest added in v0.7.0

type SubscribeRequest struct {

	// Types that are assignable to Embed:
	//
	//	*SubscribeRequest_Ack
	//	*SubscribeRequest_Nack
	//	*SubscribeRequest_Subscription
	Embed isSubscribeRequest_Embed `protobuf_oneof:"embed"`
	// contains filtered or unexported fields
}

SubscribeRequest messages are sent to the server from subscribers. Generally they are responses to receiving events (e.g. ack and nack) but the first message must contain subscription information about the topic and the group so that Ensign can start sending the client events from the specified topic down the stream.

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

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

Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead.

func (*SubscribeRequest) GetAck added in v0.7.0

func (x *SubscribeRequest) GetAck() *Ack

func (*SubscribeRequest) GetEmbed added in v0.7.0

func (m *SubscribeRequest) GetEmbed() isSubscribeRequest_Embed

func (*SubscribeRequest) GetNack added in v0.7.0

func (x *SubscribeRequest) GetNack() *Nack

func (*SubscribeRequest) GetSubscription added in v0.7.0

func (x *SubscribeRequest) GetSubscription() *Subscription

func (*SubscribeRequest) ProtoMessage added in v0.7.0

func (*SubscribeRequest) ProtoMessage()

func (*SubscribeRequest) ProtoReflect added in v0.7.0

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

func (*SubscribeRequest) Reset added in v0.7.0

func (x *SubscribeRequest) Reset()

func (*SubscribeRequest) String added in v0.7.0

func (x *SubscribeRequest) String() string

type SubscribeRequest_Ack added in v0.7.0

type SubscribeRequest_Ack struct {
	Ack *Ack `protobuf:"bytes,1,opt,name=ack,proto3,oneof"`
}

type SubscribeRequest_Nack added in v0.7.0

type SubscribeRequest_Nack struct {
	Nack *Nack `protobuf:"bytes,2,opt,name=nack,proto3,oneof"`
}

type SubscribeRequest_Subscription added in v0.7.0

type SubscribeRequest_Subscription struct {
	Subscription *Subscription `protobuf:"bytes,3,opt,name=subscription,proto3,oneof"`
}

type Subscription

type Subscription struct {
	ClientId string         `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	Topics   []string       `protobuf:"bytes,2,rep,name=topics,proto3" json:"topics,omitempty"`
	Query    *Query         `protobuf:"bytes,3,opt,name=query,proto3" json:"query,omitempty"`
	Group    *ConsumerGroup `protobuf:"bytes,4,opt,name=group,proto3" json:"group,omitempty"`
	// contains filtered or unexported fields
}

Subscription is used to initialize a subscribe stream so that the Ensign node returns the correct events to the subscriber based on the query or the topics they request.

func (*Subscription) Descriptor deprecated

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

Deprecated: Use Subscription.ProtoReflect.Descriptor instead.

func (*Subscription) GetClientId added in v0.7.0

func (x *Subscription) GetClientId() string

func (*Subscription) GetGroup added in v0.7.0

func (x *Subscription) GetGroup() *ConsumerGroup

func (*Subscription) GetQuery added in v0.7.0

func (x *Subscription) GetQuery() *Query

func (*Subscription) GetTopics added in v0.7.0

func (x *Subscription) GetTopics() []string

func (*Subscription) ProtoMessage

func (*Subscription) ProtoMessage()

func (*Subscription) ProtoReflect

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

func (*Subscription) Reset

func (x *Subscription) Reset()

func (*Subscription) String

func (x *Subscription) String() string

type Topic

type Topic struct {
	Id            []byte                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ProjectId     []byte                 `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Readonly      bool                   `protobuf:"varint,4,opt,name=readonly,proto3" json:"readonly,omitempty"`
	Offset        uint64                 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
	Shards        uint32                 `protobuf:"varint,6,opt,name=shards,proto3" json:"shards,omitempty"`
	Status        TopicState             `protobuf:"varint,7,opt,name=status,proto3,enum=ensign.v1beta1.TopicState" json:"status,omitempty"`
	Deduplication *Deduplication         `protobuf:"bytes,11,opt,name=deduplication,proto3" json:"deduplication,omitempty"`
	Placements    []*Placement           `protobuf:"bytes,12,rep,name=placements,proto3" json:"placements,omitempty"`
	Types         []*Type                `protobuf:"bytes,13,rep,name=types,proto3" json:"types,omitempty"`
	Created       *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=created,proto3" json:"created,omitempty"`
	Modified      *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=modified,proto3" json:"modified,omitempty"`
	// contains filtered or unexported fields
}

Topics are collections of related events and the events inside of a topic are totally ordered by ID and their log index. Topics must define the event types and regions that they are operated on, which will allow Ensign to determine how to distribute the topic over multiple nodes. Users must use the topic ID to connect to a publish or subscribe stream. Users can create and delete topics, but for the current implementation, topics are immutable -- meaning that they cannot be changed. Topics can be deleted in two ways: they can be archived (making them readonly) or they can be destroyed, which removes the name of the topic and all the events in the topic.

func (*Topic) Descriptor deprecated

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

Deprecated: Use Topic.ProtoReflect.Descriptor instead.

func (*Topic) GetCreated

func (x *Topic) GetCreated() *timestamppb.Timestamp

func (*Topic) GetDeduplication added in v0.10.0

func (x *Topic) GetDeduplication() *Deduplication

func (*Topic) GetId

func (x *Topic) GetId() []byte

func (*Topic) GetModified

func (x *Topic) GetModified() *timestamppb.Timestamp

func (*Topic) GetName

func (x *Topic) GetName() string

func (*Topic) GetOffset

func (x *Topic) GetOffset() uint64

func (*Topic) GetPlacements

func (x *Topic) GetPlacements() []*Placement

func (*Topic) GetProjectId

func (x *Topic) GetProjectId() []byte

func (*Topic) GetReadonly

func (x *Topic) GetReadonly() bool

func (*Topic) GetShards

func (x *Topic) GetShards() uint32

func (*Topic) GetStatus added in v0.11.0

func (x *Topic) GetStatus() TopicState

func (*Topic) GetTypes

func (x *Topic) GetTypes() []*Type

func (*Topic) NameHash added in v0.7.0

func (t *Topic) NameHash() []byte

NameHash returns an indexable hash of the topic name using murmur3.

func (*Topic) ParseProjectID added in v0.10.0

func (t *Topic) ParseProjectID() (uid ulid.ULID, err error)

ParseProjectID returns the ULID representation of the project ID.

func (*Topic) ParseTopicID added in v0.9.0

func (t *Topic) ParseTopicID() (uid ulid.ULID, err error)

ParseTopicID returns the ULID representation of the topic ID.

func (*Topic) ProtoMessage

func (*Topic) ProtoMessage()

func (*Topic) ProtoReflect

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

func (*Topic) Reset

func (x *Topic) Reset()

func (*Topic) String

func (x *Topic) String() string

type TopicExistsInfo added in v0.5.1

type TopicExistsInfo struct {
	Query  string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	Exists bool   `protobuf:"varint,2,opt,name=exists,proto3" json:"exists,omitempty"`
	// contains filtered or unexported fields
}

Response to a topic existence check.

func (*TopicExistsInfo) Descriptor deprecated added in v0.5.1

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

Deprecated: Use TopicExistsInfo.ProtoReflect.Descriptor instead.

func (*TopicExistsInfo) GetExists added in v0.5.1

func (x *TopicExistsInfo) GetExists() bool

func (*TopicExistsInfo) GetQuery added in v0.5.1

func (x *TopicExistsInfo) GetQuery() string

func (*TopicExistsInfo) ProtoMessage added in v0.5.1

func (*TopicExistsInfo) ProtoMessage()

func (*TopicExistsInfo) ProtoReflect added in v0.5.1

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

func (*TopicExistsInfo) Reset added in v0.5.1

func (x *TopicExistsInfo) Reset()

func (*TopicExistsInfo) String added in v0.5.1

func (x *TopicExistsInfo) String() string

type TopicInfo added in v0.9.0

type TopicInfo struct {
	TopicId   []byte `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"`
	ProjectId []byte `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// The event offset id specifies the last event that was used to make the TopicInfo
	// determination (e.g. up to which event was the topic info recorded for). To reset
	// the topic info, simply set this to nil/empty and the topic info is recomputed.
	EventOffsetId []byte                 `protobuf:"bytes,3,opt,name=event_offset_id,json=eventOffsetId,proto3" json:"event_offset_id,omitempty"`
	Events        uint64                 `protobuf:"varint,7,opt,name=events,proto3" json:"events,omitempty"`
	Duplicates    uint64                 `protobuf:"varint,8,opt,name=duplicates,proto3" json:"duplicates,omitempty"`
	DataSizeBytes uint64                 `protobuf:"varint,9,opt,name=data_size_bytes,json=dataSizeBytes,proto3" json:"data_size_bytes,omitempty"`
	Types         []*EventTypeInfo       `protobuf:"bytes,14,rep,name=types,proto3" json:"types,omitempty"`
	Modified      *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=modified,proto3" json:"modified,omitempty"`
	// contains filtered or unexported fields
}

func (*TopicInfo) Descriptor deprecated added in v0.9.0

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

Deprecated: Use TopicInfo.ProtoReflect.Descriptor instead.

func (*TopicInfo) FindEventTypeInfo added in v0.9.0

func (i *TopicInfo) FindEventTypeInfo(etype *Type, mime mimetype.MIME) *EventTypeInfo

Finds the event type info for the specified type in the type list. If it does not exist, the event type info is created an appended to the type list.

func (*TopicInfo) GetDataSizeBytes added in v0.9.0

func (x *TopicInfo) GetDataSizeBytes() uint64

func (*TopicInfo) GetDuplicates added in v0.9.0

func (x *TopicInfo) GetDuplicates() uint64

func (*TopicInfo) GetEventOffsetId added in v0.9.0

func (x *TopicInfo) GetEventOffsetId() []byte

func (*TopicInfo) GetEvents added in v0.9.0

func (x *TopicInfo) GetEvents() uint64

func (*TopicInfo) GetModified added in v0.9.0

func (x *TopicInfo) GetModified() *timestamppb.Timestamp

func (*TopicInfo) GetProjectId added in v0.9.0

func (x *TopicInfo) GetProjectId() []byte

func (*TopicInfo) GetTopicId added in v0.9.0

func (x *TopicInfo) GetTopicId() []byte

func (*TopicInfo) GetTypes added in v0.9.0

func (x *TopicInfo) GetTypes() []*EventTypeInfo

func (*TopicInfo) ParseEventOffsetID added in v0.9.0

func (i *TopicInfo) ParseEventOffsetID() (eventID rlid.RLID, err error)

func (*TopicInfo) ParseProjectID added in v0.9.0

func (i *TopicInfo) ParseProjectID() (projectID ulid.ULID, err error)

func (*TopicInfo) ParseTopicID added in v0.9.0

func (i *TopicInfo) ParseTopicID() (topicID ulid.ULID, err error)

func (*TopicInfo) ProtoMessage added in v0.9.0

func (*TopicInfo) ProtoMessage()

func (*TopicInfo) ProtoReflect added in v0.9.0

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

func (*TopicInfo) Reset added in v0.9.0

func (x *TopicInfo) Reset()

func (*TopicInfo) String added in v0.9.0

func (x *TopicInfo) String() string

type TopicMod

type TopicMod struct {
	Id        string             `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Operation TopicMod_Operation `protobuf:"varint,2,opt,name=operation,proto3,enum=ensign.v1beta1.TopicMod_Operation" json:"operation,omitempty"`
	// contains filtered or unexported fields
}

A topic modification operation to archive or destroy the topic.

func (*TopicMod) Descriptor deprecated

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

Deprecated: Use TopicMod.ProtoReflect.Descriptor instead.

func (*TopicMod) GetId

func (x *TopicMod) GetId() string

func (*TopicMod) GetOperation

func (x *TopicMod) GetOperation() TopicMod_Operation

func (*TopicMod) ProtoMessage

func (*TopicMod) ProtoMessage()

func (*TopicMod) ProtoReflect

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

func (*TopicMod) Reset

func (x *TopicMod) Reset()

func (*TopicMod) String

func (x *TopicMod) String() string

type TopicMod_Operation

type TopicMod_Operation int32
const (
	TopicMod_NOOP    TopicMod_Operation = 0
	TopicMod_ARCHIVE TopicMod_Operation = 1 // makes the topic readonly
	TopicMod_DESTROY TopicMod_Operation = 2 // deletes the topic and removes all of its data
)

func (TopicMod_Operation) Descriptor

func (TopicMod_Operation) Enum

func (TopicMod_Operation) EnumDescriptor deprecated

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

Deprecated: Use TopicMod_Operation.Descriptor instead.

func (TopicMod_Operation) Number

func (TopicMod_Operation) String

func (x TopicMod_Operation) String() string

func (TopicMod_Operation) Type

type TopicName added in v0.5.1

type TopicName struct {
	TopicId   string `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"`
	ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	Name      string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*TopicName) Descriptor deprecated added in v0.5.1

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

Deprecated: Use TopicName.ProtoReflect.Descriptor instead.

func (*TopicName) GetName added in v0.5.1

func (x *TopicName) GetName() string

func (*TopicName) GetProjectId added in v0.5.1

func (x *TopicName) GetProjectId() string

func (*TopicName) GetTopicId added in v0.5.1

func (x *TopicName) GetTopicId() string

func (*TopicName) ProtoMessage added in v0.5.1

func (*TopicName) ProtoMessage()

func (*TopicName) ProtoReflect added in v0.5.1

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

func (*TopicName) Reset added in v0.5.1

func (x *TopicName) Reset()

func (*TopicName) String added in v0.5.1

func (x *TopicName) String() string

type TopicNamesPage added in v0.5.1

type TopicNamesPage struct {
	TopicNames    []*TopicName `protobuf:"bytes,1,rep,name=topic_names,json=topicNames,proto3" json:"topic_names,omitempty"`
	NextPageToken string       `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

A list of paginated topic names to topic IDs to allow users to match names to IDs.

func (*TopicNamesPage) Descriptor deprecated added in v0.5.1

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

Deprecated: Use TopicNamesPage.ProtoReflect.Descriptor instead.

func (*TopicNamesPage) GetNextPageToken added in v0.5.1

func (x *TopicNamesPage) GetNextPageToken() string

func (*TopicNamesPage) GetTopicNames added in v0.5.1

func (x *TopicNamesPage) GetTopicNames() []*TopicName

func (*TopicNamesPage) ProtoMessage added in v0.5.1

func (*TopicNamesPage) ProtoMessage()

func (*TopicNamesPage) ProtoReflect added in v0.5.1

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

func (*TopicNamesPage) Reset added in v0.5.1

func (x *TopicNamesPage) Reset()

func (*TopicNamesPage) String added in v0.5.1

func (x *TopicNamesPage) String() string

type TopicPolicy added in v0.11.0

type TopicPolicy struct {
	Id                  string           `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	DeduplicationPolicy *Deduplication   `protobuf:"bytes,2,opt,name=deduplication_policy,json=deduplicationPolicy,proto3" json:"deduplication_policy,omitempty"`
	ShardingStrategy    ShardingStrategy `` /* 147-byte string literal not displayed */
	// contains filtered or unexported fields
}

Alows users to set topic management policies.

func (*TopicPolicy) Descriptor deprecated added in v0.11.0

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

Deprecated: Use TopicPolicy.ProtoReflect.Descriptor instead.

func (*TopicPolicy) GetDeduplicationPolicy added in v0.11.0

func (x *TopicPolicy) GetDeduplicationPolicy() *Deduplication

func (*TopicPolicy) GetId added in v0.11.0

func (x *TopicPolicy) GetId() string

func (*TopicPolicy) GetShardingStrategy added in v0.11.0

func (x *TopicPolicy) GetShardingStrategy() ShardingStrategy

func (*TopicPolicy) ProtoMessage added in v0.11.0

func (*TopicPolicy) ProtoMessage()

func (*TopicPolicy) ProtoReflect added in v0.11.0

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

func (*TopicPolicy) Reset added in v0.11.0

func (x *TopicPolicy) Reset()

func (*TopicPolicy) String added in v0.11.0

func (x *TopicPolicy) String() string

type TopicState added in v0.11.0

type TopicState int32
const (
	TopicState_UNDEFINED  TopicState = 0
	TopicState_READY      TopicState = 1
	TopicState_READONLY   TopicState = 2
	TopicState_DELETING   TopicState = 3
	TopicState_PENDING    TopicState = 4
	TopicState_ALLOCATING TopicState = 5
	TopicState_REPAIRING  TopicState = 6
)

func (TopicState) Descriptor added in v0.11.0

func (TopicState) Descriptor() protoreflect.EnumDescriptor

func (TopicState) Enum added in v0.11.0

func (x TopicState) Enum() *TopicState

func (TopicState) EnumDescriptor deprecated added in v0.11.0

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

Deprecated: Use TopicState.Descriptor instead.

func (TopicState) Number added in v0.11.0

func (x TopicState) Number() protoreflect.EnumNumber

func (TopicState) String added in v0.11.0

func (x TopicState) String() string

func (TopicState) Type added in v0.11.0

type TopicStatus added in v0.11.0

type TopicStatus struct {
	Id    string     `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	State TopicState `protobuf:"varint,2,opt,name=state,proto3,enum=ensign.v1beta1.TopicState" json:"state,omitempty"`
	// contains filtered or unexported fields
}

A temporary representation of the topic state, e.g. was it modified to be readonly or is it in the process of being deleted. Once deleted the topic is permenantly gone.

func (*TopicStatus) Descriptor deprecated added in v0.11.0

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

Deprecated: Use TopicStatus.ProtoReflect.Descriptor instead.

func (*TopicStatus) GetId added in v0.11.0

func (x *TopicStatus) GetId() string

func (*TopicStatus) GetState added in v0.11.0

func (x *TopicStatus) GetState() TopicState

func (*TopicStatus) ProtoMessage added in v0.11.0

func (*TopicStatus) ProtoMessage()

func (*TopicStatus) ProtoReflect added in v0.11.0

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

func (*TopicStatus) Reset added in v0.11.0

func (x *TopicStatus) Reset()

func (*TopicStatus) String added in v0.11.0

func (x *TopicStatus) String() string

type TopicsPage

type TopicsPage struct {
	Topics        []*Topic `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"`
	NextPageToken string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// contains filtered or unexported fields
}

A list of paginated topics the user can use to identify topic ids to subscribe to.

func (*TopicsPage) Descriptor deprecated

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

Deprecated: Use TopicsPage.ProtoReflect.Descriptor instead.

func (*TopicsPage) GetNextPageToken

func (x *TopicsPage) GetNextPageToken() string

func (*TopicsPage) GetTopics

func (x *TopicsPage) GetTopics() []*Topic

func (*TopicsPage) ProtoMessage

func (*TopicsPage) ProtoMessage()

func (*TopicsPage) ProtoReflect

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

func (*TopicsPage) Reset

func (x *TopicsPage) Reset()

func (*TopicsPage) String

func (x *TopicsPage) String() string

type Type

type Type struct {
	Name         string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	MajorVersion uint32 `protobuf:"varint,2,opt,name=major_version,json=majorVersion,proto3" json:"major_version,omitempty"`
	MinorVersion uint32 `protobuf:"varint,3,opt,name=minor_version,json=minorVersion,proto3" json:"minor_version,omitempty"`
	PatchVersion uint32 `protobuf:"varint,4,opt,name=patch_version,json=patchVersion,proto3" json:"patch_version,omitempty"`
	// contains filtered or unexported fields
}

An event type is composed of a name and a version so that the type can be looked up in the schema registry. The schema can then be used to validate the data inside the event. Schemas are optional but types are not unless the mimetype requries a schema for deserialization (e.g. protobuf, parquet, avro, etc.).

func (*Type) Descriptor deprecated

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

Deprecated: Use Type.ProtoReflect.Descriptor instead.

func (*Type) Equals added in v0.9.0

func (t *Type) Equals(o *Type) bool

Type equality checking, the names must match (currently case-sensitive) and the major, minor, and patch versions, must also match. Two zero valued types will be equal with one another.

func (*Type) GetMajorVersion added in v0.7.0

func (x *Type) GetMajorVersion() uint32

func (*Type) GetMinorVersion added in v0.7.0

func (x *Type) GetMinorVersion() uint32

func (*Type) GetName

func (x *Type) GetName() string

func (*Type) GetPatchVersion added in v0.7.0

func (x *Type) GetPatchVersion() uint32

func (*Type) IsZero added in v0.9.0

func (t *Type) IsZero() bool

IsZero returns true if the name is empty or unspecified and the major, minor, and patch versions are equal to zero.

func (*Type) ProtoMessage

func (*Type) ProtoMessage()

func (*Type) ProtoReflect

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

func (*Type) Repr added in v0.12.0

func (t *Type) Repr() string

Repr returns the string representation of the type.

func (*Type) Reset

func (x *Type) Reset()

func (*Type) Semver added in v0.12.0

func (t *Type) Semver() string

Semver returns the semantic version of the type.

func (*Type) String

func (x *Type) String() string

type UnimplementedEnsignServer

type UnimplementedEnsignServer struct {
}

UnimplementedEnsignServer must be embedded to have forward compatible implementations.

func (UnimplementedEnsignServer) CreateTopic

func (UnimplementedEnsignServer) DeleteTopic

func (UnimplementedEnsignServer) EnSQL added in v0.9.0

func (UnimplementedEnsignServer) Explain added in v0.9.0

func (UnimplementedEnsignServer) Info added in v0.7.0

func (UnimplementedEnsignServer) ListTopics

func (UnimplementedEnsignServer) Publish

func (UnimplementedEnsignServer) RetrieveTopic added in v0.5.1

func (UnimplementedEnsignServer) SetTopicPolicy added in v0.11.0

func (UnimplementedEnsignServer) Status

func (UnimplementedEnsignServer) Subscribe

func (UnimplementedEnsignServer) TopicExists added in v0.5.1

func (UnimplementedEnsignServer) TopicNames added in v0.5.1

type UnsafeEnsignServer

type UnsafeEnsignServer interface {
	// contains filtered or unexported methods
}

UnsafeEnsignServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to EnsignServer will result in compilation errors.

Jump to

Keyboard shortcuts

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