{-# 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.DescribeAuditMitigationActionsTask -- 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 an audit mitigation task that is used to apply -- mitigation actions to a set of audit findings. Properties include the -- actions being applied, the audit checks to which they\'re being applied, -- the task status, and aggregated task statistics. module Amazonka.IoT.DescribeAuditMitigationActionsTask ( -- * Creating a Request DescribeAuditMitigationActionsTask (..), newDescribeAuditMitigationActionsTask, -- * Request Lenses describeAuditMitigationActionsTask_taskId, -- * Destructuring the Response DescribeAuditMitigationActionsTaskResponse (..), newDescribeAuditMitigationActionsTaskResponse, -- * Response Lenses describeAuditMitigationActionsTaskResponse_actionsDefinition, describeAuditMitigationActionsTaskResponse_auditCheckToActionsMapping, describeAuditMitigationActionsTaskResponse_endTime, describeAuditMitigationActionsTaskResponse_startTime, describeAuditMitigationActionsTaskResponse_target, describeAuditMitigationActionsTaskResponse_taskStatistics, describeAuditMitigationActionsTaskResponse_taskStatus, describeAuditMitigationActionsTaskResponse_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:/ 'newDescribeAuditMitigationActionsTask' smart constructor. data DescribeAuditMitigationActionsTask = DescribeAuditMitigationActionsTask' { -- | The unique identifier for the audit mitigation task. taskId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeAuditMitigationActionsTask' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'taskId', 'describeAuditMitigationActionsTask_taskId' - The unique identifier for the audit mitigation task. newDescribeAuditMitigationActionsTask :: -- | 'taskId' Prelude.Text -> DescribeAuditMitigationActionsTask newDescribeAuditMitigationActionsTask pTaskId_ = DescribeAuditMitigationActionsTask' { taskId = pTaskId_ } -- | The unique identifier for the audit mitigation task. describeAuditMitigationActionsTask_taskId :: Lens.Lens' DescribeAuditMitigationActionsTask Prelude.Text describeAuditMitigationActionsTask_taskId = Lens.lens (\DescribeAuditMitigationActionsTask' {taskId} -> taskId) (\s@DescribeAuditMitigationActionsTask' {} a -> s {taskId = a} :: DescribeAuditMitigationActionsTask) instance Core.AWSRequest DescribeAuditMitigationActionsTask where type AWSResponse DescribeAuditMitigationActionsTask = DescribeAuditMitigationActionsTaskResponse request overrides = Request.get (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeAuditMitigationActionsTaskResponse' Prelude.<$> ( x Data..?> "actionsDefinition" Core..!@ Prelude.mempty ) Prelude.<*> ( x Data..?> "auditCheckToActionsMapping" Core..!@ Prelude.mempty ) Prelude.<*> (x Data..?> "endTime") Prelude.<*> (x Data..?> "startTime") Prelude.<*> (x Data..?> "target") Prelude.<*> (x Data..?> "taskStatistics" Core..!@ Prelude.mempty) Prelude.<*> (x Data..?> "taskStatus") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeAuditMitigationActionsTask where hashWithSalt _salt DescribeAuditMitigationActionsTask' {..} = _salt `Prelude.hashWithSalt` taskId instance Prelude.NFData DescribeAuditMitigationActionsTask where rnf DescribeAuditMitigationActionsTask' {..} = Prelude.rnf taskId instance Data.ToHeaders DescribeAuditMitigationActionsTask where toHeaders = Prelude.const Prelude.mempty instance Data.ToPath DescribeAuditMitigationActionsTask where toPath DescribeAuditMitigationActionsTask' {..} = Prelude.mconcat ["/audit/mitigationactions/tasks/", Data.toBS taskId] instance Data.ToQuery DescribeAuditMitigationActionsTask where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeAuditMitigationActionsTaskResponse' smart constructor. data DescribeAuditMitigationActionsTaskResponse = DescribeAuditMitigationActionsTaskResponse' { -- | Specifies the mitigation actions and their parameters that are applied -- as part of this task. actionsDefinition :: Prelude.Maybe [MitigationAction], -- | Specifies the mitigation actions that should be applied to specific -- audit checks. auditCheckToActionsMapping :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.NonEmpty Prelude.Text)), -- | The date and time when the task was completed or canceled. endTime :: Prelude.Maybe Data.POSIX, -- | The date and time when the task was started. startTime :: Prelude.Maybe Data.POSIX, -- | Identifies the findings to which the mitigation actions are applied. -- This can be by audit checks, by audit task, or a set of findings. target :: Prelude.Maybe AuditMitigationActionsTaskTarget, -- | Aggregate counts of the results when the mitigation tasks were applied -- to the findings for this audit mitigation actions task. taskStatistics :: Prelude.Maybe (Prelude.HashMap Prelude.Text TaskStatisticsForAuditCheck), -- | The current status of the task. taskStatus :: Prelude.Maybe AuditMitigationActionsTaskStatus, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeAuditMitigationActionsTaskResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'actionsDefinition', 'describeAuditMitigationActionsTaskResponse_actionsDefinition' - Specifies the mitigation actions and their parameters that are applied -- as part of this task. -- -- 'auditCheckToActionsMapping', 'describeAuditMitigationActionsTaskResponse_auditCheckToActionsMapping' - Specifies the mitigation actions that should be applied to specific -- audit checks. -- -- 'endTime', 'describeAuditMitigationActionsTaskResponse_endTime' - The date and time when the task was completed or canceled. -- -- 'startTime', 'describeAuditMitigationActionsTaskResponse_startTime' - The date and time when the task was started. -- -- 'target', 'describeAuditMitigationActionsTaskResponse_target' - Identifies the findings to which the mitigation actions are applied. -- This can be by audit checks, by audit task, or a set of findings. -- -- 'taskStatistics', 'describeAuditMitigationActionsTaskResponse_taskStatistics' - Aggregate counts of the results when the mitigation tasks were applied -- to the findings for this audit mitigation actions task. -- -- 'taskStatus', 'describeAuditMitigationActionsTaskResponse_taskStatus' - The current status of the task. -- -- 'httpStatus', 'describeAuditMitigationActionsTaskResponse_httpStatus' - The response's http status code. newDescribeAuditMitigationActionsTaskResponse :: -- | 'httpStatus' Prelude.Int -> DescribeAuditMitigationActionsTaskResponse newDescribeAuditMitigationActionsTaskResponse pHttpStatus_ = DescribeAuditMitigationActionsTaskResponse' { actionsDefinition = Prelude.Nothing, auditCheckToActionsMapping = Prelude.Nothing, endTime = Prelude.Nothing, startTime = Prelude.Nothing, target = Prelude.Nothing, taskStatistics = Prelude.Nothing, taskStatus = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Specifies the mitigation actions and their parameters that are applied -- as part of this task. describeAuditMitigationActionsTaskResponse_actionsDefinition :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse (Prelude.Maybe [MitigationAction]) describeAuditMitigationActionsTaskResponse_actionsDefinition = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {actionsDefinition} -> actionsDefinition) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {actionsDefinition = a} :: DescribeAuditMitigationActionsTaskResponse) Prelude.. Lens.mapping Lens.coerced -- | Specifies the mitigation actions that should be applied to specific -- audit checks. describeAuditMitigationActionsTaskResponse_auditCheckToActionsMapping :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.NonEmpty Prelude.Text))) describeAuditMitigationActionsTaskResponse_auditCheckToActionsMapping = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {auditCheckToActionsMapping} -> auditCheckToActionsMapping) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {auditCheckToActionsMapping = a} :: DescribeAuditMitigationActionsTaskResponse) Prelude.. Lens.mapping Lens.coerced -- | The date and time when the task was completed or canceled. describeAuditMitigationActionsTaskResponse_endTime :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse (Prelude.Maybe Prelude.UTCTime) describeAuditMitigationActionsTaskResponse_endTime = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {endTime} -> endTime) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {endTime = a} :: DescribeAuditMitigationActionsTaskResponse) Prelude.. Lens.mapping Data._Time -- | The date and time when the task was started. describeAuditMitigationActionsTaskResponse_startTime :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse (Prelude.Maybe Prelude.UTCTime) describeAuditMitigationActionsTaskResponse_startTime = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {startTime} -> startTime) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {startTime = a} :: DescribeAuditMitigationActionsTaskResponse) Prelude.. Lens.mapping Data._Time -- | Identifies the findings to which the mitigation actions are applied. -- This can be by audit checks, by audit task, or a set of findings. describeAuditMitigationActionsTaskResponse_target :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse (Prelude.Maybe AuditMitigationActionsTaskTarget) describeAuditMitigationActionsTaskResponse_target = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {target} -> target) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {target = a} :: DescribeAuditMitigationActionsTaskResponse) -- | Aggregate counts of the results when the mitigation tasks were applied -- to the findings for this audit mitigation actions task. describeAuditMitigationActionsTaskResponse_taskStatistics :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text TaskStatisticsForAuditCheck)) describeAuditMitigationActionsTaskResponse_taskStatistics = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {taskStatistics} -> taskStatistics) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {taskStatistics = a} :: DescribeAuditMitigationActionsTaskResponse) Prelude.. Lens.mapping Lens.coerced -- | The current status of the task. describeAuditMitigationActionsTaskResponse_taskStatus :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse (Prelude.Maybe AuditMitigationActionsTaskStatus) describeAuditMitigationActionsTaskResponse_taskStatus = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {taskStatus} -> taskStatus) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {taskStatus = a} :: DescribeAuditMitigationActionsTaskResponse) -- | The response's http status code. describeAuditMitigationActionsTaskResponse_httpStatus :: Lens.Lens' DescribeAuditMitigationActionsTaskResponse Prelude.Int describeAuditMitigationActionsTaskResponse_httpStatus = Lens.lens (\DescribeAuditMitigationActionsTaskResponse' {httpStatus} -> httpStatus) (\s@DescribeAuditMitigationActionsTaskResponse' {} a -> s {httpStatus = a} :: DescribeAuditMitigationActionsTaskResponse) instance Prelude.NFData DescribeAuditMitigationActionsTaskResponse where rnf DescribeAuditMitigationActionsTaskResponse' {..} = Prelude.rnf actionsDefinition `Prelude.seq` Prelude.rnf auditCheckToActionsMapping `Prelude.seq` Prelude.rnf endTime `Prelude.seq` Prelude.rnf startTime `Prelude.seq` Prelude.rnf target `Prelude.seq` Prelude.rnf taskStatistics `Prelude.seq` Prelude.rnf taskStatus `Prelude.seq` Prelude.rnf httpStatus