Documentation ¶
Index ¶
Constants ¶
const ( Mimetype = "application/msgpack" SchemaName = "metatopic.TopicUpdate" SchemaVersion = "1.0.0" )
Constants useful for creating ensign Events.
Variables ¶
var ( // TopicUpdate validation errors. ErrMissingOrgID = errors.New("missing organization id") ErrMissingProjectID = errors.New("missing project id") ErrMissingTopicID = errors.New("missing topic id") ErrMissingTopic = errors.New("missing topic details") ErrUnknownUpdateType = errors.New("unknown topic update type") // Topic validation errors. ErrMissingName = errors.New("missing topic name") ErrInvalidEvents = errors.New("total events must be greater than or equal to 0") ErrInvalidStorage = errors.New("data storage must be greater than or equal to 0") ErrMissingPublishers = errors.New("missing topic publishers") ErrMissingSubscribers = errors.New("missing topic subscribers") ErrMissingCreated = errors.New("missing topic created timestamp") ErrMissingModified = errors.New("missing topic modified timestamp") )
Functions ¶
func ParseVersion ¶
func ParseVersion() (major, minor, patch uint32)
Parse the version components of the schema version to create an event version.
Types ¶
type Activity ¶
Activity represents the number of active/inactive items in a group. The total number of items in a group is the sum of active + inactive.
func (*Activity) PercentActive ¶
func (*Activity) PercentInactive ¶
type Topic ¶
type Topic struct { ID []byte `msgpack:"id"` ProjectID []byte `msgpack:"project_id"` Name string `msgpack:"name"` ReadOnly bool `msgpack:"readonly"` Offset uint64 `msgpack:"offset"` Shards uint32 `msgpack:"shards"` Events float64 `msgpack:"events"` Storage float64 `msgpack:"storage"` Publishers *Activity `msgpack:"publishers"` Subscribers *Activity `msgpack:"subscribers"` Created time.Time `msgpack:"created"` Modified time.Time `msgpack:"modified"` }
A non-protocol buffer representation of the Topic. In the Topic Update struct it represents the modified topic (e.g. the current version of the topic). TODO: add placements and types to this struct.
type TopicUpdate ¶
type TopicUpdate struct { UpdateType TopicUpdateType `msgpack:"update_type"` OrgID ulid.ULID `msgpack:"org_id,omitempty"` ProjectID ulid.ULID `msgpack:"project_id"` TopicID ulid.ULID `msgpack:"topic_id"` ClientID string `msgpack:"client_id"` Topic *Topic `msgpack:"topic,omitempty"` }
This is the top-level event type that is sent on the metatopic topic. It describes an update to a specific topic and provides information about the topic and how it was modified, and, if available, who it was modified by.
func (*TopicUpdate) Marshal ¶
func (t *TopicUpdate) Marshal() ([]byte, error)
func (*TopicUpdate) Unmarshal ¶
func (t *TopicUpdate) Unmarshal(data []byte) error
func (*TopicUpdate) Validate ¶ added in v0.7.1
func (t *TopicUpdate) Validate() (err error)
Validate that all required fields are present in a topic update.
type TopicUpdateType ¶
type TopicUpdateType uint8
The type of update made to the topic, e.g. created, modified, deleted, etc.
const ( TopicUpdateUnknown TopicUpdateType = iota TopicUpdateCreated TopicUpdateModified TopicUpdateStateChange TopicUpdateDeleted )
func (TopicUpdateType) String ¶
func (t TopicUpdateType) String() string