{-# 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.ConfigurationItem
-- 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.ConfigurationItem where

import Amazonka.Config.Types.ConfigurationItemStatus
import Amazonka.Config.Types.Relationship
import Amazonka.Config.Types.ResourceType
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

-- | A list that contains detailed configurations of a specified resource.
--
-- /See:/ 'newConfigurationItem' smart constructor.
data ConfigurationItem = ConfigurationItem'
  { -- | The 12-digit Amazon Web Services account ID associated with the
    -- resource.
    ConfigurationItem -> Maybe Text
accountId :: Prelude.Maybe Prelude.Text,
    -- | Amazon Resource Name (ARN) associated with the resource.
    ConfigurationItem -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The Availability Zone associated with the resource.
    ConfigurationItem -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
    -- | The region where the resource resides.
    ConfigurationItem -> Maybe Text
awsRegion :: Prelude.Maybe Prelude.Text,
    -- | The description of the resource configuration.
    ConfigurationItem -> Maybe Text
configuration :: Prelude.Maybe Prelude.Text,
    -- | The time when the configuration recording was initiated.
    ConfigurationItem -> Maybe POSIX
configurationItemCaptureTime :: Prelude.Maybe Data.POSIX,
    -- | Unique MD5 hash that represents the configuration item\'s state.
    --
    -- You can use MD5 hash to compare the states of two or more configuration
    -- items that are associated with the same resource.
    ConfigurationItem -> Maybe Text
configurationItemMD5Hash :: Prelude.Maybe Prelude.Text,
    -- | The configuration item status. The valid values are:
    --
    -- -   OK – The resource configuration has been updated
    --
    -- -   ResourceDiscovered – The resource was newly discovered
    --
    -- -   ResourceNotRecorded – The resource was discovered but its
    --     configuration was not recorded since the recorder excludes the
    --     recording of resources of this type
    --
    -- -   ResourceDeleted – The resource was deleted
    --
    -- -   ResourceDeletedNotRecorded – The resource was deleted but its
    --     configuration was not recorded since the recorder excludes the
    --     recording of resources of this type
    --
    -- The CIs do not incur any cost.
    ConfigurationItem -> Maybe ConfigurationItemStatus
configurationItemStatus :: Prelude.Maybe ConfigurationItemStatus,
    -- | An identifier that indicates the ordering of the configuration items of
    -- a resource.
    ConfigurationItem -> Maybe Text
configurationStateId :: Prelude.Maybe Prelude.Text,
    -- | A list of CloudTrail event IDs.
    --
    -- A populated field indicates that the current configuration was initiated
    -- by the events recorded in the CloudTrail log. For more information about
    -- CloudTrail, see
    -- <https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html What Is CloudTrail>.
    --
    -- An empty field indicates that the current configuration was not
    -- initiated by any event. As of Version 1.3, the relatedEvents field is
    -- empty. You can access the
    -- <https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html LookupEvents API>
    -- in the /CloudTrail API Reference/ to retrieve the events for the
    -- resource.
    ConfigurationItem -> Maybe [Text]
relatedEvents :: Prelude.Maybe [Prelude.Text],
    -- | A list of related Amazon Web Services resources.
    ConfigurationItem -> Maybe [Relationship]
relationships :: Prelude.Maybe [Relationship],
    -- | The time stamp when the resource was created.
    ConfigurationItem -> Maybe POSIX
resourceCreationTime :: Prelude.Maybe Data.POSIX,
    -- | The ID of the resource (for example, @sg-xxxxxx@).
    ConfigurationItem -> Maybe Text
resourceId :: Prelude.Maybe Prelude.Text,
    -- | The custom name of the resource, if available.
    ConfigurationItem -> Maybe Text
resourceName :: Prelude.Maybe Prelude.Text,
    -- | The type of Amazon Web Services resource.
    ConfigurationItem -> Maybe ResourceType
resourceType :: Prelude.Maybe ResourceType,
    -- | Configuration attributes that Config returns for certain resource types
    -- to supplement the information returned for the @configuration@
    -- parameter.
    ConfigurationItem -> Maybe (HashMap Text Text)
supplementaryConfiguration :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | A mapping of key value tags associated with the resource.
    ConfigurationItem -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The version number of the resource configuration.
    ConfigurationItem -> Maybe Text
version :: Prelude.Maybe Prelude.Text
  }
  deriving (ConfigurationItem -> ConfigurationItem -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ConfigurationItem -> ConfigurationItem -> Bool
$c/= :: ConfigurationItem -> ConfigurationItem -> Bool
== :: ConfigurationItem -> ConfigurationItem -> Bool
$c== :: ConfigurationItem -> ConfigurationItem -> Bool
Prelude.Eq, ReadPrec [ConfigurationItem]
ReadPrec ConfigurationItem
Int -> ReadS ConfigurationItem
ReadS [ConfigurationItem]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ConfigurationItem]
$creadListPrec :: ReadPrec [ConfigurationItem]
readPrec :: ReadPrec ConfigurationItem
$creadPrec :: ReadPrec ConfigurationItem
readList :: ReadS [ConfigurationItem]
$creadList :: ReadS [ConfigurationItem]
readsPrec :: Int -> ReadS ConfigurationItem
$creadsPrec :: Int -> ReadS ConfigurationItem
Prelude.Read, Int -> ConfigurationItem -> ShowS
[ConfigurationItem] -> ShowS
ConfigurationItem -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ConfigurationItem] -> ShowS
$cshowList :: [ConfigurationItem] -> ShowS
show :: ConfigurationItem -> String
$cshow :: ConfigurationItem -> String
showsPrec :: Int -> ConfigurationItem -> ShowS
$cshowsPrec :: Int -> ConfigurationItem -> ShowS
Prelude.Show, forall x. Rep ConfigurationItem x -> ConfigurationItem
forall x. ConfigurationItem -> Rep ConfigurationItem x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ConfigurationItem x -> ConfigurationItem
$cfrom :: forall x. ConfigurationItem -> Rep ConfigurationItem x
Prelude.Generic)

-- |
-- Create a value of 'ConfigurationItem' 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:
--
-- 'accountId', 'configurationItem_accountId' - The 12-digit Amazon Web Services account ID associated with the
-- resource.
--
-- 'arn', 'configurationItem_arn' - Amazon Resource Name (ARN) associated with the resource.
--
-- 'availabilityZone', 'configurationItem_availabilityZone' - The Availability Zone associated with the resource.
--
-- 'awsRegion', 'configurationItem_awsRegion' - The region where the resource resides.
--
-- 'configuration', 'configurationItem_configuration' - The description of the resource configuration.
--
-- 'configurationItemCaptureTime', 'configurationItem_configurationItemCaptureTime' - The time when the configuration recording was initiated.
--
-- 'configurationItemMD5Hash', 'configurationItem_configurationItemMD5Hash' - Unique MD5 hash that represents the configuration item\'s state.
--
-- You can use MD5 hash to compare the states of two or more configuration
-- items that are associated with the same resource.
--
-- 'configurationItemStatus', 'configurationItem_configurationItemStatus' - The configuration item status. The valid values are:
--
-- -   OK – The resource configuration has been updated
--
-- -   ResourceDiscovered – The resource was newly discovered
--
-- -   ResourceNotRecorded – The resource was discovered but its
--     configuration was not recorded since the recorder excludes the
--     recording of resources of this type
--
-- -   ResourceDeleted – The resource was deleted
--
-- -   ResourceDeletedNotRecorded – The resource was deleted but its
--     configuration was not recorded since the recorder excludes the
--     recording of resources of this type
--
-- The CIs do not incur any cost.
--
-- 'configurationStateId', 'configurationItem_configurationStateId' - An identifier that indicates the ordering of the configuration items of
-- a resource.
--
-- 'relatedEvents', 'configurationItem_relatedEvents' - A list of CloudTrail event IDs.
--
-- A populated field indicates that the current configuration was initiated
-- by the events recorded in the CloudTrail log. For more information about
-- CloudTrail, see
-- <https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html What Is CloudTrail>.
--
-- An empty field indicates that the current configuration was not
-- initiated by any event. As of Version 1.3, the relatedEvents field is
-- empty. You can access the
-- <https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html LookupEvents API>
-- in the /CloudTrail API Reference/ to retrieve the events for the
-- resource.
--
-- 'relationships', 'configurationItem_relationships' - A list of related Amazon Web Services resources.
--
-- 'resourceCreationTime', 'configurationItem_resourceCreationTime' - The time stamp when the resource was created.
--
-- 'resourceId', 'configurationItem_resourceId' - The ID of the resource (for example, @sg-xxxxxx@).
--
-- 'resourceName', 'configurationItem_resourceName' - The custom name of the resource, if available.
--
-- 'resourceType', 'configurationItem_resourceType' - The type of Amazon Web Services resource.
--
-- 'supplementaryConfiguration', 'configurationItem_supplementaryConfiguration' - Configuration attributes that Config returns for certain resource types
-- to supplement the information returned for the @configuration@
-- parameter.
--
-- 'tags', 'configurationItem_tags' - A mapping of key value tags associated with the resource.
--
-- 'version', 'configurationItem_version' - The version number of the resource configuration.
newConfigurationItem ::
  ConfigurationItem
newConfigurationItem :: ConfigurationItem
newConfigurationItem =
  ConfigurationItem'
    { $sel:accountId:ConfigurationItem' :: Maybe Text
accountId = forall a. Maybe a
Prelude.Nothing,
      $sel:arn:ConfigurationItem' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:availabilityZone:ConfigurationItem' :: Maybe Text
availabilityZone = forall a. Maybe a
Prelude.Nothing,
      $sel:awsRegion:ConfigurationItem' :: Maybe Text
awsRegion = forall a. Maybe a
Prelude.Nothing,
      $sel:configuration:ConfigurationItem' :: Maybe Text
configuration = forall a. Maybe a
Prelude.Nothing,
      $sel:configurationItemCaptureTime:ConfigurationItem' :: Maybe POSIX
configurationItemCaptureTime = forall a. Maybe a
Prelude.Nothing,
      $sel:configurationItemMD5Hash:ConfigurationItem' :: Maybe Text
configurationItemMD5Hash = forall a. Maybe a
Prelude.Nothing,
      $sel:configurationItemStatus:ConfigurationItem' :: Maybe ConfigurationItemStatus
configurationItemStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:configurationStateId:ConfigurationItem' :: Maybe Text
configurationStateId = forall a. Maybe a
Prelude.Nothing,
      $sel:relatedEvents:ConfigurationItem' :: Maybe [Text]
relatedEvents = forall a. Maybe a
Prelude.Nothing,
      $sel:relationships:ConfigurationItem' :: Maybe [Relationship]
relationships = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceCreationTime:ConfigurationItem' :: Maybe POSIX
resourceCreationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceId:ConfigurationItem' :: Maybe Text
resourceId = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceName:ConfigurationItem' :: Maybe Text
resourceName = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceType:ConfigurationItem' :: Maybe ResourceType
resourceType = forall a. Maybe a
Prelude.Nothing,
      $sel:supplementaryConfiguration:ConfigurationItem' :: Maybe (HashMap Text Text)
supplementaryConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ConfigurationItem' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:version:ConfigurationItem' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing
    }

-- | The 12-digit Amazon Web Services account ID associated with the
-- resource.
configurationItem_accountId :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_accountId :: Lens' ConfigurationItem (Maybe Text)
configurationItem_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
accountId :: Maybe Text
$sel:accountId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
accountId} -> Maybe Text
accountId) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:accountId:ConfigurationItem' :: Maybe Text
accountId = Maybe Text
a} :: ConfigurationItem)

-- | Amazon Resource Name (ARN) associated with the resource.
configurationItem_arn :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_arn :: Lens' ConfigurationItem (Maybe Text)
configurationItem_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
arn :: Maybe Text
$sel:arn:ConfigurationItem' :: ConfigurationItem -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:arn:ConfigurationItem' :: Maybe Text
arn = Maybe Text
a} :: ConfigurationItem)

-- | The Availability Zone associated with the resource.
configurationItem_availabilityZone :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_availabilityZone :: Lens' ConfigurationItem (Maybe Text)
configurationItem_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:ConfigurationItem' :: ConfigurationItem -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:availabilityZone:ConfigurationItem' :: Maybe Text
availabilityZone = Maybe Text
a} :: ConfigurationItem)

-- | The region where the resource resides.
configurationItem_awsRegion :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_awsRegion :: Lens' ConfigurationItem (Maybe Text)
configurationItem_awsRegion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
awsRegion :: Maybe Text
$sel:awsRegion:ConfigurationItem' :: ConfigurationItem -> Maybe Text
awsRegion} -> Maybe Text
awsRegion) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:awsRegion:ConfigurationItem' :: Maybe Text
awsRegion = Maybe Text
a} :: ConfigurationItem)

-- | The description of the resource configuration.
configurationItem_configuration :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_configuration :: Lens' ConfigurationItem (Maybe Text)
configurationItem_configuration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
configuration :: Maybe Text
$sel:configuration:ConfigurationItem' :: ConfigurationItem -> Maybe Text
configuration} -> Maybe Text
configuration) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:configuration:ConfigurationItem' :: Maybe Text
configuration = Maybe Text
a} :: ConfigurationItem)

-- | The time when the configuration recording was initiated.
configurationItem_configurationItemCaptureTime :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.UTCTime)
configurationItem_configurationItemCaptureTime :: Lens' ConfigurationItem (Maybe UTCTime)
configurationItem_configurationItemCaptureTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe POSIX
configurationItemCaptureTime :: Maybe POSIX
$sel:configurationItemCaptureTime:ConfigurationItem' :: ConfigurationItem -> Maybe POSIX
configurationItemCaptureTime} -> Maybe POSIX
configurationItemCaptureTime) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe POSIX
a -> ConfigurationItem
s {$sel:configurationItemCaptureTime:ConfigurationItem' :: Maybe POSIX
configurationItemCaptureTime = Maybe POSIX
a} :: ConfigurationItem) 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

-- | Unique MD5 hash that represents the configuration item\'s state.
--
-- You can use MD5 hash to compare the states of two or more configuration
-- items that are associated with the same resource.
configurationItem_configurationItemMD5Hash :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_configurationItemMD5Hash :: Lens' ConfigurationItem (Maybe Text)
configurationItem_configurationItemMD5Hash = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
configurationItemMD5Hash :: Maybe Text
$sel:configurationItemMD5Hash:ConfigurationItem' :: ConfigurationItem -> Maybe Text
configurationItemMD5Hash} -> Maybe Text
configurationItemMD5Hash) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:configurationItemMD5Hash:ConfigurationItem' :: Maybe Text
configurationItemMD5Hash = Maybe Text
a} :: ConfigurationItem)

-- | The configuration item status. The valid values are:
--
-- -   OK – The resource configuration has been updated
--
-- -   ResourceDiscovered – The resource was newly discovered
--
-- -   ResourceNotRecorded – The resource was discovered but its
--     configuration was not recorded since the recorder excludes the
--     recording of resources of this type
--
-- -   ResourceDeleted – The resource was deleted
--
-- -   ResourceDeletedNotRecorded – The resource was deleted but its
--     configuration was not recorded since the recorder excludes the
--     recording of resources of this type
--
-- The CIs do not incur any cost.
configurationItem_configurationItemStatus :: Lens.Lens' ConfigurationItem (Prelude.Maybe ConfigurationItemStatus)
configurationItem_configurationItemStatus :: Lens' ConfigurationItem (Maybe ConfigurationItemStatus)
configurationItem_configurationItemStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe ConfigurationItemStatus
configurationItemStatus :: Maybe ConfigurationItemStatus
$sel:configurationItemStatus:ConfigurationItem' :: ConfigurationItem -> Maybe ConfigurationItemStatus
configurationItemStatus} -> Maybe ConfigurationItemStatus
configurationItemStatus) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe ConfigurationItemStatus
a -> ConfigurationItem
s {$sel:configurationItemStatus:ConfigurationItem' :: Maybe ConfigurationItemStatus
configurationItemStatus = Maybe ConfigurationItemStatus
a} :: ConfigurationItem)

-- | An identifier that indicates the ordering of the configuration items of
-- a resource.
configurationItem_configurationStateId :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_configurationStateId :: Lens' ConfigurationItem (Maybe Text)
configurationItem_configurationStateId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
configurationStateId :: Maybe Text
$sel:configurationStateId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
configurationStateId} -> Maybe Text
configurationStateId) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:configurationStateId:ConfigurationItem' :: Maybe Text
configurationStateId = Maybe Text
a} :: ConfigurationItem)

-- | A list of CloudTrail event IDs.
--
-- A populated field indicates that the current configuration was initiated
-- by the events recorded in the CloudTrail log. For more information about
-- CloudTrail, see
-- <https://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html What Is CloudTrail>.
--
-- An empty field indicates that the current configuration was not
-- initiated by any event. As of Version 1.3, the relatedEvents field is
-- empty. You can access the
-- <https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html LookupEvents API>
-- in the /CloudTrail API Reference/ to retrieve the events for the
-- resource.
configurationItem_relatedEvents :: Lens.Lens' ConfigurationItem (Prelude.Maybe [Prelude.Text])
configurationItem_relatedEvents :: Lens' ConfigurationItem (Maybe [Text])
configurationItem_relatedEvents = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe [Text]
relatedEvents :: Maybe [Text]
$sel:relatedEvents:ConfigurationItem' :: ConfigurationItem -> Maybe [Text]
relatedEvents} -> Maybe [Text]
relatedEvents) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe [Text]
a -> ConfigurationItem
s {$sel:relatedEvents:ConfigurationItem' :: Maybe [Text]
relatedEvents = Maybe [Text]
a} :: ConfigurationItem) 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

-- | A list of related Amazon Web Services resources.
configurationItem_relationships :: Lens.Lens' ConfigurationItem (Prelude.Maybe [Relationship])
configurationItem_relationships :: Lens' ConfigurationItem (Maybe [Relationship])
configurationItem_relationships = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe [Relationship]
relationships :: Maybe [Relationship]
$sel:relationships:ConfigurationItem' :: ConfigurationItem -> Maybe [Relationship]
relationships} -> Maybe [Relationship]
relationships) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe [Relationship]
a -> ConfigurationItem
s {$sel:relationships:ConfigurationItem' :: Maybe [Relationship]
relationships = Maybe [Relationship]
a} :: ConfigurationItem) 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 time stamp when the resource was created.
configurationItem_resourceCreationTime :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.UTCTime)
configurationItem_resourceCreationTime :: Lens' ConfigurationItem (Maybe UTCTime)
configurationItem_resourceCreationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe POSIX
resourceCreationTime :: Maybe POSIX
$sel:resourceCreationTime:ConfigurationItem' :: ConfigurationItem -> Maybe POSIX
resourceCreationTime} -> Maybe POSIX
resourceCreationTime) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe POSIX
a -> ConfigurationItem
s {$sel:resourceCreationTime:ConfigurationItem' :: Maybe POSIX
resourceCreationTime = Maybe POSIX
a} :: ConfigurationItem) 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

-- | The ID of the resource (for example, @sg-xxxxxx@).
configurationItem_resourceId :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_resourceId :: Lens' ConfigurationItem (Maybe Text)
configurationItem_resourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
resourceId :: Maybe Text
$sel:resourceId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
resourceId} -> Maybe Text
resourceId) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:resourceId:ConfigurationItem' :: Maybe Text
resourceId = Maybe Text
a} :: ConfigurationItem)

-- | The custom name of the resource, if available.
configurationItem_resourceName :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_resourceName :: Lens' ConfigurationItem (Maybe Text)
configurationItem_resourceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
resourceName :: Maybe Text
$sel:resourceName:ConfigurationItem' :: ConfigurationItem -> Maybe Text
resourceName} -> Maybe Text
resourceName) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:resourceName:ConfigurationItem' :: Maybe Text
resourceName = Maybe Text
a} :: ConfigurationItem)

-- | The type of Amazon Web Services resource.
configurationItem_resourceType :: Lens.Lens' ConfigurationItem (Prelude.Maybe ResourceType)
configurationItem_resourceType :: Lens' ConfigurationItem (Maybe ResourceType)
configurationItem_resourceType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe ResourceType
resourceType :: Maybe ResourceType
$sel:resourceType:ConfigurationItem' :: ConfigurationItem -> Maybe ResourceType
resourceType} -> Maybe ResourceType
resourceType) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe ResourceType
a -> ConfigurationItem
s {$sel:resourceType:ConfigurationItem' :: Maybe ResourceType
resourceType = Maybe ResourceType
a} :: ConfigurationItem)

-- | Configuration attributes that Config returns for certain resource types
-- to supplement the information returned for the @configuration@
-- parameter.
configurationItem_supplementaryConfiguration :: Lens.Lens' ConfigurationItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
configurationItem_supplementaryConfiguration :: Lens' ConfigurationItem (Maybe (HashMap Text Text))
configurationItem_supplementaryConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe (HashMap Text Text)
supplementaryConfiguration :: Maybe (HashMap Text Text)
$sel:supplementaryConfiguration:ConfigurationItem' :: ConfigurationItem -> Maybe (HashMap Text Text)
supplementaryConfiguration} -> Maybe (HashMap Text Text)
supplementaryConfiguration) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe (HashMap Text Text)
a -> ConfigurationItem
s {$sel:supplementaryConfiguration:ConfigurationItem' :: Maybe (HashMap Text Text)
supplementaryConfiguration = Maybe (HashMap Text Text)
a} :: ConfigurationItem) 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

-- | A mapping of key value tags associated with the resource.
configurationItem_tags :: Lens.Lens' ConfigurationItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
configurationItem_tags :: Lens' ConfigurationItem (Maybe (HashMap Text Text))
configurationItem_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:ConfigurationItem' :: ConfigurationItem -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe (HashMap Text Text)
a -> ConfigurationItem
s {$sel:tags:ConfigurationItem' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: ConfigurationItem) 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 version number of the resource configuration.
configurationItem_version :: Lens.Lens' ConfigurationItem (Prelude.Maybe Prelude.Text)
configurationItem_version :: Lens' ConfigurationItem (Maybe Text)
configurationItem_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConfigurationItem' {Maybe Text
version :: Maybe Text
$sel:version:ConfigurationItem' :: ConfigurationItem -> Maybe Text
version} -> Maybe Text
version) (\s :: ConfigurationItem
s@ConfigurationItem' {} Maybe Text
a -> ConfigurationItem
s {$sel:version:ConfigurationItem' :: Maybe Text
version = Maybe Text
a} :: ConfigurationItem)

instance Data.FromJSON ConfigurationItem where
  parseJSON :: Value -> Parser ConfigurationItem
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ConfigurationItem"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe ConfigurationItemStatus
-> Maybe Text
-> Maybe [Text]
-> Maybe [Relationship]
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe ResourceType
-> Maybe (HashMap Text Text)
-> Maybe (HashMap Text Text)
-> Maybe Text
-> ConfigurationItem
ConfigurationItem'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"accountId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"availabilityZone")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"awsRegion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"configuration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"configurationItemCaptureTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"configurationItemMD5Hash")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"configurationItemStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"configurationStateId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"relatedEvents" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"relationships" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"resourceCreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"resourceId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"resourceName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"resourceType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"supplementaryConfiguration"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"version")
      )

instance Prelude.Hashable ConfigurationItem where
  hashWithSalt :: Int -> ConfigurationItem -> Int
hashWithSalt Int
_salt ConfigurationItem' {Maybe [Text]
Maybe [Relationship]
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe ConfigurationItemStatus
Maybe ResourceType
version :: Maybe Text
tags :: Maybe (HashMap Text Text)
supplementaryConfiguration :: Maybe (HashMap Text Text)
resourceType :: Maybe ResourceType
resourceName :: Maybe Text
resourceId :: Maybe Text
resourceCreationTime :: Maybe POSIX
relationships :: Maybe [Relationship]
relatedEvents :: Maybe [Text]
configurationStateId :: Maybe Text
configurationItemStatus :: Maybe ConfigurationItemStatus
configurationItemMD5Hash :: Maybe Text
configurationItemCaptureTime :: Maybe POSIX
configuration :: Maybe Text
awsRegion :: Maybe Text
availabilityZone :: Maybe Text
arn :: Maybe Text
accountId :: Maybe Text
$sel:version:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:tags:ConfigurationItem' :: ConfigurationItem -> Maybe (HashMap Text Text)
$sel:supplementaryConfiguration:ConfigurationItem' :: ConfigurationItem -> Maybe (HashMap Text Text)
$sel:resourceType:ConfigurationItem' :: ConfigurationItem -> Maybe ResourceType
$sel:resourceName:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:resourceId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:resourceCreationTime:ConfigurationItem' :: ConfigurationItem -> Maybe POSIX
$sel:relationships:ConfigurationItem' :: ConfigurationItem -> Maybe [Relationship]
$sel:relatedEvents:ConfigurationItem' :: ConfigurationItem -> Maybe [Text]
$sel:configurationStateId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:configurationItemStatus:ConfigurationItem' :: ConfigurationItem -> Maybe ConfigurationItemStatus
$sel:configurationItemMD5Hash:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:configurationItemCaptureTime:ConfigurationItem' :: ConfigurationItem -> Maybe POSIX
$sel:configuration:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:awsRegion:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:availabilityZone:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:arn:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:accountId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
accountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
availabilityZone
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
awsRegion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
configuration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
configurationItemCaptureTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
configurationItemMD5Hash
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConfigurationItemStatus
configurationItemStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
configurationStateId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
relatedEvents
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Relationship]
relationships
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
resourceCreationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
resourceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
resourceName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ResourceType
resourceType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
supplementaryConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
version

instance Prelude.NFData ConfigurationItem where
  rnf :: ConfigurationItem -> ()
rnf ConfigurationItem' {Maybe [Text]
Maybe [Relationship]
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe ConfigurationItemStatus
Maybe ResourceType
version :: Maybe Text
tags :: Maybe (HashMap Text Text)
supplementaryConfiguration :: Maybe (HashMap Text Text)
resourceType :: Maybe ResourceType
resourceName :: Maybe Text
resourceId :: Maybe Text
resourceCreationTime :: Maybe POSIX
relationships :: Maybe [Relationship]
relatedEvents :: Maybe [Text]
configurationStateId :: Maybe Text
configurationItemStatus :: Maybe ConfigurationItemStatus
configurationItemMD5Hash :: Maybe Text
configurationItemCaptureTime :: Maybe POSIX
configuration :: Maybe Text
awsRegion :: Maybe Text
availabilityZone :: Maybe Text
arn :: Maybe Text
accountId :: Maybe Text
$sel:version:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:tags:ConfigurationItem' :: ConfigurationItem -> Maybe (HashMap Text Text)
$sel:supplementaryConfiguration:ConfigurationItem' :: ConfigurationItem -> Maybe (HashMap Text Text)
$sel:resourceType:ConfigurationItem' :: ConfigurationItem -> Maybe ResourceType
$sel:resourceName:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:resourceId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:resourceCreationTime:ConfigurationItem' :: ConfigurationItem -> Maybe POSIX
$sel:relationships:ConfigurationItem' :: ConfigurationItem -> Maybe [Relationship]
$sel:relatedEvents:ConfigurationItem' :: ConfigurationItem -> Maybe [Text]
$sel:configurationStateId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:configurationItemStatus:ConfigurationItem' :: ConfigurationItem -> Maybe ConfigurationItemStatus
$sel:configurationItemMD5Hash:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:configurationItemCaptureTime:ConfigurationItem' :: ConfigurationItem -> Maybe POSIX
$sel:configuration:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:awsRegion:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:availabilityZone:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:arn:ConfigurationItem' :: ConfigurationItem -> Maybe Text
$sel:accountId:ConfigurationItem' :: ConfigurationItem -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
accountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
availabilityZone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
awsRegion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
configuration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
configurationItemCaptureTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
configurationItemMD5Hash
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ConfigurationItemStatus
configurationItemStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
configurationStateId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
relatedEvents
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Relationship]
relationships
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
resourceCreationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ResourceType
resourceType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
supplementaryConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
version