{-# 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.IoT.GetPercentiles
(
GetPercentiles (..),
newGetPercentiles,
getPercentiles_aggregationField,
getPercentiles_indexName,
getPercentiles_percents,
getPercentiles_queryVersion,
getPercentiles_queryString,
GetPercentilesResponse (..),
newGetPercentilesResponse,
getPercentilesResponse_percentiles,
getPercentilesResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoT.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetPercentiles = GetPercentiles'
{
GetPercentiles -> Maybe Text
aggregationField :: Prelude.Maybe Prelude.Text,
GetPercentiles -> Maybe Text
indexName :: Prelude.Maybe Prelude.Text,
GetPercentiles -> Maybe [Double]
percents :: Prelude.Maybe [Prelude.Double],
GetPercentiles -> Maybe Text
queryVersion :: Prelude.Maybe Prelude.Text,
GetPercentiles -> Text
queryString :: Prelude.Text
}
deriving (GetPercentiles -> GetPercentiles -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetPercentiles -> GetPercentiles -> Bool
$c/= :: GetPercentiles -> GetPercentiles -> Bool
== :: GetPercentiles -> GetPercentiles -> Bool
$c== :: GetPercentiles -> GetPercentiles -> Bool
Prelude.Eq, ReadPrec [GetPercentiles]
ReadPrec GetPercentiles
Int -> ReadS GetPercentiles
ReadS [GetPercentiles]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetPercentiles]
$creadListPrec :: ReadPrec [GetPercentiles]
readPrec :: ReadPrec GetPercentiles
$creadPrec :: ReadPrec GetPercentiles
readList :: ReadS [GetPercentiles]
$creadList :: ReadS [GetPercentiles]
readsPrec :: Int -> ReadS GetPercentiles
$creadsPrec :: Int -> ReadS GetPercentiles
Prelude.Read, Int -> GetPercentiles -> ShowS
[GetPercentiles] -> ShowS
GetPercentiles -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetPercentiles] -> ShowS
$cshowList :: [GetPercentiles] -> ShowS
show :: GetPercentiles -> String
$cshow :: GetPercentiles -> String
showsPrec :: Int -> GetPercentiles -> ShowS
$cshowsPrec :: Int -> GetPercentiles -> ShowS
Prelude.Show, forall x. Rep GetPercentiles x -> GetPercentiles
forall x. GetPercentiles -> Rep GetPercentiles x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetPercentiles x -> GetPercentiles
$cfrom :: forall x. GetPercentiles -> Rep GetPercentiles x
Prelude.Generic)
newGetPercentiles ::
Prelude.Text ->
GetPercentiles
newGetPercentiles :: Text -> GetPercentiles
newGetPercentiles Text
pQueryString_ =
GetPercentiles'
{ $sel:aggregationField:GetPercentiles' :: Maybe Text
aggregationField = forall a. Maybe a
Prelude.Nothing,
$sel:indexName:GetPercentiles' :: Maybe Text
indexName = forall a. Maybe a
Prelude.Nothing,
$sel:percents:GetPercentiles' :: Maybe [Double]
percents = forall a. Maybe a
Prelude.Nothing,
$sel:queryVersion:GetPercentiles' :: Maybe Text
queryVersion = forall a. Maybe a
Prelude.Nothing,
$sel:queryString:GetPercentiles' :: Text
queryString = Text
pQueryString_
}
getPercentiles_aggregationField :: Lens.Lens' GetPercentiles (Prelude.Maybe Prelude.Text)
getPercentiles_aggregationField :: Lens' GetPercentiles (Maybe Text)
getPercentiles_aggregationField = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPercentiles' {Maybe Text
aggregationField :: Maybe Text
$sel:aggregationField:GetPercentiles' :: GetPercentiles -> Maybe Text
aggregationField} -> Maybe Text
aggregationField) (\s :: GetPercentiles
s@GetPercentiles' {} Maybe Text
a -> GetPercentiles
s {$sel:aggregationField:GetPercentiles' :: Maybe Text
aggregationField = Maybe Text
a} :: GetPercentiles)
getPercentiles_indexName :: Lens.Lens' GetPercentiles (Prelude.Maybe Prelude.Text)
getPercentiles_indexName :: Lens' GetPercentiles (Maybe Text)
getPercentiles_indexName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPercentiles' {Maybe Text
indexName :: Maybe Text
$sel:indexName:GetPercentiles' :: GetPercentiles -> Maybe Text
indexName} -> Maybe Text
indexName) (\s :: GetPercentiles
s@GetPercentiles' {} Maybe Text
a -> GetPercentiles
s {$sel:indexName:GetPercentiles' :: Maybe Text
indexName = Maybe Text
a} :: GetPercentiles)
getPercentiles_percents :: Lens.Lens' GetPercentiles (Prelude.Maybe [Prelude.Double])
getPercentiles_percents :: Lens' GetPercentiles (Maybe [Double])
getPercentiles_percents = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPercentiles' {Maybe [Double]
percents :: Maybe [Double]
$sel:percents:GetPercentiles' :: GetPercentiles -> Maybe [Double]
percents} -> Maybe [Double]
percents) (\s :: GetPercentiles
s@GetPercentiles' {} Maybe [Double]
a -> GetPercentiles
s {$sel:percents:GetPercentiles' :: Maybe [Double]
percents = Maybe [Double]
a} :: GetPercentiles) 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
getPercentiles_queryVersion :: Lens.Lens' GetPercentiles (Prelude.Maybe Prelude.Text)
getPercentiles_queryVersion :: Lens' GetPercentiles (Maybe Text)
getPercentiles_queryVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPercentiles' {Maybe Text
queryVersion :: Maybe Text
$sel:queryVersion:GetPercentiles' :: GetPercentiles -> Maybe Text
queryVersion} -> Maybe Text
queryVersion) (\s :: GetPercentiles
s@GetPercentiles' {} Maybe Text
a -> GetPercentiles
s {$sel:queryVersion:GetPercentiles' :: Maybe Text
queryVersion = Maybe Text
a} :: GetPercentiles)
getPercentiles_queryString :: Lens.Lens' GetPercentiles Prelude.Text
getPercentiles_queryString :: Lens' GetPercentiles Text
getPercentiles_queryString = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPercentiles' {Text
queryString :: Text
$sel:queryString:GetPercentiles' :: GetPercentiles -> Text
queryString} -> Text
queryString) (\s :: GetPercentiles
s@GetPercentiles' {} Text
a -> GetPercentiles
s {$sel:queryString:GetPercentiles' :: Text
queryString = Text
a} :: GetPercentiles)
instance Core.AWSRequest GetPercentiles where
type
AWSResponse GetPercentiles =
GetPercentilesResponse
request :: (Service -> Service) -> GetPercentiles -> Request GetPercentiles
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 GetPercentiles
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetPercentiles)))
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 [PercentPair] -> Int -> GetPercentilesResponse
GetPercentilesResponse'
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
"percentiles" 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 GetPercentiles where
hashWithSalt :: Int -> GetPercentiles -> Int
hashWithSalt Int
_salt GetPercentiles' {Maybe [Double]
Maybe Text
Text
queryString :: Text
queryVersion :: Maybe Text
percents :: Maybe [Double]
indexName :: Maybe Text
aggregationField :: Maybe Text
$sel:queryString:GetPercentiles' :: GetPercentiles -> Text
$sel:queryVersion:GetPercentiles' :: GetPercentiles -> Maybe Text
$sel:percents:GetPercentiles' :: GetPercentiles -> Maybe [Double]
$sel:indexName:GetPercentiles' :: GetPercentiles -> Maybe Text
$sel:aggregationField:GetPercentiles' :: GetPercentiles -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
aggregationField
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
indexName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Double]
percents
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
queryVersion
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
queryString
instance Prelude.NFData GetPercentiles where
rnf :: GetPercentiles -> ()
rnf GetPercentiles' {Maybe [Double]
Maybe Text
Text
queryString :: Text
queryVersion :: Maybe Text
percents :: Maybe [Double]
indexName :: Maybe Text
aggregationField :: Maybe Text
$sel:queryString:GetPercentiles' :: GetPercentiles -> Text
$sel:queryVersion:GetPercentiles' :: GetPercentiles -> Maybe Text
$sel:percents:GetPercentiles' :: GetPercentiles -> Maybe [Double]
$sel:indexName:GetPercentiles' :: GetPercentiles -> Maybe Text
$sel:aggregationField:GetPercentiles' :: GetPercentiles -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
aggregationField
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
indexName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Double]
percents
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
queryVersion
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
queryString
instance Data.ToHeaders GetPercentiles where
toHeaders :: GetPercentiles -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON GetPercentiles where
toJSON :: GetPercentiles -> Value
toJSON GetPercentiles' {Maybe [Double]
Maybe Text
Text
queryString :: Text
queryVersion :: Maybe Text
percents :: Maybe [Double]
indexName :: Maybe Text
aggregationField :: Maybe Text
$sel:queryString:GetPercentiles' :: GetPercentiles -> Text
$sel:queryVersion:GetPercentiles' :: GetPercentiles -> Maybe Text
$sel:percents:GetPercentiles' :: GetPercentiles -> Maybe [Double]
$sel:indexName:GetPercentiles' :: GetPercentiles -> Maybe Text
$sel:aggregationField:GetPercentiles' :: GetPercentiles -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"aggregationField" 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
aggregationField,
(Key
"indexName" 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
indexName,
(Key
"percents" 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 [Double]
percents,
(Key
"queryVersion" 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
queryVersion,
forall a. a -> Maybe a
Prelude.Just (Key
"queryString" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
queryString)
]
)
instance Data.ToPath GetPercentiles where
toPath :: GetPercentiles -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/indices/percentiles"
instance Data.ToQuery GetPercentiles where
toQuery :: GetPercentiles -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetPercentilesResponse = GetPercentilesResponse'
{
GetPercentilesResponse -> Maybe [PercentPair]
percentiles :: Prelude.Maybe [PercentPair],
GetPercentilesResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetPercentilesResponse -> GetPercentilesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetPercentilesResponse -> GetPercentilesResponse -> Bool
$c/= :: GetPercentilesResponse -> GetPercentilesResponse -> Bool
== :: GetPercentilesResponse -> GetPercentilesResponse -> Bool
$c== :: GetPercentilesResponse -> GetPercentilesResponse -> Bool
Prelude.Eq, ReadPrec [GetPercentilesResponse]
ReadPrec GetPercentilesResponse
Int -> ReadS GetPercentilesResponse
ReadS [GetPercentilesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetPercentilesResponse]
$creadListPrec :: ReadPrec [GetPercentilesResponse]
readPrec :: ReadPrec GetPercentilesResponse
$creadPrec :: ReadPrec GetPercentilesResponse
readList :: ReadS [GetPercentilesResponse]
$creadList :: ReadS [GetPercentilesResponse]
readsPrec :: Int -> ReadS GetPercentilesResponse
$creadsPrec :: Int -> ReadS GetPercentilesResponse
Prelude.Read, Int -> GetPercentilesResponse -> ShowS
[GetPercentilesResponse] -> ShowS
GetPercentilesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetPercentilesResponse] -> ShowS
$cshowList :: [GetPercentilesResponse] -> ShowS
show :: GetPercentilesResponse -> String
$cshow :: GetPercentilesResponse -> String
showsPrec :: Int -> GetPercentilesResponse -> ShowS
$cshowsPrec :: Int -> GetPercentilesResponse -> ShowS
Prelude.Show, forall x. Rep GetPercentilesResponse x -> GetPercentilesResponse
forall x. GetPercentilesResponse -> Rep GetPercentilesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetPercentilesResponse x -> GetPercentilesResponse
$cfrom :: forall x. GetPercentilesResponse -> Rep GetPercentilesResponse x
Prelude.Generic)
newGetPercentilesResponse ::
Prelude.Int ->
GetPercentilesResponse
newGetPercentilesResponse :: Int -> GetPercentilesResponse
newGetPercentilesResponse Int
pHttpStatus_ =
GetPercentilesResponse'
{ $sel:percentiles:GetPercentilesResponse' :: Maybe [PercentPair]
percentiles =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetPercentilesResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getPercentilesResponse_percentiles :: Lens.Lens' GetPercentilesResponse (Prelude.Maybe [PercentPair])
getPercentilesResponse_percentiles :: Lens' GetPercentilesResponse (Maybe [PercentPair])
getPercentilesResponse_percentiles = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPercentilesResponse' {Maybe [PercentPair]
percentiles :: Maybe [PercentPair]
$sel:percentiles:GetPercentilesResponse' :: GetPercentilesResponse -> Maybe [PercentPair]
percentiles} -> Maybe [PercentPair]
percentiles) (\s :: GetPercentilesResponse
s@GetPercentilesResponse' {} Maybe [PercentPair]
a -> GetPercentilesResponse
s {$sel:percentiles:GetPercentilesResponse' :: Maybe [PercentPair]
percentiles = Maybe [PercentPair]
a} :: GetPercentilesResponse) 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
getPercentilesResponse_httpStatus :: Lens.Lens' GetPercentilesResponse Prelude.Int
getPercentilesResponse_httpStatus :: Lens' GetPercentilesResponse Int
getPercentilesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPercentilesResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetPercentilesResponse' :: GetPercentilesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetPercentilesResponse
s@GetPercentilesResponse' {} Int
a -> GetPercentilesResponse
s {$sel:httpStatus:GetPercentilesResponse' :: Int
httpStatus = Int
a} :: GetPercentilesResponse)
instance Prelude.NFData GetPercentilesResponse where
rnf :: GetPercentilesResponse -> ()
rnf GetPercentilesResponse' {Int
Maybe [PercentPair]
httpStatus :: Int
percentiles :: Maybe [PercentPair]
$sel:httpStatus:GetPercentilesResponse' :: GetPercentilesResponse -> Int
$sel:percentiles:GetPercentilesResponse' :: GetPercentilesResponse -> Maybe [PercentPair]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [PercentPair]
percentiles
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus