defmodule NervesHubLinkCommon.Message.FirmwareMetadata do
@moduledoc """
Structure containing metadata about a firmware.
"""
defstruct [
:architecture,
:author,
:description,
:fwup_version,
:misc,
:platform,
:product,
:uuid,
:vcs_identifier,
:version
]
@type t() :: %__MODULE__{
architecture: String.t(),
author: String.t() | nil,
description: String.t() | nil,
fwup_version: Version.build() | nil,
misc: String.t() | nil,
platform: String.t(),
product: String.t(),
uuid: binary(),
vcs_identifier: String.t() | nil,
version: Version.build()
}
@spec parse(map()) :: {:ok, t()}
def parse(params) do
{:ok,
%__MODULE__{
architecture: params["architecture"],
author: params["author"],
description: params["description"],
fwup_version: params["fwup_version"],
misc: params["misc"],
platform: params["platform"],
product: params["product"],
uuid: params["uuid"],
vcs_identifier: params["vcs_identifier"],
version: params["version"]
}}
end
end