{-# 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.GlobalAccelerator.DescribeAccelerator
(
DescribeAccelerator (..),
newDescribeAccelerator,
describeAccelerator_acceleratorArn,
DescribeAcceleratorResponse (..),
newDescribeAcceleratorResponse,
describeAcceleratorResponse_accelerator,
describeAcceleratorResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GlobalAccelerator.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeAccelerator = DescribeAccelerator'
{
DescribeAccelerator -> Text
acceleratorArn :: Prelude.Text
}
deriving (DescribeAccelerator -> DescribeAccelerator -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAccelerator -> DescribeAccelerator -> Bool
$c/= :: DescribeAccelerator -> DescribeAccelerator -> Bool
== :: DescribeAccelerator -> DescribeAccelerator -> Bool
$c== :: DescribeAccelerator -> DescribeAccelerator -> Bool
Prelude.Eq, ReadPrec [DescribeAccelerator]
ReadPrec DescribeAccelerator
Int -> ReadS DescribeAccelerator
ReadS [DescribeAccelerator]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAccelerator]
$creadListPrec :: ReadPrec [DescribeAccelerator]
readPrec :: ReadPrec DescribeAccelerator
$creadPrec :: ReadPrec DescribeAccelerator
readList :: ReadS [DescribeAccelerator]
$creadList :: ReadS [DescribeAccelerator]
readsPrec :: Int -> ReadS DescribeAccelerator
$creadsPrec :: Int -> ReadS DescribeAccelerator
Prelude.Read, Int -> DescribeAccelerator -> ShowS
[DescribeAccelerator] -> ShowS
DescribeAccelerator -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAccelerator] -> ShowS
$cshowList :: [DescribeAccelerator] -> ShowS
show :: DescribeAccelerator -> String
$cshow :: DescribeAccelerator -> String
showsPrec :: Int -> DescribeAccelerator -> ShowS
$cshowsPrec :: Int -> DescribeAccelerator -> ShowS
Prelude.Show, forall x. Rep DescribeAccelerator x -> DescribeAccelerator
forall x. DescribeAccelerator -> Rep DescribeAccelerator x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeAccelerator x -> DescribeAccelerator
$cfrom :: forall x. DescribeAccelerator -> Rep DescribeAccelerator x
Prelude.Generic)
newDescribeAccelerator ::
Prelude.Text ->
DescribeAccelerator
newDescribeAccelerator :: Text -> DescribeAccelerator
newDescribeAccelerator Text
pAcceleratorArn_ =
DescribeAccelerator'
{ $sel:acceleratorArn:DescribeAccelerator' :: Text
acceleratorArn =
Text
pAcceleratorArn_
}
describeAccelerator_acceleratorArn :: Lens.Lens' DescribeAccelerator Prelude.Text
describeAccelerator_acceleratorArn :: Lens' DescribeAccelerator Text
describeAccelerator_acceleratorArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAccelerator' {Text
acceleratorArn :: Text
$sel:acceleratorArn:DescribeAccelerator' :: DescribeAccelerator -> Text
acceleratorArn} -> Text
acceleratorArn) (\s :: DescribeAccelerator
s@DescribeAccelerator' {} Text
a -> DescribeAccelerator
s {$sel:acceleratorArn:DescribeAccelerator' :: Text
acceleratorArn = Text
a} :: DescribeAccelerator)
instance Core.AWSRequest DescribeAccelerator where
type
AWSResponse DescribeAccelerator =
DescribeAcceleratorResponse
request :: (Service -> Service)
-> DescribeAccelerator -> Request DescribeAccelerator
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 DescribeAccelerator
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeAccelerator)))
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 Accelerator -> Int -> DescribeAcceleratorResponse
DescribeAcceleratorResponse'
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
"Accelerator")
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 DescribeAccelerator where
hashWithSalt :: Int -> DescribeAccelerator -> Int
hashWithSalt Int
_salt DescribeAccelerator' {Text
acceleratorArn :: Text
$sel:acceleratorArn:DescribeAccelerator' :: DescribeAccelerator -> Text
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
acceleratorArn
instance Prelude.NFData DescribeAccelerator where
rnf :: DescribeAccelerator -> ()
rnf DescribeAccelerator' {Text
acceleratorArn :: Text
$sel:acceleratorArn:DescribeAccelerator' :: DescribeAccelerator -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
acceleratorArn
instance Data.ToHeaders DescribeAccelerator where
toHeaders :: DescribeAccelerator -> 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
"GlobalAccelerator_V20180706.DescribeAccelerator" ::
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 DescribeAccelerator where
toJSON :: DescribeAccelerator -> Value
toJSON DescribeAccelerator' {Text
acceleratorArn :: Text
$sel:acceleratorArn:DescribeAccelerator' :: DescribeAccelerator -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"AcceleratorArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
acceleratorArn)
]
)
instance Data.ToPath DescribeAccelerator where
toPath :: DescribeAccelerator -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeAccelerator where
toQuery :: DescribeAccelerator -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeAcceleratorResponse = DescribeAcceleratorResponse'
{
DescribeAcceleratorResponse -> Maybe Accelerator
accelerator :: Prelude.Maybe Accelerator,
DescribeAcceleratorResponse -> Int
httpStatus :: Prelude.Int
}
deriving (DescribeAcceleratorResponse -> DescribeAcceleratorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAcceleratorResponse -> DescribeAcceleratorResponse -> Bool
$c/= :: DescribeAcceleratorResponse -> DescribeAcceleratorResponse -> Bool
== :: DescribeAcceleratorResponse -> DescribeAcceleratorResponse -> Bool
$c== :: DescribeAcceleratorResponse -> DescribeAcceleratorResponse -> Bool
Prelude.Eq, ReadPrec [DescribeAcceleratorResponse]
ReadPrec DescribeAcceleratorResponse
Int -> ReadS DescribeAcceleratorResponse
ReadS [DescribeAcceleratorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAcceleratorResponse]
$creadListPrec :: ReadPrec [DescribeAcceleratorResponse]
readPrec :: ReadPrec DescribeAcceleratorResponse
$creadPrec :: ReadPrec DescribeAcceleratorResponse
readList :: ReadS [DescribeAcceleratorResponse]
$creadList :: ReadS [DescribeAcceleratorResponse]
readsPrec :: Int -> ReadS DescribeAcceleratorResponse
$creadsPrec :: Int -> ReadS DescribeAcceleratorResponse
Prelude.Read, Int -> DescribeAcceleratorResponse -> ShowS
[DescribeAcceleratorResponse] -> ShowS
DescribeAcceleratorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAcceleratorResponse] -> ShowS
$cshowList :: [DescribeAcceleratorResponse] -> ShowS
show :: DescribeAcceleratorResponse -> String
$cshow :: DescribeAcceleratorResponse -> String
showsPrec :: Int -> DescribeAcceleratorResponse -> ShowS
$cshowsPrec :: Int -> DescribeAcceleratorResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeAcceleratorResponse x -> DescribeAcceleratorResponse
forall x.
DescribeAcceleratorResponse -> Rep DescribeAcceleratorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAcceleratorResponse x -> DescribeAcceleratorResponse
$cfrom :: forall x.
DescribeAcceleratorResponse -> Rep DescribeAcceleratorResponse x
Prelude.Generic)
newDescribeAcceleratorResponse ::
Prelude.Int ->
DescribeAcceleratorResponse
newDescribeAcceleratorResponse :: Int -> DescribeAcceleratorResponse
newDescribeAcceleratorResponse Int
pHttpStatus_ =
DescribeAcceleratorResponse'
{ $sel:accelerator:DescribeAcceleratorResponse' :: Maybe Accelerator
accelerator =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:DescribeAcceleratorResponse' :: Int
httpStatus = Int
pHttpStatus_
}
describeAcceleratorResponse_accelerator :: Lens.Lens' DescribeAcceleratorResponse (Prelude.Maybe Accelerator)
describeAcceleratorResponse_accelerator :: Lens' DescribeAcceleratorResponse (Maybe Accelerator)
describeAcceleratorResponse_accelerator = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAcceleratorResponse' {Maybe Accelerator
accelerator :: Maybe Accelerator
$sel:accelerator:DescribeAcceleratorResponse' :: DescribeAcceleratorResponse -> Maybe Accelerator
accelerator} -> Maybe Accelerator
accelerator) (\s :: DescribeAcceleratorResponse
s@DescribeAcceleratorResponse' {} Maybe Accelerator
a -> DescribeAcceleratorResponse
s {$sel:accelerator:DescribeAcceleratorResponse' :: Maybe Accelerator
accelerator = Maybe Accelerator
a} :: DescribeAcceleratorResponse)
describeAcceleratorResponse_httpStatus :: Lens.Lens' DescribeAcceleratorResponse Prelude.Int
describeAcceleratorResponse_httpStatus :: Lens' DescribeAcceleratorResponse Int
describeAcceleratorResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAcceleratorResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeAcceleratorResponse' :: DescribeAcceleratorResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeAcceleratorResponse
s@DescribeAcceleratorResponse' {} Int
a -> DescribeAcceleratorResponse
s {$sel:httpStatus:DescribeAcceleratorResponse' :: Int
httpStatus = Int
a} :: DescribeAcceleratorResponse)
instance Prelude.NFData DescribeAcceleratorResponse where
rnf :: DescribeAcceleratorResponse -> ()
rnf DescribeAcceleratorResponse' {Int
Maybe Accelerator
httpStatus :: Int
accelerator :: Maybe Accelerator
$sel:httpStatus:DescribeAcceleratorResponse' :: DescribeAcceleratorResponse -> Int
$sel:accelerator:DescribeAcceleratorResponse' :: DescribeAcceleratorResponse -> Maybe Accelerator
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Accelerator
accelerator
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus