{-# 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.Lightsail.GetInstanceSnapshot
(
GetInstanceSnapshot (..),
newGetInstanceSnapshot,
getInstanceSnapshot_instanceSnapshotName,
GetInstanceSnapshotResponse (..),
newGetInstanceSnapshotResponse,
getInstanceSnapshotResponse_instanceSnapshot,
getInstanceSnapshotResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Lightsail.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetInstanceSnapshot = GetInstanceSnapshot'
{
GetInstanceSnapshot -> Text
instanceSnapshotName :: Prelude.Text
}
deriving (GetInstanceSnapshot -> GetInstanceSnapshot -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInstanceSnapshot -> GetInstanceSnapshot -> Bool
$c/= :: GetInstanceSnapshot -> GetInstanceSnapshot -> Bool
== :: GetInstanceSnapshot -> GetInstanceSnapshot -> Bool
$c== :: GetInstanceSnapshot -> GetInstanceSnapshot -> Bool
Prelude.Eq, ReadPrec [GetInstanceSnapshot]
ReadPrec GetInstanceSnapshot
Int -> ReadS GetInstanceSnapshot
ReadS [GetInstanceSnapshot]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetInstanceSnapshot]
$creadListPrec :: ReadPrec [GetInstanceSnapshot]
readPrec :: ReadPrec GetInstanceSnapshot
$creadPrec :: ReadPrec GetInstanceSnapshot
readList :: ReadS [GetInstanceSnapshot]
$creadList :: ReadS [GetInstanceSnapshot]
readsPrec :: Int -> ReadS GetInstanceSnapshot
$creadsPrec :: Int -> ReadS GetInstanceSnapshot
Prelude.Read, Int -> GetInstanceSnapshot -> ShowS
[GetInstanceSnapshot] -> ShowS
GetInstanceSnapshot -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInstanceSnapshot] -> ShowS
$cshowList :: [GetInstanceSnapshot] -> ShowS
show :: GetInstanceSnapshot -> String
$cshow :: GetInstanceSnapshot -> String
showsPrec :: Int -> GetInstanceSnapshot -> ShowS
$cshowsPrec :: Int -> GetInstanceSnapshot -> ShowS
Prelude.Show, forall x. Rep GetInstanceSnapshot x -> GetInstanceSnapshot
forall x. GetInstanceSnapshot -> Rep GetInstanceSnapshot x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetInstanceSnapshot x -> GetInstanceSnapshot
$cfrom :: forall x. GetInstanceSnapshot -> Rep GetInstanceSnapshot x
Prelude.Generic)
newGetInstanceSnapshot ::
Prelude.Text ->
GetInstanceSnapshot
newGetInstanceSnapshot :: Text -> GetInstanceSnapshot
newGetInstanceSnapshot Text
pInstanceSnapshotName_ =
GetInstanceSnapshot'
{ $sel:instanceSnapshotName:GetInstanceSnapshot' :: Text
instanceSnapshotName =
Text
pInstanceSnapshotName_
}
getInstanceSnapshot_instanceSnapshotName :: Lens.Lens' GetInstanceSnapshot Prelude.Text
getInstanceSnapshot_instanceSnapshotName :: Lens' GetInstanceSnapshot Text
getInstanceSnapshot_instanceSnapshotName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetInstanceSnapshot' {Text
instanceSnapshotName :: Text
$sel:instanceSnapshotName:GetInstanceSnapshot' :: GetInstanceSnapshot -> Text
instanceSnapshotName} -> Text
instanceSnapshotName) (\s :: GetInstanceSnapshot
s@GetInstanceSnapshot' {} Text
a -> GetInstanceSnapshot
s {$sel:instanceSnapshotName:GetInstanceSnapshot' :: Text
instanceSnapshotName = Text
a} :: GetInstanceSnapshot)
instance Core.AWSRequest GetInstanceSnapshot where
type
AWSResponse GetInstanceSnapshot =
GetInstanceSnapshotResponse
request :: (Service -> Service)
-> GetInstanceSnapshot -> Request GetInstanceSnapshot
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetInstanceSnapshot
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetInstanceSnapshot)))
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 InstanceSnapshot -> Int -> GetInstanceSnapshotResponse
GetInstanceSnapshotResponse'
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
"instanceSnapshot")
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 GetInstanceSnapshot where
hashWithSalt :: Int -> GetInstanceSnapshot -> Int
hashWithSalt Int
_salt GetInstanceSnapshot' {Text
instanceSnapshotName :: Text
$sel:instanceSnapshotName:GetInstanceSnapshot' :: GetInstanceSnapshot -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceSnapshotName
instance Prelude.NFData GetInstanceSnapshot where
rnf :: GetInstanceSnapshot -> ()
rnf GetInstanceSnapshot' {Text
instanceSnapshotName :: Text
$sel:instanceSnapshotName:GetInstanceSnapshot' :: GetInstanceSnapshot -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
instanceSnapshotName
instance Data.ToHeaders GetInstanceSnapshot where
toHeaders :: GetInstanceSnapshot -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"Lightsail_20161128.GetInstanceSnapshot" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetInstanceSnapshot where
toJSON :: GetInstanceSnapshot -> Value
toJSON GetInstanceSnapshot' {Text
instanceSnapshotName :: Text
$sel:instanceSnapshotName:GetInstanceSnapshot' :: GetInstanceSnapshot -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
( Key
"instanceSnapshotName"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
instanceSnapshotName
)
]
)
instance Data.ToPath GetInstanceSnapshot where
toPath :: GetInstanceSnapshot -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetInstanceSnapshot where
toQuery :: GetInstanceSnapshot -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetInstanceSnapshotResponse = GetInstanceSnapshotResponse'
{
GetInstanceSnapshotResponse -> Maybe InstanceSnapshot
instanceSnapshot :: Prelude.Maybe InstanceSnapshot,
GetInstanceSnapshotResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetInstanceSnapshotResponse -> GetInstanceSnapshotResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInstanceSnapshotResponse -> GetInstanceSnapshotResponse -> Bool
$c/= :: GetInstanceSnapshotResponse -> GetInstanceSnapshotResponse -> Bool
== :: GetInstanceSnapshotResponse -> GetInstanceSnapshotResponse -> Bool
$c== :: GetInstanceSnapshotResponse -> GetInstanceSnapshotResponse -> Bool
Prelude.Eq, ReadPrec [GetInstanceSnapshotResponse]
ReadPrec GetInstanceSnapshotResponse
Int -> ReadS GetInstanceSnapshotResponse
ReadS [GetInstanceSnapshotResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetInstanceSnapshotResponse]
$creadListPrec :: ReadPrec [GetInstanceSnapshotResponse]
readPrec :: ReadPrec GetInstanceSnapshotResponse
$creadPrec :: ReadPrec GetInstanceSnapshotResponse
readList :: ReadS [GetInstanceSnapshotResponse]
$creadList :: ReadS [GetInstanceSnapshotResponse]
readsPrec :: Int -> ReadS GetInstanceSnapshotResponse
$creadsPrec :: Int -> ReadS GetInstanceSnapshotResponse
Prelude.Read, Int -> GetInstanceSnapshotResponse -> ShowS
[GetInstanceSnapshotResponse] -> ShowS
GetInstanceSnapshotResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInstanceSnapshotResponse] -> ShowS
$cshowList :: [GetInstanceSnapshotResponse] -> ShowS
show :: GetInstanceSnapshotResponse -> String
$cshow :: GetInstanceSnapshotResponse -> String
showsPrec :: Int -> GetInstanceSnapshotResponse -> ShowS
$cshowsPrec :: Int -> GetInstanceSnapshotResponse -> ShowS
Prelude.Show, forall x.
Rep GetInstanceSnapshotResponse x -> GetInstanceSnapshotResponse
forall x.
GetInstanceSnapshotResponse -> Rep GetInstanceSnapshotResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetInstanceSnapshotResponse x -> GetInstanceSnapshotResponse
$cfrom :: forall x.
GetInstanceSnapshotResponse -> Rep GetInstanceSnapshotResponse x
Prelude.Generic)
newGetInstanceSnapshotResponse ::
Prelude.Int ->
GetInstanceSnapshotResponse
newGetInstanceSnapshotResponse :: Int -> GetInstanceSnapshotResponse
newGetInstanceSnapshotResponse Int
pHttpStatus_ =
GetInstanceSnapshotResponse'
{ $sel:instanceSnapshot:GetInstanceSnapshotResponse' :: Maybe InstanceSnapshot
instanceSnapshot =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetInstanceSnapshotResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getInstanceSnapshotResponse_instanceSnapshot :: Lens.Lens' GetInstanceSnapshotResponse (Prelude.Maybe InstanceSnapshot)
getInstanceSnapshotResponse_instanceSnapshot :: Lens' GetInstanceSnapshotResponse (Maybe InstanceSnapshot)
getInstanceSnapshotResponse_instanceSnapshot = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetInstanceSnapshotResponse' {Maybe InstanceSnapshot
instanceSnapshot :: Maybe InstanceSnapshot
$sel:instanceSnapshot:GetInstanceSnapshotResponse' :: GetInstanceSnapshotResponse -> Maybe InstanceSnapshot
instanceSnapshot} -> Maybe InstanceSnapshot
instanceSnapshot) (\s :: GetInstanceSnapshotResponse
s@GetInstanceSnapshotResponse' {} Maybe InstanceSnapshot
a -> GetInstanceSnapshotResponse
s {$sel:instanceSnapshot:GetInstanceSnapshotResponse' :: Maybe InstanceSnapshot
instanceSnapshot = Maybe InstanceSnapshot
a} :: GetInstanceSnapshotResponse)
getInstanceSnapshotResponse_httpStatus :: Lens.Lens' GetInstanceSnapshotResponse Prelude.Int
getInstanceSnapshotResponse_httpStatus :: Lens' GetInstanceSnapshotResponse Int
getInstanceSnapshotResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetInstanceSnapshotResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetInstanceSnapshotResponse' :: GetInstanceSnapshotResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetInstanceSnapshotResponse
s@GetInstanceSnapshotResponse' {} Int
a -> GetInstanceSnapshotResponse
s {$sel:httpStatus:GetInstanceSnapshotResponse' :: Int
httpStatus = Int
a} :: GetInstanceSnapshotResponse)
instance Prelude.NFData GetInstanceSnapshotResponse where
rnf :: GetInstanceSnapshotResponse -> ()
rnf GetInstanceSnapshotResponse' {Int
Maybe InstanceSnapshot
httpStatus :: Int
instanceSnapshot :: Maybe InstanceSnapshot
$sel:httpStatus:GetInstanceSnapshotResponse' :: GetInstanceSnapshotResponse -> Int
$sel:instanceSnapshot:GetInstanceSnapshotResponse' :: GetInstanceSnapshotResponse -> Maybe InstanceSnapshot
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceSnapshot
instanceSnapshot
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus