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

  """

  @derive [Poison.Encoder]
  defstruct [
    :ID,
    :Name,
    :Tags,
    :CanaryTags,
    :EnableTagOverride,
    :PortLabel,
    :AddressMode,
    :Checks,
    :CheckRestart,
    :Connect,
    :Meta,
    :CanaryMeta
  ]

  @type t :: %__MODULE__{
          :ID => String.t() | nil,
          :Name => String.t() | nil,
          :Tags => [String.t()] | nil,
          :CanaryTags => [String.t()] | nil,
          :EnableTagOverride => boolean() | nil,
          :PortLabel => String.t() | nil,
          :AddressMode => String.t() | nil,
          :Checks => [NomadClient.Model.ServiceCheck.t()] | nil,
          :CheckRestart => NomadClient.Model.CheckRestart.t() | nil,
          :Connect => NomadClient.Model.ConsulConnect.t() | nil,
          :Meta => %{optional(String.t()) => String.t()} | nil,
          :CanaryMeta => %{optional(String.t()) => String.t()} | nil
        }
end

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

  def decode(value, options) do
    value
    |> deserialize(:Checks, :list, NomadClient.Model.ServiceCheck, options)
    |> deserialize(:CheckRestart, :struct, NomadClient.Model.CheckRestart, options)
    |> deserialize(:Connect, :struct, NomadClient.Model.ConsulConnect, options)
  end
end