{-# 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.CloudWatchLogs.PutSubscriptionFilter
(
PutSubscriptionFilter (..),
newPutSubscriptionFilter,
putSubscriptionFilter_distribution,
putSubscriptionFilter_roleArn,
putSubscriptionFilter_logGroupName,
putSubscriptionFilter_filterName,
putSubscriptionFilter_filterPattern,
putSubscriptionFilter_destinationArn,
PutSubscriptionFilterResponse (..),
newPutSubscriptionFilterResponse,
)
where
import Amazonka.CloudWatchLogs.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data PutSubscriptionFilter = PutSubscriptionFilter'
{
PutSubscriptionFilter -> Maybe Distribution
distribution :: Prelude.Maybe Distribution,
PutSubscriptionFilter -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
PutSubscriptionFilter -> Text
logGroupName :: Prelude.Text,
PutSubscriptionFilter -> Text
filterName :: Prelude.Text,
PutSubscriptionFilter -> Text
filterPattern :: Prelude.Text,
PutSubscriptionFilter -> Text
destinationArn :: Prelude.Text
}
deriving (PutSubscriptionFilter -> PutSubscriptionFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutSubscriptionFilter -> PutSubscriptionFilter -> Bool
$c/= :: PutSubscriptionFilter -> PutSubscriptionFilter -> Bool
== :: PutSubscriptionFilter -> PutSubscriptionFilter -> Bool
$c== :: PutSubscriptionFilter -> PutSubscriptionFilter -> Bool
Prelude.Eq, ReadPrec [PutSubscriptionFilter]
ReadPrec PutSubscriptionFilter
Int -> ReadS PutSubscriptionFilter
ReadS [PutSubscriptionFilter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutSubscriptionFilter]
$creadListPrec :: ReadPrec [PutSubscriptionFilter]
readPrec :: ReadPrec PutSubscriptionFilter
$creadPrec :: ReadPrec PutSubscriptionFilter
readList :: ReadS [PutSubscriptionFilter]
$creadList :: ReadS [PutSubscriptionFilter]
readsPrec :: Int -> ReadS PutSubscriptionFilter
$creadsPrec :: Int -> ReadS PutSubscriptionFilter
Prelude.Read, Int -> PutSubscriptionFilter -> ShowS
[PutSubscriptionFilter] -> ShowS
PutSubscriptionFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutSubscriptionFilter] -> ShowS
$cshowList :: [PutSubscriptionFilter] -> ShowS
show :: PutSubscriptionFilter -> String
$cshow :: PutSubscriptionFilter -> String
showsPrec :: Int -> PutSubscriptionFilter -> ShowS
$cshowsPrec :: Int -> PutSubscriptionFilter -> ShowS
Prelude.Show, forall x. Rep PutSubscriptionFilter x -> PutSubscriptionFilter
forall x. PutSubscriptionFilter -> Rep PutSubscriptionFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PutSubscriptionFilter x -> PutSubscriptionFilter
$cfrom :: forall x. PutSubscriptionFilter -> Rep PutSubscriptionFilter x
Prelude.Generic)
newPutSubscriptionFilter ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
PutSubscriptionFilter
newPutSubscriptionFilter :: Text -> Text -> Text -> Text -> PutSubscriptionFilter
newPutSubscriptionFilter
Text
pLogGroupName_
Text
pFilterName_
Text
pFilterPattern_
Text
pDestinationArn_ =
PutSubscriptionFilter'
{ $sel:distribution:PutSubscriptionFilter' :: Maybe Distribution
distribution =
forall a. Maybe a
Prelude.Nothing,
$sel:roleArn:PutSubscriptionFilter' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
$sel:logGroupName:PutSubscriptionFilter' :: Text
logGroupName = Text
pLogGroupName_,
$sel:filterName:PutSubscriptionFilter' :: Text
filterName = Text
pFilterName_,
$sel:filterPattern:PutSubscriptionFilter' :: Text
filterPattern = Text
pFilterPattern_,
$sel:destinationArn:PutSubscriptionFilter' :: Text
destinationArn = Text
pDestinationArn_
}
putSubscriptionFilter_distribution :: Lens.Lens' PutSubscriptionFilter (Prelude.Maybe Distribution)
putSubscriptionFilter_distribution :: Lens' PutSubscriptionFilter (Maybe Distribution)
putSubscriptionFilter_distribution = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutSubscriptionFilter' {Maybe Distribution
distribution :: Maybe Distribution
$sel:distribution:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Distribution
distribution} -> Maybe Distribution
distribution) (\s :: PutSubscriptionFilter
s@PutSubscriptionFilter' {} Maybe Distribution
a -> PutSubscriptionFilter
s {$sel:distribution:PutSubscriptionFilter' :: Maybe Distribution
distribution = Maybe Distribution
a} :: PutSubscriptionFilter)
putSubscriptionFilter_roleArn :: Lens.Lens' PutSubscriptionFilter (Prelude.Maybe Prelude.Text)
putSubscriptionFilter_roleArn :: Lens' PutSubscriptionFilter (Maybe Text)
putSubscriptionFilter_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutSubscriptionFilter' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: PutSubscriptionFilter
s@PutSubscriptionFilter' {} Maybe Text
a -> PutSubscriptionFilter
s {$sel:roleArn:PutSubscriptionFilter' :: Maybe Text
roleArn = Maybe Text
a} :: PutSubscriptionFilter)
putSubscriptionFilter_logGroupName :: Lens.Lens' PutSubscriptionFilter Prelude.Text
putSubscriptionFilter_logGroupName :: Lens' PutSubscriptionFilter Text
putSubscriptionFilter_logGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutSubscriptionFilter' {Text
logGroupName :: Text
$sel:logGroupName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
logGroupName} -> Text
logGroupName) (\s :: PutSubscriptionFilter
s@PutSubscriptionFilter' {} Text
a -> PutSubscriptionFilter
s {$sel:logGroupName:PutSubscriptionFilter' :: Text
logGroupName = Text
a} :: PutSubscriptionFilter)
putSubscriptionFilter_filterName :: Lens.Lens' PutSubscriptionFilter Prelude.Text
putSubscriptionFilter_filterName :: Lens' PutSubscriptionFilter Text
putSubscriptionFilter_filterName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutSubscriptionFilter' {Text
filterName :: Text
$sel:filterName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
filterName} -> Text
filterName) (\s :: PutSubscriptionFilter
s@PutSubscriptionFilter' {} Text
a -> PutSubscriptionFilter
s {$sel:filterName:PutSubscriptionFilter' :: Text
filterName = Text
a} :: PutSubscriptionFilter)
putSubscriptionFilter_filterPattern :: Lens.Lens' PutSubscriptionFilter Prelude.Text
putSubscriptionFilter_filterPattern :: Lens' PutSubscriptionFilter Text
putSubscriptionFilter_filterPattern = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutSubscriptionFilter' {Text
filterPattern :: Text
$sel:filterPattern:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
filterPattern} -> Text
filterPattern) (\s :: PutSubscriptionFilter
s@PutSubscriptionFilter' {} Text
a -> PutSubscriptionFilter
s {$sel:filterPattern:PutSubscriptionFilter' :: Text
filterPattern = Text
a} :: PutSubscriptionFilter)
putSubscriptionFilter_destinationArn :: Lens.Lens' PutSubscriptionFilter Prelude.Text
putSubscriptionFilter_destinationArn :: Lens' PutSubscriptionFilter Text
putSubscriptionFilter_destinationArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutSubscriptionFilter' {Text
destinationArn :: Text
$sel:destinationArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
destinationArn} -> Text
destinationArn) (\s :: PutSubscriptionFilter
s@PutSubscriptionFilter' {} Text
a -> PutSubscriptionFilter
s {$sel:destinationArn:PutSubscriptionFilter' :: Text
destinationArn = Text
a} :: PutSubscriptionFilter)
instance Core.AWSRequest PutSubscriptionFilter where
type
AWSResponse PutSubscriptionFilter =
PutSubscriptionFilterResponse
request :: (Service -> Service)
-> PutSubscriptionFilter -> Request PutSubscriptionFilter
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 PutSubscriptionFilter
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse PutSubscriptionFilter)))
response =
forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull PutSubscriptionFilterResponse
PutSubscriptionFilterResponse'
instance Prelude.Hashable PutSubscriptionFilter where
hashWithSalt :: Int -> PutSubscriptionFilter -> Int
hashWithSalt Int
_salt PutSubscriptionFilter' {Maybe Text
Maybe Distribution
Text
destinationArn :: Text
filterPattern :: Text
filterName :: Text
logGroupName :: Text
roleArn :: Maybe Text
distribution :: Maybe Distribution
$sel:destinationArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:filterPattern:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:filterName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:logGroupName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:roleArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Text
$sel:distribution:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Distribution
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Distribution
distribution
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
roleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
logGroupName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
filterName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
filterPattern
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
destinationArn
instance Prelude.NFData PutSubscriptionFilter where
rnf :: PutSubscriptionFilter -> ()
rnf PutSubscriptionFilter' {Maybe Text
Maybe Distribution
Text
destinationArn :: Text
filterPattern :: Text
filterName :: Text
logGroupName :: Text
roleArn :: Maybe Text
distribution :: Maybe Distribution
$sel:destinationArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:filterPattern:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:filterName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:logGroupName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:roleArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Text
$sel:distribution:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Distribution
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Distribution
distribution
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
logGroupName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
filterName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
filterPattern
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
destinationArn
instance Data.ToHeaders PutSubscriptionFilter where
toHeaders :: PutSubscriptionFilter -> [Header]
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 -> [Header]
Data.=# ( ByteString
"Logs_20140328.PutSubscriptionFilter" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON PutSubscriptionFilter where
toJSON :: PutSubscriptionFilter -> Value
toJSON PutSubscriptionFilter' {Maybe Text
Maybe Distribution
Text
destinationArn :: Text
filterPattern :: Text
filterName :: Text
logGroupName :: Text
roleArn :: Maybe Text
distribution :: Maybe Distribution
$sel:destinationArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:filterPattern:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:filterName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:logGroupName:PutSubscriptionFilter' :: PutSubscriptionFilter -> Text
$sel:roleArn:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Text
$sel:distribution:PutSubscriptionFilter' :: PutSubscriptionFilter -> Maybe Distribution
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"distribution" 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 Distribution
distribution,
(Key
"roleArn" 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
roleArn,
forall a. a -> Maybe a
Prelude.Just (Key
"logGroupName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
logGroupName),
forall a. a -> Maybe a
Prelude.Just (Key
"filterName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
filterName),
forall a. a -> Maybe a
Prelude.Just (Key
"filterPattern" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
filterPattern),
forall a. a -> Maybe a
Prelude.Just
(Key
"destinationArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
destinationArn)
]
)
instance Data.ToPath PutSubscriptionFilter where
toPath :: PutSubscriptionFilter -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery PutSubscriptionFilter where
toQuery :: PutSubscriptionFilter -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data PutSubscriptionFilterResponse = PutSubscriptionFilterResponse'
{
}
deriving (PutSubscriptionFilterResponse
-> PutSubscriptionFilterResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutSubscriptionFilterResponse
-> PutSubscriptionFilterResponse -> Bool
$c/= :: PutSubscriptionFilterResponse
-> PutSubscriptionFilterResponse -> Bool
== :: PutSubscriptionFilterResponse
-> PutSubscriptionFilterResponse -> Bool
$c== :: PutSubscriptionFilterResponse
-> PutSubscriptionFilterResponse -> Bool
Prelude.Eq, ReadPrec [PutSubscriptionFilterResponse]
ReadPrec PutSubscriptionFilterResponse
Int -> ReadS PutSubscriptionFilterResponse
ReadS [PutSubscriptionFilterResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutSubscriptionFilterResponse]
$creadListPrec :: ReadPrec [PutSubscriptionFilterResponse]
readPrec :: ReadPrec PutSubscriptionFilterResponse
$creadPrec :: ReadPrec PutSubscriptionFilterResponse
readList :: ReadS [PutSubscriptionFilterResponse]
$creadList :: ReadS [PutSubscriptionFilterResponse]
readsPrec :: Int -> ReadS PutSubscriptionFilterResponse
$creadsPrec :: Int -> ReadS PutSubscriptionFilterResponse
Prelude.Read, Int -> PutSubscriptionFilterResponse -> ShowS
[PutSubscriptionFilterResponse] -> ShowS
PutSubscriptionFilterResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutSubscriptionFilterResponse] -> ShowS
$cshowList :: [PutSubscriptionFilterResponse] -> ShowS
show :: PutSubscriptionFilterResponse -> String
$cshow :: PutSubscriptionFilterResponse -> String
showsPrec :: Int -> PutSubscriptionFilterResponse -> ShowS
$cshowsPrec :: Int -> PutSubscriptionFilterResponse -> ShowS
Prelude.Show, forall x.
Rep PutSubscriptionFilterResponse x
-> PutSubscriptionFilterResponse
forall x.
PutSubscriptionFilterResponse
-> Rep PutSubscriptionFilterResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutSubscriptionFilterResponse x
-> PutSubscriptionFilterResponse
$cfrom :: forall x.
PutSubscriptionFilterResponse
-> Rep PutSubscriptionFilterResponse x
Prelude.Generic)
newPutSubscriptionFilterResponse ::
PutSubscriptionFilterResponse
newPutSubscriptionFilterResponse :: PutSubscriptionFilterResponse
newPutSubscriptionFilterResponse =
PutSubscriptionFilterResponse
PutSubscriptionFilterResponse'
instance Prelude.NFData PutSubscriptionFilterResponse where
rnf :: PutSubscriptionFilterResponse -> ()
rnf PutSubscriptionFilterResponse
_ = ()