{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.IoT.GetPercentiles
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Groups the aggregated values that match the query into percentile
-- groupings. The default percentile groupings are: 1,5,25,50,75,95,99,
-- although you can specify your own when you call @GetPercentiles@. This
-- function returns a value for each percentile group specified (or the
-- default percentile groupings). The percentile group \"1\" contains the
-- aggregated field value that occurs in approximately one percent of the
-- values that match the query. The percentile group \"5\" contains the
-- aggregated field value that occurs in approximately five percent of the
-- values that match the query, and so on. The result is an approximation,
-- the more values that match the query, the more accurate the percentile
-- values.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions GetPercentiles>
-- action.
module Amazonka.IoT.GetPercentiles
  ( -- * Creating a Request
    GetPercentiles (..),
    newGetPercentiles,

    -- * Request Lenses
    getPercentiles_aggregationField,
    getPercentiles_indexName,
    getPercentiles_percents,
    getPercentiles_queryVersion,
    getPercentiles_queryString,

    -- * Destructuring the Response
    GetPercentilesResponse (..),
    newGetPercentilesResponse,

    -- * Response Lenses
    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

-- | /See:/ 'newGetPercentiles' smart constructor.
data GetPercentiles = GetPercentiles'
  { -- | The field to aggregate.
    GetPercentiles -> Maybe Text
aggregationField :: Prelude.Maybe Prelude.Text,
    -- | The name of the index to search.
    GetPercentiles -> Maybe Text
indexName :: Prelude.Maybe Prelude.Text,
    -- | The percentile groups returned.
    GetPercentiles -> Maybe [Double]
percents :: Prelude.Maybe [Prelude.Double],
    -- | The query version.
    GetPercentiles -> Maybe Text
queryVersion :: Prelude.Maybe Prelude.Text,
    -- | The search query string.
    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)

-- |
-- Create a value of 'GetPercentiles' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'aggregationField', 'getPercentiles_aggregationField' - The field to aggregate.
--
-- 'indexName', 'getPercentiles_indexName' - The name of the index to search.
--
-- 'percents', 'getPercentiles_percents' - The percentile groups returned.
--
-- 'queryVersion', 'getPercentiles_queryVersion' - The query version.
--
-- 'queryString', 'getPercentiles_queryString' - The search query string.
newGetPercentiles ::
  -- | 'queryString'
  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_
    }

-- | The field to aggregate.
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)

-- | The name of the index to search.
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)

-- | The percentile groups returned.
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

-- | The query version.
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)

-- | The search query string.
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

-- | /See:/ 'newGetPercentilesResponse' smart constructor.
data GetPercentilesResponse = GetPercentilesResponse'
  { -- | The percentile values of the aggregated fields.
    GetPercentilesResponse -> Maybe [PercentPair]
percentiles :: Prelude.Maybe [PercentPair],
    -- | The response's http status code.
    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)

-- |
-- Create a value of 'GetPercentilesResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'percentiles', 'getPercentilesResponse_percentiles' - The percentile values of the aggregated fields.
--
-- 'httpStatus', 'getPercentilesResponse_httpStatus' - The response's http status code.
newGetPercentilesResponse ::
  -- | 'httpStatus'
  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_
    }

-- | The percentile values of the aggregated fields.
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

-- | The response's http status code.
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