stratosphere-efs-1.0.0: gen/Stratosphere/EFS/FileSystem.hs
module Stratosphere.EFS.FileSystem (
module Exports, FileSystem(..), mkFileSystem
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.EFS.FileSystem.BackupPolicyProperty as Exports
import {-# SOURCE #-} Stratosphere.EFS.FileSystem.ElasticFileSystemTagProperty as Exports
import {-# SOURCE #-} Stratosphere.EFS.FileSystem.FileSystemProtectionProperty as Exports
import {-# SOURCE #-} Stratosphere.EFS.FileSystem.LifecyclePolicyProperty as Exports
import {-# SOURCE #-} Stratosphere.EFS.FileSystem.ReplicationConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data FileSystem
= -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html>
FileSystem {haddock_workaround_ :: (),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-availabilityzonename>
availabilityZoneName :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-backuppolicy>
backupPolicy :: (Prelude.Maybe BackupPolicyProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-bypasspolicylockoutsafetycheck>
bypassPolicyLockoutSafetyCheck :: (Prelude.Maybe (Value Prelude.Bool)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-encrypted>
encrypted :: (Prelude.Maybe (Value Prelude.Bool)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystempolicy>
fileSystemPolicy :: (Prelude.Maybe JSON.Object),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystemprotection>
fileSystemProtection :: (Prelude.Maybe FileSystemProtectionProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-filesystemtags>
fileSystemTags :: (Prelude.Maybe [ElasticFileSystemTagProperty]),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-kmskeyid>
kmsKeyId :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-lifecyclepolicies>
lifecyclePolicies :: (Prelude.Maybe [LifecyclePolicyProperty]),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-performancemode>
performanceMode :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-provisionedthroughputinmibps>
provisionedThroughputInMibps :: (Prelude.Maybe (Value Prelude.Double)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-replicationconfiguration>
replicationConfiguration :: (Prelude.Maybe ReplicationConfigurationProperty),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-filesystem.html#cfn-efs-filesystem-throughputmode>
throughputMode :: (Prelude.Maybe (Value Prelude.Text))}
deriving stock (Prelude.Eq, Prelude.Show)
mkFileSystem :: FileSystem
mkFileSystem
= FileSystem
{haddock_workaround_ = (), availabilityZoneName = Prelude.Nothing,
backupPolicy = Prelude.Nothing,
bypassPolicyLockoutSafetyCheck = Prelude.Nothing,
encrypted = Prelude.Nothing, fileSystemPolicy = Prelude.Nothing,
fileSystemProtection = Prelude.Nothing,
fileSystemTags = Prelude.Nothing, kmsKeyId = Prelude.Nothing,
lifecyclePolicies = Prelude.Nothing,
performanceMode = Prelude.Nothing,
provisionedThroughputInMibps = Prelude.Nothing,
replicationConfiguration = Prelude.Nothing,
throughputMode = Prelude.Nothing}
instance ToResourceProperties FileSystem where
toResourceProperties FileSystem {..}
= ResourceProperties
{awsType = "AWS::EFS::FileSystem", supportsTags = Prelude.False,
properties = Prelude.fromList
(Prelude.catMaybes
[(JSON..=) "AvailabilityZoneName" Prelude.<$> availabilityZoneName,
(JSON..=) "BackupPolicy" Prelude.<$> backupPolicy,
(JSON..=) "BypassPolicyLockoutSafetyCheck"
Prelude.<$> bypassPolicyLockoutSafetyCheck,
(JSON..=) "Encrypted" Prelude.<$> encrypted,
(JSON..=) "FileSystemPolicy" Prelude.<$> fileSystemPolicy,
(JSON..=) "FileSystemProtection" Prelude.<$> fileSystemProtection,
(JSON..=) "FileSystemTags" Prelude.<$> fileSystemTags,
(JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
(JSON..=) "LifecyclePolicies" Prelude.<$> lifecyclePolicies,
(JSON..=) "PerformanceMode" Prelude.<$> performanceMode,
(JSON..=) "ProvisionedThroughputInMibps"
Prelude.<$> provisionedThroughputInMibps,
(JSON..=) "ReplicationConfiguration"
Prelude.<$> replicationConfiguration,
(JSON..=) "ThroughputMode" Prelude.<$> throughputMode])}
instance JSON.ToJSON FileSystem where
toJSON FileSystem {..}
= JSON.object
(Prelude.fromList
(Prelude.catMaybes
[(JSON..=) "AvailabilityZoneName" Prelude.<$> availabilityZoneName,
(JSON..=) "BackupPolicy" Prelude.<$> backupPolicy,
(JSON..=) "BypassPolicyLockoutSafetyCheck"
Prelude.<$> bypassPolicyLockoutSafetyCheck,
(JSON..=) "Encrypted" Prelude.<$> encrypted,
(JSON..=) "FileSystemPolicy" Prelude.<$> fileSystemPolicy,
(JSON..=) "FileSystemProtection" Prelude.<$> fileSystemProtection,
(JSON..=) "FileSystemTags" Prelude.<$> fileSystemTags,
(JSON..=) "KmsKeyId" Prelude.<$> kmsKeyId,
(JSON..=) "LifecyclePolicies" Prelude.<$> lifecyclePolicies,
(JSON..=) "PerformanceMode" Prelude.<$> performanceMode,
(JSON..=) "ProvisionedThroughputInMibps"
Prelude.<$> provisionedThroughputInMibps,
(JSON..=) "ReplicationConfiguration"
Prelude.<$> replicationConfiguration,
(JSON..=) "ThroughputMode" Prelude.<$> throughputMode]))
instance Property "AvailabilityZoneName" FileSystem where
type PropertyType "AvailabilityZoneName" FileSystem = Value Prelude.Text
set newValue FileSystem {..}
= FileSystem {availabilityZoneName = Prelude.pure newValue, ..}
instance Property "BackupPolicy" FileSystem where
type PropertyType "BackupPolicy" FileSystem = BackupPolicyProperty
set newValue FileSystem {..}
= FileSystem {backupPolicy = Prelude.pure newValue, ..}
instance Property "BypassPolicyLockoutSafetyCheck" FileSystem where
type PropertyType "BypassPolicyLockoutSafetyCheck" FileSystem = Value Prelude.Bool
set newValue FileSystem {..}
= FileSystem
{bypassPolicyLockoutSafetyCheck = Prelude.pure newValue, ..}
instance Property "Encrypted" FileSystem where
type PropertyType "Encrypted" FileSystem = Value Prelude.Bool
set newValue FileSystem {..}
= FileSystem {encrypted = Prelude.pure newValue, ..}
instance Property "FileSystemPolicy" FileSystem where
type PropertyType "FileSystemPolicy" FileSystem = JSON.Object
set newValue FileSystem {..}
= FileSystem {fileSystemPolicy = Prelude.pure newValue, ..}
instance Property "FileSystemProtection" FileSystem where
type PropertyType "FileSystemProtection" FileSystem = FileSystemProtectionProperty
set newValue FileSystem {..}
= FileSystem {fileSystemProtection = Prelude.pure newValue, ..}
instance Property "FileSystemTags" FileSystem where
type PropertyType "FileSystemTags" FileSystem = [ElasticFileSystemTagProperty]
set newValue FileSystem {..}
= FileSystem {fileSystemTags = Prelude.pure newValue, ..}
instance Property "KmsKeyId" FileSystem where
type PropertyType "KmsKeyId" FileSystem = Value Prelude.Text
set newValue FileSystem {..}
= FileSystem {kmsKeyId = Prelude.pure newValue, ..}
instance Property "LifecyclePolicies" FileSystem where
type PropertyType "LifecyclePolicies" FileSystem = [LifecyclePolicyProperty]
set newValue FileSystem {..}
= FileSystem {lifecyclePolicies = Prelude.pure newValue, ..}
instance Property "PerformanceMode" FileSystem where
type PropertyType "PerformanceMode" FileSystem = Value Prelude.Text
set newValue FileSystem {..}
= FileSystem {performanceMode = Prelude.pure newValue, ..}
instance Property "ProvisionedThroughputInMibps" FileSystem where
type PropertyType "ProvisionedThroughputInMibps" FileSystem = Value Prelude.Double
set newValue FileSystem {..}
= FileSystem
{provisionedThroughputInMibps = Prelude.pure newValue, ..}
instance Property "ReplicationConfiguration" FileSystem where
type PropertyType "ReplicationConfiguration" FileSystem = ReplicationConfigurationProperty
set newValue FileSystem {..}
= FileSystem {replicationConfiguration = Prelude.pure newValue, ..}
instance Property "ThroughputMode" FileSystem where
type PropertyType "ThroughputMode" FileSystem = Value Prelude.Text
set newValue FileSystem {..}
= FileSystem {throughputMode = Prelude.pure newValue, ..}