{-# 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.DataRepositoryConfiguration
-- 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.DataRepositoryConfiguration 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.DataRepositoryFailureDetails
import Amazonka.FSx.Types.DataRepositoryLifecycle
import qualified Amazonka.Prelude as Prelude

-- | The data repository configuration object for Lustre file systems
-- returned in the response of the @CreateFileSystem@ operation.
--
-- This data type is not supported for file systems with the @Persistent_2@
-- deployment type. Instead, use .
--
-- /See:/ 'newDataRepositoryConfiguration' smart constructor.
data DataRepositoryConfiguration = DataRepositoryConfiguration'
  { -- | Describes the file system\'s linked S3 data repository\'s
    -- @AutoImportPolicy@. The AutoImportPolicy configures how Amazon FSx keeps
    -- your file and directory listings 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 file and directory listings
    --     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.
    DataRepositoryConfiguration -> Maybe AutoImportPolicyType
autoImportPolicy :: Prelude.Maybe AutoImportPolicyType,
    -- | The export path to the Amazon S3 bucket (and prefix) that you are using
    -- to store new and changed Lustre file system files in S3.
    DataRepositoryConfiguration -> Maybe Text
exportPath :: Prelude.Maybe Prelude.Text,
    DataRepositoryConfiguration -> Maybe DataRepositoryFailureDetails
failureDetails :: Prelude.Maybe DataRepositoryFailureDetails,
    -- | The import path to the Amazon S3 bucket (and optional prefix) that
    -- you\'re using as the data repository for your FSx for Lustre file
    -- system, for example @s3:\/\/import-bucket\/optional-prefix@. If a prefix
    -- is specified after the Amazon S3 bucket name, only object keys with that
    -- prefix are loaded into the file system.
    DataRepositoryConfiguration -> Maybe Text
importPath :: Prelude.Maybe Prelude.Text,
    -- | For files imported from a data repository, this value determines the
    -- stripe count and maximum amount of data per file (in MiB) stored on a
    -- single physical disk. The maximum number of disks that a single file can
    -- be striped across is limited by the total number of disks that make up
    -- the file system.
    --
    -- The default chunk size is 1,024 MiB (1 GiB) and can go as high as
    -- 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.
    DataRepositoryConfiguration -> Maybe Natural
importedFileChunkSize :: Prelude.Maybe Prelude.Natural,
    -- | Describes the state of the file system\'s S3 durable data repository, if
    -- it is configured with an S3 repository. The lifecycle can have the
    -- following values:
    --
    -- -   @CREATING@ - The data repository configuration between the FSx file
    --     system and the linked S3 data repository is being created. The data
    --     repository is unavailable.
    --
    -- -   @AVAILABLE@ - The data repository is available for use.
    --
    -- -   @MISCONFIGURED@ - Amazon FSx cannot automatically import updates
    --     from the S3 bucket until the data repository configuration is
    --     corrected. For more information, see
    --     <https://docs.aws.amazon.com/fsx/latest/LustreGuide/troubleshooting.html#troubleshooting-misconfigured-data-repository Troubleshooting a Misconfigured linked S3 bucket>.
    --
    -- -   @UPDATING@ - The data repository is undergoing a customer initiated
    --     update and availability may be impacted.
    --
    -- -   @FAILED@ - The data repository is in a terminal state that cannot be
    --     recovered.
    DataRepositoryConfiguration -> Maybe DataRepositoryLifecycle
lifecycle :: Prelude.Maybe DataRepositoryLifecycle
  }
  deriving (DataRepositoryConfiguration -> DataRepositoryConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DataRepositoryConfiguration -> DataRepositoryConfiguration -> Bool
$c/= :: DataRepositoryConfiguration -> DataRepositoryConfiguration -> Bool
== :: DataRepositoryConfiguration -> DataRepositoryConfiguration -> Bool
$c== :: DataRepositoryConfiguration -> DataRepositoryConfiguration -> Bool
Prelude.Eq, ReadPrec [DataRepositoryConfiguration]
ReadPrec DataRepositoryConfiguration
Int -> ReadS DataRepositoryConfiguration
ReadS [DataRepositoryConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DataRepositoryConfiguration]
$creadListPrec :: ReadPrec [DataRepositoryConfiguration]
readPrec :: ReadPrec DataRepositoryConfiguration
$creadPrec :: ReadPrec DataRepositoryConfiguration
readList :: ReadS [DataRepositoryConfiguration]
$creadList :: ReadS [DataRepositoryConfiguration]
readsPrec :: Int -> ReadS DataRepositoryConfiguration
$creadsPrec :: Int -> ReadS DataRepositoryConfiguration
Prelude.Read, Int -> DataRepositoryConfiguration -> ShowS
[DataRepositoryConfiguration] -> ShowS
DataRepositoryConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DataRepositoryConfiguration] -> ShowS
$cshowList :: [DataRepositoryConfiguration] -> ShowS
show :: DataRepositoryConfiguration -> String
$cshow :: DataRepositoryConfiguration -> String
showsPrec :: Int -> DataRepositoryConfiguration -> ShowS
$cshowsPrec :: Int -> DataRepositoryConfiguration -> ShowS
Prelude.Show, forall x.
Rep DataRepositoryConfiguration x -> DataRepositoryConfiguration
forall x.
DataRepositoryConfiguration -> Rep DataRepositoryConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DataRepositoryConfiguration x -> DataRepositoryConfiguration
$cfrom :: forall x.
DataRepositoryConfiguration -> Rep DataRepositoryConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'DataRepositoryConfiguration' 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', 'dataRepositoryConfiguration_autoImportPolicy' - Describes the file system\'s linked S3 data repository\'s
-- @AutoImportPolicy@. The AutoImportPolicy configures how Amazon FSx keeps
-- your file and directory listings 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 file and directory listings
--     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.
--
-- 'exportPath', 'dataRepositoryConfiguration_exportPath' - The export path to the Amazon S3 bucket (and prefix) that you are using
-- to store new and changed Lustre file system files in S3.
--
-- 'failureDetails', 'dataRepositoryConfiguration_failureDetails' - Undocumented member.
--
-- 'importPath', 'dataRepositoryConfiguration_importPath' - The import path to the Amazon S3 bucket (and optional prefix) that
-- you\'re using as the data repository for your FSx for Lustre file
-- system, for example @s3:\/\/import-bucket\/optional-prefix@. If a prefix
-- is specified after the Amazon S3 bucket name, only object keys with that
-- prefix are loaded into the file system.
--
-- 'importedFileChunkSize', 'dataRepositoryConfiguration_importedFileChunkSize' - For files imported from a data repository, this value determines the
-- stripe count and maximum amount of data per file (in MiB) stored on a
-- single physical disk. The maximum number of disks that a single file can
-- be striped across is limited by the total number of disks that make up
-- the file system.
--
-- The default chunk size is 1,024 MiB (1 GiB) and can go as high as
-- 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.
--
-- 'lifecycle', 'dataRepositoryConfiguration_lifecycle' - Describes the state of the file system\'s S3 durable data repository, if
-- it is configured with an S3 repository. The lifecycle can have the
-- following values:
--
-- -   @CREATING@ - The data repository configuration between the FSx file
--     system and the linked S3 data repository is being created. The data
--     repository is unavailable.
--
-- -   @AVAILABLE@ - The data repository is available for use.
--
-- -   @MISCONFIGURED@ - Amazon FSx cannot automatically import updates
--     from the S3 bucket until the data repository configuration is
--     corrected. For more information, see
--     <https://docs.aws.amazon.com/fsx/latest/LustreGuide/troubleshooting.html#troubleshooting-misconfigured-data-repository Troubleshooting a Misconfigured linked S3 bucket>.
--
-- -   @UPDATING@ - The data repository is undergoing a customer initiated
--     update and availability may be impacted.
--
-- -   @FAILED@ - The data repository is in a terminal state that cannot be
--     recovered.
newDataRepositoryConfiguration ::
  DataRepositoryConfiguration
newDataRepositoryConfiguration :: DataRepositoryConfiguration
newDataRepositoryConfiguration =
  DataRepositoryConfiguration'
    { $sel:autoImportPolicy:DataRepositoryConfiguration' :: Maybe AutoImportPolicyType
autoImportPolicy =
        forall a. Maybe a
Prelude.Nothing,
      $sel:exportPath:DataRepositoryConfiguration' :: Maybe Text
exportPath = forall a. Maybe a
Prelude.Nothing,
      $sel:failureDetails:DataRepositoryConfiguration' :: Maybe DataRepositoryFailureDetails
failureDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:importPath:DataRepositoryConfiguration' :: Maybe Text
importPath = forall a. Maybe a
Prelude.Nothing,
      $sel:importedFileChunkSize:DataRepositoryConfiguration' :: Maybe Natural
importedFileChunkSize = forall a. Maybe a
Prelude.Nothing,
      $sel:lifecycle:DataRepositoryConfiguration' :: Maybe DataRepositoryLifecycle
lifecycle = forall a. Maybe a
Prelude.Nothing
    }

-- | Describes the file system\'s linked S3 data repository\'s
-- @AutoImportPolicy@. The AutoImportPolicy configures how Amazon FSx keeps
-- your file and directory listings 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 file and directory listings
--     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.
dataRepositoryConfiguration_autoImportPolicy :: Lens.Lens' DataRepositoryConfiguration (Prelude.Maybe AutoImportPolicyType)
dataRepositoryConfiguration_autoImportPolicy :: Lens' DataRepositoryConfiguration (Maybe AutoImportPolicyType)
dataRepositoryConfiguration_autoImportPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataRepositoryConfiguration' {Maybe AutoImportPolicyType
autoImportPolicy :: Maybe AutoImportPolicyType
$sel:autoImportPolicy:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe AutoImportPolicyType
autoImportPolicy} -> Maybe AutoImportPolicyType
autoImportPolicy) (\s :: DataRepositoryConfiguration
s@DataRepositoryConfiguration' {} Maybe AutoImportPolicyType
a -> DataRepositoryConfiguration
s {$sel:autoImportPolicy:DataRepositoryConfiguration' :: Maybe AutoImportPolicyType
autoImportPolicy = Maybe AutoImportPolicyType
a} :: DataRepositoryConfiguration)

-- | The export path to the Amazon S3 bucket (and prefix) that you are using
-- to store new and changed Lustre file system files in S3.
dataRepositoryConfiguration_exportPath :: Lens.Lens' DataRepositoryConfiguration (Prelude.Maybe Prelude.Text)
dataRepositoryConfiguration_exportPath :: Lens' DataRepositoryConfiguration (Maybe Text)
dataRepositoryConfiguration_exportPath = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataRepositoryConfiguration' {Maybe Text
exportPath :: Maybe Text
$sel:exportPath:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Text
exportPath} -> Maybe Text
exportPath) (\s :: DataRepositoryConfiguration
s@DataRepositoryConfiguration' {} Maybe Text
a -> DataRepositoryConfiguration
s {$sel:exportPath:DataRepositoryConfiguration' :: Maybe Text
exportPath = Maybe Text
a} :: DataRepositoryConfiguration)

-- | Undocumented member.
dataRepositoryConfiguration_failureDetails :: Lens.Lens' DataRepositoryConfiguration (Prelude.Maybe DataRepositoryFailureDetails)
dataRepositoryConfiguration_failureDetails :: Lens'
  DataRepositoryConfiguration (Maybe DataRepositoryFailureDetails)
dataRepositoryConfiguration_failureDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataRepositoryConfiguration' {Maybe DataRepositoryFailureDetails
failureDetails :: Maybe DataRepositoryFailureDetails
$sel:failureDetails:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe DataRepositoryFailureDetails
failureDetails} -> Maybe DataRepositoryFailureDetails
failureDetails) (\s :: DataRepositoryConfiguration
s@DataRepositoryConfiguration' {} Maybe DataRepositoryFailureDetails
a -> DataRepositoryConfiguration
s {$sel:failureDetails:DataRepositoryConfiguration' :: Maybe DataRepositoryFailureDetails
failureDetails = Maybe DataRepositoryFailureDetails
a} :: DataRepositoryConfiguration)

-- | The import path to the Amazon S3 bucket (and optional prefix) that
-- you\'re using as the data repository for your FSx for Lustre file
-- system, for example @s3:\/\/import-bucket\/optional-prefix@. If a prefix
-- is specified after the Amazon S3 bucket name, only object keys with that
-- prefix are loaded into the file system.
dataRepositoryConfiguration_importPath :: Lens.Lens' DataRepositoryConfiguration (Prelude.Maybe Prelude.Text)
dataRepositoryConfiguration_importPath :: Lens' DataRepositoryConfiguration (Maybe Text)
dataRepositoryConfiguration_importPath = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataRepositoryConfiguration' {Maybe Text
importPath :: Maybe Text
$sel:importPath:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Text
importPath} -> Maybe Text
importPath) (\s :: DataRepositoryConfiguration
s@DataRepositoryConfiguration' {} Maybe Text
a -> DataRepositoryConfiguration
s {$sel:importPath:DataRepositoryConfiguration' :: Maybe Text
importPath = Maybe Text
a} :: DataRepositoryConfiguration)

-- | For files imported from a data repository, this value determines the
-- stripe count and maximum amount of data per file (in MiB) stored on a
-- single physical disk. The maximum number of disks that a single file can
-- be striped across is limited by the total number of disks that make up
-- the file system.
--
-- The default chunk size is 1,024 MiB (1 GiB) and can go as high as
-- 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.
dataRepositoryConfiguration_importedFileChunkSize :: Lens.Lens' DataRepositoryConfiguration (Prelude.Maybe Prelude.Natural)
dataRepositoryConfiguration_importedFileChunkSize :: Lens' DataRepositoryConfiguration (Maybe Natural)
dataRepositoryConfiguration_importedFileChunkSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataRepositoryConfiguration' {Maybe Natural
importedFileChunkSize :: Maybe Natural
$sel:importedFileChunkSize:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Natural
importedFileChunkSize} -> Maybe Natural
importedFileChunkSize) (\s :: DataRepositoryConfiguration
s@DataRepositoryConfiguration' {} Maybe Natural
a -> DataRepositoryConfiguration
s {$sel:importedFileChunkSize:DataRepositoryConfiguration' :: Maybe Natural
importedFileChunkSize = Maybe Natural
a} :: DataRepositoryConfiguration)

-- | Describes the state of the file system\'s S3 durable data repository, if
-- it is configured with an S3 repository. The lifecycle can have the
-- following values:
--
-- -   @CREATING@ - The data repository configuration between the FSx file
--     system and the linked S3 data repository is being created. The data
--     repository is unavailable.
--
-- -   @AVAILABLE@ - The data repository is available for use.
--
-- -   @MISCONFIGURED@ - Amazon FSx cannot automatically import updates
--     from the S3 bucket until the data repository configuration is
--     corrected. For more information, see
--     <https://docs.aws.amazon.com/fsx/latest/LustreGuide/troubleshooting.html#troubleshooting-misconfigured-data-repository Troubleshooting a Misconfigured linked S3 bucket>.
--
-- -   @UPDATING@ - The data repository is undergoing a customer initiated
--     update and availability may be impacted.
--
-- -   @FAILED@ - The data repository is in a terminal state that cannot be
--     recovered.
dataRepositoryConfiguration_lifecycle :: Lens.Lens' DataRepositoryConfiguration (Prelude.Maybe DataRepositoryLifecycle)
dataRepositoryConfiguration_lifecycle :: Lens' DataRepositoryConfiguration (Maybe DataRepositoryLifecycle)
dataRepositoryConfiguration_lifecycle = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataRepositoryConfiguration' {Maybe DataRepositoryLifecycle
lifecycle :: Maybe DataRepositoryLifecycle
$sel:lifecycle:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe DataRepositoryLifecycle
lifecycle} -> Maybe DataRepositoryLifecycle
lifecycle) (\s :: DataRepositoryConfiguration
s@DataRepositoryConfiguration' {} Maybe DataRepositoryLifecycle
a -> DataRepositoryConfiguration
s {$sel:lifecycle:DataRepositoryConfiguration' :: Maybe DataRepositoryLifecycle
lifecycle = Maybe DataRepositoryLifecycle
a} :: DataRepositoryConfiguration)

instance Data.FromJSON DataRepositoryConfiguration where
  parseJSON :: Value -> Parser DataRepositoryConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"DataRepositoryConfiguration"
      ( \Object
x ->
          Maybe AutoImportPolicyType
-> Maybe Text
-> Maybe DataRepositoryFailureDetails
-> Maybe Text
-> Maybe Natural
-> Maybe DataRepositoryLifecycle
-> DataRepositoryConfiguration
DataRepositoryConfiguration'
            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
"AutoImportPolicy")
            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
"ExportPath")
            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
"FailureDetails")
            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
"ImportPath")
            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
"ImportedFileChunkSize")
            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
"Lifecycle")
      )

instance Prelude.Hashable DataRepositoryConfiguration where
  hashWithSalt :: Int -> DataRepositoryConfiguration -> Int
hashWithSalt Int
_salt DataRepositoryConfiguration' {Maybe Natural
Maybe Text
Maybe AutoImportPolicyType
Maybe DataRepositoryFailureDetails
Maybe DataRepositoryLifecycle
lifecycle :: Maybe DataRepositoryLifecycle
importedFileChunkSize :: Maybe Natural
importPath :: Maybe Text
failureDetails :: Maybe DataRepositoryFailureDetails
exportPath :: Maybe Text
autoImportPolicy :: Maybe AutoImportPolicyType
$sel:lifecycle:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe DataRepositoryLifecycle
$sel:importedFileChunkSize:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Natural
$sel:importPath:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Text
$sel:failureDetails:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe DataRepositoryFailureDetails
$sel:exportPath:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Text
$sel:autoImportPolicy:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe AutoImportPolicyType
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AutoImportPolicyType
autoImportPolicy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
exportPath
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataRepositoryFailureDetails
failureDetails
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
importPath
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
importedFileChunkSize
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataRepositoryLifecycle
lifecycle

instance Prelude.NFData DataRepositoryConfiguration where
  rnf :: DataRepositoryConfiguration -> ()
rnf DataRepositoryConfiguration' {Maybe Natural
Maybe Text
Maybe AutoImportPolicyType
Maybe DataRepositoryFailureDetails
Maybe DataRepositoryLifecycle
lifecycle :: Maybe DataRepositoryLifecycle
importedFileChunkSize :: Maybe Natural
importPath :: Maybe Text
failureDetails :: Maybe DataRepositoryFailureDetails
exportPath :: Maybe Text
autoImportPolicy :: Maybe AutoImportPolicyType
$sel:lifecycle:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe DataRepositoryLifecycle
$sel:importedFileChunkSize:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Natural
$sel:importPath:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Text
$sel:failureDetails:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe DataRepositoryFailureDetails
$sel:exportPath:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe Text
$sel:autoImportPolicy:DataRepositoryConfiguration' :: DataRepositoryConfiguration -> Maybe AutoImportPolicyType
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AutoImportPolicyType
autoImportPolicy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
exportPath
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataRepositoryFailureDetails
failureDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
importPath
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
importedFileChunkSize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataRepositoryLifecycle
lifecycle