# 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.TaskGroup do
@moduledoc """
"""
@derive [Poison.Encoder]
defstruct [
:Name,
:Count,
:Constraints,
:Affinities,
:Tasks,
:Spreads,
:Volumes,
:RestartPolicy,
:ReschedulePolicy,
:EphemeralDisk,
:Update,
:Migrate,
:Networks,
:Meta,
:Services,
:ShutdownDelay,
:Scaling
]
@type t :: %__MODULE__{
:Name => String.t() | nil,
:Count => integer() | nil,
:Constraints => [NomadClient.Model.Constraint.t()] | nil,
:Affinities => [NomadClient.Model.Affinity.t()] | nil,
:Tasks => [NomadClient.Model.Task.t()] | nil,
:Spreads => [NomadClient.Model.Spread.t()] | nil,
:Volumes => %{optional(String.t()) => NomadClient.Model.VolumeRequest.t()} | nil,
:RestartPolicy => NomadClient.Model.RestartPolicy.t() | nil,
:ReschedulePolicy => NomadClient.Model.ReschedulePolicy.t() | nil,
:EphemeralDisk => NomadClient.Model.EphemeralDisk.t() | nil,
:Update => NomadClient.Model.UpdateStrategy.t() | nil,
:Migrate => NomadClient.Model.MigrateStrategy.t() | nil,
:Networks => [NomadClient.Model.NetworkResource.t()] | nil,
:Meta => %{optional(String.t()) => String.t()} | nil,
:Services => [NomadClient.Model.Service.t()] | nil,
:ShutdownDelay => integer() | nil,
:Scaling => NomadClient.Model.ScalingPolicy.t() | nil
}
end
defimpl Poison.Decoder, for: NomadClient.Model.TaskGroup 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(:Tasks, :list, NomadClient.Model.Task, options)
|> deserialize(:Spreads, :list, NomadClient.Model.Spread, options)
|> deserialize(:Volumes, :map, NomadClient.Model.VolumeRequest, options)
|> deserialize(:RestartPolicy, :struct, NomadClient.Model.RestartPolicy, options)
|> deserialize(:ReschedulePolicy, :struct, NomadClient.Model.ReschedulePolicy, options)
|> deserialize(:EphemeralDisk, :struct, NomadClient.Model.EphemeralDisk, options)
|> deserialize(:Update, :struct, NomadClient.Model.UpdateStrategy, options)
|> deserialize(:Migrate, :struct, NomadClient.Model.MigrateStrategy, options)
|> deserialize(:Networks, :list, NomadClient.Model.NetworkResource, options)
|> deserialize(:Services, :list, NomadClient.Model.Service, options)
|> deserialize(:Scaling, :struct, NomadClient.Model.ScalingPolicy, options)
end
end