lib/nomad_client/model/network_resource.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.NetworkResource do
  @moduledoc """

  """

  @derive [Poison.Encoder]
  defstruct [
    :Mode,
    :Device,
    :CIDR,
    :IP,
    :MBits,
    :ReservedPorts,
    :DynamicPorts,
    :DNS
  ]

  @type t :: %__MODULE__{
          :Mode => String.t() | nil,
          :Device => String.t() | nil,
          :CIDR => String.t() | nil,
          :IP => String.t() | nil,
          :MBits => integer() | nil,
          :ReservedPorts => [NomadClient.Model.Port.t()] | nil,
          :DynamicPorts => [NomadClient.Model.Port.t()] | nil,
          :DNS => NomadClient.Model.NetworkDns.t() | nil
        }
end

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

  def decode(value, options) do
    value
    |> deserialize(:ReservedPorts, :list, NomadClient.Model.Port, options)
    |> deserialize(:DynamicPorts, :list, NomadClient.Model.Port, options)
    |> deserialize(:DNS, :struct, NomadClient.Model.NetworkDns, options)
  end
end