{-# 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.GetInstanceAccessDetails
(
GetInstanceAccessDetails (..),
newGetInstanceAccessDetails,
getInstanceAccessDetails_protocol,
getInstanceAccessDetails_instanceName,
GetInstanceAccessDetailsResponse (..),
newGetInstanceAccessDetailsResponse,
getInstanceAccessDetailsResponse_accessDetails,
getInstanceAccessDetailsResponse_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 GetInstanceAccessDetails = GetInstanceAccessDetails'
{
GetInstanceAccessDetails -> Maybe InstanceAccessProtocol
protocol :: Prelude.Maybe InstanceAccessProtocol,
GetInstanceAccessDetails -> Text
instanceName :: Prelude.Text
}
deriving (GetInstanceAccessDetails -> GetInstanceAccessDetails -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInstanceAccessDetails -> GetInstanceAccessDetails -> Bool
$c/= :: GetInstanceAccessDetails -> GetInstanceAccessDetails -> Bool
== :: GetInstanceAccessDetails -> GetInstanceAccessDetails -> Bool
$c== :: GetInstanceAccessDetails -> GetInstanceAccessDetails -> Bool
Prelude.Eq, ReadPrec [GetInstanceAccessDetails]
ReadPrec GetInstanceAccessDetails
Int -> ReadS GetInstanceAccessDetails
ReadS [GetInstanceAccessDetails]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetInstanceAccessDetails]
$creadListPrec :: ReadPrec [GetInstanceAccessDetails]
readPrec :: ReadPrec GetInstanceAccessDetails
$creadPrec :: ReadPrec GetInstanceAccessDetails
readList :: ReadS [GetInstanceAccessDetails]
$creadList :: ReadS [GetInstanceAccessDetails]
readsPrec :: Int -> ReadS GetInstanceAccessDetails
$creadsPrec :: Int -> ReadS GetInstanceAccessDetails
Prelude.Read, Int -> GetInstanceAccessDetails -> ShowS
[GetInstanceAccessDetails] -> ShowS
GetInstanceAccessDetails -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInstanceAccessDetails] -> ShowS
$cshowList :: [GetInstanceAccessDetails] -> ShowS
show :: GetInstanceAccessDetails -> String
$cshow :: GetInstanceAccessDetails -> String
showsPrec :: Int -> GetInstanceAccessDetails -> ShowS
$cshowsPrec :: Int -> GetInstanceAccessDetails -> ShowS
Prelude.Show, forall x.
Rep GetInstanceAccessDetails x -> GetInstanceAccessDetails
forall x.
GetInstanceAccessDetails -> Rep GetInstanceAccessDetails x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetInstanceAccessDetails x -> GetInstanceAccessDetails
$cfrom :: forall x.
GetInstanceAccessDetails -> Rep GetInstanceAccessDetails x
Prelude.Generic)
newGetInstanceAccessDetails ::
Prelude.Text ->
GetInstanceAccessDetails
newGetInstanceAccessDetails :: Text -> GetInstanceAccessDetails
newGetInstanceAccessDetails Text
pInstanceName_ =
GetInstanceAccessDetails'
{ $sel:protocol:GetInstanceAccessDetails' :: Maybe InstanceAccessProtocol
protocol =
forall a. Maybe a
Prelude.Nothing,
$sel:instanceName:GetInstanceAccessDetails' :: Text
instanceName = Text
pInstanceName_
}
getInstanceAccessDetails_protocol :: Lens.Lens' GetInstanceAccessDetails (Prelude.Maybe InstanceAccessProtocol)
getInstanceAccessDetails_protocol :: Lens' GetInstanceAccessDetails (Maybe InstanceAccessProtocol)
getInstanceAccessDetails_protocol = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetInstanceAccessDetails' {Maybe InstanceAccessProtocol
protocol :: Maybe InstanceAccessProtocol
$sel:protocol:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Maybe InstanceAccessProtocol
protocol} -> Maybe InstanceAccessProtocol
protocol) (\s :: GetInstanceAccessDetails
s@GetInstanceAccessDetails' {} Maybe InstanceAccessProtocol
a -> GetInstanceAccessDetails
s {$sel:protocol:GetInstanceAccessDetails' :: Maybe InstanceAccessProtocol
protocol = Maybe InstanceAccessProtocol
a} :: GetInstanceAccessDetails)
getInstanceAccessDetails_instanceName :: Lens.Lens' GetInstanceAccessDetails Prelude.Text
getInstanceAccessDetails_instanceName :: Lens' GetInstanceAccessDetails Text
getInstanceAccessDetails_instanceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetInstanceAccessDetails' {Text
instanceName :: Text
$sel:instanceName:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Text
instanceName} -> Text
instanceName) (\s :: GetInstanceAccessDetails
s@GetInstanceAccessDetails' {} Text
a -> GetInstanceAccessDetails
s {$sel:instanceName:GetInstanceAccessDetails' :: Text
instanceName = Text
a} :: GetInstanceAccessDetails)
instance Core.AWSRequest GetInstanceAccessDetails where
type
AWSResponse GetInstanceAccessDetails =
GetInstanceAccessDetailsResponse
request :: (Service -> Service)
-> GetInstanceAccessDetails -> Request GetInstanceAccessDetails
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 GetInstanceAccessDetails
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetInstanceAccessDetails)))
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 InstanceAccessDetails
-> Int -> GetInstanceAccessDetailsResponse
GetInstanceAccessDetailsResponse'
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
"accessDetails")
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 GetInstanceAccessDetails where
hashWithSalt :: Int -> GetInstanceAccessDetails -> Int
hashWithSalt Int
_salt GetInstanceAccessDetails' {Maybe InstanceAccessProtocol
Text
instanceName :: Text
protocol :: Maybe InstanceAccessProtocol
$sel:instanceName:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Text
$sel:protocol:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Maybe InstanceAccessProtocol
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceAccessProtocol
protocol
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceName
instance Prelude.NFData GetInstanceAccessDetails where
rnf :: GetInstanceAccessDetails -> ()
rnf GetInstanceAccessDetails' {Maybe InstanceAccessProtocol
Text
instanceName :: Text
protocol :: Maybe InstanceAccessProtocol
$sel:instanceName:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Text
$sel:protocol:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Maybe InstanceAccessProtocol
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceAccessProtocol
protocol
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
instanceName
instance Data.ToHeaders GetInstanceAccessDetails where
toHeaders :: GetInstanceAccessDetails -> 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.GetInstanceAccessDetails" ::
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 GetInstanceAccessDetails where
toJSON :: GetInstanceAccessDetails -> Value
toJSON GetInstanceAccessDetails' {Maybe InstanceAccessProtocol
Text
instanceName :: Text
protocol :: Maybe InstanceAccessProtocol
$sel:instanceName:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Text
$sel:protocol:GetInstanceAccessDetails' :: GetInstanceAccessDetails -> Maybe InstanceAccessProtocol
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"protocol" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InstanceAccessProtocol
protocol,
forall a. a -> Maybe a
Prelude.Just (Key
"instanceName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
instanceName)
]
)
instance Data.ToPath GetInstanceAccessDetails where
toPath :: GetInstanceAccessDetails -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetInstanceAccessDetails where
toQuery :: GetInstanceAccessDetails -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetInstanceAccessDetailsResponse = GetInstanceAccessDetailsResponse'
{
GetInstanceAccessDetailsResponse -> Maybe InstanceAccessDetails
accessDetails :: Prelude.Maybe InstanceAccessDetails,
GetInstanceAccessDetailsResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetInstanceAccessDetailsResponse
-> GetInstanceAccessDetailsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInstanceAccessDetailsResponse
-> GetInstanceAccessDetailsResponse -> Bool
$c/= :: GetInstanceAccessDetailsResponse
-> GetInstanceAccessDetailsResponse -> Bool
== :: GetInstanceAccessDetailsResponse
-> GetInstanceAccessDetailsResponse -> Bool
$c== :: GetInstanceAccessDetailsResponse
-> GetInstanceAccessDetailsResponse -> Bool
Prelude.Eq, ReadPrec [GetInstanceAccessDetailsResponse]
ReadPrec GetInstanceAccessDetailsResponse
Int -> ReadS GetInstanceAccessDetailsResponse
ReadS [GetInstanceAccessDetailsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetInstanceAccessDetailsResponse]
$creadListPrec :: ReadPrec [GetInstanceAccessDetailsResponse]
readPrec :: ReadPrec GetInstanceAccessDetailsResponse
$creadPrec :: ReadPrec GetInstanceAccessDetailsResponse
readList :: ReadS [GetInstanceAccessDetailsResponse]
$creadList :: ReadS [GetInstanceAccessDetailsResponse]
readsPrec :: Int -> ReadS GetInstanceAccessDetailsResponse
$creadsPrec :: Int -> ReadS GetInstanceAccessDetailsResponse
Prelude.Read, Int -> GetInstanceAccessDetailsResponse -> ShowS
[GetInstanceAccessDetailsResponse] -> ShowS
GetInstanceAccessDetailsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInstanceAccessDetailsResponse] -> ShowS
$cshowList :: [GetInstanceAccessDetailsResponse] -> ShowS
show :: GetInstanceAccessDetailsResponse -> String
$cshow :: GetInstanceAccessDetailsResponse -> String
showsPrec :: Int -> GetInstanceAccessDetailsResponse -> ShowS
$cshowsPrec :: Int -> GetInstanceAccessDetailsResponse -> ShowS
Prelude.Show, forall x.
Rep GetInstanceAccessDetailsResponse x
-> GetInstanceAccessDetailsResponse
forall x.
GetInstanceAccessDetailsResponse
-> Rep GetInstanceAccessDetailsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetInstanceAccessDetailsResponse x
-> GetInstanceAccessDetailsResponse
$cfrom :: forall x.
GetInstanceAccessDetailsResponse
-> Rep GetInstanceAccessDetailsResponse x
Prelude.Generic)
newGetInstanceAccessDetailsResponse ::
Prelude.Int ->
GetInstanceAccessDetailsResponse
newGetInstanceAccessDetailsResponse :: Int -> GetInstanceAccessDetailsResponse
newGetInstanceAccessDetailsResponse Int
pHttpStatus_ =
GetInstanceAccessDetailsResponse'
{ $sel:accessDetails:GetInstanceAccessDetailsResponse' :: Maybe InstanceAccessDetails
accessDetails =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetInstanceAccessDetailsResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getInstanceAccessDetailsResponse_accessDetails :: Lens.Lens' GetInstanceAccessDetailsResponse (Prelude.Maybe InstanceAccessDetails)
getInstanceAccessDetailsResponse_accessDetails :: Lens'
GetInstanceAccessDetailsResponse (Maybe InstanceAccessDetails)
getInstanceAccessDetailsResponse_accessDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetInstanceAccessDetailsResponse' {Maybe InstanceAccessDetails
accessDetails :: Maybe InstanceAccessDetails
$sel:accessDetails:GetInstanceAccessDetailsResponse' :: GetInstanceAccessDetailsResponse -> Maybe InstanceAccessDetails
accessDetails} -> Maybe InstanceAccessDetails
accessDetails) (\s :: GetInstanceAccessDetailsResponse
s@GetInstanceAccessDetailsResponse' {} Maybe InstanceAccessDetails
a -> GetInstanceAccessDetailsResponse
s {$sel:accessDetails:GetInstanceAccessDetailsResponse' :: Maybe InstanceAccessDetails
accessDetails = Maybe InstanceAccessDetails
a} :: GetInstanceAccessDetailsResponse)
getInstanceAccessDetailsResponse_httpStatus :: Lens.Lens' GetInstanceAccessDetailsResponse Prelude.Int
getInstanceAccessDetailsResponse_httpStatus :: Lens' GetInstanceAccessDetailsResponse Int
getInstanceAccessDetailsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetInstanceAccessDetailsResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetInstanceAccessDetailsResponse' :: GetInstanceAccessDetailsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetInstanceAccessDetailsResponse
s@GetInstanceAccessDetailsResponse' {} Int
a -> GetInstanceAccessDetailsResponse
s {$sel:httpStatus:GetInstanceAccessDetailsResponse' :: Int
httpStatus = Int
a} :: GetInstanceAccessDetailsResponse)
instance
Prelude.NFData
GetInstanceAccessDetailsResponse
where
rnf :: GetInstanceAccessDetailsResponse -> ()
rnf GetInstanceAccessDetailsResponse' {Int
Maybe InstanceAccessDetails
httpStatus :: Int
accessDetails :: Maybe InstanceAccessDetails
$sel:httpStatus:GetInstanceAccessDetailsResponse' :: GetInstanceAccessDetailsResponse -> Int
$sel:accessDetails:GetInstanceAccessDetailsResponse' :: GetInstanceAccessDetailsResponse -> Maybe InstanceAccessDetails
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceAccessDetails
accessDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus