{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.ImageBuilder.GetImage
(
GetImage (..),
newGetImage,
getImage_imageBuildVersionArn,
GetImageResponse (..),
newGetImageResponse,
getImageResponse_image,
getImageResponse_requestId,
getImageResponse_httpStatus,
)
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetImage = GetImage'
{
GetImage -> Text
imageBuildVersionArn :: Prelude.Text
}
deriving (GetImage -> GetImage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetImage -> GetImage -> Bool
$c/= :: GetImage -> GetImage -> Bool
== :: GetImage -> GetImage -> Bool
$c== :: GetImage -> GetImage -> Bool
Prelude.Eq, ReadPrec [GetImage]
ReadPrec GetImage
Int -> ReadS GetImage
ReadS [GetImage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetImage]
$creadListPrec :: ReadPrec [GetImage]
readPrec :: ReadPrec GetImage
$creadPrec :: ReadPrec GetImage
readList :: ReadS [GetImage]
$creadList :: ReadS [GetImage]
readsPrec :: Int -> ReadS GetImage
$creadsPrec :: Int -> ReadS GetImage
Prelude.Read, Int -> GetImage -> ShowS
[GetImage] -> ShowS
GetImage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetImage] -> ShowS
$cshowList :: [GetImage] -> ShowS
show :: GetImage -> String
$cshow :: GetImage -> String
showsPrec :: Int -> GetImage -> ShowS
$cshowsPrec :: Int -> GetImage -> ShowS
Prelude.Show, forall x. Rep GetImage x -> GetImage
forall x. GetImage -> Rep GetImage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetImage x -> GetImage
$cfrom :: forall x. GetImage -> Rep GetImage x
Prelude.Generic)
newGetImage ::
Prelude.Text ->
GetImage
newGetImage :: Text -> GetImage
newGetImage Text
pImageBuildVersionArn_ =
GetImage'
{ $sel:imageBuildVersionArn:GetImage' :: Text
imageBuildVersionArn =
Text
pImageBuildVersionArn_
}
getImage_imageBuildVersionArn :: Lens.Lens' GetImage Prelude.Text
getImage_imageBuildVersionArn :: Lens' GetImage Text
getImage_imageBuildVersionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetImage' {Text
imageBuildVersionArn :: Text
$sel:imageBuildVersionArn:GetImage' :: GetImage -> Text
imageBuildVersionArn} -> Text
imageBuildVersionArn) (\s :: GetImage
s@GetImage' {} Text
a -> GetImage
s {$sel:imageBuildVersionArn:GetImage' :: Text
imageBuildVersionArn = Text
a} :: GetImage)
instance Core.AWSRequest GetImage where
type AWSResponse GetImage = GetImageResponse
request :: (Service -> Service) -> GetImage -> Request GetImage
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetImage
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetImage)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe Image -> Maybe Text -> Int -> GetImageResponse
GetImageResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"image")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"requestId")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable GetImage where
hashWithSalt :: Int -> GetImage -> Int
hashWithSalt Int
_salt GetImage' {Text
imageBuildVersionArn :: Text
$sel:imageBuildVersionArn:GetImage' :: GetImage -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
imageBuildVersionArn
instance Prelude.NFData GetImage where
rnf :: GetImage -> ()
rnf GetImage' {Text
imageBuildVersionArn :: Text
$sel:imageBuildVersionArn:GetImage' :: GetImage -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
imageBuildVersionArn
instance Data.ToHeaders GetImage where
toHeaders :: GetImage -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath GetImage where
toPath :: GetImage -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/GetImage"
instance Data.ToQuery GetImage where
toQuery :: GetImage -> QueryString
toQuery GetImage' {Text
imageBuildVersionArn :: Text
$sel:imageBuildVersionArn:GetImage' :: GetImage -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"imageBuildVersionArn" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
imageBuildVersionArn]
data GetImageResponse = GetImageResponse'
{
GetImageResponse -> Maybe Image
image :: Prelude.Maybe Image,
GetImageResponse -> Maybe Text
requestId :: Prelude.Maybe Prelude.Text,
GetImageResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetImageResponse -> GetImageResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetImageResponse -> GetImageResponse -> Bool
$c/= :: GetImageResponse -> GetImageResponse -> Bool
== :: GetImageResponse -> GetImageResponse -> Bool
$c== :: GetImageResponse -> GetImageResponse -> Bool
Prelude.Eq, ReadPrec [GetImageResponse]
ReadPrec GetImageResponse
Int -> ReadS GetImageResponse
ReadS [GetImageResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetImageResponse]
$creadListPrec :: ReadPrec [GetImageResponse]
readPrec :: ReadPrec GetImageResponse
$creadPrec :: ReadPrec GetImageResponse
readList :: ReadS [GetImageResponse]
$creadList :: ReadS [GetImageResponse]
readsPrec :: Int -> ReadS GetImageResponse
$creadsPrec :: Int -> ReadS GetImageResponse
Prelude.Read, Int -> GetImageResponse -> ShowS
[GetImageResponse] -> ShowS
GetImageResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetImageResponse] -> ShowS
$cshowList :: [GetImageResponse] -> ShowS
show :: GetImageResponse -> String
$cshow :: GetImageResponse -> String
showsPrec :: Int -> GetImageResponse -> ShowS
$cshowsPrec :: Int -> GetImageResponse -> ShowS
Prelude.Show, forall x. Rep GetImageResponse x -> GetImageResponse
forall x. GetImageResponse -> Rep GetImageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetImageResponse x -> GetImageResponse
$cfrom :: forall x. GetImageResponse -> Rep GetImageResponse x
Prelude.Generic)
newGetImageResponse ::
Prelude.Int ->
GetImageResponse
newGetImageResponse :: Int -> GetImageResponse
newGetImageResponse Int
pHttpStatus_ =
GetImageResponse'
{ $sel:image:GetImageResponse' :: Maybe Image
image = forall a. Maybe a
Prelude.Nothing,
$sel:requestId:GetImageResponse' :: Maybe Text
requestId = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetImageResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getImageResponse_image :: Lens.Lens' GetImageResponse (Prelude.Maybe Image)
getImageResponse_image :: Lens' GetImageResponse (Maybe Image)
getImageResponse_image = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetImageResponse' {Maybe Image
image :: Maybe Image
$sel:image:GetImageResponse' :: GetImageResponse -> Maybe Image
image} -> Maybe Image
image) (\s :: GetImageResponse
s@GetImageResponse' {} Maybe Image
a -> GetImageResponse
s {$sel:image:GetImageResponse' :: Maybe Image
image = Maybe Image
a} :: GetImageResponse)
getImageResponse_requestId :: Lens.Lens' GetImageResponse (Prelude.Maybe Prelude.Text)
getImageResponse_requestId :: Lens' GetImageResponse (Maybe Text)
getImageResponse_requestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetImageResponse' {Maybe Text
requestId :: Maybe Text
$sel:requestId:GetImageResponse' :: GetImageResponse -> Maybe Text
requestId} -> Maybe Text
requestId) (\s :: GetImageResponse
s@GetImageResponse' {} Maybe Text
a -> GetImageResponse
s {$sel:requestId:GetImageResponse' :: Maybe Text
requestId = Maybe Text
a} :: GetImageResponse)
getImageResponse_httpStatus :: Lens.Lens' GetImageResponse Prelude.Int
getImageResponse_httpStatus :: Lens' GetImageResponse Int
getImageResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetImageResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetImageResponse' :: GetImageResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetImageResponse
s@GetImageResponse' {} Int
a -> GetImageResponse
s {$sel:httpStatus:GetImageResponse' :: Int
httpStatus = Int
a} :: GetImageResponse)
instance Prelude.NFData GetImageResponse where
rnf :: GetImageResponse -> ()
rnf GetImageResponse' {Int
Maybe Text
Maybe Image
httpStatus :: Int
requestId :: Maybe Text
image :: Maybe Image
$sel:httpStatus:GetImageResponse' :: GetImageResponse -> Int
$sel:requestId:GetImageResponse' :: GetImageResponse -> Maybe Text
$sel:image:GetImageResponse' :: GetImageResponse -> Maybe Image
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Image
image
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
requestId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus