{-# 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.Firehose.DescribeDeliveryStream
(
DescribeDeliveryStream (..),
newDescribeDeliveryStream,
describeDeliveryStream_exclusiveStartDestinationId,
describeDeliveryStream_limit,
describeDeliveryStream_deliveryStreamName,
DescribeDeliveryStreamResponse (..),
newDescribeDeliveryStreamResponse,
describeDeliveryStreamResponse_httpStatus,
describeDeliveryStreamResponse_deliveryStreamDescription,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Firehose.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DescribeDeliveryStream = DescribeDeliveryStream'
{
DescribeDeliveryStream -> Maybe Text
exclusiveStartDestinationId :: Prelude.Maybe Prelude.Text,
DescribeDeliveryStream -> Maybe Natural
limit :: Prelude.Maybe Prelude.Natural,
DescribeDeliveryStream -> Text
deliveryStreamName :: Prelude.Text
}
deriving (DescribeDeliveryStream -> DescribeDeliveryStream -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDeliveryStream -> DescribeDeliveryStream -> Bool
$c/= :: DescribeDeliveryStream -> DescribeDeliveryStream -> Bool
== :: DescribeDeliveryStream -> DescribeDeliveryStream -> Bool
$c== :: DescribeDeliveryStream -> DescribeDeliveryStream -> Bool
Prelude.Eq, ReadPrec [DescribeDeliveryStream]
ReadPrec DescribeDeliveryStream
Int -> ReadS DescribeDeliveryStream
ReadS [DescribeDeliveryStream]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDeliveryStream]
$creadListPrec :: ReadPrec [DescribeDeliveryStream]
readPrec :: ReadPrec DescribeDeliveryStream
$creadPrec :: ReadPrec DescribeDeliveryStream
readList :: ReadS [DescribeDeliveryStream]
$creadList :: ReadS [DescribeDeliveryStream]
readsPrec :: Int -> ReadS DescribeDeliveryStream
$creadsPrec :: Int -> ReadS DescribeDeliveryStream
Prelude.Read, Int -> DescribeDeliveryStream -> ShowS
[DescribeDeliveryStream] -> ShowS
DescribeDeliveryStream -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDeliveryStream] -> ShowS
$cshowList :: [DescribeDeliveryStream] -> ShowS
show :: DescribeDeliveryStream -> String
$cshow :: DescribeDeliveryStream -> String
showsPrec :: Int -> DescribeDeliveryStream -> ShowS
$cshowsPrec :: Int -> DescribeDeliveryStream -> ShowS
Prelude.Show, forall x. Rep DescribeDeliveryStream x -> DescribeDeliveryStream
forall x. DescribeDeliveryStream -> Rep DescribeDeliveryStream x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeDeliveryStream x -> DescribeDeliveryStream
$cfrom :: forall x. DescribeDeliveryStream -> Rep DescribeDeliveryStream x
Prelude.Generic)
newDescribeDeliveryStream ::
Prelude.Text ->
DescribeDeliveryStream
newDescribeDeliveryStream :: Text -> DescribeDeliveryStream
newDescribeDeliveryStream Text
pDeliveryStreamName_ =
DescribeDeliveryStream'
{ $sel:exclusiveStartDestinationId:DescribeDeliveryStream' :: Maybe Text
exclusiveStartDestinationId =
forall a. Maybe a
Prelude.Nothing,
$sel:limit:DescribeDeliveryStream' :: Maybe Natural
limit = forall a. Maybe a
Prelude.Nothing,
$sel:deliveryStreamName:DescribeDeliveryStream' :: Text
deliveryStreamName = Text
pDeliveryStreamName_
}
describeDeliveryStream_exclusiveStartDestinationId :: Lens.Lens' DescribeDeliveryStream (Prelude.Maybe Prelude.Text)
describeDeliveryStream_exclusiveStartDestinationId :: Lens' DescribeDeliveryStream (Maybe Text)
describeDeliveryStream_exclusiveStartDestinationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDeliveryStream' {Maybe Text
exclusiveStartDestinationId :: Maybe Text
$sel:exclusiveStartDestinationId:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Text
exclusiveStartDestinationId} -> Maybe Text
exclusiveStartDestinationId) (\s :: DescribeDeliveryStream
s@DescribeDeliveryStream' {} Maybe Text
a -> DescribeDeliveryStream
s {$sel:exclusiveStartDestinationId:DescribeDeliveryStream' :: Maybe Text
exclusiveStartDestinationId = Maybe Text
a} :: DescribeDeliveryStream)
describeDeliveryStream_limit :: Lens.Lens' DescribeDeliveryStream (Prelude.Maybe Prelude.Natural)
describeDeliveryStream_limit :: Lens' DescribeDeliveryStream (Maybe Natural)
describeDeliveryStream_limit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDeliveryStream' {Maybe Natural
limit :: Maybe Natural
$sel:limit:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Natural
limit} -> Maybe Natural
limit) (\s :: DescribeDeliveryStream
s@DescribeDeliveryStream' {} Maybe Natural
a -> DescribeDeliveryStream
s {$sel:limit:DescribeDeliveryStream' :: Maybe Natural
limit = Maybe Natural
a} :: DescribeDeliveryStream)
describeDeliveryStream_deliveryStreamName :: Lens.Lens' DescribeDeliveryStream Prelude.Text
describeDeliveryStream_deliveryStreamName :: Lens' DescribeDeliveryStream Text
describeDeliveryStream_deliveryStreamName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDeliveryStream' {Text
deliveryStreamName :: Text
$sel:deliveryStreamName:DescribeDeliveryStream' :: DescribeDeliveryStream -> Text
deliveryStreamName} -> Text
deliveryStreamName) (\s :: DescribeDeliveryStream
s@DescribeDeliveryStream' {} Text
a -> DescribeDeliveryStream
s {$sel:deliveryStreamName:DescribeDeliveryStream' :: Text
deliveryStreamName = Text
a} :: DescribeDeliveryStream)
instance Core.AWSRequest DescribeDeliveryStream where
type
AWSResponse DescribeDeliveryStream =
DescribeDeliveryStreamResponse
request :: (Service -> Service)
-> DescribeDeliveryStream -> Request DescribeDeliveryStream
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 DescribeDeliveryStream
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribeDeliveryStream)))
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 ->
Int -> DeliveryStreamDescription -> DescribeDeliveryStreamResponse
DescribeDeliveryStreamResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"DeliveryStreamDescription")
)
instance Prelude.Hashable DescribeDeliveryStream where
hashWithSalt :: Int -> DescribeDeliveryStream -> Int
hashWithSalt Int
_salt DescribeDeliveryStream' {Maybe Natural
Maybe Text
Text
deliveryStreamName :: Text
limit :: Maybe Natural
exclusiveStartDestinationId :: Maybe Text
$sel:deliveryStreamName:DescribeDeliveryStream' :: DescribeDeliveryStream -> Text
$sel:limit:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Natural
$sel:exclusiveStartDestinationId:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
exclusiveStartDestinationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
limit
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
deliveryStreamName
instance Prelude.NFData DescribeDeliveryStream where
rnf :: DescribeDeliveryStream -> ()
rnf DescribeDeliveryStream' {Maybe Natural
Maybe Text
Text
deliveryStreamName :: Text
limit :: Maybe Natural
exclusiveStartDestinationId :: Maybe Text
$sel:deliveryStreamName:DescribeDeliveryStream' :: DescribeDeliveryStream -> Text
$sel:limit:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Natural
$sel:exclusiveStartDestinationId:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
exclusiveStartDestinationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
limit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
deliveryStreamName
instance Data.ToHeaders DescribeDeliveryStream where
toHeaders :: DescribeDeliveryStream -> 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
"Firehose_20150804.DescribeDeliveryStream" ::
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 DescribeDeliveryStream where
toJSON :: DescribeDeliveryStream -> Value
toJSON DescribeDeliveryStream' {Maybe Natural
Maybe Text
Text
deliveryStreamName :: Text
limit :: Maybe Natural
exclusiveStartDestinationId :: Maybe Text
$sel:deliveryStreamName:DescribeDeliveryStream' :: DescribeDeliveryStream -> Text
$sel:limit:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Natural
$sel:exclusiveStartDestinationId:DescribeDeliveryStream' :: DescribeDeliveryStream -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ExclusiveStartDestinationId" 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 Text
exclusiveStartDestinationId,
(Key
"Limit" 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 Natural
limit,
forall a. a -> Maybe a
Prelude.Just
(Key
"DeliveryStreamName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
deliveryStreamName)
]
)
instance Data.ToPath DescribeDeliveryStream where
toPath :: DescribeDeliveryStream -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DescribeDeliveryStream where
toQuery :: DescribeDeliveryStream -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribeDeliveryStreamResponse = DescribeDeliveryStreamResponse'
{
DescribeDeliveryStreamResponse -> Int
httpStatus :: Prelude.Int,
DescribeDeliveryStreamResponse -> DeliveryStreamDescription
deliveryStreamDescription :: DeliveryStreamDescription
}
deriving (DescribeDeliveryStreamResponse
-> DescribeDeliveryStreamResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDeliveryStreamResponse
-> DescribeDeliveryStreamResponse -> Bool
$c/= :: DescribeDeliveryStreamResponse
-> DescribeDeliveryStreamResponse -> Bool
== :: DescribeDeliveryStreamResponse
-> DescribeDeliveryStreamResponse -> Bool
$c== :: DescribeDeliveryStreamResponse
-> DescribeDeliveryStreamResponse -> Bool
Prelude.Eq, Int -> DescribeDeliveryStreamResponse -> ShowS
[DescribeDeliveryStreamResponse] -> ShowS
DescribeDeliveryStreamResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDeliveryStreamResponse] -> ShowS
$cshowList :: [DescribeDeliveryStreamResponse] -> ShowS
show :: DescribeDeliveryStreamResponse -> String
$cshow :: DescribeDeliveryStreamResponse -> String
showsPrec :: Int -> DescribeDeliveryStreamResponse -> ShowS
$cshowsPrec :: Int -> DescribeDeliveryStreamResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDeliveryStreamResponse x
-> DescribeDeliveryStreamResponse
forall x.
DescribeDeliveryStreamResponse
-> Rep DescribeDeliveryStreamResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDeliveryStreamResponse x
-> DescribeDeliveryStreamResponse
$cfrom :: forall x.
DescribeDeliveryStreamResponse
-> Rep DescribeDeliveryStreamResponse x
Prelude.Generic)
newDescribeDeliveryStreamResponse ::
Prelude.Int ->
DeliveryStreamDescription ->
DescribeDeliveryStreamResponse
newDescribeDeliveryStreamResponse :: Int -> DeliveryStreamDescription -> DescribeDeliveryStreamResponse
newDescribeDeliveryStreamResponse
Int
pHttpStatus_
DeliveryStreamDescription
pDeliveryStreamDescription_ =
DescribeDeliveryStreamResponse'
{ $sel:httpStatus:DescribeDeliveryStreamResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:deliveryStreamDescription:DescribeDeliveryStreamResponse' :: DeliveryStreamDescription
deliveryStreamDescription =
DeliveryStreamDescription
pDeliveryStreamDescription_
}
describeDeliveryStreamResponse_httpStatus :: Lens.Lens' DescribeDeliveryStreamResponse Prelude.Int
describeDeliveryStreamResponse_httpStatus :: Lens' DescribeDeliveryStreamResponse Int
describeDeliveryStreamResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDeliveryStreamResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeDeliveryStreamResponse' :: DescribeDeliveryStreamResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeDeliveryStreamResponse
s@DescribeDeliveryStreamResponse' {} Int
a -> DescribeDeliveryStreamResponse
s {$sel:httpStatus:DescribeDeliveryStreamResponse' :: Int
httpStatus = Int
a} :: DescribeDeliveryStreamResponse)
describeDeliveryStreamResponse_deliveryStreamDescription :: Lens.Lens' DescribeDeliveryStreamResponse DeliveryStreamDescription
describeDeliveryStreamResponse_deliveryStreamDescription :: Lens' DescribeDeliveryStreamResponse DeliveryStreamDescription
describeDeliveryStreamResponse_deliveryStreamDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDeliveryStreamResponse' {DeliveryStreamDescription
deliveryStreamDescription :: DeliveryStreamDescription
$sel:deliveryStreamDescription:DescribeDeliveryStreamResponse' :: DescribeDeliveryStreamResponse -> DeliveryStreamDescription
deliveryStreamDescription} -> DeliveryStreamDescription
deliveryStreamDescription) (\s :: DescribeDeliveryStreamResponse
s@DescribeDeliveryStreamResponse' {} DeliveryStreamDescription
a -> DescribeDeliveryStreamResponse
s {$sel:deliveryStreamDescription:DescribeDeliveryStreamResponse' :: DeliveryStreamDescription
deliveryStreamDescription = DeliveryStreamDescription
a} :: DescribeDeliveryStreamResponse)
instance
Prelude.NFData
DescribeDeliveryStreamResponse
where
rnf :: DescribeDeliveryStreamResponse -> ()
rnf DescribeDeliveryStreamResponse' {Int
DeliveryStreamDescription
deliveryStreamDescription :: DeliveryStreamDescription
httpStatus :: Int
$sel:deliveryStreamDescription:DescribeDeliveryStreamResponse' :: DescribeDeliveryStreamResponse -> DeliveryStreamDescription
$sel:httpStatus:DescribeDeliveryStreamResponse' :: DescribeDeliveryStreamResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DeliveryStreamDescription
deliveryStreamDescription