Packages
nerves_hub_link
2.9.0-rc.3
2.12.0
2.11.1
2.11.0
retired
2.10.2
2.10.1
2.10.0
2.9.0
2.9.0-rc.3
2.9.0-rc.2
2.9.0-rc.1
2.8.1
2.8.0
2.7.3
2.7.2
2.7.0
retired
2.6.0
2.5.2
2.5.1
2.5.0
2.4.0
2.3.0
2.2.1
2.2.0
2.1.1
2.1.0
2.0.0
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.1
1.0.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.2
0.10.1
retired
0.10.0
retired
0.10.0-rc.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.6
Manage your Nerves fleet by connecting it to NervesHub
Current section
Files
Jump to
Current section
Files
lib/nerves_hub_link/message/firmware_metadata.ex
# SPDX-FileCopyrightText: 2023 Eric Oestrich
# SPDX-FileCopyrightText: 2025 Josh Kalderimis
#
# SPDX-License-Identifier: Apache-2.0
#
defmodule NervesHubLink.Message.FirmwareMetadata do
@moduledoc """
Detailed firmware metadata received during the firmware update process.
"""
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(metadata :: 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