{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.ImageBuilder.Types.ImageVersion where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ImageBuilder.Types.BuildType
import Amazonka.ImageBuilder.Types.ImageType
import Amazonka.ImageBuilder.Types.Platform
import qualified Amazonka.Prelude as Prelude
data ImageVersion = ImageVersion'
{
ImageVersion -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
ImageVersion -> Maybe BuildType
buildType :: Prelude.Maybe BuildType,
ImageVersion -> Maybe Text
dateCreated :: Prelude.Maybe Prelude.Text,
ImageVersion -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
ImageVersion -> Maybe Text
osVersion :: Prelude.Maybe Prelude.Text,
ImageVersion -> Maybe Text
owner :: Prelude.Maybe Prelude.Text,
ImageVersion -> Maybe Platform
platform :: Prelude.Maybe Platform,
ImageVersion -> Maybe ImageType
type' :: Prelude.Maybe ImageType,
ImageVersion -> Maybe Text
version :: Prelude.Maybe Prelude.Text
}
deriving (ImageVersion -> ImageVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ImageVersion -> ImageVersion -> Bool
$c/= :: ImageVersion -> ImageVersion -> Bool
== :: ImageVersion -> ImageVersion -> Bool
$c== :: ImageVersion -> ImageVersion -> Bool
Prelude.Eq, ReadPrec [ImageVersion]
ReadPrec ImageVersion
Int -> ReadS ImageVersion
ReadS [ImageVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ImageVersion]
$creadListPrec :: ReadPrec [ImageVersion]
readPrec :: ReadPrec ImageVersion
$creadPrec :: ReadPrec ImageVersion
readList :: ReadS [ImageVersion]
$creadList :: ReadS [ImageVersion]
readsPrec :: Int -> ReadS ImageVersion
$creadsPrec :: Int -> ReadS ImageVersion
Prelude.Read, Int -> ImageVersion -> ShowS
[ImageVersion] -> ShowS
ImageVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ImageVersion] -> ShowS
$cshowList :: [ImageVersion] -> ShowS
show :: ImageVersion -> String
$cshow :: ImageVersion -> String
showsPrec :: Int -> ImageVersion -> ShowS
$cshowsPrec :: Int -> ImageVersion -> ShowS
Prelude.Show, forall x. Rep ImageVersion x -> ImageVersion
forall x. ImageVersion -> Rep ImageVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ImageVersion x -> ImageVersion
$cfrom :: forall x. ImageVersion -> Rep ImageVersion x
Prelude.Generic)
newImageVersion ::
ImageVersion
newImageVersion :: ImageVersion
newImageVersion =
ImageVersion'
{ $sel:arn:ImageVersion' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:buildType:ImageVersion' :: Maybe BuildType
buildType = forall a. Maybe a
Prelude.Nothing,
$sel:dateCreated:ImageVersion' :: Maybe Text
dateCreated = forall a. Maybe a
Prelude.Nothing,
$sel:name:ImageVersion' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:osVersion:ImageVersion' :: Maybe Text
osVersion = forall a. Maybe a
Prelude.Nothing,
$sel:owner:ImageVersion' :: Maybe Text
owner = forall a. Maybe a
Prelude.Nothing,
$sel:platform:ImageVersion' :: Maybe Platform
platform = forall a. Maybe a
Prelude.Nothing,
$sel:type':ImageVersion' :: Maybe ImageType
type' = forall a. Maybe a
Prelude.Nothing,
$sel:version:ImageVersion' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing
}
imageVersion_arn :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_arn :: Lens' ImageVersion (Maybe Text)
imageVersion_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
arn :: Maybe Text
$sel:arn:ImageVersion' :: ImageVersion -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:arn:ImageVersion' :: Maybe Text
arn = Maybe Text
a} :: ImageVersion)
imageVersion_buildType :: Lens.Lens' ImageVersion (Prelude.Maybe BuildType)
imageVersion_buildType :: Lens' ImageVersion (Maybe BuildType)
imageVersion_buildType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe BuildType
buildType :: Maybe BuildType
$sel:buildType:ImageVersion' :: ImageVersion -> Maybe BuildType
buildType} -> Maybe BuildType
buildType) (\s :: ImageVersion
s@ImageVersion' {} Maybe BuildType
a -> ImageVersion
s {$sel:buildType:ImageVersion' :: Maybe BuildType
buildType = Maybe BuildType
a} :: ImageVersion)
imageVersion_dateCreated :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_dateCreated :: Lens' ImageVersion (Maybe Text)
imageVersion_dateCreated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
dateCreated :: Maybe Text
$sel:dateCreated:ImageVersion' :: ImageVersion -> Maybe Text
dateCreated} -> Maybe Text
dateCreated) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:dateCreated:ImageVersion' :: Maybe Text
dateCreated = Maybe Text
a} :: ImageVersion)
imageVersion_name :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_name :: Lens' ImageVersion (Maybe Text)
imageVersion_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
name :: Maybe Text
$sel:name:ImageVersion' :: ImageVersion -> Maybe Text
name} -> Maybe Text
name) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:name:ImageVersion' :: Maybe Text
name = Maybe Text
a} :: ImageVersion)
imageVersion_osVersion :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_osVersion :: Lens' ImageVersion (Maybe Text)
imageVersion_osVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
osVersion :: Maybe Text
$sel:osVersion:ImageVersion' :: ImageVersion -> Maybe Text
osVersion} -> Maybe Text
osVersion) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:osVersion:ImageVersion' :: Maybe Text
osVersion = Maybe Text
a} :: ImageVersion)
imageVersion_owner :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_owner :: Lens' ImageVersion (Maybe Text)
imageVersion_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
owner :: Maybe Text
$sel:owner:ImageVersion' :: ImageVersion -> Maybe Text
owner} -> Maybe Text
owner) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:owner:ImageVersion' :: Maybe Text
owner = Maybe Text
a} :: ImageVersion)
imageVersion_platform :: Lens.Lens' ImageVersion (Prelude.Maybe Platform)
imageVersion_platform :: Lens' ImageVersion (Maybe Platform)
imageVersion_platform = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Platform
platform :: Maybe Platform
$sel:platform:ImageVersion' :: ImageVersion -> Maybe Platform
platform} -> Maybe Platform
platform) (\s :: ImageVersion
s@ImageVersion' {} Maybe Platform
a -> ImageVersion
s {$sel:platform:ImageVersion' :: Maybe Platform
platform = Maybe Platform
a} :: ImageVersion)
imageVersion_type :: Lens.Lens' ImageVersion (Prelude.Maybe ImageType)
imageVersion_type :: Lens' ImageVersion (Maybe ImageType)
imageVersion_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe ImageType
type' :: Maybe ImageType
$sel:type':ImageVersion' :: ImageVersion -> Maybe ImageType
type'} -> Maybe ImageType
type') (\s :: ImageVersion
s@ImageVersion' {} Maybe ImageType
a -> ImageVersion
s {$sel:type':ImageVersion' :: Maybe ImageType
type' = Maybe ImageType
a} :: ImageVersion)
imageVersion_version :: Lens.Lens' ImageVersion (Prelude.Maybe Prelude.Text)
imageVersion_version :: Lens' ImageVersion (Maybe Text)
imageVersion_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ImageVersion' {Maybe Text
version :: Maybe Text
$sel:version:ImageVersion' :: ImageVersion -> Maybe Text
version} -> Maybe Text
version) (\s :: ImageVersion
s@ImageVersion' {} Maybe Text
a -> ImageVersion
s {$sel:version:ImageVersion' :: Maybe Text
version = Maybe Text
a} :: ImageVersion)
instance Data.FromJSON ImageVersion where
parseJSON :: Value -> Parser ImageVersion
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"ImageVersion"
( \Object
x ->
Maybe Text
-> Maybe BuildType
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Platform
-> Maybe ImageType
-> Maybe Text
-> ImageVersion
ImageVersion'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"buildType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dateCreated")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"osVersion")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"owner")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"platform")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"type")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"version")
)
instance Prelude.Hashable ImageVersion where
hashWithSalt :: Int -> ImageVersion -> Int
hashWithSalt Int
_salt ImageVersion' {Maybe Text
Maybe BuildType
Maybe ImageType
Maybe Platform
version :: Maybe Text
type' :: Maybe ImageType
platform :: Maybe Platform
owner :: Maybe Text
osVersion :: Maybe Text
name :: Maybe Text
dateCreated :: Maybe Text
buildType :: Maybe BuildType
arn :: Maybe Text
$sel:version:ImageVersion' :: ImageVersion -> Maybe Text
$sel:type':ImageVersion' :: ImageVersion -> Maybe ImageType
$sel:platform:ImageVersion' :: ImageVersion -> Maybe Platform
$sel:owner:ImageVersion' :: ImageVersion -> Maybe Text
$sel:osVersion:ImageVersion' :: ImageVersion -> Maybe Text
$sel:name:ImageVersion' :: ImageVersion -> Maybe Text
$sel:dateCreated:ImageVersion' :: ImageVersion -> Maybe Text
$sel:buildType:ImageVersion' :: ImageVersion -> Maybe BuildType
$sel:arn:ImageVersion' :: ImageVersion -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BuildType
buildType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dateCreated
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
osVersion
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
owner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Platform
platform
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImageType
type'
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
version
instance Prelude.NFData ImageVersion where
rnf :: ImageVersion -> ()
rnf ImageVersion' {Maybe Text
Maybe BuildType
Maybe ImageType
Maybe Platform
version :: Maybe Text
type' :: Maybe ImageType
platform :: Maybe Platform
owner :: Maybe Text
osVersion :: Maybe Text
name :: Maybe Text
dateCreated :: Maybe Text
buildType :: Maybe BuildType
arn :: Maybe Text
$sel:version:ImageVersion' :: ImageVersion -> Maybe Text
$sel:type':ImageVersion' :: ImageVersion -> Maybe ImageType
$sel:platform:ImageVersion' :: ImageVersion -> Maybe Platform
$sel:owner:ImageVersion' :: ImageVersion -> Maybe Text
$sel:osVersion:ImageVersion' :: ImageVersion -> Maybe Text
$sel:name:ImageVersion' :: ImageVersion -> Maybe Text
$sel:dateCreated:ImageVersion' :: ImageVersion -> Maybe Text
$sel:buildType:ImageVersion' :: ImageVersion -> Maybe BuildType
$sel:arn:ImageVersion' :: ImageVersion -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BuildType
buildType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dateCreated
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
osVersion
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
owner
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Platform
platform
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImageType
type'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
version