# NOTE: This file is auto generated by OpenAPI Generator 7.0.1 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule DockerEngineAPI.Model.ContainerConfig do
  @moduledoc """
  Configuration for a container that is portable between hosts.  When used as `ContainerConfig` field in an image, `ContainerConfig` is an optional field containing the configuration of the container that was last committed when creating the image.  Previous versions of Docker builder used this field to store build cache, and it is not in active use anymore. 
  """

  @derive Jason.Encoder
  defstruct [
    :Hostname,
    :Domainname,
    :User,
    :AttachStdin,
    :AttachStdout,
    :AttachStderr,
    :ExposedPorts,
    :Tty,
    :OpenStdin,
    :StdinOnce,
    :Env,
    :Cmd,
    :Healthcheck,
    :ArgsEscaped,
    :Image,
    :Volumes,
    :WorkingDir,
    :Entrypoint,
    :NetworkDisabled,
    :MacAddress,
    :OnBuild,
    :Labels,
    :StopSignal,
    :StopTimeout,
    :Shell
  ]

  @type t :: %__MODULE__{
    :Hostname => String.t | nil,
    :Domainname => String.t | nil,
    :User => String.t | nil,
    :AttachStdin => boolean() | nil,
    :AttachStdout => boolean() | nil,
    :AttachStderr => boolean() | nil,
    :ExposedPorts => %{optional(String.t) => map()} | nil,
    :Tty => boolean() | nil,
    :OpenStdin => boolean() | nil,
    :StdinOnce => boolean() | nil,
    :Env => [String.t] | nil,
    :Cmd => [String.t] | nil,
    :Healthcheck => DockerEngineAPI.Model.HealthConfig.t | nil,
    :ArgsEscaped => boolean() | nil,
    :Image => String.t | nil,
    :Volumes => %{optional(String.t) => map()} | nil,
    :WorkingDir => String.t | nil,
    :Entrypoint => [String.t] | nil,
    :NetworkDisabled => boolean() | nil,
    :MacAddress => String.t | nil,
    :OnBuild => [String.t] | nil,
    :Labels => %{optional(String.t) => String.t} | nil,
    :StopSignal => String.t | nil,
    :StopTimeout => integer() | nil,
    :Shell => [String.t] | nil
  }

  alias DockerEngineAPI.Deserializer

  def decode(value) do
    value
     |> Deserializer.deserialize(:Healthcheck, :struct, DockerEngineAPI.Model.HealthConfig)
  end
end

