{-# 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.DescribeAuditSuppression -- 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 suppression. module Amazonka.IoT.DescribeAuditSuppression ( -- * Creating a Request DescribeAuditSuppression (..), newDescribeAuditSuppression, -- * Request Lenses describeAuditSuppression_checkName, describeAuditSuppression_resourceIdentifier, -- * Destructuring the Response DescribeAuditSuppressionResponse (..), newDescribeAuditSuppressionResponse, -- * Response Lenses describeAuditSuppressionResponse_checkName, describeAuditSuppressionResponse_description, describeAuditSuppressionResponse_expirationDate, describeAuditSuppressionResponse_resourceIdentifier, describeAuditSuppressionResponse_suppressIndefinitely, describeAuditSuppressionResponse_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:/ 'newDescribeAuditSuppression' smart constructor. data DescribeAuditSuppression = DescribeAuditSuppression' { checkName :: Prelude.Text, resourceIdentifier :: ResourceIdentifier } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeAuditSuppression' 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: -- -- 'checkName', 'describeAuditSuppression_checkName' - Undocumented member. -- -- 'resourceIdentifier', 'describeAuditSuppression_resourceIdentifier' - Undocumented member. newDescribeAuditSuppression :: -- | 'checkName' Prelude.Text -> -- | 'resourceIdentifier' ResourceIdentifier -> DescribeAuditSuppression newDescribeAuditSuppression pCheckName_ pResourceIdentifier_ = DescribeAuditSuppression' { checkName = pCheckName_, resourceIdentifier = pResourceIdentifier_ } -- | Undocumented member. describeAuditSuppression_checkName :: Lens.Lens' DescribeAuditSuppression Prelude.Text describeAuditSuppression_checkName = Lens.lens (\DescribeAuditSuppression' {checkName} -> checkName) (\s@DescribeAuditSuppression' {} a -> s {checkName = a} :: DescribeAuditSuppression) -- | Undocumented member. describeAuditSuppression_resourceIdentifier :: Lens.Lens' DescribeAuditSuppression ResourceIdentifier describeAuditSuppression_resourceIdentifier = Lens.lens (\DescribeAuditSuppression' {resourceIdentifier} -> resourceIdentifier) (\s@DescribeAuditSuppression' {} a -> s {resourceIdentifier = a} :: DescribeAuditSuppression) instance Core.AWSRequest DescribeAuditSuppression where type AWSResponse DescribeAuditSuppression = DescribeAuditSuppressionResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeAuditSuppressionResponse' Prelude.<$> (x Data..?> "checkName") Prelude.<*> (x Data..?> "description") Prelude.<*> (x Data..?> "expirationDate") Prelude.<*> (x Data..?> "resourceIdentifier") Prelude.<*> (x Data..?> "suppressIndefinitely") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeAuditSuppression where hashWithSalt _salt DescribeAuditSuppression' {..} = _salt `Prelude.hashWithSalt` checkName `Prelude.hashWithSalt` resourceIdentifier instance Prelude.NFData DescribeAuditSuppression where rnf DescribeAuditSuppression' {..} = Prelude.rnf checkName `Prelude.seq` Prelude.rnf resourceIdentifier instance Data.ToHeaders DescribeAuditSuppression where toHeaders = Prelude.const Prelude.mempty instance Data.ToJSON DescribeAuditSuppression where toJSON DescribeAuditSuppression' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("checkName" Data..= checkName), Prelude.Just ("resourceIdentifier" Data..= resourceIdentifier) ] ) instance Data.ToPath DescribeAuditSuppression where toPath = Prelude.const "/audit/suppressions/describe" instance Data.ToQuery DescribeAuditSuppression where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeAuditSuppressionResponse' smart constructor. data DescribeAuditSuppressionResponse = DescribeAuditSuppressionResponse' { checkName :: Prelude.Maybe Prelude.Text, -- | The description of the audit suppression. description :: Prelude.Maybe Prelude.Text, -- | The epoch timestamp in seconds at which this suppression expires. expirationDate :: Prelude.Maybe Data.POSIX, resourceIdentifier :: Prelude.Maybe ResourceIdentifier, -- | Indicates whether a suppression should exist indefinitely or not. suppressIndefinitely :: Prelude.Maybe Prelude.Bool, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeAuditSuppressionResponse' 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: -- -- 'checkName', 'describeAuditSuppressionResponse_checkName' - Undocumented member. -- -- 'description', 'describeAuditSuppressionResponse_description' - The description of the audit suppression. -- -- 'expirationDate', 'describeAuditSuppressionResponse_expirationDate' - The epoch timestamp in seconds at which this suppression expires. -- -- 'resourceIdentifier', 'describeAuditSuppressionResponse_resourceIdentifier' - Undocumented member. -- -- 'suppressIndefinitely', 'describeAuditSuppressionResponse_suppressIndefinitely' - Indicates whether a suppression should exist indefinitely or not. -- -- 'httpStatus', 'describeAuditSuppressionResponse_httpStatus' - The response's http status code. newDescribeAuditSuppressionResponse :: -- | 'httpStatus' Prelude.Int -> DescribeAuditSuppressionResponse newDescribeAuditSuppressionResponse pHttpStatus_ = DescribeAuditSuppressionResponse' { checkName = Prelude.Nothing, description = Prelude.Nothing, expirationDate = Prelude.Nothing, resourceIdentifier = Prelude.Nothing, suppressIndefinitely = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | Undocumented member. describeAuditSuppressionResponse_checkName :: Lens.Lens' DescribeAuditSuppressionResponse (Prelude.Maybe Prelude.Text) describeAuditSuppressionResponse_checkName = Lens.lens (\DescribeAuditSuppressionResponse' {checkName} -> checkName) (\s@DescribeAuditSuppressionResponse' {} a -> s {checkName = a} :: DescribeAuditSuppressionResponse) -- | The description of the audit suppression. describeAuditSuppressionResponse_description :: Lens.Lens' DescribeAuditSuppressionResponse (Prelude.Maybe Prelude.Text) describeAuditSuppressionResponse_description = Lens.lens (\DescribeAuditSuppressionResponse' {description} -> description) (\s@DescribeAuditSuppressionResponse' {} a -> s {description = a} :: DescribeAuditSuppressionResponse) -- | The epoch timestamp in seconds at which this suppression expires. describeAuditSuppressionResponse_expirationDate :: Lens.Lens' DescribeAuditSuppressionResponse (Prelude.Maybe Prelude.UTCTime) describeAuditSuppressionResponse_expirationDate = Lens.lens (\DescribeAuditSuppressionResponse' {expirationDate} -> expirationDate) (\s@DescribeAuditSuppressionResponse' {} a -> s {expirationDate = a} :: DescribeAuditSuppressionResponse) Prelude.. Lens.mapping Data._Time -- | Undocumented member. describeAuditSuppressionResponse_resourceIdentifier :: Lens.Lens' DescribeAuditSuppressionResponse (Prelude.Maybe ResourceIdentifier) describeAuditSuppressionResponse_resourceIdentifier = Lens.lens (\DescribeAuditSuppressionResponse' {resourceIdentifier} -> resourceIdentifier) (\s@DescribeAuditSuppressionResponse' {} a -> s {resourceIdentifier = a} :: DescribeAuditSuppressionResponse) -- | Indicates whether a suppression should exist indefinitely or not. describeAuditSuppressionResponse_suppressIndefinitely :: Lens.Lens' DescribeAuditSuppressionResponse (Prelude.Maybe Prelude.Bool) describeAuditSuppressionResponse_suppressIndefinitely = Lens.lens (\DescribeAuditSuppressionResponse' {suppressIndefinitely} -> suppressIndefinitely) (\s@DescribeAuditSuppressionResponse' {} a -> s {suppressIndefinitely = a} :: DescribeAuditSuppressionResponse) -- | The response's http status code. describeAuditSuppressionResponse_httpStatus :: Lens.Lens' DescribeAuditSuppressionResponse Prelude.Int describeAuditSuppressionResponse_httpStatus = Lens.lens (\DescribeAuditSuppressionResponse' {httpStatus} -> httpStatus) (\s@DescribeAuditSuppressionResponse' {} a -> s {httpStatus = a} :: DescribeAuditSuppressionResponse) instance Prelude.NFData DescribeAuditSuppressionResponse where rnf DescribeAuditSuppressionResponse' {..} = Prelude.rnf checkName `Prelude.seq` Prelude.rnf description `Prelude.seq` Prelude.rnf expirationDate `Prelude.seq` Prelude.rnf resourceIdentifier `Prelude.seq` Prelude.rnf suppressIndefinitely `Prelude.seq` Prelude.rnf httpStatus