PacketFlow.Plugin.Interface behaviour (packetflow v0.1.0)

Standard interfaces for PacketFlow plugins

This module defines the standard interfaces that plugins must implement to integrate with the PacketFlow system.

Summary

Functions

Macro to define a capability plugin

Macro to define a context plugin

Macro to define a documentation plugin

Macro to define an intent plugin

Macro to define a reactor plugin

Macro to define a stream plugin

Macro to define a temporal plugin

Macro to define a test plugin

Macro to define a web component plugin

Callbacks

cleanup()

@callback cleanup() :: :ok

compose_capabilities(list, map)

@callback compose_capabilities([any()], map()) :: {:ok, any()} | {:error, String.t()}

compose_context(list, map)

@callback compose_context([any()], map()) :: {:ok, any()} | {:error, String.t()}

compose_reactors(list, map)

@callback compose_reactors([any()], map()) :: {:ok, any()} | {:error, String.t()}

default_config()

@callback default_config() :: map()

delegate_capability(any, any, map)

@callback delegate_capability(any(), any(), map()) :: {:ok, any()} | {:error, String.t()}

dependencies()

@callback dependencies() :: [atom()]

generate_docs(any, map)

@callback generate_docs(any(), map()) :: {:ok, any()} | {:error, String.t()}

Documentation plugin interface

generate_test(any, map)

@callback generate_test(any(), map()) :: {:ok, any()} | {:error, String.t()}

init(map)

@callback init(map()) :: :ok | {:error, String.t()}

Base plugin interface that all plugins must implement

process(any, map)

@callback process(any(), map()) :: {:ok, any()} | {:error, String.t()}

process_reactor(any, map)

@callback process_reactor(any(), map()) :: {:ok, any()} | {:error, String.t()}

Reactor plugin interface

process_stream(any, map)

@callback process_stream(any(), map()) :: {:ok, any()} | {:error, String.t()}

Stream plugin interface

process_temporal(any, map)

@callback process_temporal(any(), map()) :: {:ok, any()} | {:error, String.t()}

Temporal plugin interface

propagate_context(any, map)

@callback propagate_context(any(), map()) :: {:ok, any()} | {:error, String.t()}

Context plugin interface

render_component(any, map)

@callback render_component(any(), map()) :: {:ok, any()} | {:error, String.t()}

Web component plugin interface

route_intent(any, list, map)

@callback route_intent(any(), [any()], map()) :: {:ok, any()} | {:error, String.t()}

Intent plugin interface

run_test(any, map)

@callback run_test(any(), map()) :: {:ok, any()} | {:error, String.t()}

Test plugin interface

schedule_temporal(any, map)

@callback schedule_temporal(any(), map()) :: {:ok, any()} | {:error, String.t()}

transform_component(any, map)

@callback transform_component(any(), map()) :: {:ok, any()} | {:error, String.t()}

transform_docs(any, map)

@callback transform_docs(any(), map()) :: {:ok, any()} | {:error, String.t()}

transform_intent(any, map)

@callback transform_intent(any(), map()) :: {:ok, any()} | {:error, String.t()}

transform_stream(any, map)

@callback transform_stream(any(), map()) :: {:ok, any()} | {:error, String.t()}

validate_capability(any, map)

@callback validate_capability(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

Capability plugin interface

validate_component(any, map)

@callback validate_component(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

validate_context(any, map)

@callback validate_context(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

validate_docs(any, map)

@callback validate_docs(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

validate_intent(any, map)

@callback validate_intent(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

validate_reactor(any, map)

@callback validate_reactor(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

validate_stream(any, map)

@callback validate_stream(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

validate_temporal(any, map)

@callback validate_temporal(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

validate_test(any, map)

@callback validate_test(any(), map()) :: {:ok, boolean()} | {:error, String.t()}

version()

@callback version() :: String.t()

Functions

defcapability_plugin(name, list)

(macro)

Macro to define a capability plugin

defcontext_plugin(name, list)

(macro)

Macro to define a context plugin

defdocs_plugin(name, list)

(macro)

Macro to define a documentation plugin

defintent_plugin(name, list)

(macro)

Macro to define an intent plugin

defreactor_plugin(name, list)

(macro)

Macro to define a reactor plugin

defstream_plugin(name, list)

(macro)

Macro to define a stream plugin

deftemporal_plugin(name, list)

(macro)

Macro to define a temporal plugin

deftest_plugin(name, list)

(macro)

Macro to define a test plugin

defweb_plugin(name, list)

(macro)

Macro to define a web component plugin