{-# 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.IoT.DescribeAuditTask
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about a Device Defender audit.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions DescribeAuditTask>
-- action.
module Amazonka.IoT.DescribeAuditTask
  ( -- * Creating a Request
    DescribeAuditTask (..),
    newDescribeAuditTask,

    -- * Request Lenses
    describeAuditTask_taskId,

    -- * Destructuring the Response
    DescribeAuditTaskResponse (..),
    newDescribeAuditTaskResponse,

    -- * Response Lenses
    describeAuditTaskResponse_auditDetails,
    describeAuditTaskResponse_scheduledAuditName,
    describeAuditTaskResponse_taskStartTime,
    describeAuditTaskResponse_taskStatistics,
    describeAuditTaskResponse_taskStatus,
    describeAuditTaskResponse_taskType,
    describeAuditTaskResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeAuditTask' smart constructor.
data DescribeAuditTask = DescribeAuditTask'
  { -- | The ID of the audit whose information you want to get.
    DescribeAuditTask -> Text
taskId :: Prelude.Text
  }
  deriving (DescribeAuditTask -> DescribeAuditTask -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAuditTask -> DescribeAuditTask -> Bool
$c/= :: DescribeAuditTask -> DescribeAuditTask -> Bool
== :: DescribeAuditTask -> DescribeAuditTask -> Bool
$c== :: DescribeAuditTask -> DescribeAuditTask -> Bool
Prelude.Eq, ReadPrec [DescribeAuditTask]
ReadPrec DescribeAuditTask
Int -> ReadS DescribeAuditTask
ReadS [DescribeAuditTask]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAuditTask]
$creadListPrec :: ReadPrec [DescribeAuditTask]
readPrec :: ReadPrec DescribeAuditTask
$creadPrec :: ReadPrec DescribeAuditTask
readList :: ReadS [DescribeAuditTask]
$creadList :: ReadS [DescribeAuditTask]
readsPrec :: Int -> ReadS DescribeAuditTask
$creadsPrec :: Int -> ReadS DescribeAuditTask
Prelude.Read, Int -> DescribeAuditTask -> ShowS
[DescribeAuditTask] -> ShowS
DescribeAuditTask -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAuditTask] -> ShowS
$cshowList :: [DescribeAuditTask] -> ShowS
show :: DescribeAuditTask -> String
$cshow :: DescribeAuditTask -> String
showsPrec :: Int -> DescribeAuditTask -> ShowS
$cshowsPrec :: Int -> DescribeAuditTask -> ShowS
Prelude.Show, forall x. Rep DescribeAuditTask x -> DescribeAuditTask
forall x. DescribeAuditTask -> Rep DescribeAuditTask x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeAuditTask x -> DescribeAuditTask
$cfrom :: forall x. DescribeAuditTask -> Rep DescribeAuditTask x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAuditTask' 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:
--
-- 'taskId', 'describeAuditTask_taskId' - The ID of the audit whose information you want to get.
newDescribeAuditTask ::
  -- | 'taskId'
  Prelude.Text ->
  DescribeAuditTask
newDescribeAuditTask :: Text -> DescribeAuditTask
newDescribeAuditTask Text
pTaskId_ =
  DescribeAuditTask' {$sel:taskId:DescribeAuditTask' :: Text
taskId = Text
pTaskId_}

-- | The ID of the audit whose information you want to get.
describeAuditTask_taskId :: Lens.Lens' DescribeAuditTask Prelude.Text
describeAuditTask_taskId :: Lens' DescribeAuditTask Text
describeAuditTask_taskId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAuditTask' {Text
taskId :: Text
$sel:taskId:DescribeAuditTask' :: DescribeAuditTask -> Text
taskId} -> Text
taskId) (\s :: DescribeAuditTask
s@DescribeAuditTask' {} Text
a -> DescribeAuditTask
s {$sel:taskId:DescribeAuditTask' :: Text
taskId = Text
a} :: DescribeAuditTask)

instance Core.AWSRequest DescribeAuditTask where
  type
    AWSResponse DescribeAuditTask =
      DescribeAuditTaskResponse
  request :: (Service -> Service)
-> DescribeAuditTask -> Request DescribeAuditTask
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 DescribeAuditTask
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeAuditTask)))
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 (HashMap Text AuditCheckDetails)
-> Maybe Text
-> Maybe POSIX
-> Maybe TaskStatistics
-> Maybe AuditTaskStatus
-> Maybe AuditTaskType
-> Int
-> DescribeAuditTaskResponse
DescribeAuditTaskResponse'
            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
"auditDetails" 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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"scheduledAuditName")
            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
"taskStartTime")
            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
"taskStatistics")
            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
"taskStatus")
            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
"taskType")
            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 DescribeAuditTask where
  hashWithSalt :: Int -> DescribeAuditTask -> Int
hashWithSalt Int
_salt DescribeAuditTask' {Text
taskId :: Text
$sel:taskId:DescribeAuditTask' :: DescribeAuditTask -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
taskId

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

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

instance Data.ToPath DescribeAuditTask where
  toPath :: DescribeAuditTask -> ByteString
toPath DescribeAuditTask' {Text
taskId :: Text
$sel:taskId:DescribeAuditTask' :: DescribeAuditTask -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/audit/tasks/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
taskId]

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

-- | /See:/ 'newDescribeAuditTaskResponse' smart constructor.
data DescribeAuditTaskResponse = DescribeAuditTaskResponse'
  { -- | Detailed information about each check performed during this audit.
    DescribeAuditTaskResponse -> Maybe (HashMap Text AuditCheckDetails)
auditDetails :: Prelude.Maybe (Prelude.HashMap Prelude.Text AuditCheckDetails),
    -- | The name of the scheduled audit (only if the audit was a scheduled
    -- audit).
    DescribeAuditTaskResponse -> Maybe Text
scheduledAuditName :: Prelude.Maybe Prelude.Text,
    -- | The time the audit started.
    DescribeAuditTaskResponse -> Maybe POSIX
taskStartTime :: Prelude.Maybe Data.POSIX,
    -- | Statistical information about the audit.
    DescribeAuditTaskResponse -> Maybe TaskStatistics
taskStatistics :: Prelude.Maybe TaskStatistics,
    -- | The status of the audit: one of \"IN_PROGRESS\", \"COMPLETED\",
    -- \"FAILED\", or \"CANCELED\".
    DescribeAuditTaskResponse -> Maybe AuditTaskStatus
taskStatus :: Prelude.Maybe AuditTaskStatus,
    -- | The type of audit: \"ON_DEMAND_AUDIT_TASK\" or \"SCHEDULED_AUDIT_TASK\".
    DescribeAuditTaskResponse -> Maybe AuditTaskType
taskType :: Prelude.Maybe AuditTaskType,
    -- | The response's http status code.
    DescribeAuditTaskResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeAuditTaskResponse -> DescribeAuditTaskResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAuditTaskResponse -> DescribeAuditTaskResponse -> Bool
$c/= :: DescribeAuditTaskResponse -> DescribeAuditTaskResponse -> Bool
== :: DescribeAuditTaskResponse -> DescribeAuditTaskResponse -> Bool
$c== :: DescribeAuditTaskResponse -> DescribeAuditTaskResponse -> Bool
Prelude.Eq, ReadPrec [DescribeAuditTaskResponse]
ReadPrec DescribeAuditTaskResponse
Int -> ReadS DescribeAuditTaskResponse
ReadS [DescribeAuditTaskResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAuditTaskResponse]
$creadListPrec :: ReadPrec [DescribeAuditTaskResponse]
readPrec :: ReadPrec DescribeAuditTaskResponse
$creadPrec :: ReadPrec DescribeAuditTaskResponse
readList :: ReadS [DescribeAuditTaskResponse]
$creadList :: ReadS [DescribeAuditTaskResponse]
readsPrec :: Int -> ReadS DescribeAuditTaskResponse
$creadsPrec :: Int -> ReadS DescribeAuditTaskResponse
Prelude.Read, Int -> DescribeAuditTaskResponse -> ShowS
[DescribeAuditTaskResponse] -> ShowS
DescribeAuditTaskResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAuditTaskResponse] -> ShowS
$cshowList :: [DescribeAuditTaskResponse] -> ShowS
show :: DescribeAuditTaskResponse -> String
$cshow :: DescribeAuditTaskResponse -> String
showsPrec :: Int -> DescribeAuditTaskResponse -> ShowS
$cshowsPrec :: Int -> DescribeAuditTaskResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeAuditTaskResponse x -> DescribeAuditTaskResponse
forall x.
DescribeAuditTaskResponse -> Rep DescribeAuditTaskResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAuditTaskResponse x -> DescribeAuditTaskResponse
$cfrom :: forall x.
DescribeAuditTaskResponse -> Rep DescribeAuditTaskResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAuditTaskResponse' 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:
--
-- 'auditDetails', 'describeAuditTaskResponse_auditDetails' - Detailed information about each check performed during this audit.
--
-- 'scheduledAuditName', 'describeAuditTaskResponse_scheduledAuditName' - The name of the scheduled audit (only if the audit was a scheduled
-- audit).
--
-- 'taskStartTime', 'describeAuditTaskResponse_taskStartTime' - The time the audit started.
--
-- 'taskStatistics', 'describeAuditTaskResponse_taskStatistics' - Statistical information about the audit.
--
-- 'taskStatus', 'describeAuditTaskResponse_taskStatus' - The status of the audit: one of \"IN_PROGRESS\", \"COMPLETED\",
-- \"FAILED\", or \"CANCELED\".
--
-- 'taskType', 'describeAuditTaskResponse_taskType' - The type of audit: \"ON_DEMAND_AUDIT_TASK\" or \"SCHEDULED_AUDIT_TASK\".
--
-- 'httpStatus', 'describeAuditTaskResponse_httpStatus' - The response's http status code.
newDescribeAuditTaskResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeAuditTaskResponse
newDescribeAuditTaskResponse :: Int -> DescribeAuditTaskResponse
newDescribeAuditTaskResponse Int
pHttpStatus_ =
  DescribeAuditTaskResponse'
    { $sel:auditDetails:DescribeAuditTaskResponse' :: Maybe (HashMap Text AuditCheckDetails)
auditDetails =
        forall a. Maybe a
Prelude.Nothing,
      $sel:scheduledAuditName:DescribeAuditTaskResponse' :: Maybe Text
scheduledAuditName = forall a. Maybe a
Prelude.Nothing,
      $sel:taskStartTime:DescribeAuditTaskResponse' :: Maybe POSIX
taskStartTime = forall a. Maybe a
Prelude.Nothing,
      $sel:taskStatistics:DescribeAuditTaskResponse' :: Maybe TaskStatistics
taskStatistics = forall a. Maybe a
Prelude.Nothing,
      $sel:taskStatus:DescribeAuditTaskResponse' :: Maybe AuditTaskStatus
taskStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:taskType:DescribeAuditTaskResponse' :: Maybe AuditTaskType
taskType = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeAuditTaskResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Detailed information about each check performed during this audit.
describeAuditTaskResponse_auditDetails :: Lens.Lens' DescribeAuditTaskResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text AuditCheckDetails))
describeAuditTaskResponse_auditDetails :: Lens'
  DescribeAuditTaskResponse (Maybe (HashMap Text AuditCheckDetails))
describeAuditTaskResponse_auditDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAuditTaskResponse' {Maybe (HashMap Text AuditCheckDetails)
auditDetails :: Maybe (HashMap Text AuditCheckDetails)
$sel:auditDetails:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe (HashMap Text AuditCheckDetails)
auditDetails} -> Maybe (HashMap Text AuditCheckDetails)
auditDetails) (\s :: DescribeAuditTaskResponse
s@DescribeAuditTaskResponse' {} Maybe (HashMap Text AuditCheckDetails)
a -> DescribeAuditTaskResponse
s {$sel:auditDetails:DescribeAuditTaskResponse' :: Maybe (HashMap Text AuditCheckDetails)
auditDetails = Maybe (HashMap Text AuditCheckDetails)
a} :: DescribeAuditTaskResponse) 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 name of the scheduled audit (only if the audit was a scheduled
-- audit).
describeAuditTaskResponse_scheduledAuditName :: Lens.Lens' DescribeAuditTaskResponse (Prelude.Maybe Prelude.Text)
describeAuditTaskResponse_scheduledAuditName :: Lens' DescribeAuditTaskResponse (Maybe Text)
describeAuditTaskResponse_scheduledAuditName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAuditTaskResponse' {Maybe Text
scheduledAuditName :: Maybe Text
$sel:scheduledAuditName:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe Text
scheduledAuditName} -> Maybe Text
scheduledAuditName) (\s :: DescribeAuditTaskResponse
s@DescribeAuditTaskResponse' {} Maybe Text
a -> DescribeAuditTaskResponse
s {$sel:scheduledAuditName:DescribeAuditTaskResponse' :: Maybe Text
scheduledAuditName = Maybe Text
a} :: DescribeAuditTaskResponse)

-- | The time the audit started.
describeAuditTaskResponse_taskStartTime :: Lens.Lens' DescribeAuditTaskResponse (Prelude.Maybe Prelude.UTCTime)
describeAuditTaskResponse_taskStartTime :: Lens' DescribeAuditTaskResponse (Maybe UTCTime)
describeAuditTaskResponse_taskStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAuditTaskResponse' {Maybe POSIX
taskStartTime :: Maybe POSIX
$sel:taskStartTime:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe POSIX
taskStartTime} -> Maybe POSIX
taskStartTime) (\s :: DescribeAuditTaskResponse
s@DescribeAuditTaskResponse' {} Maybe POSIX
a -> DescribeAuditTaskResponse
s {$sel:taskStartTime:DescribeAuditTaskResponse' :: Maybe POSIX
taskStartTime = Maybe POSIX
a} :: DescribeAuditTaskResponse) 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

-- | Statistical information about the audit.
describeAuditTaskResponse_taskStatistics :: Lens.Lens' DescribeAuditTaskResponse (Prelude.Maybe TaskStatistics)
describeAuditTaskResponse_taskStatistics :: Lens' DescribeAuditTaskResponse (Maybe TaskStatistics)
describeAuditTaskResponse_taskStatistics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAuditTaskResponse' {Maybe TaskStatistics
taskStatistics :: Maybe TaskStatistics
$sel:taskStatistics:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe TaskStatistics
taskStatistics} -> Maybe TaskStatistics
taskStatistics) (\s :: DescribeAuditTaskResponse
s@DescribeAuditTaskResponse' {} Maybe TaskStatistics
a -> DescribeAuditTaskResponse
s {$sel:taskStatistics:DescribeAuditTaskResponse' :: Maybe TaskStatistics
taskStatistics = Maybe TaskStatistics
a} :: DescribeAuditTaskResponse)

-- | The status of the audit: one of \"IN_PROGRESS\", \"COMPLETED\",
-- \"FAILED\", or \"CANCELED\".
describeAuditTaskResponse_taskStatus :: Lens.Lens' DescribeAuditTaskResponse (Prelude.Maybe AuditTaskStatus)
describeAuditTaskResponse_taskStatus :: Lens' DescribeAuditTaskResponse (Maybe AuditTaskStatus)
describeAuditTaskResponse_taskStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAuditTaskResponse' {Maybe AuditTaskStatus
taskStatus :: Maybe AuditTaskStatus
$sel:taskStatus:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe AuditTaskStatus
taskStatus} -> Maybe AuditTaskStatus
taskStatus) (\s :: DescribeAuditTaskResponse
s@DescribeAuditTaskResponse' {} Maybe AuditTaskStatus
a -> DescribeAuditTaskResponse
s {$sel:taskStatus:DescribeAuditTaskResponse' :: Maybe AuditTaskStatus
taskStatus = Maybe AuditTaskStatus
a} :: DescribeAuditTaskResponse)

-- | The type of audit: \"ON_DEMAND_AUDIT_TASK\" or \"SCHEDULED_AUDIT_TASK\".
describeAuditTaskResponse_taskType :: Lens.Lens' DescribeAuditTaskResponse (Prelude.Maybe AuditTaskType)
describeAuditTaskResponse_taskType :: Lens' DescribeAuditTaskResponse (Maybe AuditTaskType)
describeAuditTaskResponse_taskType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAuditTaskResponse' {Maybe AuditTaskType
taskType :: Maybe AuditTaskType
$sel:taskType:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe AuditTaskType
taskType} -> Maybe AuditTaskType
taskType) (\s :: DescribeAuditTaskResponse
s@DescribeAuditTaskResponse' {} Maybe AuditTaskType
a -> DescribeAuditTaskResponse
s {$sel:taskType:DescribeAuditTaskResponse' :: Maybe AuditTaskType
taskType = Maybe AuditTaskType
a} :: DescribeAuditTaskResponse)

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

instance Prelude.NFData DescribeAuditTaskResponse where
  rnf :: DescribeAuditTaskResponse -> ()
rnf DescribeAuditTaskResponse' {Int
Maybe Text
Maybe (HashMap Text AuditCheckDetails)
Maybe POSIX
Maybe AuditTaskStatus
Maybe AuditTaskType
Maybe TaskStatistics
httpStatus :: Int
taskType :: Maybe AuditTaskType
taskStatus :: Maybe AuditTaskStatus
taskStatistics :: Maybe TaskStatistics
taskStartTime :: Maybe POSIX
scheduledAuditName :: Maybe Text
auditDetails :: Maybe (HashMap Text AuditCheckDetails)
$sel:httpStatus:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Int
$sel:taskType:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe AuditTaskType
$sel:taskStatus:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe AuditTaskStatus
$sel:taskStatistics:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe TaskStatistics
$sel:taskStartTime:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe POSIX
$sel:scheduledAuditName:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe Text
$sel:auditDetails:DescribeAuditTaskResponse' :: DescribeAuditTaskResponse -> Maybe (HashMap Text AuditCheckDetails)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text AuditCheckDetails)
auditDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
scheduledAuditName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
taskStartTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TaskStatistics
taskStatistics
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AuditTaskStatus
taskStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AuditTaskType
taskType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus