@type t() :: %Astarte.Core.Interface{
aggregate: boolean() | nil,
aggregation: Astarte.Core.Interface.Aggregation.t() | nil,
description: String.t() | nil,
doc: String.t() | nil,
interface_id: binary() | nil,
interface_name: String.t() | nil,
major_version: integer() | nil,
mappings: [Astarte.Core.Mapping.t()],
minor_version: integer() | nil,
name: String.t() | nil,
ownership: Astarte.Core.Interface.Ownership.t() | nil,
quality: Astarte.Core.Interface.Ownership.t() | nil,
type: Astarte.Core.Interface.Type.t() | nil,
version_major: integer() | nil,
version_minor: integer() | nil
}