{-# 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.TestMetricFilter
(
TestMetricFilter (..),
newTestMetricFilter,
testMetricFilter_filterPattern,
testMetricFilter_logEventMessages,
TestMetricFilterResponse (..),
newTestMetricFilterResponse,
testMetricFilterResponse_matches,
testMetricFilterResponse_httpStatus,
)
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 TestMetricFilter = TestMetricFilter'
{ TestMetricFilter -> Text
filterPattern :: Prelude.Text,
TestMetricFilter -> NonEmpty Text
logEventMessages :: Prelude.NonEmpty Prelude.Text
}
deriving (TestMetricFilter -> TestMetricFilter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TestMetricFilter -> TestMetricFilter -> Bool
$c/= :: TestMetricFilter -> TestMetricFilter -> Bool
== :: TestMetricFilter -> TestMetricFilter -> Bool
$c== :: TestMetricFilter -> TestMetricFilter -> Bool
Prelude.Eq, ReadPrec [TestMetricFilter]
ReadPrec TestMetricFilter
Int -> ReadS TestMetricFilter
ReadS [TestMetricFilter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TestMetricFilter]
$creadListPrec :: ReadPrec [TestMetricFilter]
readPrec :: ReadPrec TestMetricFilter
$creadPrec :: ReadPrec TestMetricFilter
readList :: ReadS [TestMetricFilter]
$creadList :: ReadS [TestMetricFilter]
readsPrec :: Int -> ReadS TestMetricFilter
$creadsPrec :: Int -> ReadS TestMetricFilter
Prelude.Read, Int -> TestMetricFilter -> ShowS
[TestMetricFilter] -> ShowS
TestMetricFilter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TestMetricFilter] -> ShowS
$cshowList :: [TestMetricFilter] -> ShowS
show :: TestMetricFilter -> String
$cshow :: TestMetricFilter -> String
showsPrec :: Int -> TestMetricFilter -> ShowS
$cshowsPrec :: Int -> TestMetricFilter -> ShowS
Prelude.Show, forall x. Rep TestMetricFilter x -> TestMetricFilter
forall x. TestMetricFilter -> Rep TestMetricFilter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TestMetricFilter x -> TestMetricFilter
$cfrom :: forall x. TestMetricFilter -> Rep TestMetricFilter x
Prelude.Generic)
newTestMetricFilter ::
Prelude.Text ->
Prelude.NonEmpty Prelude.Text ->
TestMetricFilter
newTestMetricFilter :: Text -> NonEmpty Text -> TestMetricFilter
newTestMetricFilter
Text
pFilterPattern_
NonEmpty Text
pLogEventMessages_ =
TestMetricFilter'
{ $sel:filterPattern:TestMetricFilter' :: Text
filterPattern = Text
pFilterPattern_,
$sel:logEventMessages:TestMetricFilter' :: NonEmpty Text
logEventMessages =
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pLogEventMessages_
}
testMetricFilter_filterPattern :: Lens.Lens' TestMetricFilter Prelude.Text
testMetricFilter_filterPattern :: Lens' TestMetricFilter Text
testMetricFilter_filterPattern = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TestMetricFilter' {Text
filterPattern :: Text
$sel:filterPattern:TestMetricFilter' :: TestMetricFilter -> Text
filterPattern} -> Text
filterPattern) (\s :: TestMetricFilter
s@TestMetricFilter' {} Text
a -> TestMetricFilter
s {$sel:filterPattern:TestMetricFilter' :: Text
filterPattern = Text
a} :: TestMetricFilter)
testMetricFilter_logEventMessages :: Lens.Lens' TestMetricFilter (Prelude.NonEmpty Prelude.Text)
testMetricFilter_logEventMessages :: Lens' TestMetricFilter (NonEmpty Text)
testMetricFilter_logEventMessages = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TestMetricFilter' {NonEmpty Text
logEventMessages :: NonEmpty Text
$sel:logEventMessages:TestMetricFilter' :: TestMetricFilter -> NonEmpty Text
logEventMessages} -> NonEmpty Text
logEventMessages) (\s :: TestMetricFilter
s@TestMetricFilter' {} NonEmpty Text
a -> TestMetricFilter
s {$sel:logEventMessages:TestMetricFilter' :: NonEmpty Text
logEventMessages = NonEmpty Text
a} :: TestMetricFilter) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest TestMetricFilter where
type
AWSResponse TestMetricFilter =
TestMetricFilterResponse
request :: (Service -> Service)
-> TestMetricFilter -> Request TestMetricFilter
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 TestMetricFilter
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse TestMetricFilter)))
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 [MetricFilterMatchRecord] -> Int -> TestMetricFilterResponse
TestMetricFilterResponse'
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
"matches" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
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 TestMetricFilter where
hashWithSalt :: Int -> TestMetricFilter -> Int
hashWithSalt Int
_salt TestMetricFilter' {NonEmpty Text
Text
logEventMessages :: NonEmpty Text
filterPattern :: Text
$sel:logEventMessages:TestMetricFilter' :: TestMetricFilter -> NonEmpty Text
$sel:filterPattern:TestMetricFilter' :: TestMetricFilter -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
filterPattern
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty Text
logEventMessages
instance Prelude.NFData TestMetricFilter where
rnf :: TestMetricFilter -> ()
rnf TestMetricFilter' {NonEmpty Text
Text
logEventMessages :: NonEmpty Text
filterPattern :: Text
$sel:logEventMessages:TestMetricFilter' :: TestMetricFilter -> NonEmpty Text
$sel:filterPattern:TestMetricFilter' :: TestMetricFilter -> Text
..} =
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 NonEmpty Text
logEventMessages
instance Data.ToHeaders TestMetricFilter where
toHeaders :: TestMetricFilter -> 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
"Logs_20140328.TestMetricFilter" ::
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 TestMetricFilter where
toJSON :: TestMetricFilter -> Value
toJSON TestMetricFilter' {NonEmpty Text
Text
logEventMessages :: NonEmpty Text
filterPattern :: Text
$sel:logEventMessages:TestMetricFilter' :: TestMetricFilter -> NonEmpty Text
$sel:filterPattern:TestMetricFilter' :: TestMetricFilter -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ 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
"logEventMessages" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty Text
logEventMessages)
]
)
instance Data.ToPath TestMetricFilter where
toPath :: TestMetricFilter -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery TestMetricFilter where
toQuery :: TestMetricFilter -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data TestMetricFilterResponse = TestMetricFilterResponse'
{
TestMetricFilterResponse -> Maybe [MetricFilterMatchRecord]
matches :: Prelude.Maybe [MetricFilterMatchRecord],
TestMetricFilterResponse -> Int
httpStatus :: Prelude.Int
}
deriving (TestMetricFilterResponse -> TestMetricFilterResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TestMetricFilterResponse -> TestMetricFilterResponse -> Bool
$c/= :: TestMetricFilterResponse -> TestMetricFilterResponse -> Bool
== :: TestMetricFilterResponse -> TestMetricFilterResponse -> Bool
$c== :: TestMetricFilterResponse -> TestMetricFilterResponse -> Bool
Prelude.Eq, ReadPrec [TestMetricFilterResponse]
ReadPrec TestMetricFilterResponse
Int -> ReadS TestMetricFilterResponse
ReadS [TestMetricFilterResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TestMetricFilterResponse]
$creadListPrec :: ReadPrec [TestMetricFilterResponse]
readPrec :: ReadPrec TestMetricFilterResponse
$creadPrec :: ReadPrec TestMetricFilterResponse
readList :: ReadS [TestMetricFilterResponse]
$creadList :: ReadS [TestMetricFilterResponse]
readsPrec :: Int -> ReadS TestMetricFilterResponse
$creadsPrec :: Int -> ReadS TestMetricFilterResponse
Prelude.Read, Int -> TestMetricFilterResponse -> ShowS
[TestMetricFilterResponse] -> ShowS
TestMetricFilterResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TestMetricFilterResponse] -> ShowS
$cshowList :: [TestMetricFilterResponse] -> ShowS
show :: TestMetricFilterResponse -> String
$cshow :: TestMetricFilterResponse -> String
showsPrec :: Int -> TestMetricFilterResponse -> ShowS
$cshowsPrec :: Int -> TestMetricFilterResponse -> ShowS
Prelude.Show, forall x.
Rep TestMetricFilterResponse x -> TestMetricFilterResponse
forall x.
TestMetricFilterResponse -> Rep TestMetricFilterResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep TestMetricFilterResponse x -> TestMetricFilterResponse
$cfrom :: forall x.
TestMetricFilterResponse -> Rep TestMetricFilterResponse x
Prelude.Generic)
newTestMetricFilterResponse ::
Prelude.Int ->
TestMetricFilterResponse
newTestMetricFilterResponse :: Int -> TestMetricFilterResponse
newTestMetricFilterResponse Int
pHttpStatus_ =
TestMetricFilterResponse'
{ $sel:matches:TestMetricFilterResponse' :: Maybe [MetricFilterMatchRecord]
matches =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:TestMetricFilterResponse' :: Int
httpStatus = Int
pHttpStatus_
}
testMetricFilterResponse_matches :: Lens.Lens' TestMetricFilterResponse (Prelude.Maybe [MetricFilterMatchRecord])
testMetricFilterResponse_matches :: Lens' TestMetricFilterResponse (Maybe [MetricFilterMatchRecord])
testMetricFilterResponse_matches = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TestMetricFilterResponse' {Maybe [MetricFilterMatchRecord]
matches :: Maybe [MetricFilterMatchRecord]
$sel:matches:TestMetricFilterResponse' :: TestMetricFilterResponse -> Maybe [MetricFilterMatchRecord]
matches} -> Maybe [MetricFilterMatchRecord]
matches) (\s :: TestMetricFilterResponse
s@TestMetricFilterResponse' {} Maybe [MetricFilterMatchRecord]
a -> TestMetricFilterResponse
s {$sel:matches:TestMetricFilterResponse' :: Maybe [MetricFilterMatchRecord]
matches = Maybe [MetricFilterMatchRecord]
a} :: TestMetricFilterResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
testMetricFilterResponse_httpStatus :: Lens.Lens' TestMetricFilterResponse Prelude.Int
testMetricFilterResponse_httpStatus :: Lens' TestMetricFilterResponse Int
testMetricFilterResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TestMetricFilterResponse' {Int
httpStatus :: Int
$sel:httpStatus:TestMetricFilterResponse' :: TestMetricFilterResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: TestMetricFilterResponse
s@TestMetricFilterResponse' {} Int
a -> TestMetricFilterResponse
s {$sel:httpStatus:TestMetricFilterResponse' :: Int
httpStatus = Int
a} :: TestMetricFilterResponse)
instance Prelude.NFData TestMetricFilterResponse where
rnf :: TestMetricFilterResponse -> ()
rnf TestMetricFilterResponse' {Int
Maybe [MetricFilterMatchRecord]
httpStatus :: Int
matches :: Maybe [MetricFilterMatchRecord]
$sel:httpStatus:TestMetricFilterResponse' :: TestMetricFilterResponse -> Int
$sel:matches:TestMetricFilterResponse' :: TestMetricFilterResponse -> Maybe [MetricFilterMatchRecord]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [MetricFilterMatchRecord]
matches
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus