amazonka-securitylake-2.0: gen/Amazonka/SecurityLake/Types/LakeConfigurationResponse.hs
{-# 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.SecurityLake.Types.LakeConfigurationResponse
-- 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.SecurityLake.Types.LakeConfigurationResponse where
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
import Amazonka.SecurityLake.Types.Region
import Amazonka.SecurityLake.Types.RetentionSetting
import Amazonka.SecurityLake.Types.SettingsStatus
-- | Provides details of Amazon Security Lake lake configuration object.
--
-- /See:/ 'newLakeConfigurationResponse' smart constructor.
data LakeConfigurationResponse = LakeConfigurationResponse'
{ -- | The type of encryption key used by secure the Security Lake
-- configuration object.
encryptionKey :: Prelude.Maybe Prelude.Text,
-- | Replication enables automatic, asynchronous copying of objects across
-- Amazon S3 buckets. Amazon S3 buckets that are configured for object
-- replication can be owned by the same Amazon Web Services account or by
-- different accounts. You can replicate objects to a single destination
-- bucket or to multiple destination buckets. The destination buckets can
-- be in different Amazon Web Services Regions or within the same Region as
-- the source bucket.
--
-- Set up one or more rollup Regions by providing the Region or Regions
-- that should contribute to the central rollup Region.
replicationDestinationRegions :: Prelude.Maybe [Region],
-- | Replication settings for the Amazon S3 buckets. This parameter uses the
-- IAM role you created that is managed by Security Lake, to ensure the
-- replication setting is correct.
replicationRoleArn :: Prelude.Maybe Prelude.Text,
-- | Retention settings for the destination Amazon S3 buckets.
retentionSettings :: Prelude.Maybe [RetentionSetting],
-- | Amazon Resource Names (ARNs) uniquely identify Amazon Web Services
-- resources. Security Lake requires an ARN when you need to specify a
-- resource unambiguously across all of Amazon Web Services, such as in IAM
-- policies, Amazon Relational Database Service (Amazon RDS) tags, and API
-- calls.
s3BucketArn :: Prelude.Maybe Prelude.Text,
-- | Retrieves the status of the configuration operation for an account in
-- Amazon Security Lake.
status :: Prelude.Maybe SettingsStatus,
-- | A tag is a label that you assign to an Amazon Web Services resource.
-- Each tag consists of a key and an optional value, both of which you
-- define.
tagsMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'LakeConfigurationResponse' 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:
--
-- 'encryptionKey', 'lakeConfigurationResponse_encryptionKey' - The type of encryption key used by secure the Security Lake
-- configuration object.
--
-- 'replicationDestinationRegions', 'lakeConfigurationResponse_replicationDestinationRegions' - Replication enables automatic, asynchronous copying of objects across
-- Amazon S3 buckets. Amazon S3 buckets that are configured for object
-- replication can be owned by the same Amazon Web Services account or by
-- different accounts. You can replicate objects to a single destination
-- bucket or to multiple destination buckets. The destination buckets can
-- be in different Amazon Web Services Regions or within the same Region as
-- the source bucket.
--
-- Set up one or more rollup Regions by providing the Region or Regions
-- that should contribute to the central rollup Region.
--
-- 'replicationRoleArn', 'lakeConfigurationResponse_replicationRoleArn' - Replication settings for the Amazon S3 buckets. This parameter uses the
-- IAM role you created that is managed by Security Lake, to ensure the
-- replication setting is correct.
--
-- 'retentionSettings', 'lakeConfigurationResponse_retentionSettings' - Retention settings for the destination Amazon S3 buckets.
--
-- 's3BucketArn', 'lakeConfigurationResponse_s3BucketArn' - Amazon Resource Names (ARNs) uniquely identify Amazon Web Services
-- resources. Security Lake requires an ARN when you need to specify a
-- resource unambiguously across all of Amazon Web Services, such as in IAM
-- policies, Amazon Relational Database Service (Amazon RDS) tags, and API
-- calls.
--
-- 'status', 'lakeConfigurationResponse_status' - Retrieves the status of the configuration operation for an account in
-- Amazon Security Lake.
--
-- 'tagsMap', 'lakeConfigurationResponse_tagsMap' - A tag is a label that you assign to an Amazon Web Services resource.
-- Each tag consists of a key and an optional value, both of which you
-- define.
newLakeConfigurationResponse ::
LakeConfigurationResponse
newLakeConfigurationResponse =
LakeConfigurationResponse'
{ encryptionKey =
Prelude.Nothing,
replicationDestinationRegions = Prelude.Nothing,
replicationRoleArn = Prelude.Nothing,
retentionSettings = Prelude.Nothing,
s3BucketArn = Prelude.Nothing,
status = Prelude.Nothing,
tagsMap = Prelude.Nothing
}
-- | The type of encryption key used by secure the Security Lake
-- configuration object.
lakeConfigurationResponse_encryptionKey :: Lens.Lens' LakeConfigurationResponse (Prelude.Maybe Prelude.Text)
lakeConfigurationResponse_encryptionKey = Lens.lens (\LakeConfigurationResponse' {encryptionKey} -> encryptionKey) (\s@LakeConfigurationResponse' {} a -> s {encryptionKey = a} :: LakeConfigurationResponse)
-- | Replication enables automatic, asynchronous copying of objects across
-- Amazon S3 buckets. Amazon S3 buckets that are configured for object
-- replication can be owned by the same Amazon Web Services account or by
-- different accounts. You can replicate objects to a single destination
-- bucket or to multiple destination buckets. The destination buckets can
-- be in different Amazon Web Services Regions or within the same Region as
-- the source bucket.
--
-- Set up one or more rollup Regions by providing the Region or Regions
-- that should contribute to the central rollup Region.
lakeConfigurationResponse_replicationDestinationRegions :: Lens.Lens' LakeConfigurationResponse (Prelude.Maybe [Region])
lakeConfigurationResponse_replicationDestinationRegions = Lens.lens (\LakeConfigurationResponse' {replicationDestinationRegions} -> replicationDestinationRegions) (\s@LakeConfigurationResponse' {} a -> s {replicationDestinationRegions = a} :: LakeConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
-- | Replication settings for the Amazon S3 buckets. This parameter uses the
-- IAM role you created that is managed by Security Lake, to ensure the
-- replication setting is correct.
lakeConfigurationResponse_replicationRoleArn :: Lens.Lens' LakeConfigurationResponse (Prelude.Maybe Prelude.Text)
lakeConfigurationResponse_replicationRoleArn = Lens.lens (\LakeConfigurationResponse' {replicationRoleArn} -> replicationRoleArn) (\s@LakeConfigurationResponse' {} a -> s {replicationRoleArn = a} :: LakeConfigurationResponse)
-- | Retention settings for the destination Amazon S3 buckets.
lakeConfigurationResponse_retentionSettings :: Lens.Lens' LakeConfigurationResponse (Prelude.Maybe [RetentionSetting])
lakeConfigurationResponse_retentionSettings = Lens.lens (\LakeConfigurationResponse' {retentionSettings} -> retentionSettings) (\s@LakeConfigurationResponse' {} a -> s {retentionSettings = a} :: LakeConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
-- | Amazon Resource Names (ARNs) uniquely identify Amazon Web Services
-- resources. Security Lake requires an ARN when you need to specify a
-- resource unambiguously across all of Amazon Web Services, such as in IAM
-- policies, Amazon Relational Database Service (Amazon RDS) tags, and API
-- calls.
lakeConfigurationResponse_s3BucketArn :: Lens.Lens' LakeConfigurationResponse (Prelude.Maybe Prelude.Text)
lakeConfigurationResponse_s3BucketArn = Lens.lens (\LakeConfigurationResponse' {s3BucketArn} -> s3BucketArn) (\s@LakeConfigurationResponse' {} a -> s {s3BucketArn = a} :: LakeConfigurationResponse)
-- | Retrieves the status of the configuration operation for an account in
-- Amazon Security Lake.
lakeConfigurationResponse_status :: Lens.Lens' LakeConfigurationResponse (Prelude.Maybe SettingsStatus)
lakeConfigurationResponse_status = Lens.lens (\LakeConfigurationResponse' {status} -> status) (\s@LakeConfigurationResponse' {} a -> s {status = a} :: LakeConfigurationResponse)
-- | A tag is a label that you assign to an Amazon Web Services resource.
-- Each tag consists of a key and an optional value, both of which you
-- define.
lakeConfigurationResponse_tagsMap :: Lens.Lens' LakeConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
lakeConfigurationResponse_tagsMap = Lens.lens (\LakeConfigurationResponse' {tagsMap} -> tagsMap) (\s@LakeConfigurationResponse' {} a -> s {tagsMap = a} :: LakeConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
instance Data.FromJSON LakeConfigurationResponse where
parseJSON =
Data.withObject
"LakeConfigurationResponse"
( \x ->
LakeConfigurationResponse'
Prelude.<$> (x Data..:? "encryptionKey")
Prelude.<*> ( x
Data..:? "replicationDestinationRegions"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "replicationRoleArn")
Prelude.<*> ( x
Data..:? "retentionSettings"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "s3BucketArn")
Prelude.<*> (x Data..:? "status")
Prelude.<*> (x Data..:? "tagsMap" Data..!= Prelude.mempty)
)
instance Prelude.Hashable LakeConfigurationResponse where
hashWithSalt _salt LakeConfigurationResponse' {..} =
_salt
`Prelude.hashWithSalt` encryptionKey
`Prelude.hashWithSalt` replicationDestinationRegions
`Prelude.hashWithSalt` replicationRoleArn
`Prelude.hashWithSalt` retentionSettings
`Prelude.hashWithSalt` s3BucketArn
`Prelude.hashWithSalt` status
`Prelude.hashWithSalt` tagsMap
instance Prelude.NFData LakeConfigurationResponse where
rnf LakeConfigurationResponse' {..} =
Prelude.rnf encryptionKey
`Prelude.seq` Prelude.rnf replicationDestinationRegions
`Prelude.seq` Prelude.rnf replicationRoleArn
`Prelude.seq` Prelude.rnf retentionSettings
`Prelude.seq` Prelude.rnf s3BucketArn
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf tagsMap