# 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.Job do
@moduledoc """
"""
@derive [Poison.Encoder]
defstruct [
:Stop,
:Region,
:Namespace,
:ID,
:ParentID,
:Name,
:Type,
:Priority,
:AllAtOnce,
:Datacenters,
:Constraints,
:Affinities,
:TaskGroups,
:Update,
:Spreads,
:Periodic,
:ParameterizedJob,
:Dispatched,
:Payload,
:Reschedule,
:Migrate,
:Meta,
:ConsulToken,
:VaultToken,
:Status,
:StatusDescription,
:Stable,
:Version,
:SubmitTime,
:CreateIndex,
:ModifyIndex,
:JobModifyIndex
]
@type t :: %__MODULE__{
:Stop => boolean() | nil,
:Region => String.t() | nil,
:Namespace => String.t() | nil,
:ID => String.t() | nil,
:ParentID => String.t() | nil,
:Name => String.t() | nil,
:Type => String.t() | nil,
:Priority => integer() | nil,
:AllAtOnce => boolean() | nil,
:Datacenters => [String.t()] | nil,
:Constraints => [NomadClient.Model.Constraint.t()] | nil,
:Affinities => [NomadClient.Model.Affinity.t()] | nil,
:TaskGroups => [NomadClient.Model.TaskGroup.t()] | nil,
:Update => NomadClient.Model.UpdateStrategy.t() | nil,
:Spreads => [NomadClient.Model.Spread.t()] | nil,
:Periodic => NomadClient.Model.PeriodicConfig.t() | nil,
:ParameterizedJob => NomadClient.Model.ParameterizedJobConfig.t() | nil,
:Dispatched => boolean() | nil,
:Payload => binary() | nil,
:Reschedule => NomadClient.Model.ReschedulePolicy.t() | nil,
:Migrate => NomadClient.Model.MigrateStrategy.t() | nil,
:Meta => %{optional(String.t()) => String.t()} | nil,
:ConsulToken => String.t() | nil,
:VaultToken => String.t() | nil,
:Status => String.t() | nil,
:StatusDescription => String.t() | nil,
:Stable => boolean() | nil,
:Version => integer() | nil,
:SubmitTime => integer() | nil,
:CreateIndex => integer() | nil,
:ModifyIndex => integer() | nil,
:JobModifyIndex => integer() | nil
}
end
defimpl Poison.Decoder, for: NomadClient.Model.Job do
import NomadClient.Deserializer
def decode(value, options) do
value
|> deserialize(:Constraints, :list, NomadClient.Model.Constraint, options)
|> deserialize(:Affinities, :list, NomadClient.Model.Affinity, options)
|> deserialize(:TaskGroups, :list, NomadClient.Model.TaskGroup, options)
|> deserialize(:Update, :struct, NomadClient.Model.UpdateStrategy, options)
|> deserialize(:Spreads, :list, NomadClient.Model.Spread, options)
|> deserialize(:Periodic, :struct, NomadClient.Model.PeriodicConfig, options)
|> deserialize(:ParameterizedJob, :struct, NomadClient.Model.ParameterizedJobConfig, options)
|> deserialize(:Reschedule, :struct, NomadClient.Model.ReschedulePolicy, options)
|> deserialize(:Migrate, :struct, NomadClient.Model.MigrateStrategy, options)
end
end