amazonka-fsx-2.0: gen/Amazonka/FSx/Types/UpdateFileSystemLustreConfiguration.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.FSx.Types.UpdateFileSystemLustreConfiguration
-- 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.FSx.Types.UpdateFileSystemLustreConfiguration where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FSx.Types.AutoImportPolicyType
import Amazonka.FSx.Types.DataCompressionType
import Amazonka.FSx.Types.LustreLogCreateConfiguration
import Amazonka.FSx.Types.LustreRootSquashConfiguration
import qualified Amazonka.Prelude as Prelude
-- | The configuration object for Amazon FSx for Lustre file systems used in
-- the @UpdateFileSystem@ operation.
--
-- /See:/ 'newUpdateFileSystemLustreConfiguration' smart constructor.
data UpdateFileSystemLustreConfiguration = UpdateFileSystemLustreConfiguration'
{ -- | (Optional) When you create your file system, your existing S3 objects
-- appear as file and directory listings. Use this property to choose how
-- Amazon FSx keeps your file and directory listing up to date as you add
-- or modify objects in your linked S3 bucket. @AutoImportPolicy@ can have
-- the following values:
--
-- - @NONE@ - (Default) AutoImport is off. Amazon FSx only updates file
-- and directory listings from the linked S3 bucket when the file
-- system is created. FSx does not update the file and directory
-- listing for any new or changed objects after choosing this option.
--
-- - @NEW@ - AutoImport is on. Amazon FSx automatically imports directory
-- listings of any new objects added to the linked S3 bucket that do
-- not currently exist in the FSx file system.
--
-- - @NEW_CHANGED@ - AutoImport is on. Amazon FSx automatically imports
-- file and directory listings of any new objects added to the S3
-- bucket and any existing objects that are changed in the S3 bucket
-- after you choose this option.
--
-- - @NEW_CHANGED_DELETED@ - AutoImport is on. Amazon FSx automatically
-- imports file and directory listings of any new objects added to the
-- S3 bucket, any existing objects that are changed in the S3 bucket,
-- and any objects that were deleted in the S3 bucket.
--
-- The @AutoImportPolicy@ parameter is not supported for Lustre file
-- systems with the @Persistent_2@ deployment type. Instead, use to update
-- a data repository association on your @Persistent_2@ file system.
autoImportPolicy :: Prelude.Maybe AutoImportPolicyType,
automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,
dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,
-- | Sets the data compression configuration for the file system.
-- @DataCompressionType@ can have the following values:
--
-- - @NONE@ - Data compression is turned off for the file system.
--
-- - @LZ4@ - Data compression is turned on with the LZ4 algorithm.
--
-- If you don\'t use @DataCompressionType@, the file system retains its
-- current data compression configuration.
--
-- For more information, see
-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>.
dataCompressionType :: Prelude.Maybe DataCompressionType,
-- | The Lustre logging configuration used when updating an Amazon FSx for
-- Lustre file system. When logging is enabled, Lustre logs error and
-- warning events for data repositories associated with your file system to
-- Amazon CloudWatch Logs.
logConfiguration :: Prelude.Maybe LustreLogCreateConfiguration,
-- | The Lustre root squash configuration used when updating an Amazon FSx
-- for Lustre file system. When enabled, root squash restricts root-level
-- access from clients that try to access your file system as a root user.
rootSquashConfiguration :: Prelude.Maybe LustreRootSquashConfiguration,
-- | (Optional) The preferred start time to perform weekly maintenance,
-- formatted d:HH:MM in the UTC time zone. d is the weekday number, from 1
-- through 7, beginning with Monday and ending with Sunday.
weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'UpdateFileSystemLustreConfiguration' 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:
--
-- 'autoImportPolicy', 'updateFileSystemLustreConfiguration_autoImportPolicy' - (Optional) When you create your file system, your existing S3 objects
-- appear as file and directory listings. Use this property to choose how
-- Amazon FSx keeps your file and directory listing up to date as you add
-- or modify objects in your linked S3 bucket. @AutoImportPolicy@ can have
-- the following values:
--
-- - @NONE@ - (Default) AutoImport is off. Amazon FSx only updates file
-- and directory listings from the linked S3 bucket when the file
-- system is created. FSx does not update the file and directory
-- listing for any new or changed objects after choosing this option.
--
-- - @NEW@ - AutoImport is on. Amazon FSx automatically imports directory
-- listings of any new objects added to the linked S3 bucket that do
-- not currently exist in the FSx file system.
--
-- - @NEW_CHANGED@ - AutoImport is on. Amazon FSx automatically imports
-- file and directory listings of any new objects added to the S3
-- bucket and any existing objects that are changed in the S3 bucket
-- after you choose this option.
--
-- - @NEW_CHANGED_DELETED@ - AutoImport is on. Amazon FSx automatically
-- imports file and directory listings of any new objects added to the
-- S3 bucket, any existing objects that are changed in the S3 bucket,
-- and any objects that were deleted in the S3 bucket.
--
-- The @AutoImportPolicy@ parameter is not supported for Lustre file
-- systems with the @Persistent_2@ deployment type. Instead, use to update
-- a data repository association on your @Persistent_2@ file system.
--
-- 'automaticBackupRetentionDays', 'updateFileSystemLustreConfiguration_automaticBackupRetentionDays' - Undocumented member.
--
-- 'dailyAutomaticBackupStartTime', 'updateFileSystemLustreConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.
--
-- 'dataCompressionType', 'updateFileSystemLustreConfiguration_dataCompressionType' - Sets the data compression configuration for the file system.
-- @DataCompressionType@ can have the following values:
--
-- - @NONE@ - Data compression is turned off for the file system.
--
-- - @LZ4@ - Data compression is turned on with the LZ4 algorithm.
--
-- If you don\'t use @DataCompressionType@, the file system retains its
-- current data compression configuration.
--
-- For more information, see
-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>.
--
-- 'logConfiguration', 'updateFileSystemLustreConfiguration_logConfiguration' - The Lustre logging configuration used when updating an Amazon FSx for
-- Lustre file system. When logging is enabled, Lustre logs error and
-- warning events for data repositories associated with your file system to
-- Amazon CloudWatch Logs.
--
-- 'rootSquashConfiguration', 'updateFileSystemLustreConfiguration_rootSquashConfiguration' - The Lustre root squash configuration used when updating an Amazon FSx
-- for Lustre file system. When enabled, root squash restricts root-level
-- access from clients that try to access your file system as a root user.
--
-- 'weeklyMaintenanceStartTime', 'updateFileSystemLustreConfiguration_weeklyMaintenanceStartTime' - (Optional) The preferred start time to perform weekly maintenance,
-- formatted d:HH:MM in the UTC time zone. d is the weekday number, from 1
-- through 7, beginning with Monday and ending with Sunday.
newUpdateFileSystemLustreConfiguration ::
UpdateFileSystemLustreConfiguration
newUpdateFileSystemLustreConfiguration =
UpdateFileSystemLustreConfiguration'
{ autoImportPolicy =
Prelude.Nothing,
automaticBackupRetentionDays =
Prelude.Nothing,
dailyAutomaticBackupStartTime =
Prelude.Nothing,
dataCompressionType = Prelude.Nothing,
logConfiguration = Prelude.Nothing,
rootSquashConfiguration =
Prelude.Nothing,
weeklyMaintenanceStartTime =
Prelude.Nothing
}
-- | (Optional) When you create your file system, your existing S3 objects
-- appear as file and directory listings. Use this property to choose how
-- Amazon FSx keeps your file and directory listing up to date as you add
-- or modify objects in your linked S3 bucket. @AutoImportPolicy@ can have
-- the following values:
--
-- - @NONE@ - (Default) AutoImport is off. Amazon FSx only updates file
-- and directory listings from the linked S3 bucket when the file
-- system is created. FSx does not update the file and directory
-- listing for any new or changed objects after choosing this option.
--
-- - @NEW@ - AutoImport is on. Amazon FSx automatically imports directory
-- listings of any new objects added to the linked S3 bucket that do
-- not currently exist in the FSx file system.
--
-- - @NEW_CHANGED@ - AutoImport is on. Amazon FSx automatically imports
-- file and directory listings of any new objects added to the S3
-- bucket and any existing objects that are changed in the S3 bucket
-- after you choose this option.
--
-- - @NEW_CHANGED_DELETED@ - AutoImport is on. Amazon FSx automatically
-- imports file and directory listings of any new objects added to the
-- S3 bucket, any existing objects that are changed in the S3 bucket,
-- and any objects that were deleted in the S3 bucket.
--
-- The @AutoImportPolicy@ parameter is not supported for Lustre file
-- systems with the @Persistent_2@ deployment type. Instead, use to update
-- a data repository association on your @Persistent_2@ file system.
updateFileSystemLustreConfiguration_autoImportPolicy :: Lens.Lens' UpdateFileSystemLustreConfiguration (Prelude.Maybe AutoImportPolicyType)
updateFileSystemLustreConfiguration_autoImportPolicy = Lens.lens (\UpdateFileSystemLustreConfiguration' {autoImportPolicy} -> autoImportPolicy) (\s@UpdateFileSystemLustreConfiguration' {} a -> s {autoImportPolicy = a} :: UpdateFileSystemLustreConfiguration)
-- | Undocumented member.
updateFileSystemLustreConfiguration_automaticBackupRetentionDays :: Lens.Lens' UpdateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Natural)
updateFileSystemLustreConfiguration_automaticBackupRetentionDays = Lens.lens (\UpdateFileSystemLustreConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@UpdateFileSystemLustreConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: UpdateFileSystemLustreConfiguration)
-- | Undocumented member.
updateFileSystemLustreConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' UpdateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Text)
updateFileSystemLustreConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\UpdateFileSystemLustreConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@UpdateFileSystemLustreConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: UpdateFileSystemLustreConfiguration)
-- | Sets the data compression configuration for the file system.
-- @DataCompressionType@ can have the following values:
--
-- - @NONE@ - Data compression is turned off for the file system.
--
-- - @LZ4@ - Data compression is turned on with the LZ4 algorithm.
--
-- If you don\'t use @DataCompressionType@, the file system retains its
-- current data compression configuration.
--
-- For more information, see
-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>.
updateFileSystemLustreConfiguration_dataCompressionType :: Lens.Lens' UpdateFileSystemLustreConfiguration (Prelude.Maybe DataCompressionType)
updateFileSystemLustreConfiguration_dataCompressionType = Lens.lens (\UpdateFileSystemLustreConfiguration' {dataCompressionType} -> dataCompressionType) (\s@UpdateFileSystemLustreConfiguration' {} a -> s {dataCompressionType = a} :: UpdateFileSystemLustreConfiguration)
-- | The Lustre logging configuration used when updating an Amazon FSx for
-- Lustre file system. When logging is enabled, Lustre logs error and
-- warning events for data repositories associated with your file system to
-- Amazon CloudWatch Logs.
updateFileSystemLustreConfiguration_logConfiguration :: Lens.Lens' UpdateFileSystemLustreConfiguration (Prelude.Maybe LustreLogCreateConfiguration)
updateFileSystemLustreConfiguration_logConfiguration = Lens.lens (\UpdateFileSystemLustreConfiguration' {logConfiguration} -> logConfiguration) (\s@UpdateFileSystemLustreConfiguration' {} a -> s {logConfiguration = a} :: UpdateFileSystemLustreConfiguration)
-- | The Lustre root squash configuration used when updating an Amazon FSx
-- for Lustre file system. When enabled, root squash restricts root-level
-- access from clients that try to access your file system as a root user.
updateFileSystemLustreConfiguration_rootSquashConfiguration :: Lens.Lens' UpdateFileSystemLustreConfiguration (Prelude.Maybe LustreRootSquashConfiguration)
updateFileSystemLustreConfiguration_rootSquashConfiguration = Lens.lens (\UpdateFileSystemLustreConfiguration' {rootSquashConfiguration} -> rootSquashConfiguration) (\s@UpdateFileSystemLustreConfiguration' {} a -> s {rootSquashConfiguration = a} :: UpdateFileSystemLustreConfiguration)
-- | (Optional) The preferred start time to perform weekly maintenance,
-- formatted d:HH:MM in the UTC time zone. d is the weekday number, from 1
-- through 7, beginning with Monday and ending with Sunday.
updateFileSystemLustreConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' UpdateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Text)
updateFileSystemLustreConfiguration_weeklyMaintenanceStartTime = Lens.lens (\UpdateFileSystemLustreConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@UpdateFileSystemLustreConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: UpdateFileSystemLustreConfiguration)
instance
Prelude.Hashable
UpdateFileSystemLustreConfiguration
where
hashWithSalt
_salt
UpdateFileSystemLustreConfiguration' {..} =
_salt
`Prelude.hashWithSalt` autoImportPolicy
`Prelude.hashWithSalt` automaticBackupRetentionDays
`Prelude.hashWithSalt` dailyAutomaticBackupStartTime
`Prelude.hashWithSalt` dataCompressionType
`Prelude.hashWithSalt` logConfiguration
`Prelude.hashWithSalt` rootSquashConfiguration
`Prelude.hashWithSalt` weeklyMaintenanceStartTime
instance
Prelude.NFData
UpdateFileSystemLustreConfiguration
where
rnf UpdateFileSystemLustreConfiguration' {..} =
Prelude.rnf autoImportPolicy
`Prelude.seq` Prelude.rnf automaticBackupRetentionDays
`Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime
`Prelude.seq` Prelude.rnf dataCompressionType
`Prelude.seq` Prelude.rnf logConfiguration
`Prelude.seq` Prelude.rnf rootSquashConfiguration
`Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime
instance
Data.ToJSON
UpdateFileSystemLustreConfiguration
where
toJSON UpdateFileSystemLustreConfiguration' {..} =
Data.object
( Prelude.catMaybes
[ ("AutoImportPolicy" Data..=)
Prelude.<$> autoImportPolicy,
("AutomaticBackupRetentionDays" Data..=)
Prelude.<$> automaticBackupRetentionDays,
("DailyAutomaticBackupStartTime" Data..=)
Prelude.<$> dailyAutomaticBackupStartTime,
("DataCompressionType" Data..=)
Prelude.<$> dataCompressionType,
("LogConfiguration" Data..=)
Prelude.<$> logConfiguration,
("RootSquashConfiguration" Data..=)
Prelude.<$> rootSquashConfiguration,
("WeeklyMaintenanceStartTime" Data..=)
Prelude.<$> weeklyMaintenanceStartTime
]
)