{-# 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.AuditManager.ValidateAssessmentReportIntegrity
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Validates the integrity of an assessment report in Audit Manager.
module Amazonka.AuditManager.ValidateAssessmentReportIntegrity
  ( -- * Creating a Request
    ValidateAssessmentReportIntegrity (..),
    newValidateAssessmentReportIntegrity,

    -- * Request Lenses
    validateAssessmentReportIntegrity_s3RelativePath,

    -- * Destructuring the Response
    ValidateAssessmentReportIntegrityResponse (..),
    newValidateAssessmentReportIntegrityResponse,

    -- * Response Lenses
    validateAssessmentReportIntegrityResponse_signatureAlgorithm,
    validateAssessmentReportIntegrityResponse_signatureDateTime,
    validateAssessmentReportIntegrityResponse_signatureKeyId,
    validateAssessmentReportIntegrityResponse_signatureValid,
    validateAssessmentReportIntegrityResponse_validationErrors,
    validateAssessmentReportIntegrityResponse_httpStatus,
  )
where

import Amazonka.AuditManager.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:/ 'newValidateAssessmentReportIntegrity' smart constructor.
data ValidateAssessmentReportIntegrity = ValidateAssessmentReportIntegrity'
  { -- | The relative path of the Amazon S3 bucket that the assessment report is
    -- stored in.
    ValidateAssessmentReportIntegrity -> Text
s3RelativePath :: Prelude.Text
  }
  deriving (ValidateAssessmentReportIntegrity
-> ValidateAssessmentReportIntegrity -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValidateAssessmentReportIntegrity
-> ValidateAssessmentReportIntegrity -> Bool
$c/= :: ValidateAssessmentReportIntegrity
-> ValidateAssessmentReportIntegrity -> Bool
== :: ValidateAssessmentReportIntegrity
-> ValidateAssessmentReportIntegrity -> Bool
$c== :: ValidateAssessmentReportIntegrity
-> ValidateAssessmentReportIntegrity -> Bool
Prelude.Eq, ReadPrec [ValidateAssessmentReportIntegrity]
ReadPrec ValidateAssessmentReportIntegrity
Int -> ReadS ValidateAssessmentReportIntegrity
ReadS [ValidateAssessmentReportIntegrity]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ValidateAssessmentReportIntegrity]
$creadListPrec :: ReadPrec [ValidateAssessmentReportIntegrity]
readPrec :: ReadPrec ValidateAssessmentReportIntegrity
$creadPrec :: ReadPrec ValidateAssessmentReportIntegrity
readList :: ReadS [ValidateAssessmentReportIntegrity]
$creadList :: ReadS [ValidateAssessmentReportIntegrity]
readsPrec :: Int -> ReadS ValidateAssessmentReportIntegrity
$creadsPrec :: Int -> ReadS ValidateAssessmentReportIntegrity
Prelude.Read, Int -> ValidateAssessmentReportIntegrity -> ShowS
[ValidateAssessmentReportIntegrity] -> ShowS
ValidateAssessmentReportIntegrity -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ValidateAssessmentReportIntegrity] -> ShowS
$cshowList :: [ValidateAssessmentReportIntegrity] -> ShowS
show :: ValidateAssessmentReportIntegrity -> String
$cshow :: ValidateAssessmentReportIntegrity -> String
showsPrec :: Int -> ValidateAssessmentReportIntegrity -> ShowS
$cshowsPrec :: Int -> ValidateAssessmentReportIntegrity -> ShowS
Prelude.Show, forall x.
Rep ValidateAssessmentReportIntegrity x
-> ValidateAssessmentReportIntegrity
forall x.
ValidateAssessmentReportIntegrity
-> Rep ValidateAssessmentReportIntegrity x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ValidateAssessmentReportIntegrity x
-> ValidateAssessmentReportIntegrity
$cfrom :: forall x.
ValidateAssessmentReportIntegrity
-> Rep ValidateAssessmentReportIntegrity x
Prelude.Generic)

-- |
-- Create a value of 'ValidateAssessmentReportIntegrity' 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:
--
-- 's3RelativePath', 'validateAssessmentReportIntegrity_s3RelativePath' - The relative path of the Amazon S3 bucket that the assessment report is
-- stored in.
newValidateAssessmentReportIntegrity ::
  -- | 's3RelativePath'
  Prelude.Text ->
  ValidateAssessmentReportIntegrity
newValidateAssessmentReportIntegrity :: Text -> ValidateAssessmentReportIntegrity
newValidateAssessmentReportIntegrity Text
pS3RelativePath_ =
  ValidateAssessmentReportIntegrity'
    { $sel:s3RelativePath:ValidateAssessmentReportIntegrity' :: Text
s3RelativePath =
        Text
pS3RelativePath_
    }

-- | The relative path of the Amazon S3 bucket that the assessment report is
-- stored in.
validateAssessmentReportIntegrity_s3RelativePath :: Lens.Lens' ValidateAssessmentReportIntegrity Prelude.Text
validateAssessmentReportIntegrity_s3RelativePath :: Lens' ValidateAssessmentReportIntegrity Text
validateAssessmentReportIntegrity_s3RelativePath = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateAssessmentReportIntegrity' {Text
s3RelativePath :: Text
$sel:s3RelativePath:ValidateAssessmentReportIntegrity' :: ValidateAssessmentReportIntegrity -> Text
s3RelativePath} -> Text
s3RelativePath) (\s :: ValidateAssessmentReportIntegrity
s@ValidateAssessmentReportIntegrity' {} Text
a -> ValidateAssessmentReportIntegrity
s {$sel:s3RelativePath:ValidateAssessmentReportIntegrity' :: Text
s3RelativePath = Text
a} :: ValidateAssessmentReportIntegrity)

instance
  Core.AWSRequest
    ValidateAssessmentReportIntegrity
  where
  type
    AWSResponse ValidateAssessmentReportIntegrity =
      ValidateAssessmentReportIntegrityResponse
  request :: (Service -> Service)
-> ValidateAssessmentReportIntegrity
-> Request ValidateAssessmentReportIntegrity
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 ValidateAssessmentReportIntegrity
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse ValidateAssessmentReportIntegrity)))
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 Bool
-> Maybe [Text]
-> Int
-> ValidateAssessmentReportIntegrityResponse
ValidateAssessmentReportIntegrityResponse'
            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
"signatureAlgorithm")
            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
"signatureDateTime")
            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
"signatureKeyId")
            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
"signatureValid")
            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
"validationErrors"
                            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
    ValidateAssessmentReportIntegrity
  where
  hashWithSalt :: Int -> ValidateAssessmentReportIntegrity -> Int
hashWithSalt
    Int
_salt
    ValidateAssessmentReportIntegrity' {Text
s3RelativePath :: Text
$sel:s3RelativePath:ValidateAssessmentReportIntegrity' :: ValidateAssessmentReportIntegrity -> Text
..} =
      Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
s3RelativePath

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

instance
  Data.ToHeaders
    ValidateAssessmentReportIntegrity
  where
  toHeaders :: ValidateAssessmentReportIntegrity -> 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.ToJSON
    ValidateAssessmentReportIntegrity
  where
  toJSON :: ValidateAssessmentReportIntegrity -> Value
toJSON ValidateAssessmentReportIntegrity' {Text
s3RelativePath :: Text
$sel:s3RelativePath:ValidateAssessmentReportIntegrity' :: ValidateAssessmentReportIntegrity -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              (Key
"s3RelativePath" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
s3RelativePath)
          ]
      )

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

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

-- | /See:/ 'newValidateAssessmentReportIntegrityResponse' smart constructor.
data ValidateAssessmentReportIntegrityResponse = ValidateAssessmentReportIntegrityResponse'
  { -- | The signature algorithm that\'s used to code sign the assessment report
    -- file.
    ValidateAssessmentReportIntegrityResponse -> Maybe Text
signatureAlgorithm :: Prelude.Maybe Prelude.Text,
    -- | The date and time signature that specifies when the assessment report
    -- was created.
    ValidateAssessmentReportIntegrityResponse -> Maybe Text
signatureDateTime :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier for the validation signature key.
    ValidateAssessmentReportIntegrityResponse -> Maybe Text
signatureKeyId :: Prelude.Maybe Prelude.Text,
    -- | Specifies whether the signature key is valid.
    ValidateAssessmentReportIntegrityResponse -> Maybe Bool
signatureValid :: Prelude.Maybe Prelude.Bool,
    -- | Represents any errors that occurred when validating the assessment
    -- report.
    ValidateAssessmentReportIntegrityResponse -> Maybe [Text]
validationErrors :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    ValidateAssessmentReportIntegrityResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ValidateAssessmentReportIntegrityResponse
-> ValidateAssessmentReportIntegrityResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValidateAssessmentReportIntegrityResponse
-> ValidateAssessmentReportIntegrityResponse -> Bool
$c/= :: ValidateAssessmentReportIntegrityResponse
-> ValidateAssessmentReportIntegrityResponse -> Bool
== :: ValidateAssessmentReportIntegrityResponse
-> ValidateAssessmentReportIntegrityResponse -> Bool
$c== :: ValidateAssessmentReportIntegrityResponse
-> ValidateAssessmentReportIntegrityResponse -> Bool
Prelude.Eq, ReadPrec [ValidateAssessmentReportIntegrityResponse]
ReadPrec ValidateAssessmentReportIntegrityResponse
Int -> ReadS ValidateAssessmentReportIntegrityResponse
ReadS [ValidateAssessmentReportIntegrityResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ValidateAssessmentReportIntegrityResponse]
$creadListPrec :: ReadPrec [ValidateAssessmentReportIntegrityResponse]
readPrec :: ReadPrec ValidateAssessmentReportIntegrityResponse
$creadPrec :: ReadPrec ValidateAssessmentReportIntegrityResponse
readList :: ReadS [ValidateAssessmentReportIntegrityResponse]
$creadList :: ReadS [ValidateAssessmentReportIntegrityResponse]
readsPrec :: Int -> ReadS ValidateAssessmentReportIntegrityResponse
$creadsPrec :: Int -> ReadS ValidateAssessmentReportIntegrityResponse
Prelude.Read, Int -> ValidateAssessmentReportIntegrityResponse -> ShowS
[ValidateAssessmentReportIntegrityResponse] -> ShowS
ValidateAssessmentReportIntegrityResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ValidateAssessmentReportIntegrityResponse] -> ShowS
$cshowList :: [ValidateAssessmentReportIntegrityResponse] -> ShowS
show :: ValidateAssessmentReportIntegrityResponse -> String
$cshow :: ValidateAssessmentReportIntegrityResponse -> String
showsPrec :: Int -> ValidateAssessmentReportIntegrityResponse -> ShowS
$cshowsPrec :: Int -> ValidateAssessmentReportIntegrityResponse -> ShowS
Prelude.Show, forall x.
Rep ValidateAssessmentReportIntegrityResponse x
-> ValidateAssessmentReportIntegrityResponse
forall x.
ValidateAssessmentReportIntegrityResponse
-> Rep ValidateAssessmentReportIntegrityResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ValidateAssessmentReportIntegrityResponse x
-> ValidateAssessmentReportIntegrityResponse
$cfrom :: forall x.
ValidateAssessmentReportIntegrityResponse
-> Rep ValidateAssessmentReportIntegrityResponse x
Prelude.Generic)

-- |
-- Create a value of 'ValidateAssessmentReportIntegrityResponse' 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:
--
-- 'signatureAlgorithm', 'validateAssessmentReportIntegrityResponse_signatureAlgorithm' - The signature algorithm that\'s used to code sign the assessment report
-- file.
--
-- 'signatureDateTime', 'validateAssessmentReportIntegrityResponse_signatureDateTime' - The date and time signature that specifies when the assessment report
-- was created.
--
-- 'signatureKeyId', 'validateAssessmentReportIntegrityResponse_signatureKeyId' - The unique identifier for the validation signature key.
--
-- 'signatureValid', 'validateAssessmentReportIntegrityResponse_signatureValid' - Specifies whether the signature key is valid.
--
-- 'validationErrors', 'validateAssessmentReportIntegrityResponse_validationErrors' - Represents any errors that occurred when validating the assessment
-- report.
--
-- 'httpStatus', 'validateAssessmentReportIntegrityResponse_httpStatus' - The response's http status code.
newValidateAssessmentReportIntegrityResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ValidateAssessmentReportIntegrityResponse
newValidateAssessmentReportIntegrityResponse :: Int -> ValidateAssessmentReportIntegrityResponse
newValidateAssessmentReportIntegrityResponse
  Int
pHttpStatus_ =
    ValidateAssessmentReportIntegrityResponse'
      { $sel:signatureAlgorithm:ValidateAssessmentReportIntegrityResponse' :: Maybe Text
signatureAlgorithm =
          forall a. Maybe a
Prelude.Nothing,
        $sel:signatureDateTime:ValidateAssessmentReportIntegrityResponse' :: Maybe Text
signatureDateTime =
          forall a. Maybe a
Prelude.Nothing,
        $sel:signatureKeyId:ValidateAssessmentReportIntegrityResponse' :: Maybe Text
signatureKeyId = forall a. Maybe a
Prelude.Nothing,
        $sel:signatureValid:ValidateAssessmentReportIntegrityResponse' :: Maybe Bool
signatureValid = forall a. Maybe a
Prelude.Nothing,
        $sel:validationErrors:ValidateAssessmentReportIntegrityResponse' :: Maybe [Text]
validationErrors =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ValidateAssessmentReportIntegrityResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The signature algorithm that\'s used to code sign the assessment report
-- file.
validateAssessmentReportIntegrityResponse_signatureAlgorithm :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Text)
validateAssessmentReportIntegrityResponse_signatureAlgorithm :: Lens' ValidateAssessmentReportIntegrityResponse (Maybe Text)
validateAssessmentReportIntegrityResponse_signatureAlgorithm = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateAssessmentReportIntegrityResponse' {Maybe Text
signatureAlgorithm :: Maybe Text
$sel:signatureAlgorithm:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Text
signatureAlgorithm} -> Maybe Text
signatureAlgorithm) (\s :: ValidateAssessmentReportIntegrityResponse
s@ValidateAssessmentReportIntegrityResponse' {} Maybe Text
a -> ValidateAssessmentReportIntegrityResponse
s {$sel:signatureAlgorithm:ValidateAssessmentReportIntegrityResponse' :: Maybe Text
signatureAlgorithm = Maybe Text
a} :: ValidateAssessmentReportIntegrityResponse)

-- | The date and time signature that specifies when the assessment report
-- was created.
validateAssessmentReportIntegrityResponse_signatureDateTime :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Text)
validateAssessmentReportIntegrityResponse_signatureDateTime :: Lens' ValidateAssessmentReportIntegrityResponse (Maybe Text)
validateAssessmentReportIntegrityResponse_signatureDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateAssessmentReportIntegrityResponse' {Maybe Text
signatureDateTime :: Maybe Text
$sel:signatureDateTime:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Text
signatureDateTime} -> Maybe Text
signatureDateTime) (\s :: ValidateAssessmentReportIntegrityResponse
s@ValidateAssessmentReportIntegrityResponse' {} Maybe Text
a -> ValidateAssessmentReportIntegrityResponse
s {$sel:signatureDateTime:ValidateAssessmentReportIntegrityResponse' :: Maybe Text
signatureDateTime = Maybe Text
a} :: ValidateAssessmentReportIntegrityResponse)

-- | The unique identifier for the validation signature key.
validateAssessmentReportIntegrityResponse_signatureKeyId :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Text)
validateAssessmentReportIntegrityResponse_signatureKeyId :: Lens' ValidateAssessmentReportIntegrityResponse (Maybe Text)
validateAssessmentReportIntegrityResponse_signatureKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateAssessmentReportIntegrityResponse' {Maybe Text
signatureKeyId :: Maybe Text
$sel:signatureKeyId:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Text
signatureKeyId} -> Maybe Text
signatureKeyId) (\s :: ValidateAssessmentReportIntegrityResponse
s@ValidateAssessmentReportIntegrityResponse' {} Maybe Text
a -> ValidateAssessmentReportIntegrityResponse
s {$sel:signatureKeyId:ValidateAssessmentReportIntegrityResponse' :: Maybe Text
signatureKeyId = Maybe Text
a} :: ValidateAssessmentReportIntegrityResponse)

-- | Specifies whether the signature key is valid.
validateAssessmentReportIntegrityResponse_signatureValid :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe Prelude.Bool)
validateAssessmentReportIntegrityResponse_signatureValid :: Lens' ValidateAssessmentReportIntegrityResponse (Maybe Bool)
validateAssessmentReportIntegrityResponse_signatureValid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateAssessmentReportIntegrityResponse' {Maybe Bool
signatureValid :: Maybe Bool
$sel:signatureValid:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Bool
signatureValid} -> Maybe Bool
signatureValid) (\s :: ValidateAssessmentReportIntegrityResponse
s@ValidateAssessmentReportIntegrityResponse' {} Maybe Bool
a -> ValidateAssessmentReportIntegrityResponse
s {$sel:signatureValid:ValidateAssessmentReportIntegrityResponse' :: Maybe Bool
signatureValid = Maybe Bool
a} :: ValidateAssessmentReportIntegrityResponse)

-- | Represents any errors that occurred when validating the assessment
-- report.
validateAssessmentReportIntegrityResponse_validationErrors :: Lens.Lens' ValidateAssessmentReportIntegrityResponse (Prelude.Maybe [Prelude.Text])
validateAssessmentReportIntegrityResponse_validationErrors :: Lens' ValidateAssessmentReportIntegrityResponse (Maybe [Text])
validateAssessmentReportIntegrityResponse_validationErrors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateAssessmentReportIntegrityResponse' {Maybe [Text]
validationErrors :: Maybe [Text]
$sel:validationErrors:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe [Text]
validationErrors} -> Maybe [Text]
validationErrors) (\s :: ValidateAssessmentReportIntegrityResponse
s@ValidateAssessmentReportIntegrityResponse' {} Maybe [Text]
a -> ValidateAssessmentReportIntegrityResponse
s {$sel:validationErrors:ValidateAssessmentReportIntegrityResponse' :: Maybe [Text]
validationErrors = Maybe [Text]
a} :: ValidateAssessmentReportIntegrityResponse) 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.
validateAssessmentReportIntegrityResponse_httpStatus :: Lens.Lens' ValidateAssessmentReportIntegrityResponse Prelude.Int
validateAssessmentReportIntegrityResponse_httpStatus :: Lens' ValidateAssessmentReportIntegrityResponse Int
validateAssessmentReportIntegrityResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ValidateAssessmentReportIntegrityResponse' {Int
httpStatus :: Int
$sel:httpStatus:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ValidateAssessmentReportIntegrityResponse
s@ValidateAssessmentReportIntegrityResponse' {} Int
a -> ValidateAssessmentReportIntegrityResponse
s {$sel:httpStatus:ValidateAssessmentReportIntegrityResponse' :: Int
httpStatus = Int
a} :: ValidateAssessmentReportIntegrityResponse)

instance
  Prelude.NFData
    ValidateAssessmentReportIntegrityResponse
  where
  rnf :: ValidateAssessmentReportIntegrityResponse -> ()
rnf ValidateAssessmentReportIntegrityResponse' {Int
Maybe Bool
Maybe [Text]
Maybe Text
httpStatus :: Int
validationErrors :: Maybe [Text]
signatureValid :: Maybe Bool
signatureKeyId :: Maybe Text
signatureDateTime :: Maybe Text
signatureAlgorithm :: Maybe Text
$sel:httpStatus:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Int
$sel:validationErrors:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe [Text]
$sel:signatureValid:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Bool
$sel:signatureKeyId:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Text
$sel:signatureDateTime:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Text
$sel:signatureAlgorithm:ValidateAssessmentReportIntegrityResponse' :: ValidateAssessmentReportIntegrityResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
signatureAlgorithm
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
signatureDateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
signatureKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
signatureValid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
validationErrors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus