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

  """

  @derive [Poison.Encoder]
  defstruct [
    :PluginID,
    :Healthy,
    :HealthDescription,
    :UpdateTime,
    :RequiresControllerPlugin,
    :RequiresTopologies,
    :ControllerInfo,
    :NodeInfo
  ]

  @type t :: %__MODULE__{
          :PluginID => String.t() | nil,
          :Healthy => boolean() | nil,
          :HealthDescription => String.t() | nil,
          :UpdateTime => DateTime.t() | nil,
          :RequiresControllerPlugin => boolean() | nil,
          :RequiresTopologies => boolean() | nil,
          :ControllerInfo => NomadClient.Model.CsiControllerInfo.t() | nil,
          :NodeInfo => NomadClient.Model.CsiNodeInfo.t() | nil
        }
end

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

  def decode(value, options) do
    value
    |> deserialize(:ControllerInfo, :struct, NomadClient.Model.CsiControllerInfo, options)
    |> deserialize(:NodeInfo, :struct, NomadClient.Model.CsiNodeInfo, options)
  end
end