{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.Config.Types.ExternalEvaluation -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.Config.Types.ExternalEvaluation where import Amazonka.Config.Types.ComplianceType 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 -- | Identifies an Amazon Web Services resource and indicates whether it -- complies with the Config rule that it was evaluated against. -- -- /See:/ 'newExternalEvaluation' smart constructor. data ExternalEvaluation = ExternalEvaluation' { -- | Supplementary information about the reason of compliance. For example, -- this task was completed on a specific date. annotation :: Prelude.Maybe Prelude.Text, -- | The evaluated compliance resource type. Config accepts @AWS::::Account@ -- resource type. complianceResourceType :: Prelude.Text, -- | The evaluated compliance resource ID. Config accepts only Amazon Web -- Services account ID. complianceResourceId :: Prelude.Text, -- | The compliance of the Amazon Web Services resource. The valid values are -- @COMPLIANT, NON_COMPLIANT, @ and @NOT_APPLICABLE@. complianceType :: ComplianceType, -- | The time when the compliance was recorded. orderingTimestamp :: Data.POSIX } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'ExternalEvaluation' 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: -- -- 'annotation', 'externalEvaluation_annotation' - Supplementary information about the reason of compliance. For example, -- this task was completed on a specific date. -- -- 'complianceResourceType', 'externalEvaluation_complianceResourceType' - The evaluated compliance resource type. Config accepts @AWS::::Account@ -- resource type. -- -- 'complianceResourceId', 'externalEvaluation_complianceResourceId' - The evaluated compliance resource ID. Config accepts only Amazon Web -- Services account ID. -- -- 'complianceType', 'externalEvaluation_complianceType' - The compliance of the Amazon Web Services resource. The valid values are -- @COMPLIANT, NON_COMPLIANT, @ and @NOT_APPLICABLE@. -- -- 'orderingTimestamp', 'externalEvaluation_orderingTimestamp' - The time when the compliance was recorded. newExternalEvaluation :: -- | 'complianceResourceType' Prelude.Text -> -- | 'complianceResourceId' Prelude.Text -> -- | 'complianceType' ComplianceType -> -- | 'orderingTimestamp' Prelude.UTCTime -> ExternalEvaluation newExternalEvaluation pComplianceResourceType_ pComplianceResourceId_ pComplianceType_ pOrderingTimestamp_ = ExternalEvaluation' { annotation = Prelude.Nothing, complianceResourceType = pComplianceResourceType_, complianceResourceId = pComplianceResourceId_, complianceType = pComplianceType_, orderingTimestamp = Data._Time Lens.# pOrderingTimestamp_ } -- | Supplementary information about the reason of compliance. For example, -- this task was completed on a specific date. externalEvaluation_annotation :: Lens.Lens' ExternalEvaluation (Prelude.Maybe Prelude.Text) externalEvaluation_annotation = Lens.lens (\ExternalEvaluation' {annotation} -> annotation) (\s@ExternalEvaluation' {} a -> s {annotation = a} :: ExternalEvaluation) -- | The evaluated compliance resource type. Config accepts @AWS::::Account@ -- resource type. externalEvaluation_complianceResourceType :: Lens.Lens' ExternalEvaluation Prelude.Text externalEvaluation_complianceResourceType = Lens.lens (\ExternalEvaluation' {complianceResourceType} -> complianceResourceType) (\s@ExternalEvaluation' {} a -> s {complianceResourceType = a} :: ExternalEvaluation) -- | The evaluated compliance resource ID. Config accepts only Amazon Web -- Services account ID. externalEvaluation_complianceResourceId :: Lens.Lens' ExternalEvaluation Prelude.Text externalEvaluation_complianceResourceId = Lens.lens (\ExternalEvaluation' {complianceResourceId} -> complianceResourceId) (\s@ExternalEvaluation' {} a -> s {complianceResourceId = a} :: ExternalEvaluation) -- | The compliance of the Amazon Web Services resource. The valid values are -- @COMPLIANT, NON_COMPLIANT, @ and @NOT_APPLICABLE@. externalEvaluation_complianceType :: Lens.Lens' ExternalEvaluation ComplianceType externalEvaluation_complianceType = Lens.lens (\ExternalEvaluation' {complianceType} -> complianceType) (\s@ExternalEvaluation' {} a -> s {complianceType = a} :: ExternalEvaluation) -- | The time when the compliance was recorded. externalEvaluation_orderingTimestamp :: Lens.Lens' ExternalEvaluation Prelude.UTCTime externalEvaluation_orderingTimestamp = Lens.lens (\ExternalEvaluation' {orderingTimestamp} -> orderingTimestamp) (\s@ExternalEvaluation' {} a -> s {orderingTimestamp = a} :: ExternalEvaluation) Prelude.. Data._Time instance Prelude.Hashable ExternalEvaluation where hashWithSalt _salt ExternalEvaluation' {..} = _salt `Prelude.hashWithSalt` annotation `Prelude.hashWithSalt` complianceResourceType `Prelude.hashWithSalt` complianceResourceId `Prelude.hashWithSalt` complianceType `Prelude.hashWithSalt` orderingTimestamp instance Prelude.NFData ExternalEvaluation where rnf ExternalEvaluation' {..} = Prelude.rnf annotation `Prelude.seq` Prelude.rnf complianceResourceType `Prelude.seq` Prelude.rnf complianceResourceId `Prelude.seq` Prelude.rnf complianceType `Prelude.seq` Prelude.rnf orderingTimestamp instance Data.ToJSON ExternalEvaluation where toJSON ExternalEvaluation' {..} = Data.object ( Prelude.catMaybes [ ("Annotation" Data..=) Prelude.<$> annotation, Prelude.Just ( "ComplianceResourceType" Data..= complianceResourceType ), Prelude.Just ( "ComplianceResourceId" Data..= complianceResourceId ), Prelude.Just ("ComplianceType" Data..= complianceType), Prelude.Just ("OrderingTimestamp" Data..= orderingTimestamp) ] )