Jido.Sensor.Spec (Jido v2.2.0)

View Source

The normalized representation of a sensor specification.

Contains all metadata needed to configure and run a sensor, including the module, name, description, configuration, and schema.

Fields

  • module - The sensor module (required)
  • name - Sensor name (required)
  • description - Optional sensor description
  • config - Configuration map for the sensor (default: %{})
  • schema - Optional Zoi schema for introspection

Examples

Sensor.Spec.new!(%{module: MySensor, name: "my_sensor"})
# => %Sensor.Spec{module: MySensor, name: "my_sensor", config: %{}}

Sensor.Spec.new(%{module: MySensor, name: "my_sensor", config: %{interval: 1000}})
# => {:ok, %Sensor.Spec{module: MySensor, name: "my_sensor", config: %{interval: 1000}}}

Summary

Functions

Creates a new Sensor.Spec from a map of attributes.

Creates a new Sensor.Spec from a map, raising on error.

Returns the Zoi schema for Sensor.Spec.

Types

t()

@type t() :: %Jido.Sensor.Spec{
  config: map(),
  description: nil | binary(),
  module: atom(),
  name: binary(),
  schema: nil | any()
}

Functions

new(attrs)

@spec new(map()) :: {:ok, t()} | {:error, term()}

Creates a new Sensor.Spec from a map of attributes.

Returns {:ok, spec} or {:error, reason}.

Examples

Sensor.Spec.new(%{module: MySensor, name: "my_sensor"})
# => {:ok, %Sensor.Spec{module: MySensor, name: "my_sensor", config: %{}}}

Sensor.Spec.new(%{name: "missing_module"})
# => {:error, validation_errors}

new!(attrs)

@spec new!(map()) :: t()

Creates a new Sensor.Spec from a map, raising on error.

Examples

Sensor.Spec.new!(%{module: MySensor, name: "my_sensor"})
# => %Sensor.Spec{module: MySensor, name: "my_sensor", config: %{}}

schema()

@spec schema() :: Zoi.schema()

Returns the Zoi schema for Sensor.Spec.