coredata

package
v0.1.58 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

README

README

This package contains the core data client written in the Go programming language. The core data client is used by Go services or other Go code to communicate with the EdgeX core-data microservice (regardless of underlying implemenation type) by sending REST requests to the service's API endpoints.

How To Use

To use the core-data client package you first need to import the library into your project:

import "github.com/edgexfoundry/go-mod-core-contracts/clients/coredata"

As an example of use, to find a Value Descriptor using the Core Data client, first create a new device client

vdc := NewValueDescriptorClient(params, types.Endpoint{})

And then use the client to get all value descriptors

vdc.ValueDescriptors()

Documentation

Overview

coredata provides clients used for integration with the core-data service.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EventClient

type EventClient interface {
	// Events gets a list of all events
	Events(ctx context.Context) ([]models.Event, error)
	// Event gets an event by its id
	Event(ctx context.Context, id string) (models.Event, error)
	// EventCount returns the total count of events
	EventCount(ctx context.Context) (int, error)
	// EventCountForDevice returns the total event count for the specified device
	EventCountForDevice(ctx context.Context, deviceId string) (int, error)
	// EventsForDevice returns events up to a specified number that were generated by a given device
	EventsForDevice(ctx context.Context, deviceID string, limit int) ([]models.Event, error)
	// EventsForInterval returns events generated within a specific time period
	EventsForInterval(ctx context.Context, start int, end int, limit int) ([]models.Event, error)
	// EventsForDeviceAndValueDescriptor returns events for the specified device and value descriptor
	EventsForDeviceAndValueDescriptor(ctx context.Context, deviceId string, vd string, limit int) ([]models.Event, error)
	// Add will post a new event
	Add(ctx context.Context, event *models.Event) (string, error)
	// AddBytes posts a new event using an array of bytes, supporting encoding of the event by the caller.
	AddBytes(ctx context.Context, event []byte) (string, error)
	// DeleteForDevice will delete events by the specified device name
	DeleteForDevice(ctx context.Context, deviceID string) error
	// DeleteOld deletes events according to their age
	DeleteOld(ctx context.Context, age int) error
	// Delete will delete an event by its id
	Delete(ctx context.Context, id string) error
	// MarkPushed designates an event as having been successfully exported
	MarkPushed(ctx context.Context, id string) error
	// MarkPushedByChecksum designates an event as having been successfully exported using a checksum for the respective event.
	MarkPushedByChecksum(ctx context.Context, checksum string) error
	// MarshalEvent will perform JSON or CBOR encoding of the supplied Event. If one or more Readings on the Event
	// has a populated BinaryValue, the marshaling will be CBOR. Default is JSON.
	MarshalEvent(e models.Event) ([]byte, error)
}

EventClient defines the interface for interactions with the Event endpoint on the EdgeX Foundry core-data service.

func NewEventClient

func NewEventClient(urlClient interfaces.URLClient) EventClient

NewEventClient creates an instance of EventClient

type ReadingClient

type ReadingClient interface {
	// Readings returns a list of all readings
	Readings(ctx context.Context) ([]models.Reading, error)
	// ReadingCount returns a count of the total readings
	ReadingCount(ctx context.Context) (int, error)
	// Reading returns a reading by its id
	Reading(ctx context.Context, id string) (models.Reading, error)
	// ReadingsForDevice returns readings up to a specified limit for a given device
	ReadingsForDevice(ctx context.Context, deviceId string, limit int) ([]models.Reading, error)
	// ReadingsForNameAndDevice returns readings up to a specified limit for a given device and value descriptor name
	ReadingsForNameAndDevice(ctx context.Context, name string, deviceId string, limit int) ([]models.Reading, error)
	// ReadingsForName returns readings up to a specified limit for a given value descriptor name
	ReadingsForName(ctx context.Context, name string, limit int) ([]models.Reading, error)
	// ReadingsForUOMLabel returns readings up to a specified limit for a given UOM label
	ReadingsForUOMLabel(ctx context.Context, uomLabel string, limit int) ([]models.Reading, error)
	// ReadingsForLabel returns readings up to a specified limit for a given label
	ReadingsForLabel(ctx context.Context, label string, limit int) ([]models.Reading, error)
	// ReadingsForType returns readings up to a specified limit of a given type
	ReadingsForType(ctx context.Context, readingType string, limit int) ([]models.Reading, error)
	// ReadingsForInterval returns readings up to a specified limit generated within a specific time period
	ReadingsForInterval(ctx context.Context, start int, end int, limit int) ([]models.Reading, error)
	// Add a new reading
	Add(ctx context.Context, reading *models.Reading) (string, error)
	// Delete eliminates a reading by its id
	Delete(ctx context.Context, id string) error
}

ReadingClient defines the interface for interactions with the Reading endpoint on core-data.

func NewReadingClient

func NewReadingClient(urlClient interfaces.URLClient) ReadingClient

NewReadingClient creates an instance of a ReadingClient

type ValueDescriptorClient

type ValueDescriptorClient interface {
	// ValueDescriptors returns a list of all value descriptors
	ValueDescriptors(ctx context.Context) ([]models.ValueDescriptor, error)
	// ValueDescriptor returns the value descriptor for the specified id
	ValueDescriptor(ctx context.Context, id string) (models.ValueDescriptor, error)
	// ValueDescriptorForName returns the value descriptor for the specified name
	ValueDescriptorForName(ctx context.Context, name string) (models.ValueDescriptor, error)
	// ValueDescriptorsByLabel returns the value descriptors for the specified label
	ValueDescriptorsByLabel(ctx context.Context, label string) ([]models.ValueDescriptor, error)
	// ValueDescriptorsForDevice returns the value descriptors associated with readings from the specified device (by id)
	ValueDescriptorsForDevice(ctx context.Context, deviceId string) ([]models.ValueDescriptor, error)
	// ValueDescriptorsForDeviceByName returns the value descriptors associated with readings from the specified device (by name)
	ValueDescriptorsForDeviceByName(ctx context.Context, deviceName string) ([]models.ValueDescriptor, error)
	// ValueDescriptorsByUomLabel returns the value descriptors for the specified uomLabel
	ValueDescriptorsByUomLabel(ctx context.Context, uomLabel string) ([]models.ValueDescriptor, error)
	// ValueDescriptorsUsage return a map describing which ValueDescriptors are currently in use. The key is the
	// ValueDescriptor name and the value is a bool specifying if the ValueDescriptor is in use.
	ValueDescriptorsUsage(ctx context.Context, names []string) (map[string]bool, error)
	// Adds the specified value descriptor
	Add(ctx context.Context, vdr *models.ValueDescriptor) (string, error)
	// Updates the specified value descriptor
	Update(ctx context.Context, vdr *models.ValueDescriptor) error
	// Delete eliminates a value descriptor (specified by id)
	Delete(ctx context.Context, id string) error
	// Delete eliminates a value descriptor (specified by name)
	DeleteByName(ctx context.Context, name string) error
}

ValueDescriptorClient defines the interface for interactions with the Value Descriptor endpoint on core-data.

func NewValueDescriptorClient

func NewValueDescriptorClient(urlClient interfaces.URLClient) ValueDescriptorClient

Jump to

Keyboard shortcuts

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