{-# 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.Kafka.DescribeConfigurationRevision
-- 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 description of this revision of the configuration.
module Amazonka.Kafka.DescribeConfigurationRevision
  ( -- * Creating a Request
    DescribeConfigurationRevision (..),
    newDescribeConfigurationRevision,

    -- * Request Lenses
    describeConfigurationRevision_revision,
    describeConfigurationRevision_arn,

    -- * Destructuring the Response
    DescribeConfigurationRevisionResponse (..),
    newDescribeConfigurationRevisionResponse,

    -- * Response Lenses
    describeConfigurationRevisionResponse_arn,
    describeConfigurationRevisionResponse_creationTime,
    describeConfigurationRevisionResponse_description,
    describeConfigurationRevisionResponse_revision,
    describeConfigurationRevisionResponse_serverProperties,
    describeConfigurationRevisionResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Kafka.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribeConfigurationRevision' smart constructor.
data DescribeConfigurationRevision = DescribeConfigurationRevision'
  { -- | A string that uniquely identifies a revision of an MSK configuration.
    DescribeConfigurationRevision -> Integer
revision :: Prelude.Integer,
    -- | The Amazon Resource Name (ARN) that uniquely identifies an MSK
    -- configuration and all of its revisions.
    DescribeConfigurationRevision -> Text
arn :: Prelude.Text
  }
  deriving (DescribeConfigurationRevision
-> DescribeConfigurationRevision -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeConfigurationRevision
-> DescribeConfigurationRevision -> Bool
$c/= :: DescribeConfigurationRevision
-> DescribeConfigurationRevision -> Bool
== :: DescribeConfigurationRevision
-> DescribeConfigurationRevision -> Bool
$c== :: DescribeConfigurationRevision
-> DescribeConfigurationRevision -> Bool
Prelude.Eq, ReadPrec [DescribeConfigurationRevision]
ReadPrec DescribeConfigurationRevision
Int -> ReadS DescribeConfigurationRevision
ReadS [DescribeConfigurationRevision]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeConfigurationRevision]
$creadListPrec :: ReadPrec [DescribeConfigurationRevision]
readPrec :: ReadPrec DescribeConfigurationRevision
$creadPrec :: ReadPrec DescribeConfigurationRevision
readList :: ReadS [DescribeConfigurationRevision]
$creadList :: ReadS [DescribeConfigurationRevision]
readsPrec :: Int -> ReadS DescribeConfigurationRevision
$creadsPrec :: Int -> ReadS DescribeConfigurationRevision
Prelude.Read, Int -> DescribeConfigurationRevision -> ShowS
[DescribeConfigurationRevision] -> ShowS
DescribeConfigurationRevision -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeConfigurationRevision] -> ShowS
$cshowList :: [DescribeConfigurationRevision] -> ShowS
show :: DescribeConfigurationRevision -> String
$cshow :: DescribeConfigurationRevision -> String
showsPrec :: Int -> DescribeConfigurationRevision -> ShowS
$cshowsPrec :: Int -> DescribeConfigurationRevision -> ShowS
Prelude.Show, forall x.
Rep DescribeConfigurationRevision x
-> DescribeConfigurationRevision
forall x.
DescribeConfigurationRevision
-> Rep DescribeConfigurationRevision x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeConfigurationRevision x
-> DescribeConfigurationRevision
$cfrom :: forall x.
DescribeConfigurationRevision
-> Rep DescribeConfigurationRevision x
Prelude.Generic)

-- |
-- Create a value of 'DescribeConfigurationRevision' 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:
--
-- 'revision', 'describeConfigurationRevision_revision' - A string that uniquely identifies a revision of an MSK configuration.
--
-- 'arn', 'describeConfigurationRevision_arn' - The Amazon Resource Name (ARN) that uniquely identifies an MSK
-- configuration and all of its revisions.
newDescribeConfigurationRevision ::
  -- | 'revision'
  Prelude.Integer ->
  -- | 'arn'
  Prelude.Text ->
  DescribeConfigurationRevision
newDescribeConfigurationRevision :: Integer -> Text -> DescribeConfigurationRevision
newDescribeConfigurationRevision Integer
pRevision_ Text
pArn_ =
  DescribeConfigurationRevision'
    { $sel:revision:DescribeConfigurationRevision' :: Integer
revision =
        Integer
pRevision_,
      $sel:arn:DescribeConfigurationRevision' :: Text
arn = Text
pArn_
    }

-- | A string that uniquely identifies a revision of an MSK configuration.
describeConfigurationRevision_revision :: Lens.Lens' DescribeConfigurationRevision Prelude.Integer
describeConfigurationRevision_revision :: Lens' DescribeConfigurationRevision Integer
describeConfigurationRevision_revision = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationRevision' {Integer
revision :: Integer
$sel:revision:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Integer
revision} -> Integer
revision) (\s :: DescribeConfigurationRevision
s@DescribeConfigurationRevision' {} Integer
a -> DescribeConfigurationRevision
s {$sel:revision:DescribeConfigurationRevision' :: Integer
revision = Integer
a} :: DescribeConfigurationRevision)

-- | The Amazon Resource Name (ARN) that uniquely identifies an MSK
-- configuration and all of its revisions.
describeConfigurationRevision_arn :: Lens.Lens' DescribeConfigurationRevision Prelude.Text
describeConfigurationRevision_arn :: Lens' DescribeConfigurationRevision Text
describeConfigurationRevision_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationRevision' {Text
arn :: Text
$sel:arn:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Text
arn} -> Text
arn) (\s :: DescribeConfigurationRevision
s@DescribeConfigurationRevision' {} Text
a -> DescribeConfigurationRevision
s {$sel:arn:DescribeConfigurationRevision' :: Text
arn = Text
a} :: DescribeConfigurationRevision)

instance
  Core.AWSRequest
    DescribeConfigurationRevision
  where
  type
    AWSResponse DescribeConfigurationRevision =
      DescribeConfigurationRevisionResponse
  request :: (Service -> Service)
-> DescribeConfigurationRevision
-> Request DescribeConfigurationRevision
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeConfigurationRevision
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeConfigurationRevision)))
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 Text
-> Maybe ISO8601
-> Maybe Text
-> Maybe Integer
-> Maybe Base64
-> Int
-> DescribeConfigurationRevisionResponse
DescribeConfigurationRevisionResponse'
            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
"arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"creationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"revision")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"serverProperties")
            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
    DescribeConfigurationRevision
  where
  hashWithSalt :: Int -> DescribeConfigurationRevision -> Int
hashWithSalt Int
_salt DescribeConfigurationRevision' {Integer
Text
arn :: Text
revision :: Integer
$sel:arn:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Text
$sel:revision:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Integer
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Integer
revision
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn

instance Prelude.NFData DescribeConfigurationRevision where
  rnf :: DescribeConfigurationRevision -> ()
rnf DescribeConfigurationRevision' {Integer
Text
arn :: Text
revision :: Integer
$sel:arn:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Text
$sel:revision:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Integer
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Integer
revision seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn

instance Data.ToHeaders DescribeConfigurationRevision where
  toHeaders :: DescribeConfigurationRevision -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DescribeConfigurationRevision where
  toPath :: DescribeConfigurationRevision -> ByteString
toPath DescribeConfigurationRevision' {Integer
Text
arn :: Text
revision :: Integer
$sel:arn:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Text
$sel:revision:DescribeConfigurationRevision' :: DescribeConfigurationRevision -> Integer
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/v1/configurations/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
arn,
        ByteString
"/revisions/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Integer
revision
      ]

instance Data.ToQuery DescribeConfigurationRevision where
  toQuery :: DescribeConfigurationRevision -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeConfigurationRevisionResponse' smart constructor.
data DescribeConfigurationRevisionResponse = DescribeConfigurationRevisionResponse'
  { -- | The Amazon Resource Name (ARN) of the configuration.
    DescribeConfigurationRevisionResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The time when the configuration was created.
    DescribeConfigurationRevisionResponse -> Maybe ISO8601
creationTime :: Prelude.Maybe Data.ISO8601,
    -- | The description of the configuration.
    DescribeConfigurationRevisionResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The revision number.
    DescribeConfigurationRevisionResponse -> Maybe Integer
revision :: Prelude.Maybe Prelude.Integer,
    -- | Contents of the server.properties file. When using the API, you must
    -- ensure that the contents of the file are base64 encoded. When using the
    -- AWS Management Console, the SDK, or the AWS CLI, the contents of
    -- server.properties can be in plaintext.
    DescribeConfigurationRevisionResponse -> Maybe Base64
serverProperties :: Prelude.Maybe Data.Base64,
    -- | The response's http status code.
    DescribeConfigurationRevisionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeConfigurationRevisionResponse
-> DescribeConfigurationRevisionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeConfigurationRevisionResponse
-> DescribeConfigurationRevisionResponse -> Bool
$c/= :: DescribeConfigurationRevisionResponse
-> DescribeConfigurationRevisionResponse -> Bool
== :: DescribeConfigurationRevisionResponse
-> DescribeConfigurationRevisionResponse -> Bool
$c== :: DescribeConfigurationRevisionResponse
-> DescribeConfigurationRevisionResponse -> Bool
Prelude.Eq, ReadPrec [DescribeConfigurationRevisionResponse]
ReadPrec DescribeConfigurationRevisionResponse
Int -> ReadS DescribeConfigurationRevisionResponse
ReadS [DescribeConfigurationRevisionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeConfigurationRevisionResponse]
$creadListPrec :: ReadPrec [DescribeConfigurationRevisionResponse]
readPrec :: ReadPrec DescribeConfigurationRevisionResponse
$creadPrec :: ReadPrec DescribeConfigurationRevisionResponse
readList :: ReadS [DescribeConfigurationRevisionResponse]
$creadList :: ReadS [DescribeConfigurationRevisionResponse]
readsPrec :: Int -> ReadS DescribeConfigurationRevisionResponse
$creadsPrec :: Int -> ReadS DescribeConfigurationRevisionResponse
Prelude.Read, Int -> DescribeConfigurationRevisionResponse -> ShowS
[DescribeConfigurationRevisionResponse] -> ShowS
DescribeConfigurationRevisionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeConfigurationRevisionResponse] -> ShowS
$cshowList :: [DescribeConfigurationRevisionResponse] -> ShowS
show :: DescribeConfigurationRevisionResponse -> String
$cshow :: DescribeConfigurationRevisionResponse -> String
showsPrec :: Int -> DescribeConfigurationRevisionResponse -> ShowS
$cshowsPrec :: Int -> DescribeConfigurationRevisionResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeConfigurationRevisionResponse x
-> DescribeConfigurationRevisionResponse
forall x.
DescribeConfigurationRevisionResponse
-> Rep DescribeConfigurationRevisionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeConfigurationRevisionResponse x
-> DescribeConfigurationRevisionResponse
$cfrom :: forall x.
DescribeConfigurationRevisionResponse
-> Rep DescribeConfigurationRevisionResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeConfigurationRevisionResponse' 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:
--
-- 'arn', 'describeConfigurationRevisionResponse_arn' - The Amazon Resource Name (ARN) of the configuration.
--
-- 'creationTime', 'describeConfigurationRevisionResponse_creationTime' - The time when the configuration was created.
--
-- 'description', 'describeConfigurationRevisionResponse_description' - The description of the configuration.
--
-- 'revision', 'describeConfigurationRevisionResponse_revision' - The revision number.
--
-- 'serverProperties', 'describeConfigurationRevisionResponse_serverProperties' - Contents of the server.properties file. When using the API, you must
-- ensure that the contents of the file are base64 encoded. When using the
-- AWS Management Console, the SDK, or the AWS CLI, the contents of
-- server.properties can be in plaintext.--
-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
-- -- The underlying isomorphism will encode to Base64 representation during
-- -- serialisation, and decode from Base64 representation during deserialisation.
-- -- This 'Lens' accepts and returns only raw unencoded data.
--
-- 'httpStatus', 'describeConfigurationRevisionResponse_httpStatus' - The response's http status code.
newDescribeConfigurationRevisionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeConfigurationRevisionResponse
newDescribeConfigurationRevisionResponse :: Int -> DescribeConfigurationRevisionResponse
newDescribeConfigurationRevisionResponse Int
pHttpStatus_ =
  DescribeConfigurationRevisionResponse'
    { $sel:arn:DescribeConfigurationRevisionResponse' :: Maybe Text
arn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:DescribeConfigurationRevisionResponse' :: Maybe ISO8601
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeConfigurationRevisionResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:revision:DescribeConfigurationRevisionResponse' :: Maybe Integer
revision = forall a. Maybe a
Prelude.Nothing,
      $sel:serverProperties:DescribeConfigurationRevisionResponse' :: Maybe Base64
serverProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeConfigurationRevisionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The Amazon Resource Name (ARN) of the configuration.
describeConfigurationRevisionResponse_arn :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.Text)
describeConfigurationRevisionResponse_arn :: Lens' DescribeConfigurationRevisionResponse (Maybe Text)
describeConfigurationRevisionResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationRevisionResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: DescribeConfigurationRevisionResponse
s@DescribeConfigurationRevisionResponse' {} Maybe Text
a -> DescribeConfigurationRevisionResponse
s {$sel:arn:DescribeConfigurationRevisionResponse' :: Maybe Text
arn = Maybe Text
a} :: DescribeConfigurationRevisionResponse)

-- | The time when the configuration was created.
describeConfigurationRevisionResponse_creationTime :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.UTCTime)
describeConfigurationRevisionResponse_creationTime :: Lens' DescribeConfigurationRevisionResponse (Maybe UTCTime)
describeConfigurationRevisionResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationRevisionResponse' {Maybe ISO8601
creationTime :: Maybe ISO8601
$sel:creationTime:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe ISO8601
creationTime} -> Maybe ISO8601
creationTime) (\s :: DescribeConfigurationRevisionResponse
s@DescribeConfigurationRevisionResponse' {} Maybe ISO8601
a -> DescribeConfigurationRevisionResponse
s {$sel:creationTime:DescribeConfigurationRevisionResponse' :: Maybe ISO8601
creationTime = Maybe ISO8601
a} :: DescribeConfigurationRevisionResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The description of the configuration.
describeConfigurationRevisionResponse_description :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.Text)
describeConfigurationRevisionResponse_description :: Lens' DescribeConfigurationRevisionResponse (Maybe Text)
describeConfigurationRevisionResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationRevisionResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeConfigurationRevisionResponse
s@DescribeConfigurationRevisionResponse' {} Maybe Text
a -> DescribeConfigurationRevisionResponse
s {$sel:description:DescribeConfigurationRevisionResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeConfigurationRevisionResponse)

-- | The revision number.
describeConfigurationRevisionResponse_revision :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.Integer)
describeConfigurationRevisionResponse_revision :: Lens' DescribeConfigurationRevisionResponse (Maybe Integer)
describeConfigurationRevisionResponse_revision = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationRevisionResponse' {Maybe Integer
revision :: Maybe Integer
$sel:revision:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Integer
revision} -> Maybe Integer
revision) (\s :: DescribeConfigurationRevisionResponse
s@DescribeConfigurationRevisionResponse' {} Maybe Integer
a -> DescribeConfigurationRevisionResponse
s {$sel:revision:DescribeConfigurationRevisionResponse' :: Maybe Integer
revision = Maybe Integer
a} :: DescribeConfigurationRevisionResponse)

-- | Contents of the server.properties file. When using the API, you must
-- ensure that the contents of the file are base64 encoded. When using the
-- AWS Management Console, the SDK, or the AWS CLI, the contents of
-- server.properties can be in plaintext.--
-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.
-- -- The underlying isomorphism will encode to Base64 representation during
-- -- serialisation, and decode from Base64 representation during deserialisation.
-- -- This 'Lens' accepts and returns only raw unencoded data.
describeConfigurationRevisionResponse_serverProperties :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.ByteString)
describeConfigurationRevisionResponse_serverProperties :: Lens' DescribeConfigurationRevisionResponse (Maybe ByteString)
describeConfigurationRevisionResponse_serverProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeConfigurationRevisionResponse' {Maybe Base64
serverProperties :: Maybe Base64
$sel:serverProperties:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Base64
serverProperties} -> Maybe Base64
serverProperties) (\s :: DescribeConfigurationRevisionResponse
s@DescribeConfigurationRevisionResponse' {} Maybe Base64
a -> DescribeConfigurationRevisionResponse
s {$sel:serverProperties:DescribeConfigurationRevisionResponse' :: Maybe Base64
serverProperties = Maybe Base64
a} :: DescribeConfigurationRevisionResponse) 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 Iso' Base64 ByteString
Data._Base64

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

instance
  Prelude.NFData
    DescribeConfigurationRevisionResponse
  where
  rnf :: DescribeConfigurationRevisionResponse -> ()
rnf DescribeConfigurationRevisionResponse' {Int
Maybe Integer
Maybe Text
Maybe Base64
Maybe ISO8601
httpStatus :: Int
serverProperties :: Maybe Base64
revision :: Maybe Integer
description :: Maybe Text
creationTime :: Maybe ISO8601
arn :: Maybe Text
$sel:httpStatus:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Int
$sel:serverProperties:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Base64
$sel:revision:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Integer
$sel:description:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Text
$sel:creationTime:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe ISO8601
$sel:arn:DescribeConfigurationRevisionResponse' :: DescribeConfigurationRevisionResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
revision
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Base64
serverProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus