Table of Contents

Class PluginManifest

Namespace
DuetAPI.ObjectModel
Assembly
DuetAPI.dll

Information about a third-party plugin

public class PluginManifest : ModelObject, INotifyPropertyChanging, IStaticModelObject, IModelObject, ICloneable, INotifyPropertyChanged
Inheritance
PluginManifest
Implements
Derived
Inherited Members

Constructors

PluginManifest()

public PluginManifest()

Properties

Author

Author of the plugin

public string Author { get; set; }

Property Value

string

Data

Custom plugin data to be populated in the object model (DSF/DWC in SBC mode - or - DWC in standalone mode). Before SetPluginData can be used, corresponding properties must be registered via this property first!

public JsonModelDictionary Data { get; }

Property Value

JsonModelDictionary
See Also

DwcDependencies

List of DWC plugins this plugin depends on. Circular dependencies are not supported

public ObservableCollection<string> DwcDependencies { get; }

Property Value

ObservableCollection<string>

DwcVersion

Major/minor compatible DWC version

public string? DwcVersion { get; set; }

Property Value

string

Homepage

Link to the plugin homepage or source code repository

public string? Homepage { get; set; }

Property Value

string

Id

Identifier of this plugin. May consist of letters and digits only (max length 32 chars)

public string Id { get; set; }

Property Value

string

Remarks

For plugins with DWC components, this is the Webpack chunk name too

License

License of the plugin. Should follow the SPDX format (see https://spdx.org/licenses/)

public string License { get; set; }

Property Value

string

Name

Name of the plugin. May consist of letters, digits, dashes, and underscores only (max length 64 chars)

public string Name { get; set; }

Property Value

string

RrfVersion

Major/minor supported RRF version (optional)

public string? RrfVersion { get; set; }

Property Value

string

SbcAutoRestart

Automatically restart the SBC process when terminated

public bool SbcAutoRestart { get; set; }

Property Value

bool

SbcConfigFiles

List of files in the sys or virtual SD directory that should not be overwritten on upgrade

public ObservableCollection<string> SbcConfigFiles { get; }

Property Value

ObservableCollection<string>

Remarks

The file may be specified either relative to 0:/sys directory (e.g. motion.conf) or relative to the virtual SD directory (e.g. sys/motion.conf). Drive indices as in 0:/sys/motion.conf are not allowed!

SbcDsfVersion

Required DSF version for the plugin running on the SBC (ignored if there is no SBC executable)

public string? SbcDsfVersion { get; set; }

Property Value

string

SbcExecutable

Filename in the dsf directory used to start the plugin

public string? SbcExecutable { get; set; }

Property Value

string

Remarks

A plugin may provide different binaries in subdirectories per architecture. Supported architectures are: arm, arm64, x86, x86_64

SbcExecutableArguments

Command-line arguments for the executable

public string? SbcExecutableArguments { get; set; }

Property Value

string

SbcExtraExecutables

List of other filenames in the dsf directory that should be executable

public ObservableCollection<string> SbcExtraExecutables { get; }

Property Value

ObservableCollection<string>

SbcNotifyStarted

Plugin notifies DSF when it is fully started

public bool SbcNotifyStarted { get; set; }

Property Value

bool

SbcOutputRedirected

Defines if messages from stdout/stderr are output as generic messages

public bool SbcOutputRedirected { get; set; }

Property Value

bool

SbcPackageDependencies

List of packages this plugin depends on (apt packages in the case of DuetPi)

public ObservableCollection<string> SbcPackageDependencies { get; }

Property Value

ObservableCollection<string>

SbcPermissions

List of permissions required by the plugin executable running on the SBC

public SbcPermissions SbcPermissions { get; set; }

Property Value

SbcPermissions

SbcPluginDependencies

List of SBC plugins this plugin depends on. Circular dependencies are not supported

public ObservableCollection<string> SbcPluginDependencies { get; }

Property Value

ObservableCollection<string>

SbcPythonDependencies

List of Python packages this plugin depends on

public ObservableCollection<string> SbcPythonDependencies { get; }

Property Value

ObservableCollection<string>

SbcRequired

Set to true if a SBC is absolutely required for this plugin

public bool SbcRequired { get; set; }

Property Value

bool

Tags

List of general tags for search

public ObservableCollection<string> Tags { get; }

Property Value

ObservableCollection<string>

Version

Version of the plugin

public string Version { get; set; }

Property Value

string

Methods

Assign(IStaticModelObject)

Assign the properties from another instance. This is required to update model properties which do not have a setter

public virtual void Assign(IStaticModelObject from)

Parameters

from IStaticModelObject

Other instance

CheckVersion(string, string)

Check if the given version satisfies a required version

public static bool CheckVersion(string actual, string required)

Parameters

actual string

Actual version

required string

Required version

Returns

bool

Whether the actual version fulfills teh requirement

Clone()

Clone this instance

public virtual object Clone()

Returns

object

Cloned instance

Remarks

This method is auto-generated

UpdateFromJson(JsonElement, bool)

Update this instance from a given JSON element

public virtual void UpdateFromJson(JsonElement jsonElement, bool ignoreSbcProperties)

Parameters

jsonElement JsonElement

Element to update this intance from

ignoreSbcProperties bool

Whether SBC properties are ignored

Remarks

This method is auto-generated

Exceptions

JsonException

Failed to deserialize data

UpdateFromJsonReader(ref Utf8JsonReader, bool)

Update this instance from a given JSON element

public virtual void UpdateFromJsonReader(ref Utf8JsonReader reader, bool ignoreSbcProperties)

Parameters

reader Utf8JsonReader

Reader to update this intance from

ignoreSbcProperties bool

Whether SBC properties are ignored

Remarks

This method is auto-generated

Exceptions

JsonException

Failed to deserialize data