{-# 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.MacieV2.GetSensitiveDataOccurrencesAvailability
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Checks whether occurrences of sensitive data can be retrieved for a
-- finding.
module Amazonka.MacieV2.GetSensitiveDataOccurrencesAvailability
  ( -- * Creating a Request
    GetSensitiveDataOccurrencesAvailability (..),
    newGetSensitiveDataOccurrencesAvailability,

    -- * Request Lenses
    getSensitiveDataOccurrencesAvailability_findingId,

    -- * Destructuring the Response
    GetSensitiveDataOccurrencesAvailabilityResponse (..),
    newGetSensitiveDataOccurrencesAvailabilityResponse,

    -- * Response Lenses
    getSensitiveDataOccurrencesAvailabilityResponse_code,
    getSensitiveDataOccurrencesAvailabilityResponse_reasons,
    getSensitiveDataOccurrencesAvailabilityResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetSensitiveDataOccurrencesAvailability' smart constructor.
data GetSensitiveDataOccurrencesAvailability = GetSensitiveDataOccurrencesAvailability'
  { -- | The unique identifier for the finding.
    GetSensitiveDataOccurrencesAvailability -> Text
findingId :: Prelude.Text
  }
  deriving (GetSensitiveDataOccurrencesAvailability
-> GetSensitiveDataOccurrencesAvailability -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSensitiveDataOccurrencesAvailability
-> GetSensitiveDataOccurrencesAvailability -> Bool
$c/= :: GetSensitiveDataOccurrencesAvailability
-> GetSensitiveDataOccurrencesAvailability -> Bool
== :: GetSensitiveDataOccurrencesAvailability
-> GetSensitiveDataOccurrencesAvailability -> Bool
$c== :: GetSensitiveDataOccurrencesAvailability
-> GetSensitiveDataOccurrencesAvailability -> Bool
Prelude.Eq, ReadPrec [GetSensitiveDataOccurrencesAvailability]
ReadPrec GetSensitiveDataOccurrencesAvailability
Int -> ReadS GetSensitiveDataOccurrencesAvailability
ReadS [GetSensitiveDataOccurrencesAvailability]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSensitiveDataOccurrencesAvailability]
$creadListPrec :: ReadPrec [GetSensitiveDataOccurrencesAvailability]
readPrec :: ReadPrec GetSensitiveDataOccurrencesAvailability
$creadPrec :: ReadPrec GetSensitiveDataOccurrencesAvailability
readList :: ReadS [GetSensitiveDataOccurrencesAvailability]
$creadList :: ReadS [GetSensitiveDataOccurrencesAvailability]
readsPrec :: Int -> ReadS GetSensitiveDataOccurrencesAvailability
$creadsPrec :: Int -> ReadS GetSensitiveDataOccurrencesAvailability
Prelude.Read, Int -> GetSensitiveDataOccurrencesAvailability -> ShowS
[GetSensitiveDataOccurrencesAvailability] -> ShowS
GetSensitiveDataOccurrencesAvailability -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSensitiveDataOccurrencesAvailability] -> ShowS
$cshowList :: [GetSensitiveDataOccurrencesAvailability] -> ShowS
show :: GetSensitiveDataOccurrencesAvailability -> String
$cshow :: GetSensitiveDataOccurrencesAvailability -> String
showsPrec :: Int -> GetSensitiveDataOccurrencesAvailability -> ShowS
$cshowsPrec :: Int -> GetSensitiveDataOccurrencesAvailability -> ShowS
Prelude.Show, forall x.
Rep GetSensitiveDataOccurrencesAvailability x
-> GetSensitiveDataOccurrencesAvailability
forall x.
GetSensitiveDataOccurrencesAvailability
-> Rep GetSensitiveDataOccurrencesAvailability x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetSensitiveDataOccurrencesAvailability x
-> GetSensitiveDataOccurrencesAvailability
$cfrom :: forall x.
GetSensitiveDataOccurrencesAvailability
-> Rep GetSensitiveDataOccurrencesAvailability x
Prelude.Generic)

-- |
-- Create a value of 'GetSensitiveDataOccurrencesAvailability' 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:
--
-- 'findingId', 'getSensitiveDataOccurrencesAvailability_findingId' - The unique identifier for the finding.
newGetSensitiveDataOccurrencesAvailability ::
  -- | 'findingId'
  Prelude.Text ->
  GetSensitiveDataOccurrencesAvailability
newGetSensitiveDataOccurrencesAvailability :: Text -> GetSensitiveDataOccurrencesAvailability
newGetSensitiveDataOccurrencesAvailability
  Text
pFindingId_ =
    GetSensitiveDataOccurrencesAvailability'
      { $sel:findingId:GetSensitiveDataOccurrencesAvailability' :: Text
findingId =
          Text
pFindingId_
      }

-- | The unique identifier for the finding.
getSensitiveDataOccurrencesAvailability_findingId :: Lens.Lens' GetSensitiveDataOccurrencesAvailability Prelude.Text
getSensitiveDataOccurrencesAvailability_findingId :: Lens' GetSensitiveDataOccurrencesAvailability Text
getSensitiveDataOccurrencesAvailability_findingId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSensitiveDataOccurrencesAvailability' {Text
findingId :: Text
$sel:findingId:GetSensitiveDataOccurrencesAvailability' :: GetSensitiveDataOccurrencesAvailability -> Text
findingId} -> Text
findingId) (\s :: GetSensitiveDataOccurrencesAvailability
s@GetSensitiveDataOccurrencesAvailability' {} Text
a -> GetSensitiveDataOccurrencesAvailability
s {$sel:findingId:GetSensitiveDataOccurrencesAvailability' :: Text
findingId = Text
a} :: GetSensitiveDataOccurrencesAvailability)

instance
  Core.AWSRequest
    GetSensitiveDataOccurrencesAvailability
  where
  type
    AWSResponse
      GetSensitiveDataOccurrencesAvailability =
      GetSensitiveDataOccurrencesAvailabilityResponse
  request :: (Service -> Service)
-> GetSensitiveDataOccurrencesAvailability
-> Request GetSensitiveDataOccurrencesAvailability
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 GetSensitiveDataOccurrencesAvailability
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse GetSensitiveDataOccurrencesAvailability)))
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 AvailabilityCode
-> Maybe [UnavailabilityReasonCode]
-> Int
-> GetSensitiveDataOccurrencesAvailabilityResponse
GetSensitiveDataOccurrencesAvailabilityResponse'
            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
"code")
            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
"reasons" 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
    GetSensitiveDataOccurrencesAvailability
  where
  hashWithSalt :: Int -> GetSensitiveDataOccurrencesAvailability -> Int
hashWithSalt
    Int
_salt
    GetSensitiveDataOccurrencesAvailability' {Text
findingId :: Text
$sel:findingId:GetSensitiveDataOccurrencesAvailability' :: GetSensitiveDataOccurrencesAvailability -> Text
..} =
      Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
findingId

instance
  Prelude.NFData
    GetSensitiveDataOccurrencesAvailability
  where
  rnf :: GetSensitiveDataOccurrencesAvailability -> ()
rnf GetSensitiveDataOccurrencesAvailability' {Text
findingId :: Text
$sel:findingId:GetSensitiveDataOccurrencesAvailability' :: GetSensitiveDataOccurrencesAvailability -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
findingId

instance
  Data.ToHeaders
    GetSensitiveDataOccurrencesAvailability
  where
  toHeaders :: GetSensitiveDataOccurrencesAvailability -> 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
    GetSensitiveDataOccurrencesAvailability
  where
  toPath :: GetSensitiveDataOccurrencesAvailability -> ByteString
toPath GetSensitiveDataOccurrencesAvailability' {Text
findingId :: Text
$sel:findingId:GetSensitiveDataOccurrencesAvailability' :: GetSensitiveDataOccurrencesAvailability -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/findings/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
findingId,
        ByteString
"/reveal/availability"
      ]

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

-- | /See:/ 'newGetSensitiveDataOccurrencesAvailabilityResponse' smart constructor.
data GetSensitiveDataOccurrencesAvailabilityResponse = GetSensitiveDataOccurrencesAvailabilityResponse'
  { -- | Specifies whether occurrences of sensitive data can be retrieved for the
    -- finding. Possible values are: AVAILABLE, the sensitive data can be
    -- retrieved; and, UNAVAILABLE, the sensitive data can\'t be retrieved. If
    -- this value is UNAVAILABLE, the reasons array indicates why the data
    -- can\'t be retrieved.
    GetSensitiveDataOccurrencesAvailabilityResponse
-> Maybe AvailabilityCode
code :: Prelude.Maybe AvailabilityCode,
    -- | Specifies why occurrences of sensitive data can\'t be retrieved for the
    -- finding. Possible values are:
    --
    -- -   INVALID_CLASSIFICATION_RESULT - Amazon Macie can\'t verify the
    --     location of the sensitive data to retrieve. There isn\'t a
    --     corresponding sensitive data discovery result for the finding. Or
    --     the sensitive data discovery result specified by the
    --     ClassificationDetails.detailedResultsLocation field of the finding
    --     isn\'t available, is malformed or corrupted, or uses an unsupported
    --     storage format.
    --
    -- -   OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3
    --     object exceeds the size quota for retrieving occurrences of
    --     sensitive data.
    --
    -- -   OBJECT_UNAVAILABLE - The affected S3 object isn\'t available. The
    --     object might have been renamed, moved, or deleted. Or the object was
    --     changed after Macie created the finding.
    --
    -- -   UNSUPPORTED_FINDING_TYPE - The specified finding isn\'t a sensitive
    --     data finding.
    --
    -- -   UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or
    --     storage format that Macie doesn\'t support for retrieving
    --     occurrences of sensitive data.
    --
    -- This value is null if sensitive data can be retrieved for the finding.
    GetSensitiveDataOccurrencesAvailabilityResponse
-> Maybe [UnavailabilityReasonCode]
reasons :: Prelude.Maybe [UnavailabilityReasonCode],
    -- | The response's http status code.
    GetSensitiveDataOccurrencesAvailabilityResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetSensitiveDataOccurrencesAvailabilityResponse
-> GetSensitiveDataOccurrencesAvailabilityResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetSensitiveDataOccurrencesAvailabilityResponse
-> GetSensitiveDataOccurrencesAvailabilityResponse -> Bool
$c/= :: GetSensitiveDataOccurrencesAvailabilityResponse
-> GetSensitiveDataOccurrencesAvailabilityResponse -> Bool
== :: GetSensitiveDataOccurrencesAvailabilityResponse
-> GetSensitiveDataOccurrencesAvailabilityResponse -> Bool
$c== :: GetSensitiveDataOccurrencesAvailabilityResponse
-> GetSensitiveDataOccurrencesAvailabilityResponse -> Bool
Prelude.Eq, ReadPrec [GetSensitiveDataOccurrencesAvailabilityResponse]
ReadPrec GetSensitiveDataOccurrencesAvailabilityResponse
Int -> ReadS GetSensitiveDataOccurrencesAvailabilityResponse
ReadS [GetSensitiveDataOccurrencesAvailabilityResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetSensitiveDataOccurrencesAvailabilityResponse]
$creadListPrec :: ReadPrec [GetSensitiveDataOccurrencesAvailabilityResponse]
readPrec :: ReadPrec GetSensitiveDataOccurrencesAvailabilityResponse
$creadPrec :: ReadPrec GetSensitiveDataOccurrencesAvailabilityResponse
readList :: ReadS [GetSensitiveDataOccurrencesAvailabilityResponse]
$creadList :: ReadS [GetSensitiveDataOccurrencesAvailabilityResponse]
readsPrec :: Int -> ReadS GetSensitiveDataOccurrencesAvailabilityResponse
$creadsPrec :: Int -> ReadS GetSensitiveDataOccurrencesAvailabilityResponse
Prelude.Read, Int -> GetSensitiveDataOccurrencesAvailabilityResponse -> ShowS
[GetSensitiveDataOccurrencesAvailabilityResponse] -> ShowS
GetSensitiveDataOccurrencesAvailabilityResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetSensitiveDataOccurrencesAvailabilityResponse] -> ShowS
$cshowList :: [GetSensitiveDataOccurrencesAvailabilityResponse] -> ShowS
show :: GetSensitiveDataOccurrencesAvailabilityResponse -> String
$cshow :: GetSensitiveDataOccurrencesAvailabilityResponse -> String
showsPrec :: Int -> GetSensitiveDataOccurrencesAvailabilityResponse -> ShowS
$cshowsPrec :: Int -> GetSensitiveDataOccurrencesAvailabilityResponse -> ShowS
Prelude.Show, forall x.
Rep GetSensitiveDataOccurrencesAvailabilityResponse x
-> GetSensitiveDataOccurrencesAvailabilityResponse
forall x.
GetSensitiveDataOccurrencesAvailabilityResponse
-> Rep GetSensitiveDataOccurrencesAvailabilityResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetSensitiveDataOccurrencesAvailabilityResponse x
-> GetSensitiveDataOccurrencesAvailabilityResponse
$cfrom :: forall x.
GetSensitiveDataOccurrencesAvailabilityResponse
-> Rep GetSensitiveDataOccurrencesAvailabilityResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetSensitiveDataOccurrencesAvailabilityResponse' 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:
--
-- 'code', 'getSensitiveDataOccurrencesAvailabilityResponse_code' - Specifies whether occurrences of sensitive data can be retrieved for the
-- finding. Possible values are: AVAILABLE, the sensitive data can be
-- retrieved; and, UNAVAILABLE, the sensitive data can\'t be retrieved. If
-- this value is UNAVAILABLE, the reasons array indicates why the data
-- can\'t be retrieved.
--
-- 'reasons', 'getSensitiveDataOccurrencesAvailabilityResponse_reasons' - Specifies why occurrences of sensitive data can\'t be retrieved for the
-- finding. Possible values are:
--
-- -   INVALID_CLASSIFICATION_RESULT - Amazon Macie can\'t verify the
--     location of the sensitive data to retrieve. There isn\'t a
--     corresponding sensitive data discovery result for the finding. Or
--     the sensitive data discovery result specified by the
--     ClassificationDetails.detailedResultsLocation field of the finding
--     isn\'t available, is malformed or corrupted, or uses an unsupported
--     storage format.
--
-- -   OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3
--     object exceeds the size quota for retrieving occurrences of
--     sensitive data.
--
-- -   OBJECT_UNAVAILABLE - The affected S3 object isn\'t available. The
--     object might have been renamed, moved, or deleted. Or the object was
--     changed after Macie created the finding.
--
-- -   UNSUPPORTED_FINDING_TYPE - The specified finding isn\'t a sensitive
--     data finding.
--
-- -   UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or
--     storage format that Macie doesn\'t support for retrieving
--     occurrences of sensitive data.
--
-- This value is null if sensitive data can be retrieved for the finding.
--
-- 'httpStatus', 'getSensitiveDataOccurrencesAvailabilityResponse_httpStatus' - The response's http status code.
newGetSensitiveDataOccurrencesAvailabilityResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetSensitiveDataOccurrencesAvailabilityResponse
newGetSensitiveDataOccurrencesAvailabilityResponse :: Int -> GetSensitiveDataOccurrencesAvailabilityResponse
newGetSensitiveDataOccurrencesAvailabilityResponse
  Int
pHttpStatus_ =
    GetSensitiveDataOccurrencesAvailabilityResponse'
      { $sel:code:GetSensitiveDataOccurrencesAvailabilityResponse' :: Maybe AvailabilityCode
code =
          forall a. Maybe a
Prelude.Nothing,
        $sel:reasons:GetSensitiveDataOccurrencesAvailabilityResponse' :: Maybe [UnavailabilityReasonCode]
reasons = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetSensitiveDataOccurrencesAvailabilityResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Specifies whether occurrences of sensitive data can be retrieved for the
-- finding. Possible values are: AVAILABLE, the sensitive data can be
-- retrieved; and, UNAVAILABLE, the sensitive data can\'t be retrieved. If
-- this value is UNAVAILABLE, the reasons array indicates why the data
-- can\'t be retrieved.
getSensitiveDataOccurrencesAvailabilityResponse_code :: Lens.Lens' GetSensitiveDataOccurrencesAvailabilityResponse (Prelude.Maybe AvailabilityCode)
getSensitiveDataOccurrencesAvailabilityResponse_code :: Lens'
  GetSensitiveDataOccurrencesAvailabilityResponse
  (Maybe AvailabilityCode)
getSensitiveDataOccurrencesAvailabilityResponse_code = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSensitiveDataOccurrencesAvailabilityResponse' {Maybe AvailabilityCode
code :: Maybe AvailabilityCode
$sel:code:GetSensitiveDataOccurrencesAvailabilityResponse' :: GetSensitiveDataOccurrencesAvailabilityResponse
-> Maybe AvailabilityCode
code} -> Maybe AvailabilityCode
code) (\s :: GetSensitiveDataOccurrencesAvailabilityResponse
s@GetSensitiveDataOccurrencesAvailabilityResponse' {} Maybe AvailabilityCode
a -> GetSensitiveDataOccurrencesAvailabilityResponse
s {$sel:code:GetSensitiveDataOccurrencesAvailabilityResponse' :: Maybe AvailabilityCode
code = Maybe AvailabilityCode
a} :: GetSensitiveDataOccurrencesAvailabilityResponse)

-- | Specifies why occurrences of sensitive data can\'t be retrieved for the
-- finding. Possible values are:
--
-- -   INVALID_CLASSIFICATION_RESULT - Amazon Macie can\'t verify the
--     location of the sensitive data to retrieve. There isn\'t a
--     corresponding sensitive data discovery result for the finding. Or
--     the sensitive data discovery result specified by the
--     ClassificationDetails.detailedResultsLocation field of the finding
--     isn\'t available, is malformed or corrupted, or uses an unsupported
--     storage format.
--
-- -   OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3
--     object exceeds the size quota for retrieving occurrences of
--     sensitive data.
--
-- -   OBJECT_UNAVAILABLE - The affected S3 object isn\'t available. The
--     object might have been renamed, moved, or deleted. Or the object was
--     changed after Macie created the finding.
--
-- -   UNSUPPORTED_FINDING_TYPE - The specified finding isn\'t a sensitive
--     data finding.
--
-- -   UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or
--     storage format that Macie doesn\'t support for retrieving
--     occurrences of sensitive data.
--
-- This value is null if sensitive data can be retrieved for the finding.
getSensitiveDataOccurrencesAvailabilityResponse_reasons :: Lens.Lens' GetSensitiveDataOccurrencesAvailabilityResponse (Prelude.Maybe [UnavailabilityReasonCode])
getSensitiveDataOccurrencesAvailabilityResponse_reasons :: Lens'
  GetSensitiveDataOccurrencesAvailabilityResponse
  (Maybe [UnavailabilityReasonCode])
getSensitiveDataOccurrencesAvailabilityResponse_reasons = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSensitiveDataOccurrencesAvailabilityResponse' {Maybe [UnavailabilityReasonCode]
reasons :: Maybe [UnavailabilityReasonCode]
$sel:reasons:GetSensitiveDataOccurrencesAvailabilityResponse' :: GetSensitiveDataOccurrencesAvailabilityResponse
-> Maybe [UnavailabilityReasonCode]
reasons} -> Maybe [UnavailabilityReasonCode]
reasons) (\s :: GetSensitiveDataOccurrencesAvailabilityResponse
s@GetSensitiveDataOccurrencesAvailabilityResponse' {} Maybe [UnavailabilityReasonCode]
a -> GetSensitiveDataOccurrencesAvailabilityResponse
s {$sel:reasons:GetSensitiveDataOccurrencesAvailabilityResponse' :: Maybe [UnavailabilityReasonCode]
reasons = Maybe [UnavailabilityReasonCode]
a} :: GetSensitiveDataOccurrencesAvailabilityResponse) 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.
getSensitiveDataOccurrencesAvailabilityResponse_httpStatus :: Lens.Lens' GetSensitiveDataOccurrencesAvailabilityResponse Prelude.Int
getSensitiveDataOccurrencesAvailabilityResponse_httpStatus :: Lens' GetSensitiveDataOccurrencesAvailabilityResponse Int
getSensitiveDataOccurrencesAvailabilityResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetSensitiveDataOccurrencesAvailabilityResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetSensitiveDataOccurrencesAvailabilityResponse' :: GetSensitiveDataOccurrencesAvailabilityResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetSensitiveDataOccurrencesAvailabilityResponse
s@GetSensitiveDataOccurrencesAvailabilityResponse' {} Int
a -> GetSensitiveDataOccurrencesAvailabilityResponse
s {$sel:httpStatus:GetSensitiveDataOccurrencesAvailabilityResponse' :: Int
httpStatus = Int
a} :: GetSensitiveDataOccurrencesAvailabilityResponse)

instance
  Prelude.NFData
    GetSensitiveDataOccurrencesAvailabilityResponse
  where
  rnf :: GetSensitiveDataOccurrencesAvailabilityResponse -> ()
rnf
    GetSensitiveDataOccurrencesAvailabilityResponse' {Int
Maybe [UnavailabilityReasonCode]
Maybe AvailabilityCode
httpStatus :: Int
reasons :: Maybe [UnavailabilityReasonCode]
code :: Maybe AvailabilityCode
$sel:httpStatus:GetSensitiveDataOccurrencesAvailabilityResponse' :: GetSensitiveDataOccurrencesAvailabilityResponse -> Int
$sel:reasons:GetSensitiveDataOccurrencesAvailabilityResponse' :: GetSensitiveDataOccurrencesAvailabilityResponse
-> Maybe [UnavailabilityReasonCode]
$sel:code:GetSensitiveDataOccurrencesAvailabilityResponse' :: GetSensitiveDataOccurrencesAvailabilityResponse
-> Maybe AvailabilityCode
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe AvailabilityCode
code
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [UnavailabilityReasonCode]
reasons
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus