Documentation
¶
Overview ¶
Package cloudevent provides types for working with CloudEvents.
Index ¶
Constants ¶
const ( // TypeStatus is the event type for status updates. TypeStatus = "dimo.status" // TypeFingerprint is the event type for fingerprint updates. TypeFingerprint = "dimo.fingerprint" // TypeVerifableCredential is the event type for verifiable credentials. TypeVerifableCredential = "dimo.verifiablecredential" //nolint:gosec // This is not a credential. // TypeAttestation is the event type for 3rd party attestations TypeAttestation = "dimo.attestation" // TypeUnknown is the event type for unknown events. TypeUnknown = "dimo.unknown" // TypeEvent is the event type for vehicle events TypeEvent = "dimo.event" )
const ( // ERC721DIDMethod is the method for a ERC721 NFT DID. ERC721DIDMethod = "erc721" // EthrDIDMethod is the method for a Ethereum Address DID. EthrDIDMethod = "ethr" // ERC20DIDMethod is the method for a ERC20 token DID. ERC20DIDMethod = "erc20" )
const SpecVersion = "1.0"
SpecVersion is the version of the CloudEvents spec.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CloudEvent ¶
type CloudEvent[A any] struct { CloudEventHeader // Data contains domain-specific information about the event. Data A `json:"data"` }
CloudEvent represents an event according to the CloudEvents spec. To Add extra headers to the CloudEvent, add them to the Extras map. See https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md
func (CloudEvent[A]) MarshalJSON ¶
func (c CloudEvent[A]) MarshalJSON() ([]byte, error)
MarshalJSON implements custom JSON marshaling for CloudEventHeader.
func (*CloudEvent[A]) UnmarshalJSON ¶
func (c *CloudEvent[A]) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom JSON unmarshaling for CloudEvent.
type CloudEventHeader ¶
type CloudEventHeader struct { // ID is an identifier for the event. The combination of ID and Source must // be unique. ID string `json:"id"` // Source is the context in which the event happened. In a distributed system it might consist of multiple Producers. Source string `json:"source"` // Producer is a specific instance, process or device that creates the data structure describing the CloudEvent. Producer string `json:"producer"` // SpecVersion is the version of CloudEvents specification used. // This is always hardcoded "1.0". SpecVersion string `json:"specversion"` // Subject is an optional field identifying the subject of the event within // the context of the event producer. In practice, we always set this. Subject string `json:"subject"` // Time is an optional field giving the time at which the event occurred. In // practice, we always set this. Time time.Time `json:"time"` // Type describes the type of event. It should generally be a reverse-DNS // name. Type string `json:"type"` // DataContentType is an optional MIME type for the data field. We almost // always serialize to JSON and in that case this field is implicitly // "application/json". DataContentType string `json:"datacontenttype,omitempty"` // DataSchema is an optional URI pointing to a schema for the data field. DataSchema string `json:"dataschema,omitempty"` // DataVersion is the version of the data type. DataVersion string `json:"dataversion,omitempty"` // Signature hold the signature of the a cloudevent's data field. Signature string `json:"signature,omitempty" cloudevent:"leaveInExtras"` // Extras contains any additional fields that are not part of the CloudEvent excluding the data field. Extras map[string]any `json:"-"` }
CloudEventHeader contains the metadata for any CloudEvent. To add extra headers to the CloudEvent, add them to the Extras map.
func (*CloudEventHeader) Equals ¶
func (c *CloudEventHeader) Equals(other CloudEventHeader) bool
Equals returns true if the two CloudEventHeaders share the same IndexKey.
func (CloudEventHeader) Key ¶ added in v0.0.3
func (c CloudEventHeader) Key() string
Key returns the unique identifier for the CloudEvent.
func (CloudEventHeader) MarshalJSON ¶
func (c CloudEventHeader) MarshalJSON() ([]byte, error)
MarshalJSON implements custom JSON marshaling for CloudEventHeader.
func (*CloudEventHeader) UnmarshalJSON ¶
func (c *CloudEventHeader) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom JSON unmarshaling for CloudEventHeader.
type ERC20DID ¶ added in v0.1.0
type ERC20DID struct { ChainID uint64 `json:"chainId"` ContractAddress common.Address `json:"contract"` }
ERC20DID is a Decentralized Identifier for an ERC20 token.
func DecodeERC20DID ¶ added in v0.1.0
DecodeERC20DID decodes a ERC20 DID string into a DID struct.
func (ERC20DID) MarshalText ¶ added in v0.1.1
MarshalText implements encoding.TextMarshaler
func (*ERC20DID) UnmarshalText ¶ added in v0.1.1
UnmarshalText implements encoding.TextUnmarshaler
type ERC721DID ¶ added in v0.1.0
type ERC721DID struct { ChainID uint64 `json:"chainId"` ContractAddress common.Address `json:"contract"` TokenID *big.Int `json:"tokenId"` }
ERC721DID is a Decentralized Identifier for a ERC721 NFT.
func DecodeERC721DID ¶ added in v0.1.0
DecodeERC721DID decodes a DID string into a DID struct.
func DecodeERC721orNFTDID ¶ added in v0.1.0
DecodeERC721orNFTDID is a decoder that attempts to decode a DID string into an ERC721DID or a legacy NFT DID.
func DecodeLegacyNFTDID ¶ added in v0.1.0
DecodeLegacyNFTDID is a legacy decoder for NFT DIDs that use the format "did:nft:1:0xbA5738a18d83D41847dfFbDC6101d37C69c9B0cF_1" You most likely want to use DecodeERC721DID instead.
func (ERC721DID) MarshalText ¶ added in v0.1.1
MarshalText implements encoding.TextMarshaler
func (*ERC721DID) UnmarshalText ¶ added in v0.1.1
UnmarshalText implements encoding.TextUnmarshaler
type EthrDID ¶
type EthrDID struct { ChainID uint64 `json:"chainId"` ContractAddress common.Address `json:"contract"` }
EthrDID is a Decentralized Identifier for an Ethereum contract.
func DecodeEthrDID ¶
DecodeEthrDID decodes a Ethr DID string into a DID struct.
func (EthrDID) MarshalText ¶ added in v0.1.1
MarshalText implements encoding.TextMarshaler
func (*EthrDID) UnmarshalText ¶ added in v0.1.1
UnmarshalText implements encoding.TextUnmarshaler
type Fingerprint ¶
type Fingerprint struct {
VIN string `json:"vin"`
}
Fingerprint represents a fingerprint message which holds a vehicle's VIN.
type FingerprintEvent ¶
type FingerprintEvent = CloudEvent[Fingerprint]
FingerprintEvent is a CloudEvent for a fingerprint message.
type RawEvent ¶
type RawEvent = CloudEvent[json.RawMessage]
RawEvent is a cloudevent with a json.RawMessage data field.
Directories
¶
Path | Synopsis |
---|---|
cmd
|
|
migrations
command
|
|
pkg
|
|
clickhouse/eventrepo
Package eventrepo contains service code for gettting and managing cloudevent objects.
|
Package eventrepo contains service code for gettting and managing cloudevent objects. |
clickhouse/migrations
Code generated by "clickhouse-infra" DO NOT EDIT.
|
Code generated by "clickhouse-infra" DO NOT EDIT. |
codegen
command
Package main provides a code generator for CloudEventHeader field accessors.
|
Package main provides a code generator for CloudEventHeader field accessors. |