{-# 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.CloudHSM.DescribeLunaClient
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- This is documentation for __AWS CloudHSM Classic__. For more
-- information, see
-- <http://aws.amazon.com/cloudhsm/faqs-classic/ AWS CloudHSM Classic FAQs>,
-- the
-- <https://docs.aws.amazon.com/cloudhsm/classic/userguide/ AWS CloudHSM Classic User Guide>,
-- and the
-- <https://docs.aws.amazon.com/cloudhsm/classic/APIReference/ AWS CloudHSM Classic API Reference>.
--
-- __For information about the current version of AWS CloudHSM__, see
-- <http://aws.amazon.com/cloudhsm/ AWS CloudHSM>, the
-- <https://docs.aws.amazon.com/cloudhsm/latest/userguide/ AWS CloudHSM User Guide>,
-- and the
-- <https://docs.aws.amazon.com/cloudhsm/latest/APIReference/ AWS CloudHSM API Reference>.
--
-- Retrieves information about an HSM client.
module Amazonka.CloudHSM.DescribeLunaClient
  ( -- * Creating a Request
    DescribeLunaClient (..),
    newDescribeLunaClient,

    -- * Request Lenses
    describeLunaClient_certificateFingerprint,
    describeLunaClient_clientArn,

    -- * Destructuring the Response
    DescribeLunaClientResponse (..),
    newDescribeLunaClientResponse,

    -- * Response Lenses
    describeLunaClientResponse_certificate,
    describeLunaClientResponse_certificateFingerprint,
    describeLunaClientResponse_clientArn,
    describeLunaClientResponse_label,
    describeLunaClientResponse_lastModifiedTimestamp,
    describeLunaClientResponse_httpStatus,
  )
where

import Amazonka.CloudHSM.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

-- | /See:/ 'newDescribeLunaClient' smart constructor.
data DescribeLunaClient = DescribeLunaClient'
  { -- | The certificate fingerprint.
    DescribeLunaClient -> Maybe Text
certificateFingerprint :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the client.
    DescribeLunaClient -> Maybe Text
clientArn :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeLunaClient -> DescribeLunaClient -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeLunaClient -> DescribeLunaClient -> Bool
$c/= :: DescribeLunaClient -> DescribeLunaClient -> Bool
== :: DescribeLunaClient -> DescribeLunaClient -> Bool
$c== :: DescribeLunaClient -> DescribeLunaClient -> Bool
Prelude.Eq, ReadPrec [DescribeLunaClient]
ReadPrec DescribeLunaClient
Int -> ReadS DescribeLunaClient
ReadS [DescribeLunaClient]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeLunaClient]
$creadListPrec :: ReadPrec [DescribeLunaClient]
readPrec :: ReadPrec DescribeLunaClient
$creadPrec :: ReadPrec DescribeLunaClient
readList :: ReadS [DescribeLunaClient]
$creadList :: ReadS [DescribeLunaClient]
readsPrec :: Int -> ReadS DescribeLunaClient
$creadsPrec :: Int -> ReadS DescribeLunaClient
Prelude.Read, Int -> DescribeLunaClient -> ShowS
[DescribeLunaClient] -> ShowS
DescribeLunaClient -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeLunaClient] -> ShowS
$cshowList :: [DescribeLunaClient] -> ShowS
show :: DescribeLunaClient -> String
$cshow :: DescribeLunaClient -> String
showsPrec :: Int -> DescribeLunaClient -> ShowS
$cshowsPrec :: Int -> DescribeLunaClient -> ShowS
Prelude.Show, forall x. Rep DescribeLunaClient x -> DescribeLunaClient
forall x. DescribeLunaClient -> Rep DescribeLunaClient x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeLunaClient x -> DescribeLunaClient
$cfrom :: forall x. DescribeLunaClient -> Rep DescribeLunaClient x
Prelude.Generic)

-- |
-- Create a value of 'DescribeLunaClient' 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:
--
-- 'certificateFingerprint', 'describeLunaClient_certificateFingerprint' - The certificate fingerprint.
--
-- 'clientArn', 'describeLunaClient_clientArn' - The ARN of the client.
newDescribeLunaClient ::
  DescribeLunaClient
newDescribeLunaClient :: DescribeLunaClient
newDescribeLunaClient =
  DescribeLunaClient'
    { $sel:certificateFingerprint:DescribeLunaClient' :: Maybe Text
certificateFingerprint =
        forall a. Maybe a
Prelude.Nothing,
      $sel:clientArn:DescribeLunaClient' :: Maybe Text
clientArn = forall a. Maybe a
Prelude.Nothing
    }

-- | The certificate fingerprint.
describeLunaClient_certificateFingerprint :: Lens.Lens' DescribeLunaClient (Prelude.Maybe Prelude.Text)
describeLunaClient_certificateFingerprint :: Lens' DescribeLunaClient (Maybe Text)
describeLunaClient_certificateFingerprint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLunaClient' {Maybe Text
certificateFingerprint :: Maybe Text
$sel:certificateFingerprint:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
certificateFingerprint} -> Maybe Text
certificateFingerprint) (\s :: DescribeLunaClient
s@DescribeLunaClient' {} Maybe Text
a -> DescribeLunaClient
s {$sel:certificateFingerprint:DescribeLunaClient' :: Maybe Text
certificateFingerprint = Maybe Text
a} :: DescribeLunaClient)

-- | The ARN of the client.
describeLunaClient_clientArn :: Lens.Lens' DescribeLunaClient (Prelude.Maybe Prelude.Text)
describeLunaClient_clientArn :: Lens' DescribeLunaClient (Maybe Text)
describeLunaClient_clientArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLunaClient' {Maybe Text
clientArn :: Maybe Text
$sel:clientArn:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
clientArn} -> Maybe Text
clientArn) (\s :: DescribeLunaClient
s@DescribeLunaClient' {} Maybe Text
a -> DescribeLunaClient
s {$sel:clientArn:DescribeLunaClient' :: Maybe Text
clientArn = Maybe Text
a} :: DescribeLunaClient)

instance Core.AWSRequest DescribeLunaClient where
  type
    AWSResponse DescribeLunaClient =
      DescribeLunaClientResponse
  request :: (Service -> Service)
-> DescribeLunaClient -> Request DescribeLunaClient
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 DescribeLunaClient
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeLunaClient)))
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 Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeLunaClientResponse
DescribeLunaClientResponse'
            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
"Certificate")
            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
"CertificateFingerprint")
            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
"ClientArn")
            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
"Label")
            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
"LastModifiedTimestamp")
            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 DescribeLunaClient where
  hashWithSalt :: Int -> DescribeLunaClient -> Int
hashWithSalt Int
_salt DescribeLunaClient' {Maybe Text
clientArn :: Maybe Text
certificateFingerprint :: Maybe Text
$sel:clientArn:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
$sel:certificateFingerprint:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
certificateFingerprint
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientArn

instance Prelude.NFData DescribeLunaClient where
  rnf :: DescribeLunaClient -> ()
rnf DescribeLunaClient' {Maybe Text
clientArn :: Maybe Text
certificateFingerprint :: Maybe Text
$sel:clientArn:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
$sel:certificateFingerprint:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certificateFingerprint
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientArn

instance Data.ToHeaders DescribeLunaClient where
  toHeaders :: DescribeLunaClient -> 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
"CloudHsmFrontendService.DescribeLunaClient" ::
                          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 DescribeLunaClient where
  toJSON :: DescribeLunaClient -> Value
toJSON DescribeLunaClient' {Maybe Text
clientArn :: Maybe Text
certificateFingerprint :: Maybe Text
$sel:clientArn:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
$sel:certificateFingerprint:DescribeLunaClient' :: DescribeLunaClient -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CertificateFingerprint" 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
certificateFingerprint,
            (Key
"ClientArn" 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
clientArn
          ]
      )

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

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

-- | /See:/ 'newDescribeLunaClientResponse' smart constructor.
data DescribeLunaClientResponse = DescribeLunaClientResponse'
  { -- | The certificate installed on the HSMs used by this client.
    DescribeLunaClientResponse -> Maybe Text
certificate :: Prelude.Maybe Prelude.Text,
    -- | The certificate fingerprint.
    DescribeLunaClientResponse -> Maybe Text
certificateFingerprint :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the client.
    DescribeLunaClientResponse -> Maybe Text
clientArn :: Prelude.Maybe Prelude.Text,
    -- | The label of the client.
    DescribeLunaClientResponse -> Maybe Text
label :: Prelude.Maybe Prelude.Text,
    -- | The date and time the client was last modified.
    DescribeLunaClientResponse -> Maybe Text
lastModifiedTimestamp :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeLunaClientResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeLunaClientResponse -> DescribeLunaClientResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeLunaClientResponse -> DescribeLunaClientResponse -> Bool
$c/= :: DescribeLunaClientResponse -> DescribeLunaClientResponse -> Bool
== :: DescribeLunaClientResponse -> DescribeLunaClientResponse -> Bool
$c== :: DescribeLunaClientResponse -> DescribeLunaClientResponse -> Bool
Prelude.Eq, ReadPrec [DescribeLunaClientResponse]
ReadPrec DescribeLunaClientResponse
Int -> ReadS DescribeLunaClientResponse
ReadS [DescribeLunaClientResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeLunaClientResponse]
$creadListPrec :: ReadPrec [DescribeLunaClientResponse]
readPrec :: ReadPrec DescribeLunaClientResponse
$creadPrec :: ReadPrec DescribeLunaClientResponse
readList :: ReadS [DescribeLunaClientResponse]
$creadList :: ReadS [DescribeLunaClientResponse]
readsPrec :: Int -> ReadS DescribeLunaClientResponse
$creadsPrec :: Int -> ReadS DescribeLunaClientResponse
Prelude.Read, Int -> DescribeLunaClientResponse -> ShowS
[DescribeLunaClientResponse] -> ShowS
DescribeLunaClientResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeLunaClientResponse] -> ShowS
$cshowList :: [DescribeLunaClientResponse] -> ShowS
show :: DescribeLunaClientResponse -> String
$cshow :: DescribeLunaClientResponse -> String
showsPrec :: Int -> DescribeLunaClientResponse -> ShowS
$cshowsPrec :: Int -> DescribeLunaClientResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeLunaClientResponse x -> DescribeLunaClientResponse
forall x.
DescribeLunaClientResponse -> Rep DescribeLunaClientResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeLunaClientResponse x -> DescribeLunaClientResponse
$cfrom :: forall x.
DescribeLunaClientResponse -> Rep DescribeLunaClientResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeLunaClientResponse' 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:
--
-- 'certificate', 'describeLunaClientResponse_certificate' - The certificate installed on the HSMs used by this client.
--
-- 'certificateFingerprint', 'describeLunaClientResponse_certificateFingerprint' - The certificate fingerprint.
--
-- 'clientArn', 'describeLunaClientResponse_clientArn' - The ARN of the client.
--
-- 'label', 'describeLunaClientResponse_label' - The label of the client.
--
-- 'lastModifiedTimestamp', 'describeLunaClientResponse_lastModifiedTimestamp' - The date and time the client was last modified.
--
-- 'httpStatus', 'describeLunaClientResponse_httpStatus' - The response's http status code.
newDescribeLunaClientResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeLunaClientResponse
newDescribeLunaClientResponse :: Int -> DescribeLunaClientResponse
newDescribeLunaClientResponse Int
pHttpStatus_ =
  DescribeLunaClientResponse'
    { $sel:certificate:DescribeLunaClientResponse' :: Maybe Text
certificate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:certificateFingerprint:DescribeLunaClientResponse' :: Maybe Text
certificateFingerprint = forall a. Maybe a
Prelude.Nothing,
      $sel:clientArn:DescribeLunaClientResponse' :: Maybe Text
clientArn = forall a. Maybe a
Prelude.Nothing,
      $sel:label:DescribeLunaClientResponse' :: Maybe Text
label = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTimestamp:DescribeLunaClientResponse' :: Maybe Text
lastModifiedTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeLunaClientResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The certificate installed on the HSMs used by this client.
describeLunaClientResponse_certificate :: Lens.Lens' DescribeLunaClientResponse (Prelude.Maybe Prelude.Text)
describeLunaClientResponse_certificate :: Lens' DescribeLunaClientResponse (Maybe Text)
describeLunaClientResponse_certificate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLunaClientResponse' {Maybe Text
certificate :: Maybe Text
$sel:certificate:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
certificate} -> Maybe Text
certificate) (\s :: DescribeLunaClientResponse
s@DescribeLunaClientResponse' {} Maybe Text
a -> DescribeLunaClientResponse
s {$sel:certificate:DescribeLunaClientResponse' :: Maybe Text
certificate = Maybe Text
a} :: DescribeLunaClientResponse)

-- | The certificate fingerprint.
describeLunaClientResponse_certificateFingerprint :: Lens.Lens' DescribeLunaClientResponse (Prelude.Maybe Prelude.Text)
describeLunaClientResponse_certificateFingerprint :: Lens' DescribeLunaClientResponse (Maybe Text)
describeLunaClientResponse_certificateFingerprint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLunaClientResponse' {Maybe Text
certificateFingerprint :: Maybe Text
$sel:certificateFingerprint:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
certificateFingerprint} -> Maybe Text
certificateFingerprint) (\s :: DescribeLunaClientResponse
s@DescribeLunaClientResponse' {} Maybe Text
a -> DescribeLunaClientResponse
s {$sel:certificateFingerprint:DescribeLunaClientResponse' :: Maybe Text
certificateFingerprint = Maybe Text
a} :: DescribeLunaClientResponse)

-- | The ARN of the client.
describeLunaClientResponse_clientArn :: Lens.Lens' DescribeLunaClientResponse (Prelude.Maybe Prelude.Text)
describeLunaClientResponse_clientArn :: Lens' DescribeLunaClientResponse (Maybe Text)
describeLunaClientResponse_clientArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLunaClientResponse' {Maybe Text
clientArn :: Maybe Text
$sel:clientArn:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
clientArn} -> Maybe Text
clientArn) (\s :: DescribeLunaClientResponse
s@DescribeLunaClientResponse' {} Maybe Text
a -> DescribeLunaClientResponse
s {$sel:clientArn:DescribeLunaClientResponse' :: Maybe Text
clientArn = Maybe Text
a} :: DescribeLunaClientResponse)

-- | The label of the client.
describeLunaClientResponse_label :: Lens.Lens' DescribeLunaClientResponse (Prelude.Maybe Prelude.Text)
describeLunaClientResponse_label :: Lens' DescribeLunaClientResponse (Maybe Text)
describeLunaClientResponse_label = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLunaClientResponse' {Maybe Text
label :: Maybe Text
$sel:label:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
label} -> Maybe Text
label) (\s :: DescribeLunaClientResponse
s@DescribeLunaClientResponse' {} Maybe Text
a -> DescribeLunaClientResponse
s {$sel:label:DescribeLunaClientResponse' :: Maybe Text
label = Maybe Text
a} :: DescribeLunaClientResponse)

-- | The date and time the client was last modified.
describeLunaClientResponse_lastModifiedTimestamp :: Lens.Lens' DescribeLunaClientResponse (Prelude.Maybe Prelude.Text)
describeLunaClientResponse_lastModifiedTimestamp :: Lens' DescribeLunaClientResponse (Maybe Text)
describeLunaClientResponse_lastModifiedTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLunaClientResponse' {Maybe Text
lastModifiedTimestamp :: Maybe Text
$sel:lastModifiedTimestamp:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
lastModifiedTimestamp} -> Maybe Text
lastModifiedTimestamp) (\s :: DescribeLunaClientResponse
s@DescribeLunaClientResponse' {} Maybe Text
a -> DescribeLunaClientResponse
s {$sel:lastModifiedTimestamp:DescribeLunaClientResponse' :: Maybe Text
lastModifiedTimestamp = Maybe Text
a} :: DescribeLunaClientResponse)

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

instance Prelude.NFData DescribeLunaClientResponse where
  rnf :: DescribeLunaClientResponse -> ()
rnf DescribeLunaClientResponse' {Int
Maybe Text
httpStatus :: Int
lastModifiedTimestamp :: Maybe Text
label :: Maybe Text
clientArn :: Maybe Text
certificateFingerprint :: Maybe Text
certificate :: Maybe Text
$sel:httpStatus:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Int
$sel:lastModifiedTimestamp:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
$sel:label:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
$sel:clientArn:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
$sel:certificateFingerprint:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
$sel:certificate:DescribeLunaClientResponse' :: DescribeLunaClientResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certificate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certificateFingerprint
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
label
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastModifiedTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus