Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultNackMessage(code Nack_Code) string
- func RegisterEnsignServer(s grpc.ServiceRegistrar, srv EnsignServer)
- func TopicNameHash(name string) []byte
- func ValidTopicName(name string) bool
- type Ack
- type CloseStream
- func (*CloseStream) Descriptor() ([]byte, []int)deprecated
- func (x *CloseStream) GetAcks() uint64
- func (x *CloseStream) GetEvents() uint64
- func (x *CloseStream) GetNacks() uint64
- func (x *CloseStream) GetTopics() uint64
- func (*CloseStream) ProtoMessage()
- func (x *CloseStream) ProtoReflect() protoreflect.Message
- func (x *CloseStream) Reset()
- func (x *CloseStream) String() string
- type Compression
- func (*Compression) Descriptor() ([]byte, []int)deprecated
- func (x *Compression) GetAlgorithm() Compression_Algorithm
- func (x *Compression) GetLevel() int64
- func (*Compression) ProtoMessage()
- func (x *Compression) ProtoReflect() protoreflect.Message
- func (x *Compression) Reset()
- func (x *Compression) String() string
- type Compression_Algorithm
- func (Compression_Algorithm) Descriptor() protoreflect.EnumDescriptor
- func (x Compression_Algorithm) Enum() *Compression_Algorithm
- func (Compression_Algorithm) EnumDescriptor() ([]byte, []int)deprecated
- func (x Compression_Algorithm) Number() protoreflect.EnumNumber
- func (x Compression_Algorithm) String() string
- func (Compression_Algorithm) Type() protoreflect.EnumType
- type ConsumerGroup
- func (*ConsumerGroup) Descriptor() ([]byte, []int)deprecated
- func (x *ConsumerGroup) GetConsumers() [][]byte
- func (x *ConsumerGroup) GetCreated() *timestamppb.Timestamp
- func (x *ConsumerGroup) GetDelivery() DeliverySemantic
- func (x *ConsumerGroup) GetDeliveryTimeout() *durationpb.Duration
- func (x *ConsumerGroup) GetId() []byte
- func (x *ConsumerGroup) GetModified() *timestamppb.Timestamp
- func (x *ConsumerGroup) GetName() string
- func (x *ConsumerGroup) GetProjectId() []byte
- func (x *ConsumerGroup) GetTopicOffsets() map[string]uint64
- func (c *ConsumerGroup) Key() ([16]byte, error)
- func (*ConsumerGroup) ProtoMessage()
- func (x *ConsumerGroup) ProtoReflect() protoreflect.Message
- func (x *ConsumerGroup) Reset()
- func (x *ConsumerGroup) String() string
- type Deduplication
- func (*Deduplication) Descriptor() ([]byte, []int)deprecated
- func (d *Deduplication) Equals(o *Deduplication) bool
- func (x *Deduplication) GetFields() []string
- func (x *Deduplication) GetKeys() []string
- func (x *Deduplication) GetOffset() Deduplication_OffsetPosition
- func (x *Deduplication) GetOverwriteDuplicate() bool
- func (x *Deduplication) GetStrategy() Deduplication_Strategy
- func (d *Deduplication) Normalize() *Deduplication
- func (*Deduplication) ProtoMessage()
- func (x *Deduplication) ProtoReflect() protoreflect.Message
- func (x *Deduplication) Reset()
- func (x *Deduplication) String() string
- func (d *Deduplication) Validate() error
- type Deduplication_OffsetPosition
- func (Deduplication_OffsetPosition) Descriptor() protoreflect.EnumDescriptor
- func (x Deduplication_OffsetPosition) Enum() *Deduplication_OffsetPosition
- func (Deduplication_OffsetPosition) EnumDescriptor() ([]byte, []int)deprecated
- func (x Deduplication_OffsetPosition) Number() protoreflect.EnumNumber
- func (x Deduplication_OffsetPosition) String() string
- func (Deduplication_OffsetPosition) Type() protoreflect.EnumType
- type Deduplication_Strategy
- func (Deduplication_Strategy) Descriptor() protoreflect.EnumDescriptor
- func (x Deduplication_Strategy) Enum() *Deduplication_Strategy
- func (Deduplication_Strategy) EnumDescriptor() ([]byte, []int)deprecated
- func (x Deduplication_Strategy) Number() protoreflect.EnumNumber
- func (x Deduplication_Strategy) String() string
- func (Deduplication_Strategy) Type() protoreflect.EnumType
- type DeliverySemantic
- func (DeliverySemantic) Descriptor() protoreflect.EnumDescriptor
- func (x DeliverySemantic) Enum() *DeliverySemantic
- func (DeliverySemantic) EnumDescriptor() ([]byte, []int)deprecated
- func (x DeliverySemantic) Number() protoreflect.EnumNumber
- func (x DeliverySemantic) String() string
- func (DeliverySemantic) Type() protoreflect.EnumType
- type Encryption
- func (*Encryption) Descriptor() ([]byte, []int)deprecated
- func (x *Encryption) GetEncryptionAlgorithm() Encryption_Algorithm
- func (x *Encryption) GetEncryptionKey() []byte
- func (x *Encryption) GetHmacSecret() []byte
- func (x *Encryption) GetPublicKeyId() string
- func (x *Encryption) GetSealingAlgorithm() Encryption_Algorithm
- func (x *Encryption) GetSignature() []byte
- func (x *Encryption) GetSignatureAlgorithm() Encryption_Algorithm
- func (*Encryption) ProtoMessage()
- func (x *Encryption) ProtoReflect() protoreflect.Message
- func (x *Encryption) Reset()
- func (x *Encryption) String() string
- type Encryption_Algorithm
- func (Encryption_Algorithm) Descriptor() protoreflect.EnumDescriptor
- func (x Encryption_Algorithm) Enum() *Encryption_Algorithm
- func (Encryption_Algorithm) EnumDescriptor() ([]byte, []int)deprecated
- func (x Encryption_Algorithm) Number() protoreflect.EnumNumber
- func (x Encryption_Algorithm) String() string
- func (Encryption_Algorithm) Type() protoreflect.EnumType
- type EnsignClient
- type EnsignServer
- type Ensign_EnSQLClient
- type Ensign_EnSQLServer
- type Ensign_PublishClient
- type Ensign_PublishServer
- type Ensign_SubscribeClient
- type Ensign_SubscribeServer
- type Event
- func (e *Event) DataEquals(o *Event) bool
- func (*Event) Descriptor() ([]byte, []int)deprecated
- func (e *Event) Equals(o *Event) bool
- func (x *Event) GetCreated() *timestamppb.Timestamp
- func (x *Event) GetData() []byte
- func (x *Event) GetMetadata() map[string]string
- func (x *Event) GetMimetype() v1beta11.MIME
- func (x *Event) GetType() *Type
- func (e *Event) MetaEquals(o *Event, keys ...string) bool
- func (*Event) ProtoMessage()
- func (x *Event) ProtoReflect() protoreflect.Message
- func (x *Event) Reset()
- func (e *Event) ResolveType() *Type
- func (x *Event) String() string
- type EventContainer
- func (*EventContainer) Descriptor() ([]byte, []int)deprecated
- func (x *EventContainer) GetCompression() *Compression
- func (x *EventContainer) GetCreated() *timestamppb.Timestamp
- func (x *EventContainer) GetEncryption() *Encryption
- func (x *EventContainer) GetEndOffset() uint64
- func (x *EventContainer) GetEpochs() map[uint32]uint64
- func (x *EventContainer) GetEvents() []byte
- func (x *EventContainer) GetKeyIndex() map[uint32]uint32
- func (x *EventContainer) GetKeys() [][]byte
- func (x *EventContainer) GetModified() *timestamppb.Timestamp
- func (x *EventContainer) GetPublisherIndex() map[uint32]uint32
- func (x *EventContainer) GetPublishers() []*Publisher
- func (x *EventContainer) GetRegionIndex() map[uint32]uint32
- func (x *EventContainer) GetRegions() []v1beta1.Region
- func (x *EventContainer) GetShardIndex() map[uint32]uint32
- func (x *EventContainer) GetShards() []uint64
- func (x *EventContainer) GetStartOffset() uint64
- func (x *EventContainer) GetTopicId() []byte
- func (*EventContainer) ProtoMessage()
- func (x *EventContainer) ProtoReflect() protoreflect.Message
- func (x *EventContainer) Reset()
- func (x *EventContainer) String() string
- type EventTypeInfo
- func (*EventTypeInfo) Descriptor() ([]byte, []int)deprecated
- func (x *EventTypeInfo) GetDataSizeBytes() uint64
- func (x *EventTypeInfo) GetDuplicates() uint64
- func (x *EventTypeInfo) GetEvents() uint64
- func (x *EventTypeInfo) GetMimetype() v1beta11.MIME
- func (x *EventTypeInfo) GetModified() *timestamppb.Timestamp
- func (x *EventTypeInfo) GetType() *Type
- func (*EventTypeInfo) ProtoMessage()
- func (x *EventTypeInfo) ProtoReflect() protoreflect.Message
- func (x *EventTypeInfo) Reset()
- func (x *EventTypeInfo) String() string
- type EventWrapper
- func (*EventWrapper) Descriptor() ([]byte, []int)deprecated
- func (w *EventWrapper) DuplicateFrom(o *EventWrapper) (err error)
- func (w *EventWrapper) DuplicateOf(o *EventWrapper, policy *Deduplication) (err error)
- func (w *EventWrapper) Duplicates(o *EventWrapper, policy *Deduplication) (bool, error)
- func (w *EventWrapper) DuplicatesDatagram(o *EventWrapper) (_ bool, err error)
- func (w *EventWrapper) DuplicatesKeyGrouped(o *EventWrapper, keys []string) (_ bool, err error)
- func (w *EventWrapper) DuplicatesStrict(o *EventWrapper) (_ bool, err error)
- func (w *EventWrapper) DuplicatesUniqueField(o *EventWrapper, fields []string) (_ bool, err error)
- func (w *EventWrapper) DuplicatesUniqueKey(o *EventWrapper, keys []string) (_ bool, err error)
- func (w *EventWrapper) Equals(o *EventWrapper) bool
- func (w *EventWrapper) EqualsEvent(o *Event) bool
- func (x *EventWrapper) GetCommitted() *timestamppb.Timestamp
- func (x *EventWrapper) GetCompression() *Compression
- func (x *EventWrapper) GetDuplicateId() []byte
- func (x *EventWrapper) GetEncryption() *Encryption
- func (x *EventWrapper) GetEpoch() uint64
- func (x *EventWrapper) GetEvent() []byte
- func (x *EventWrapper) GetId() []byte
- func (x *EventWrapper) GetIsDuplicate() bool
- func (x *EventWrapper) GetKey() []byte
- func (x *EventWrapper) GetLocalId() []byte
- func (x *EventWrapper) GetOffset() uint64
- func (x *EventWrapper) GetPublisher() *Publisher
- func (x *EventWrapper) GetRegion() v1beta1.Region
- func (x *EventWrapper) GetShard() uint64
- func (x *EventWrapper) GetTopicId() []byte
- func (w *EventWrapper) Hash(policy *Deduplication) ([]byte, error)
- func (w *EventWrapper) HashDatagram() (_ []byte, err error)
- func (w *EventWrapper) HashKeyGrouped(keys []string) (_ []byte, err error)
- func (w *EventWrapper) HashStrict() (_ []byte, err error)
- func (w *EventWrapper) HashUniqueField(fields []string) (_ []byte, err error)
- func (w *EventWrapper) HashUniqueKey(keys []string) (_ []byte, err error)
- func (w *EventWrapper) ParseEventID() (eventID rlid.RLID, err error)
- func (w *EventWrapper) ParseTopicID() (topicID ulid.ULID, err error)
- func (*EventWrapper) ProtoMessage()
- func (x *EventWrapper) ProtoReflect() protoreflect.Message
- func (x *EventWrapper) Reset()
- func (x *EventWrapper) String() string
- func (w *EventWrapper) Unwrap() (e *Event, err error)
- func (w *EventWrapper) Wrap(e *Event) (err error)
- type HealthCheck
- func (*HealthCheck) Descriptor() ([]byte, []int)deprecated
- func (x *HealthCheck) GetAttempts() uint32
- func (x *HealthCheck) GetLastCheckedAt() *timestamppb.Timestamp
- func (*HealthCheck) ProtoMessage()
- func (x *HealthCheck) ProtoReflect() protoreflect.Message
- func (x *HealthCheck) Reset()
- func (x *HealthCheck) String() string
- type InfoRequest
- type Nack
- type Nack_Code
- type Node
- func (*Node) Descriptor() ([]byte, []int)deprecated
- func (x *Node) GetHostname() string
- func (x *Node) GetId() string
- func (x *Node) GetQuorum() uint64
- func (x *Node) GetRegion() v1beta1.Region
- func (x *Node) GetShard() uint64
- func (x *Node) GetUrl() string
- func (*Node) ProtoMessage()
- func (x *Node) ProtoReflect() protoreflect.Message
- func (x *Node) Reset()
- func (x *Node) String() string
- type OpenStream
- type PageInfo
- type Parameter
- func (*Parameter) Descriptor() ([]byte, []int)deprecated
- func (x *Parameter) GetB() bool
- func (x *Parameter) GetD() float64
- func (x *Parameter) GetI() int64
- func (x *Parameter) GetName() string
- func (x *Parameter) GetS() string
- func (m *Parameter) GetValue() isParameter_Value
- func (x *Parameter) GetY() []byte
- func (*Parameter) ProtoMessage()
- func (x *Parameter) ProtoReflect() protoreflect.Message
- func (x *Parameter) Reset()
- func (x *Parameter) String() string
- type Parameter_B
- type Parameter_D
- type Parameter_I
- type Parameter_S
- type Parameter_Y
- type Placement
- func (*Placement) Descriptor() ([]byte, []int)deprecated
- func (x *Placement) GetEpoch() uint64
- func (x *Placement) GetNodes() []*Node
- func (x *Placement) GetRegions() []v1beta1.Region
- func (x *Placement) GetSharding() ShardingStrategy
- func (*Placement) ProtoMessage()
- func (x *Placement) ProtoReflect() protoreflect.Message
- func (x *Placement) Reset()
- func (x *Placement) String() string
- type ProjectInfo
- func (*ProjectInfo) Descriptor() ([]byte, []int)deprecated
- func (x *ProjectInfo) GetDataSizeBytes() uint64
- func (x *ProjectInfo) GetDuplicates() uint64
- func (x *ProjectInfo) GetEvents() uint64
- func (x *ProjectInfo) GetNumReadonlyTopics() uint64
- func (x *ProjectInfo) GetNumTopics() uint64
- func (x *ProjectInfo) GetProjectId() []byte
- func (x *ProjectInfo) GetTopics() []*TopicInfo
- func (*ProjectInfo) ProtoMessage()
- func (x *ProjectInfo) ProtoReflect() protoreflect.Message
- func (x *ProjectInfo) Reset()
- func (x *ProjectInfo) String() string
- type Publisher
- func (*Publisher) Descriptor() ([]byte, []int)deprecated
- func (x *Publisher) GetClientId() string
- func (x *Publisher) GetIpaddr() string
- func (x *Publisher) GetPublisherId() string
- func (x *Publisher) GetUserAgent() string
- func (*Publisher) ProtoMessage()
- func (x *Publisher) ProtoReflect() protoreflect.Message
- func (x *Publisher) Reset()
- func (p *Publisher) ResolveClientID() string
- func (x *Publisher) String() string
- type PublisherReply
- func (*PublisherReply) Descriptor() ([]byte, []int)deprecated
- func (x *PublisherReply) GetAck() *Ack
- func (x *PublisherReply) GetCloseStream() *CloseStream
- func (m *PublisherReply) GetEmbed() isPublisherReply_Embed
- func (x *PublisherReply) GetNack() *Nack
- func (x *PublisherReply) GetReady() *StreamReady
- func (*PublisherReply) ProtoMessage()
- func (x *PublisherReply) ProtoReflect() protoreflect.Message
- func (x *PublisherReply) Reset()
- func (x *PublisherReply) String() string
- type PublisherReply_Ack
- type PublisherReply_CloseStream
- type PublisherReply_Nack
- type PublisherReply_Ready
- type PublisherRequest
- func (*PublisherRequest) Descriptor() ([]byte, []int)deprecated
- func (m *PublisherRequest) GetEmbed() isPublisherRequest_Embed
- func (x *PublisherRequest) GetEvent() *EventWrapper
- func (x *PublisherRequest) GetOpenStream() *OpenStream
- func (*PublisherRequest) ProtoMessage()
- func (x *PublisherRequest) ProtoReflect() protoreflect.Message
- func (x *PublisherRequest) Reset()
- func (x *PublisherRequest) String() string
- type PublisherRequest_Event
- type PublisherRequest_OpenStream
- type Query
- func (*Query) Descriptor() ([]byte, []int)deprecated
- func (x *Query) GetIncludeDuplicates() bool
- func (x *Query) GetParams() []*Parameter
- func (x *Query) GetQuery() string
- func (*Query) ProtoMessage()
- func (x *Query) ProtoReflect() protoreflect.Message
- func (x *Query) Reset()
- func (x *Query) String() string
- type QueryExplanation
- type ServiceState
- func (*ServiceState) Descriptor() ([]byte, []int)deprecated
- func (x *ServiceState) GetNotAfter() *timestamppb.Timestamp
- func (x *ServiceState) GetNotBefore() *timestamppb.Timestamp
- func (x *ServiceState) GetStatus() ServiceState_Status
- func (x *ServiceState) GetUptime() *durationpb.Duration
- func (x *ServiceState) GetVersion() string
- func (*ServiceState) ProtoMessage()
- func (x *ServiceState) ProtoReflect() protoreflect.Message
- func (x *ServiceState) Reset()
- func (x *ServiceState) String() string
- type ServiceState_Status
- func (ServiceState_Status) Descriptor() protoreflect.EnumDescriptor
- func (x ServiceState_Status) Enum() *ServiceState_Status
- func (ServiceState_Status) EnumDescriptor() ([]byte, []int)deprecated
- func (x ServiceState_Status) Number() protoreflect.EnumNumber
- func (x ServiceState_Status) String() string
- func (ServiceState_Status) Type() protoreflect.EnumType
- type ShardingStrategy
- func (ShardingStrategy) Descriptor() protoreflect.EnumDescriptor
- func (x ShardingStrategy) Enum() *ShardingStrategy
- func (ShardingStrategy) EnumDescriptor() ([]byte, []int)deprecated
- func (x ShardingStrategy) Number() protoreflect.EnumNumber
- func (x ShardingStrategy) String() string
- func (ShardingStrategy) Type() protoreflect.EnumType
- type StreamReady
- func (*StreamReady) Descriptor() ([]byte, []int)deprecated
- func (x *StreamReady) GetClientId() string
- func (x *StreamReady) GetServerId() string
- func (x *StreamReady) GetTopics() map[string][]byte
- func (*StreamReady) ProtoMessage()
- func (x *StreamReady) ProtoReflect() protoreflect.Message
- func (x *StreamReady) Reset()
- func (x *StreamReady) String() string
- type SubscribeReply
- func (*SubscribeReply) Descriptor() ([]byte, []int)deprecated
- func (x *SubscribeReply) GetCloseStream() *CloseStream
- func (m *SubscribeReply) GetEmbed() isSubscribeReply_Embed
- func (x *SubscribeReply) GetEvent() *EventWrapper
- func (x *SubscribeReply) GetReady() *StreamReady
- func (*SubscribeReply) ProtoMessage()
- func (x *SubscribeReply) ProtoReflect() protoreflect.Message
- func (x *SubscribeReply) Reset()
- func (x *SubscribeReply) String() string
- type SubscribeReply_CloseStream
- type SubscribeReply_Event
- type SubscribeReply_Ready
- type SubscribeRequest
- func (*SubscribeRequest) Descriptor() ([]byte, []int)deprecated
- func (x *SubscribeRequest) GetAck() *Ack
- func (m *SubscribeRequest) GetEmbed() isSubscribeRequest_Embed
- func (x *SubscribeRequest) GetNack() *Nack
- func (x *SubscribeRequest) GetSubscription() *Subscription
- func (*SubscribeRequest) ProtoMessage()
- func (x *SubscribeRequest) ProtoReflect() protoreflect.Message
- func (x *SubscribeRequest) Reset()
- func (x *SubscribeRequest) String() string
- type SubscribeRequest_Ack
- type SubscribeRequest_Nack
- type SubscribeRequest_Subscription
- type Subscription
- func (*Subscription) Descriptor() ([]byte, []int)deprecated
- func (x *Subscription) GetClientId() string
- func (x *Subscription) GetGroup() *ConsumerGroup
- func (x *Subscription) GetQuery() *Query
- func (x *Subscription) GetTopics() []string
- func (*Subscription) ProtoMessage()
- func (x *Subscription) ProtoReflect() protoreflect.Message
- func (x *Subscription) Reset()
- func (x *Subscription) String() string
- type Topic
- func (*Topic) Descriptor() ([]byte, []int)deprecated
- func (x *Topic) GetCreated() *timestamppb.Timestamp
- func (x *Topic) GetDeduplication() *Deduplication
- func (x *Topic) GetId() []byte
- func (x *Topic) GetModified() *timestamppb.Timestamp
- func (x *Topic) GetName() string
- func (x *Topic) GetOffset() uint64
- func (x *Topic) GetPlacements() []*Placement
- func (x *Topic) GetProjectId() []byte
- func (x *Topic) GetReadonly() bool
- func (x *Topic) GetShards() uint32
- func (x *Topic) GetStatus() TopicState
- func (x *Topic) GetTypes() []*Type
- func (t *Topic) NameHash() []byte
- func (t *Topic) ParseProjectID() (uid ulid.ULID, err error)
- func (t *Topic) ParseTopicID() (uid ulid.ULID, err error)
- func (*Topic) ProtoMessage()
- func (x *Topic) ProtoReflect() protoreflect.Message
- func (x *Topic) Reset()
- func (x *Topic) String() string
- type TopicExistsInfo
- func (*TopicExistsInfo) Descriptor() ([]byte, []int)deprecated
- func (x *TopicExistsInfo) GetExists() bool
- func (x *TopicExistsInfo) GetQuery() string
- func (*TopicExistsInfo) ProtoMessage()
- func (x *TopicExistsInfo) ProtoReflect() protoreflect.Message
- func (x *TopicExistsInfo) Reset()
- func (x *TopicExistsInfo) String() string
- type TopicInfo
- func (*TopicInfo) Descriptor() ([]byte, []int)deprecated
- func (i *TopicInfo) FindEventTypeInfo(etype *Type, mime mimetype.MIME) *EventTypeInfo
- func (x *TopicInfo) GetDataSizeBytes() uint64
- func (x *TopicInfo) GetDuplicates() uint64
- func (x *TopicInfo) GetEventOffsetId() []byte
- func (x *TopicInfo) GetEvents() uint64
- func (x *TopicInfo) GetModified() *timestamppb.Timestamp
- func (x *TopicInfo) GetProjectId() []byte
- func (x *TopicInfo) GetTopicId() []byte
- func (x *TopicInfo) GetTypes() []*EventTypeInfo
- func (i *TopicInfo) ParseEventOffsetID() (eventID rlid.RLID, err error)
- func (i *TopicInfo) ParseProjectID() (projectID ulid.ULID, err error)
- func (i *TopicInfo) ParseTopicID() (topicID ulid.ULID, err error)
- func (*TopicInfo) ProtoMessage()
- func (x *TopicInfo) ProtoReflect() protoreflect.Message
- func (x *TopicInfo) Reset()
- func (x *TopicInfo) String() string
- type TopicMod
- type TopicMod_Operation
- func (TopicMod_Operation) Descriptor() protoreflect.EnumDescriptor
- func (x TopicMod_Operation) Enum() *TopicMod_Operation
- func (TopicMod_Operation) EnumDescriptor() ([]byte, []int)deprecated
- func (x TopicMod_Operation) Number() protoreflect.EnumNumber
- func (x TopicMod_Operation) String() string
- func (TopicMod_Operation) Type() protoreflect.EnumType
- type TopicName
- func (*TopicName) Descriptor() ([]byte, []int)deprecated
- func (x *TopicName) GetName() string
- func (x *TopicName) GetProjectId() string
- func (x *TopicName) GetTopicId() string
- func (*TopicName) ProtoMessage()
- func (x *TopicName) ProtoReflect() protoreflect.Message
- func (x *TopicName) Reset()
- func (x *TopicName) String() string
- type TopicNamesPage
- func (*TopicNamesPage) Descriptor() ([]byte, []int)deprecated
- func (x *TopicNamesPage) GetNextPageToken() string
- func (x *TopicNamesPage) GetTopicNames() []*TopicName
- func (*TopicNamesPage) ProtoMessage()
- func (x *TopicNamesPage) ProtoReflect() protoreflect.Message
- func (x *TopicNamesPage) Reset()
- func (x *TopicNamesPage) String() string
- type TopicPolicy
- func (*TopicPolicy) Descriptor() ([]byte, []int)deprecated
- func (x *TopicPolicy) GetDeduplicationPolicy() *Deduplication
- func (x *TopicPolicy) GetId() string
- func (x *TopicPolicy) GetShardingStrategy() ShardingStrategy
- func (*TopicPolicy) ProtoMessage()
- func (x *TopicPolicy) ProtoReflect() protoreflect.Message
- func (x *TopicPolicy) Reset()
- func (x *TopicPolicy) String() string
- type TopicState
- type TopicStatus
- func (*TopicStatus) Descriptor() ([]byte, []int)deprecated
- func (x *TopicStatus) GetId() string
- func (x *TopicStatus) GetState() TopicState
- func (*TopicStatus) ProtoMessage()
- func (x *TopicStatus) ProtoReflect() protoreflect.Message
- func (x *TopicStatus) Reset()
- func (x *TopicStatus) String() string
- type TopicsPage
- func (*TopicsPage) Descriptor() ([]byte, []int)deprecated
- func (x *TopicsPage) GetNextPageToken() string
- func (x *TopicsPage) GetTopics() []*Topic
- func (*TopicsPage) ProtoMessage()
- func (x *TopicsPage) ProtoReflect() protoreflect.Message
- func (x *TopicsPage) Reset()
- func (x *TopicsPage) String() string
- type Type
- func (*Type) Descriptor() ([]byte, []int)deprecated
- func (t *Type) Equals(o *Type) bool
- func (x *Type) GetMajorVersion() uint32
- func (x *Type) GetMinorVersion() uint32
- func (x *Type) GetName() string
- func (x *Type) GetPatchVersion() uint32
- func (t *Type) IsZero() bool
- func (*Type) ProtoMessage()
- func (x *Type) ProtoReflect() protoreflect.Message
- func (t *Type) Repr() string
- func (x *Type) Reset()
- func (t *Type) Semver() string
- func (x *Type) String() string
- type UnimplementedEnsignServer
- func (UnimplementedEnsignServer) CreateTopic(context.Context, *Topic) (*Topic, error)
- func (UnimplementedEnsignServer) DeleteTopic(context.Context, *TopicMod) (*TopicStatus, error)
- func (UnimplementedEnsignServer) EnSQL(*Query, Ensign_EnSQLServer) error
- func (UnimplementedEnsignServer) Explain(context.Context, *Query) (*QueryExplanation, error)
- func (UnimplementedEnsignServer) Info(context.Context, *InfoRequest) (*ProjectInfo, error)
- func (UnimplementedEnsignServer) ListTopics(context.Context, *PageInfo) (*TopicsPage, error)
- func (UnimplementedEnsignServer) Publish(Ensign_PublishServer) error
- func (UnimplementedEnsignServer) RetrieveTopic(context.Context, *Topic) (*Topic, error)
- func (UnimplementedEnsignServer) SetTopicPolicy(context.Context, *TopicPolicy) (*TopicStatus, error)
- func (UnimplementedEnsignServer) Status(context.Context, *HealthCheck) (*ServiceState, error)
- func (UnimplementedEnsignServer) Subscribe(Ensign_SubscribeServer) error
- func (UnimplementedEnsignServer) TopicExists(context.Context, *TopicName) (*TopicExistsInfo, error)
- func (UnimplementedEnsignServer) TopicNames(context.Context, *PageInfo) (*TopicNamesPage, error)
- type UnsafeEnsignServer
Constants ¶
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" )
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" )
const ( NameHashLength = 16 MaxTopicNameLength = 512 )
const Unspecified = "Unspecified"
Unspecified is the type name of the unspecified type.
Variables ¶
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
var File_api_v1beta1_ensign_proto protoreflect.FileDescriptor
var File_api_v1beta1_event_proto protoreflect.FileDescriptor
var File_api_v1beta1_groups_proto protoreflect.FileDescriptor
var File_api_v1beta1_query_proto protoreflect.FileDescriptor
var File_api_v1beta1_topic_proto protoreflect.FileDescriptor
var UnspecifiedType = &Type{Name: Unspecified}
UnspecifiedType is returned when the event has no type.
Functions ¶
func DefaultNackMessage ¶ added in v0.9.0
func RegisterEnsignServer ¶
func RegisterEnsignServer(s grpc.ServiceRegistrar, srv EnsignServer)
func TopicNameHash ¶ added in v0.7.0
TopicNameHash returns an indexable hash of a topic name using murmur3.
func ValidTopicName ¶ added in v0.7.0
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) GetCommitted ¶
func (x *Ack) GetCommitted() *timestamppb.Timestamp
func (*Ack) ProtoMessage ¶
func (*Ack) ProtoMessage()
func (*Ack) ProtoReflect ¶
func (x *Ack) ProtoReflect() protoreflect.Message
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) Descriptor() protoreflect.EnumDescriptor
func (Compression_Algorithm) Enum ¶ added in v0.7.0
func (x Compression_Algorithm) Enum() *Compression_Algorithm
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 (x Compression_Algorithm) Number() protoreflect.EnumNumber
func (Compression_Algorithm) String ¶ added in v0.7.0
func (x Compression_Algorithm) String() string
func (Compression_Algorithm) Type ¶ added in v0.7.0
func (Compression_Algorithm) Type() protoreflect.EnumType
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 (x *Deduplication) GetOffset() Deduplication_OffsetPosition
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) Descriptor() protoreflect.EnumDescriptor
func (Deduplication_OffsetPosition) Enum ¶ added in v0.10.0
func (x Deduplication_OffsetPosition) Enum() *Deduplication_OffsetPosition
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 (x Deduplication_OffsetPosition) Number() protoreflect.EnumNumber
func (Deduplication_OffsetPosition) String ¶ added in v0.10.0
func (x Deduplication_OffsetPosition) String() string
func (Deduplication_OffsetPosition) Type ¶ added in v0.10.0
func (Deduplication_OffsetPosition) Type() protoreflect.EnumType
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) Descriptor() protoreflect.EnumDescriptor
func (Deduplication_Strategy) Enum ¶ added in v0.10.0
func (x Deduplication_Strategy) Enum() *Deduplication_Strategy
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 (x Deduplication_Strategy) Number() protoreflect.EnumNumber
func (Deduplication_Strategy) String ¶ added in v0.10.0
func (x Deduplication_Strategy) String() string
func (Deduplication_Strategy) Type ¶ added in v0.10.0
func (Deduplication_Strategy) Type() protoreflect.EnumType
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) Descriptor() protoreflect.EnumDescriptor
func (DeliverySemantic) Enum ¶
func (x DeliverySemantic) Enum() *DeliverySemantic
func (DeliverySemantic) EnumDescriptor
deprecated
func (DeliverySemantic) EnumDescriptor() ([]byte, []int)
Deprecated: Use DeliverySemantic.Descriptor instead.
func (DeliverySemantic) Number ¶
func (x DeliverySemantic) Number() protoreflect.EnumNumber
func (DeliverySemantic) String ¶
func (x DeliverySemantic) String() string
func (DeliverySemantic) Type ¶
func (DeliverySemantic) Type() protoreflect.EnumType
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) Descriptor() protoreflect.EnumDescriptor
func (Encryption_Algorithm) Enum ¶ added in v0.7.0
func (x Encryption_Algorithm) Enum() *Encryption_Algorithm
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 (x Encryption_Algorithm) Number() protoreflect.EnumNumber
func (Encryption_Algorithm) String ¶ added in v0.7.0
func (x Encryption_Algorithm) String() string
func (Encryption_Algorithm) Type ¶ added in v0.7.0
func (Encryption_Algorithm) Type() protoreflect.EnumType
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
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) Equals ¶ added in v0.11.0
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) GetMetadata ¶ added in v0.7.0
func (*Event) GetMimetype ¶
func (*Event) MetaEquals ¶ added in v0.11.0
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) ResolveType ¶ added in v0.9.0
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).
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) ProtoMessage ¶
func (*Nack) ProtoMessage()
func (*Nack) ProtoReflect ¶
func (x *Nack) ProtoReflect() protoreflect.Message
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) EnumDescriptor
deprecated
added in
v0.7.0
func (Nack_Code) Number ¶ added in v0.7.0
func (x Nack_Code) Number() protoreflect.EnumNumber
func (Nack_Code) Type ¶ added in v0.7.0
func (Nack_Code) Type() protoreflect.EnumType
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) GetHostname ¶
func (*Node) ProtoMessage ¶
func (*Node) ProtoMessage()
func (*Node) ProtoReflect ¶
func (x *Node) ProtoReflect() protoreflect.Message
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) GetNextPageToken ¶
func (*PageInfo) GetPageSize ¶
func (*PageInfo) ProtoMessage ¶
func (*PageInfo) ProtoMessage()
func (*PageInfo) ProtoReflect ¶
func (x *PageInfo) ProtoReflect() protoreflect.Message
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) ProtoMessage ¶ added in v0.9.0
func (*Parameter) ProtoMessage()
func (*Parameter) ProtoReflect ¶ added in v0.9.0
func (x *Parameter) ProtoReflect() protoreflect.Message
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) GetRegions ¶
func (*Placement) GetSharding ¶
func (x *Placement) GetSharding() ShardingStrategy
func (*Placement) ProtoMessage ¶
func (*Placement) ProtoMessage()
func (*Placement) ProtoReflect ¶
func (x *Placement) ProtoReflect() protoreflect.Message
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) GetClientId ¶
func (*Publisher) GetPublisherId ¶ added in v0.7.0
func (*Publisher) GetUserAgent ¶ added in v0.7.0
func (*Publisher) ProtoMessage ¶
func (*Publisher) ProtoMessage()
func (*Publisher) ProtoReflect ¶
func (x *Publisher) ProtoReflect() protoreflect.Message
func (*Publisher) ResolveClientID ¶ added in v0.9.0
Returns the user-specified client ID if set, otherwise returns the publisher ID.
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) GetIncludeDuplicates ¶ added in v0.12.0
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
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) Descriptor() protoreflect.EnumDescriptor
func (ServiceState_Status) Enum ¶
func (x ServiceState_Status) Enum() *ServiceState_Status
func (ServiceState_Status) EnumDescriptor
deprecated
func (ServiceState_Status) EnumDescriptor() ([]byte, []int)
Deprecated: Use ServiceState_Status.Descriptor instead.
func (ServiceState_Status) Number ¶
func (x ServiceState_Status) Number() protoreflect.EnumNumber
func (ServiceState_Status) String ¶
func (x ServiceState_Status) String() string
func (ServiceState_Status) Type ¶
func (ServiceState_Status) Type() protoreflect.EnumType
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) Descriptor() protoreflect.EnumDescriptor
func (ShardingStrategy) Enum ¶
func (x ShardingStrategy) Enum() *ShardingStrategy
func (ShardingStrategy) EnumDescriptor
deprecated
func (ShardingStrategy) EnumDescriptor() ([]byte, []int)
Deprecated: Use ShardingStrategy.Descriptor instead.
func (ShardingStrategy) Number ¶
func (x ShardingStrategy) Number() protoreflect.EnumNumber
func (ShardingStrategy) String ¶
func (x ShardingStrategy) String() string
func (ShardingStrategy) Type ¶
func (ShardingStrategy) Type() protoreflect.EnumType
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) GetCreated ¶
func (x *Topic) GetCreated() *timestamppb.Timestamp
func (*Topic) GetDeduplication ¶ added in v0.10.0
func (x *Topic) GetDeduplication() *Deduplication
func (*Topic) GetModified ¶
func (x *Topic) GetModified() *timestamppb.Timestamp
func (*Topic) GetPlacements ¶
func (*Topic) GetProjectId ¶
func (*Topic) GetReadonly ¶
func (*Topic) GetStatus ¶ added in v0.11.0
func (x *Topic) GetStatus() TopicState
func (*Topic) NameHash ¶ added in v0.7.0
NameHash returns an indexable hash of the topic name using murmur3.
func (*Topic) ParseProjectID ¶ added in v0.10.0
ParseProjectID returns the ULID representation of the project ID.
func (*Topic) ParseTopicID ¶ added in v0.9.0
ParseTopicID returns the ULID representation of the topic ID.
func (*Topic) ProtoMessage ¶
func (*Topic) ProtoMessage()
func (*Topic) ProtoReflect ¶
func (x *Topic) ProtoReflect() protoreflect.Message
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) 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 (*TopicInfo) GetDuplicates ¶ added in v0.9.0
func (*TopicInfo) GetEventOffsetId ¶ added in v0.9.0
func (*TopicInfo) GetModified ¶ added in v0.9.0
func (x *TopicInfo) GetModified() *timestamppb.Timestamp
func (*TopicInfo) GetProjectId ¶ added in v0.9.0
func (*TopicInfo) GetTopicId ¶ added in v0.9.0
func (*TopicInfo) GetTypes ¶ added in v0.9.0
func (x *TopicInfo) GetTypes() []*EventTypeInfo
func (*TopicInfo) ParseEventOffsetID ¶ added in v0.9.0
func (*TopicInfo) ParseProjectID ¶ added in v0.9.0
func (*TopicInfo) ParseTopicID ¶ added in v0.9.0
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
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) GetOperation ¶
func (x *TopicMod) GetOperation() TopicMod_Operation
func (*TopicMod) ProtoMessage ¶
func (*TopicMod) ProtoMessage()
func (*TopicMod) ProtoReflect ¶
func (x *TopicMod) ProtoReflect() protoreflect.Message
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) Descriptor() protoreflect.EnumDescriptor
func (TopicMod_Operation) Enum ¶
func (x TopicMod_Operation) Enum() *TopicMod_Operation
func (TopicMod_Operation) EnumDescriptor
deprecated
func (TopicMod_Operation) EnumDescriptor() ([]byte, []int)
Deprecated: Use TopicMod_Operation.Descriptor instead.
func (TopicMod_Operation) Number ¶
func (x TopicMod_Operation) Number() protoreflect.EnumNumber
func (TopicMod_Operation) String ¶
func (x TopicMod_Operation) String() string
func (TopicMod_Operation) Type ¶
func (TopicMod_Operation) Type() protoreflect.EnumType
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) GetProjectId ¶ added in v0.5.1
func (*TopicName) GetTopicId ¶ added in v0.5.1
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
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
func (TopicState) Type() protoreflect.EnumType
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) Equals ¶ added in v0.9.0
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 (*Type) GetMinorVersion ¶ added in v0.7.0
func (*Type) GetPatchVersion ¶ added in v0.7.0
func (*Type) IsZero ¶ added in v0.9.0
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
type UnimplementedEnsignServer ¶
type UnimplementedEnsignServer struct { }
UnimplementedEnsignServer must be embedded to have forward compatible implementations.
func (UnimplementedEnsignServer) CreateTopic ¶
func (UnimplementedEnsignServer) DeleteTopic ¶
func (UnimplementedEnsignServer) DeleteTopic(context.Context, *TopicMod) (*TopicStatus, error)
func (UnimplementedEnsignServer) EnSQL ¶ added in v0.9.0
func (UnimplementedEnsignServer) EnSQL(*Query, Ensign_EnSQLServer) error
func (UnimplementedEnsignServer) Explain ¶ added in v0.9.0
func (UnimplementedEnsignServer) Explain(context.Context, *Query) (*QueryExplanation, error)
func (UnimplementedEnsignServer) Info ¶ added in v0.7.0
func (UnimplementedEnsignServer) Info(context.Context, *InfoRequest) (*ProjectInfo, error)
func (UnimplementedEnsignServer) ListTopics ¶
func (UnimplementedEnsignServer) ListTopics(context.Context, *PageInfo) (*TopicsPage, error)
func (UnimplementedEnsignServer) Publish ¶
func (UnimplementedEnsignServer) Publish(Ensign_PublishServer) error
func (UnimplementedEnsignServer) RetrieveTopic ¶ added in v0.5.1
func (UnimplementedEnsignServer) SetTopicPolicy ¶ added in v0.11.0
func (UnimplementedEnsignServer) SetTopicPolicy(context.Context, *TopicPolicy) (*TopicStatus, error)
func (UnimplementedEnsignServer) Status ¶
func (UnimplementedEnsignServer) Status(context.Context, *HealthCheck) (*ServiceState, error)
func (UnimplementedEnsignServer) Subscribe ¶
func (UnimplementedEnsignServer) Subscribe(Ensign_SubscribeServer) error
func (UnimplementedEnsignServer) TopicExists ¶ added in v0.5.1
func (UnimplementedEnsignServer) TopicExists(context.Context, *TopicName) (*TopicExistsInfo, error)
func (UnimplementedEnsignServer) TopicNames ¶ added in v0.5.1
func (UnimplementedEnsignServer) TopicNames(context.Context, *PageInfo) (*TopicNamesPage, error)
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.