{-# 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.EC2.Types.DiskImage where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.DiskImageDetail
import Amazonka.EC2.Types.VolumeDetail
import qualified Amazonka.Prelude as Prelude
data DiskImage = DiskImage'
{
DiskImage -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
DiskImage -> Maybe DiskImageDetail
image :: Prelude.Maybe DiskImageDetail,
DiskImage -> Maybe VolumeDetail
volume :: Prelude.Maybe VolumeDetail
}
deriving (DiskImage -> DiskImage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DiskImage -> DiskImage -> Bool
$c/= :: DiskImage -> DiskImage -> Bool
== :: DiskImage -> DiskImage -> Bool
$c== :: DiskImage -> DiskImage -> Bool
Prelude.Eq, ReadPrec [DiskImage]
ReadPrec DiskImage
Int -> ReadS DiskImage
ReadS [DiskImage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DiskImage]
$creadListPrec :: ReadPrec [DiskImage]
readPrec :: ReadPrec DiskImage
$creadPrec :: ReadPrec DiskImage
readList :: ReadS [DiskImage]
$creadList :: ReadS [DiskImage]
readsPrec :: Int -> ReadS DiskImage
$creadsPrec :: Int -> ReadS DiskImage
Prelude.Read, Int -> DiskImage -> ShowS
[DiskImage] -> ShowS
DiskImage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DiskImage] -> ShowS
$cshowList :: [DiskImage] -> ShowS
show :: DiskImage -> String
$cshow :: DiskImage -> String
showsPrec :: Int -> DiskImage -> ShowS
$cshowsPrec :: Int -> DiskImage -> ShowS
Prelude.Show, forall x. Rep DiskImage x -> DiskImage
forall x. DiskImage -> Rep DiskImage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DiskImage x -> DiskImage
$cfrom :: forall x. DiskImage -> Rep DiskImage x
Prelude.Generic)
newDiskImage ::
DiskImage
newDiskImage :: DiskImage
newDiskImage =
DiskImage'
{ $sel:description:DiskImage' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:image:DiskImage' :: Maybe DiskImageDetail
image = forall a. Maybe a
Prelude.Nothing,
$sel:volume:DiskImage' :: Maybe VolumeDetail
volume = forall a. Maybe a
Prelude.Nothing
}
diskImage_description :: Lens.Lens' DiskImage (Prelude.Maybe Prelude.Text)
diskImage_description :: Lens' DiskImage (Maybe Text)
diskImage_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DiskImage' {Maybe Text
description :: Maybe Text
$sel:description:DiskImage' :: DiskImage -> Maybe Text
description} -> Maybe Text
description) (\s :: DiskImage
s@DiskImage' {} Maybe Text
a -> DiskImage
s {$sel:description:DiskImage' :: Maybe Text
description = Maybe Text
a} :: DiskImage)
diskImage_image :: Lens.Lens' DiskImage (Prelude.Maybe DiskImageDetail)
diskImage_image :: Lens' DiskImage (Maybe DiskImageDetail)
diskImage_image = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DiskImage' {Maybe DiskImageDetail
image :: Maybe DiskImageDetail
$sel:image:DiskImage' :: DiskImage -> Maybe DiskImageDetail
image} -> Maybe DiskImageDetail
image) (\s :: DiskImage
s@DiskImage' {} Maybe DiskImageDetail
a -> DiskImage
s {$sel:image:DiskImage' :: Maybe DiskImageDetail
image = Maybe DiskImageDetail
a} :: DiskImage)
diskImage_volume :: Lens.Lens' DiskImage (Prelude.Maybe VolumeDetail)
diskImage_volume :: Lens' DiskImage (Maybe VolumeDetail)
diskImage_volume = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DiskImage' {Maybe VolumeDetail
volume :: Maybe VolumeDetail
$sel:volume:DiskImage' :: DiskImage -> Maybe VolumeDetail
volume} -> Maybe VolumeDetail
volume) (\s :: DiskImage
s@DiskImage' {} Maybe VolumeDetail
a -> DiskImage
s {$sel:volume:DiskImage' :: Maybe VolumeDetail
volume = Maybe VolumeDetail
a} :: DiskImage)
instance Prelude.Hashable DiskImage where
hashWithSalt :: Int -> DiskImage -> Int
hashWithSalt Int
_salt DiskImage' {Maybe Text
Maybe DiskImageDetail
Maybe VolumeDetail
volume :: Maybe VolumeDetail
image :: Maybe DiskImageDetail
description :: Maybe Text
$sel:volume:DiskImage' :: DiskImage -> Maybe VolumeDetail
$sel:image:DiskImage' :: DiskImage -> Maybe DiskImageDetail
$sel:description:DiskImage' :: DiskImage -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DiskImageDetail
image
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VolumeDetail
volume
instance Prelude.NFData DiskImage where
rnf :: DiskImage -> ()
rnf DiskImage' {Maybe Text
Maybe DiskImageDetail
Maybe VolumeDetail
volume :: Maybe VolumeDetail
image :: Maybe DiskImageDetail
description :: Maybe Text
$sel:volume:DiskImage' :: DiskImage -> Maybe VolumeDetail
$sel:image:DiskImage' :: DiskImage -> Maybe DiskImageDetail
$sel:description:DiskImage' :: DiskImage -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DiskImageDetail
image
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VolumeDetail
volume
instance Data.ToQuery DiskImage where
toQuery :: DiskImage -> QueryString
toQuery DiskImage' {Maybe Text
Maybe DiskImageDetail
Maybe VolumeDetail
volume :: Maybe VolumeDetail
image :: Maybe DiskImageDetail
description :: Maybe Text
$sel:volume:DiskImage' :: DiskImage -> Maybe VolumeDetail
$sel:image:DiskImage' :: DiskImage -> Maybe DiskImageDetail
$sel:description:DiskImage' :: DiskImage -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Description" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
description,
ByteString
"Image" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe DiskImageDetail
image,
ByteString
"Volume" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe VolumeDetail
volume
]