lib/nomad_client/model/allocation_metric.ex

# NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
# https://openapi-generator.tech
# Do not edit the class manually.

defmodule NomadClient.Model.AllocationMetric do
  @moduledoc """

  """

  @derive [Poison.Encoder]
  defstruct [
    :NodesEvaluated,
    :NodesFiltered,
    :NodesAvailable,
    :ClassFiltered,
    :ConstraintFiltered,
    :NodesExhausted,
    :ClassExhausted,
    :DimensionExhausted,
    :QuotaExhausted,
    :Scores,
    :AllocationTime,
    :CoalescedFailures,
    :ScoreMetaData
  ]

  @type t :: %__MODULE__{
          :NodesEvaluated => integer() | nil,
          :NodesFiltered => integer() | nil,
          :NodesAvailable => %{optional(String.t()) => integer()} | nil,
          :ClassFiltered => %{optional(String.t()) => integer()} | nil,
          :ConstraintFiltered => %{optional(String.t()) => integer()} | nil,
          :NodesExhausted => integer() | nil,
          :ClassExhausted => %{optional(String.t()) => integer()} | nil,
          :DimensionExhausted => %{optional(String.t()) => integer()} | nil,
          :QuotaExhausted => [String.t()] | nil,
          :Scores => %{optional(String.t()) => NomadClient.Model.Float.t()} | nil,
          :AllocationTime => integer() | nil,
          :CoalescedFailures => integer() | nil,
          :ScoreMetaData => [NomadClient.Model.NodeScoreMeta.t()] | nil
        }
end

defimpl Poison.Decoder, for: NomadClient.Model.AllocationMetric do
  import NomadClient.Deserializer

  def decode(value, options) do
    value
    |> deserialize(:ScoreMetaData, :list, NomadClient.Model.NodeScoreMeta, options)
  end
end