{-# LANGUAGE DeriveFunctor #-} module Language.Docker.EDSL.Types where import Data.ByteString.Char8 (ByteString) import Data.String import qualified Language.Docker.Syntax as Syntax data EBaseImage = EUntaggedImage String | ETaggedImage String String | EDigestedImage String ByteString deriving (Show, Eq, Ord) instance IsString EBaseImage where fromString = EUntaggedImage data EInstruction next = From EBaseImage next | Add Syntax.Source Syntax.Destination next | User String next | Label Syntax.Pairs next | StopSignal String next | Copy Syntax.Source Syntax.Destination next | RunArgs Syntax.Arguments next | CmdArgs Syntax.Arguments next | Shell Syntax.Arguments next | Workdir Syntax.Directory next | Expose Syntax.Ports next | Volume String next | EntrypointArgs Syntax.Arguments next | Maintainer String next | Env Syntax.Pairs next | Arg String next | Comment String next | Healthcheck String next | OnBuildRaw Syntax.Instruction next | Embed [Syntax.InstructionPos] next deriving (Functor)