{-# 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.Redshift.DescribeDefaultClusterParameters
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a list of parameter settings for the specified parameter group
-- family.
--
-- For more information about parameters and parameter groups, go to
-- <https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-parameter-groups.html Amazon Redshift Parameter Groups>
-- in the /Amazon Redshift Cluster Management Guide/.
--
-- This operation returns paginated results.
module Amazonka.Redshift.DescribeDefaultClusterParameters
  ( -- * Creating a Request
    DescribeDefaultClusterParameters (..),
    newDescribeDefaultClusterParameters,

    -- * Request Lenses
    describeDefaultClusterParameters_marker,
    describeDefaultClusterParameters_maxRecords,
    describeDefaultClusterParameters_parameterGroupFamily,

    -- * Destructuring the Response
    DescribeDefaultClusterParametersResponse (..),
    newDescribeDefaultClusterParametersResponse,

    -- * Response Lenses
    describeDefaultClusterParametersResponse_httpStatus,
    describeDefaultClusterParametersResponse_defaultClusterParameters,
  )
where

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 Amazonka.Redshift.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- |
--
-- /See:/ 'newDescribeDefaultClusterParameters' smart constructor.
data DescribeDefaultClusterParameters = DescribeDefaultClusterParameters'
  { -- | An optional parameter that specifies the starting point to return a set
    -- of response records. When the results of a
    -- DescribeDefaultClusterParameters request exceed the value specified in
    -- @MaxRecords@, Amazon Web Services returns a value in the @Marker@ field
    -- of the response. You can retrieve the next set of response records by
    -- providing the returned marker value in the @Marker@ parameter and
    -- retrying the request.
    DescribeDefaultClusterParameters -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of response records to return in each call. If the
    -- number of remaining response records exceeds the specified @MaxRecords@
    -- value, a value is returned in a @marker@ field of the response. You can
    -- retrieve the next set of records by retrying the command with the
    -- returned marker value.
    --
    -- Default: @100@
    --
    -- Constraints: minimum 20, maximum 100.
    DescribeDefaultClusterParameters -> Maybe Int
maxRecords :: Prelude.Maybe Prelude.Int,
    -- | The name of the cluster parameter group family.
    DescribeDefaultClusterParameters -> Text
parameterGroupFamily :: Prelude.Text
  }
  deriving (DescribeDefaultClusterParameters
-> DescribeDefaultClusterParameters -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDefaultClusterParameters
-> DescribeDefaultClusterParameters -> Bool
$c/= :: DescribeDefaultClusterParameters
-> DescribeDefaultClusterParameters -> Bool
== :: DescribeDefaultClusterParameters
-> DescribeDefaultClusterParameters -> Bool
$c== :: DescribeDefaultClusterParameters
-> DescribeDefaultClusterParameters -> Bool
Prelude.Eq, ReadPrec [DescribeDefaultClusterParameters]
ReadPrec DescribeDefaultClusterParameters
Int -> ReadS DescribeDefaultClusterParameters
ReadS [DescribeDefaultClusterParameters]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDefaultClusterParameters]
$creadListPrec :: ReadPrec [DescribeDefaultClusterParameters]
readPrec :: ReadPrec DescribeDefaultClusterParameters
$creadPrec :: ReadPrec DescribeDefaultClusterParameters
readList :: ReadS [DescribeDefaultClusterParameters]
$creadList :: ReadS [DescribeDefaultClusterParameters]
readsPrec :: Int -> ReadS DescribeDefaultClusterParameters
$creadsPrec :: Int -> ReadS DescribeDefaultClusterParameters
Prelude.Read, Int -> DescribeDefaultClusterParameters -> ShowS
[DescribeDefaultClusterParameters] -> ShowS
DescribeDefaultClusterParameters -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDefaultClusterParameters] -> ShowS
$cshowList :: [DescribeDefaultClusterParameters] -> ShowS
show :: DescribeDefaultClusterParameters -> String
$cshow :: DescribeDefaultClusterParameters -> String
showsPrec :: Int -> DescribeDefaultClusterParameters -> ShowS
$cshowsPrec :: Int -> DescribeDefaultClusterParameters -> ShowS
Prelude.Show, forall x.
Rep DescribeDefaultClusterParameters x
-> DescribeDefaultClusterParameters
forall x.
DescribeDefaultClusterParameters
-> Rep DescribeDefaultClusterParameters x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDefaultClusterParameters x
-> DescribeDefaultClusterParameters
$cfrom :: forall x.
DescribeDefaultClusterParameters
-> Rep DescribeDefaultClusterParameters x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDefaultClusterParameters' 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:
--
-- 'marker', 'describeDefaultClusterParameters_marker' - An optional parameter that specifies the starting point to return a set
-- of response records. When the results of a
-- DescribeDefaultClusterParameters request exceed the value specified in
-- @MaxRecords@, Amazon Web Services returns a value in the @Marker@ field
-- of the response. You can retrieve the next set of response records by
-- providing the returned marker value in the @Marker@ parameter and
-- retrying the request.
--
-- 'maxRecords', 'describeDefaultClusterParameters_maxRecords' - The maximum number of response records to return in each call. If the
-- number of remaining response records exceeds the specified @MaxRecords@
-- value, a value is returned in a @marker@ field of the response. You can
-- retrieve the next set of records by retrying the command with the
-- returned marker value.
--
-- Default: @100@
--
-- Constraints: minimum 20, maximum 100.
--
-- 'parameterGroupFamily', 'describeDefaultClusterParameters_parameterGroupFamily' - The name of the cluster parameter group family.
newDescribeDefaultClusterParameters ::
  -- | 'parameterGroupFamily'
  Prelude.Text ->
  DescribeDefaultClusterParameters
newDescribeDefaultClusterParameters :: Text -> DescribeDefaultClusterParameters
newDescribeDefaultClusterParameters
  Text
pParameterGroupFamily_ =
    DescribeDefaultClusterParameters'
      { $sel:marker:DescribeDefaultClusterParameters' :: Maybe Text
marker =
          forall a. Maybe a
Prelude.Nothing,
        $sel:maxRecords:DescribeDefaultClusterParameters' :: Maybe Int
maxRecords = forall a. Maybe a
Prelude.Nothing,
        $sel:parameterGroupFamily:DescribeDefaultClusterParameters' :: Text
parameterGroupFamily =
          Text
pParameterGroupFamily_
      }

-- | An optional parameter that specifies the starting point to return a set
-- of response records. When the results of a
-- DescribeDefaultClusterParameters request exceed the value specified in
-- @MaxRecords@, Amazon Web Services returns a value in the @Marker@ field
-- of the response. You can retrieve the next set of response records by
-- providing the returned marker value in the @Marker@ parameter and
-- retrying the request.
describeDefaultClusterParameters_marker :: Lens.Lens' DescribeDefaultClusterParameters (Prelude.Maybe Prelude.Text)
describeDefaultClusterParameters_marker :: Lens' DescribeDefaultClusterParameters (Maybe Text)
describeDefaultClusterParameters_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDefaultClusterParameters' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeDefaultClusterParameters
s@DescribeDefaultClusterParameters' {} Maybe Text
a -> DescribeDefaultClusterParameters
s {$sel:marker:DescribeDefaultClusterParameters' :: Maybe Text
marker = Maybe Text
a} :: DescribeDefaultClusterParameters)

-- | The maximum number of response records to return in each call. If the
-- number of remaining response records exceeds the specified @MaxRecords@
-- value, a value is returned in a @marker@ field of the response. You can
-- retrieve the next set of records by retrying the command with the
-- returned marker value.
--
-- Default: @100@
--
-- Constraints: minimum 20, maximum 100.
describeDefaultClusterParameters_maxRecords :: Lens.Lens' DescribeDefaultClusterParameters (Prelude.Maybe Prelude.Int)
describeDefaultClusterParameters_maxRecords :: Lens' DescribeDefaultClusterParameters (Maybe Int)
describeDefaultClusterParameters_maxRecords = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDefaultClusterParameters' {Maybe Int
maxRecords :: Maybe Int
$sel:maxRecords:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Int
maxRecords} -> Maybe Int
maxRecords) (\s :: DescribeDefaultClusterParameters
s@DescribeDefaultClusterParameters' {} Maybe Int
a -> DescribeDefaultClusterParameters
s {$sel:maxRecords:DescribeDefaultClusterParameters' :: Maybe Int
maxRecords = Maybe Int
a} :: DescribeDefaultClusterParameters)

-- | The name of the cluster parameter group family.
describeDefaultClusterParameters_parameterGroupFamily :: Lens.Lens' DescribeDefaultClusterParameters Prelude.Text
describeDefaultClusterParameters_parameterGroupFamily :: Lens' DescribeDefaultClusterParameters Text
describeDefaultClusterParameters_parameterGroupFamily = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDefaultClusterParameters' {Text
parameterGroupFamily :: Text
$sel:parameterGroupFamily:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Text
parameterGroupFamily} -> Text
parameterGroupFamily) (\s :: DescribeDefaultClusterParameters
s@DescribeDefaultClusterParameters' {} Text
a -> DescribeDefaultClusterParameters
s {$sel:parameterGroupFamily:DescribeDefaultClusterParameters' :: Text
parameterGroupFamily = Text
a} :: DescribeDefaultClusterParameters)

instance
  Core.AWSPager
    DescribeDefaultClusterParameters
  where
  page :: DescribeDefaultClusterParameters
-> AWSResponse DescribeDefaultClusterParameters
-> Maybe DescribeDefaultClusterParameters
page DescribeDefaultClusterParameters
rq AWSResponse DescribeDefaultClusterParameters
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeDefaultClusterParameters
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeDefaultClusterParametersResponse DefaultClusterParameters
describeDefaultClusterParametersResponse_defaultClusterParameters
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Lens' DefaultClusterParameters (Maybe Text)
defaultClusterParameters_marker
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeDefaultClusterParameters
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeDefaultClusterParametersResponse DefaultClusterParameters
describeDefaultClusterParametersResponse_defaultClusterParameters
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Lens' DefaultClusterParameters (Maybe [Parameter])
defaultClusterParameters_parameters
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeDefaultClusterParameters
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeDefaultClusterParameters (Maybe Text)
describeDefaultClusterParameters_marker
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeDefaultClusterParameters
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeDefaultClusterParametersResponse DefaultClusterParameters
describeDefaultClusterParametersResponse_defaultClusterParameters
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Lens' DefaultClusterParameters (Maybe Text)
defaultClusterParameters_marker
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance
  Core.AWSRequest
    DescribeDefaultClusterParameters
  where
  type
    AWSResponse DescribeDefaultClusterParameters =
      DescribeDefaultClusterParametersResponse
  request :: (Service -> Service)
-> DescribeDefaultClusterParameters
-> Request DescribeDefaultClusterParameters
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeDefaultClusterParameters
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeDefaultClusterParameters)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"DescribeDefaultClusterParametersResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Int
-> DefaultClusterParameters
-> DescribeDefaultClusterParametersResponse
DescribeDefaultClusterParametersResponse'
            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.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"DefaultClusterParameters")
      )

instance
  Prelude.Hashable
    DescribeDefaultClusterParameters
  where
  hashWithSalt :: Int -> DescribeDefaultClusterParameters -> Int
hashWithSalt
    Int
_salt
    DescribeDefaultClusterParameters' {Maybe Int
Maybe Text
Text
parameterGroupFamily :: Text
maxRecords :: Maybe Int
marker :: Maybe Text
$sel:parameterGroupFamily:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Text
$sel:maxRecords:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Int
$sel:marker:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
marker
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxRecords
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
parameterGroupFamily

instance
  Prelude.NFData
    DescribeDefaultClusterParameters
  where
  rnf :: DescribeDefaultClusterParameters -> ()
rnf DescribeDefaultClusterParameters' {Maybe Int
Maybe Text
Text
parameterGroupFamily :: Text
maxRecords :: Maybe Int
marker :: Maybe Text
$sel:parameterGroupFamily:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Text
$sel:maxRecords:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Int
$sel:marker:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxRecords
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
parameterGroupFamily

instance
  Data.ToHeaders
    DescribeDefaultClusterParameters
  where
  toHeaders :: DescribeDefaultClusterParameters -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath DescribeDefaultClusterParameters where
  toPath :: DescribeDefaultClusterParameters -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance
  Data.ToQuery
    DescribeDefaultClusterParameters
  where
  toQuery :: DescribeDefaultClusterParameters -> QueryString
toQuery DescribeDefaultClusterParameters' {Maybe Int
Maybe Text
Text
parameterGroupFamily :: Text
maxRecords :: Maybe Int
marker :: Maybe Text
$sel:parameterGroupFamily:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Text
$sel:maxRecords:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Int
$sel:marker:DescribeDefaultClusterParameters' :: DescribeDefaultClusterParameters -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"DescribeDefaultClusterParameters" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2012-12-01" :: Prelude.ByteString),
        ByteString
"Marker" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
marker,
        ByteString
"MaxRecords" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxRecords,
        ByteString
"ParameterGroupFamily" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
parameterGroupFamily
      ]

-- | /See:/ 'newDescribeDefaultClusterParametersResponse' smart constructor.
data DescribeDefaultClusterParametersResponse = DescribeDefaultClusterParametersResponse'
  { -- | The response's http status code.
    DescribeDefaultClusterParametersResponse -> Int
httpStatus :: Prelude.Int,
    DescribeDefaultClusterParametersResponse
-> DefaultClusterParameters
defaultClusterParameters :: DefaultClusterParameters
  }
  deriving (DescribeDefaultClusterParametersResponse
-> DescribeDefaultClusterParametersResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDefaultClusterParametersResponse
-> DescribeDefaultClusterParametersResponse -> Bool
$c/= :: DescribeDefaultClusterParametersResponse
-> DescribeDefaultClusterParametersResponse -> Bool
== :: DescribeDefaultClusterParametersResponse
-> DescribeDefaultClusterParametersResponse -> Bool
$c== :: DescribeDefaultClusterParametersResponse
-> DescribeDefaultClusterParametersResponse -> Bool
Prelude.Eq, ReadPrec [DescribeDefaultClusterParametersResponse]
ReadPrec DescribeDefaultClusterParametersResponse
Int -> ReadS DescribeDefaultClusterParametersResponse
ReadS [DescribeDefaultClusterParametersResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDefaultClusterParametersResponse]
$creadListPrec :: ReadPrec [DescribeDefaultClusterParametersResponse]
readPrec :: ReadPrec DescribeDefaultClusterParametersResponse
$creadPrec :: ReadPrec DescribeDefaultClusterParametersResponse
readList :: ReadS [DescribeDefaultClusterParametersResponse]
$creadList :: ReadS [DescribeDefaultClusterParametersResponse]
readsPrec :: Int -> ReadS DescribeDefaultClusterParametersResponse
$creadsPrec :: Int -> ReadS DescribeDefaultClusterParametersResponse
Prelude.Read, Int -> DescribeDefaultClusterParametersResponse -> ShowS
[DescribeDefaultClusterParametersResponse] -> ShowS
DescribeDefaultClusterParametersResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDefaultClusterParametersResponse] -> ShowS
$cshowList :: [DescribeDefaultClusterParametersResponse] -> ShowS
show :: DescribeDefaultClusterParametersResponse -> String
$cshow :: DescribeDefaultClusterParametersResponse -> String
showsPrec :: Int -> DescribeDefaultClusterParametersResponse -> ShowS
$cshowsPrec :: Int -> DescribeDefaultClusterParametersResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDefaultClusterParametersResponse x
-> DescribeDefaultClusterParametersResponse
forall x.
DescribeDefaultClusterParametersResponse
-> Rep DescribeDefaultClusterParametersResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDefaultClusterParametersResponse x
-> DescribeDefaultClusterParametersResponse
$cfrom :: forall x.
DescribeDefaultClusterParametersResponse
-> Rep DescribeDefaultClusterParametersResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDefaultClusterParametersResponse' 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:
--
-- 'httpStatus', 'describeDefaultClusterParametersResponse_httpStatus' - The response's http status code.
--
-- 'defaultClusterParameters', 'describeDefaultClusterParametersResponse_defaultClusterParameters' - Undocumented member.
newDescribeDefaultClusterParametersResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'defaultClusterParameters'
  DefaultClusterParameters ->
  DescribeDefaultClusterParametersResponse
newDescribeDefaultClusterParametersResponse :: Int
-> DefaultClusterParameters
-> DescribeDefaultClusterParametersResponse
newDescribeDefaultClusterParametersResponse
  Int
pHttpStatus_
  DefaultClusterParameters
pDefaultClusterParameters_ =
    DescribeDefaultClusterParametersResponse'
      { $sel:httpStatus:DescribeDefaultClusterParametersResponse' :: Int
httpStatus =
          Int
pHttpStatus_,
        $sel:defaultClusterParameters:DescribeDefaultClusterParametersResponse' :: DefaultClusterParameters
defaultClusterParameters =
          DefaultClusterParameters
pDefaultClusterParameters_
      }

-- | The response's http status code.
describeDefaultClusterParametersResponse_httpStatus :: Lens.Lens' DescribeDefaultClusterParametersResponse Prelude.Int
describeDefaultClusterParametersResponse_httpStatus :: Lens' DescribeDefaultClusterParametersResponse Int
describeDefaultClusterParametersResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDefaultClusterParametersResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeDefaultClusterParametersResponse' :: DescribeDefaultClusterParametersResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeDefaultClusterParametersResponse
s@DescribeDefaultClusterParametersResponse' {} Int
a -> DescribeDefaultClusterParametersResponse
s {$sel:httpStatus:DescribeDefaultClusterParametersResponse' :: Int
httpStatus = Int
a} :: DescribeDefaultClusterParametersResponse)

-- | Undocumented member.
describeDefaultClusterParametersResponse_defaultClusterParameters :: Lens.Lens' DescribeDefaultClusterParametersResponse DefaultClusterParameters
describeDefaultClusterParametersResponse_defaultClusterParameters :: Lens'
  DescribeDefaultClusterParametersResponse DefaultClusterParameters
describeDefaultClusterParametersResponse_defaultClusterParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDefaultClusterParametersResponse' {DefaultClusterParameters
defaultClusterParameters :: DefaultClusterParameters
$sel:defaultClusterParameters:DescribeDefaultClusterParametersResponse' :: DescribeDefaultClusterParametersResponse
-> DefaultClusterParameters
defaultClusterParameters} -> DefaultClusterParameters
defaultClusterParameters) (\s :: DescribeDefaultClusterParametersResponse
s@DescribeDefaultClusterParametersResponse' {} DefaultClusterParameters
a -> DescribeDefaultClusterParametersResponse
s {$sel:defaultClusterParameters:DescribeDefaultClusterParametersResponse' :: DefaultClusterParameters
defaultClusterParameters = DefaultClusterParameters
a} :: DescribeDefaultClusterParametersResponse)

instance
  Prelude.NFData
    DescribeDefaultClusterParametersResponse
  where
  rnf :: DescribeDefaultClusterParametersResponse -> ()
rnf DescribeDefaultClusterParametersResponse' {Int
DefaultClusterParameters
defaultClusterParameters :: DefaultClusterParameters
httpStatus :: Int
$sel:defaultClusterParameters:DescribeDefaultClusterParametersResponse' :: DescribeDefaultClusterParametersResponse
-> DefaultClusterParameters
$sel:httpStatus:DescribeDefaultClusterParametersResponse' :: DescribeDefaultClusterParametersResponse -> 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 DefaultClusterParameters
defaultClusterParameters