amazonka-fsx-2.0: gen/Amazonka/FSx/Types/FileSystem.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.FileSystem
-- 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.FileSystem where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import {-# SOURCE #-} Amazonka.FSx.Types.AdministrativeAction
import Amazonka.FSx.Types.FileSystemFailureDetails
import Amazonka.FSx.Types.FileSystemLifecycle
import Amazonka.FSx.Types.FileSystemType
import Amazonka.FSx.Types.LustreFileSystemConfiguration
import Amazonka.FSx.Types.OntapFileSystemConfiguration
import Amazonka.FSx.Types.OpenZFSFileSystemConfiguration
import Amazonka.FSx.Types.StorageType
import Amazonka.FSx.Types.Tag
import Amazonka.FSx.Types.WindowsFileSystemConfiguration
import qualified Amazonka.Prelude as Prelude
-- | A description of a specific Amazon FSx file system.
--
-- /See:/ 'newFileSystem' smart constructor.
data FileSystem = FileSystem'
{ -- | A list of administrative actions for the file system that are in process
-- or waiting to be processed. Administrative actions describe changes to
-- the Amazon FSx system that you have initiated using the
-- @UpdateFileSystem@ operation.
administrativeActions :: Prelude.Maybe [AdministrativeAction],
-- | The time that the file system was created, in seconds (since
-- 1970-01-01T00:00:00Z), also known as Unix time.
creationTime :: Prelude.Maybe Data.POSIX,
-- | The Domain Name System (DNS) name for the file system.
dNSName :: Prelude.Maybe Prelude.Text,
failureDetails :: Prelude.Maybe FileSystemFailureDetails,
-- | The system-generated, unique 17-digit ID of the file system.
fileSystemId :: Prelude.Maybe Prelude.Text,
-- | The type of Amazon FSx file system, which can be @LUSTRE@, @WINDOWS@,
-- @ONTAP@, or @OPENZFS@.
fileSystemType :: Prelude.Maybe FileSystemType,
-- | The Lustre version of the Amazon FSx for Lustre file system, either
-- @2.10@ or @2.12@.
fileSystemTypeVersion :: Prelude.Maybe Prelude.Text,
-- | The ID of the Key Management Service (KMS) key used to encrypt Amazon
-- FSx file system data. Used as follows with Amazon FSx file system types:
--
-- - Amazon FSx for Lustre @PERSISTENT_1@ and @PERSISTENT_2@ deployment
-- types only.
--
-- @SCRATCH_1@ and @SCRATCH_2@ types are encrypted using the Amazon FSx
-- service KMS key for your account.
--
-- - Amazon FSx for NetApp ONTAP
--
-- - Amazon FSx for OpenZFS
--
-- - Amazon FSx for Windows File Server
kmsKeyId :: Prelude.Maybe Prelude.Text,
-- | The lifecycle status of the file system. The following are the possible
-- values and what they mean:
--
-- - @AVAILABLE@ - The file system is in a healthy state, and is
-- reachable and available for use.
--
-- - @CREATING@ - Amazon FSx is creating the new file system.
--
-- - @DELETING@ - Amazon FSx is deleting an existing file system.
--
-- - @FAILED@ - An existing file system has experienced an unrecoverable
-- failure. When creating a new file system, Amazon FSx was unable to
-- create the file system.
--
-- - @MISCONFIGURED@ - The file system is in a failed but recoverable
-- state.
--
-- - @MISCONFIGURED_UNAVAILABLE@ - (Amazon FSx for Windows File Server
-- only) The file system is currently unavailable due to a change in
-- your Active Directory configuration.
--
-- - @UPDATING@ - The file system is undergoing a customer-initiated
-- update.
lifecycle :: Prelude.Maybe FileSystemLifecycle,
lustreConfiguration :: Prelude.Maybe LustreFileSystemConfiguration,
-- | The IDs of the elastic network interfaces from which a specific file
-- system is accessible. The elastic network interface is automatically
-- created in the same virtual private cloud (VPC) that the Amazon FSx file
-- system was created in. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html Elastic Network Interfaces>
-- in the /Amazon EC2 User Guide./
--
-- For an Amazon FSx for Windows File Server file system, you can have one
-- network interface ID. For an Amazon FSx for Lustre file system, you can
-- have more than one.
networkInterfaceIds :: Prelude.Maybe [Prelude.Text],
-- | The configuration for this Amazon FSx for NetApp ONTAP file system.
ontapConfiguration :: Prelude.Maybe OntapFileSystemConfiguration,
-- | The configuration for this Amazon FSx for OpenZFS file system.
openZFSConfiguration :: Prelude.Maybe OpenZFSFileSystemConfiguration,
-- | The Amazon Web Services account that created the file system. If the
-- file system was created by an Identity and Access Management (IAM) user,
-- the Amazon Web Services account to which the IAM user belongs is the
-- owner.
ownerId :: Prelude.Maybe Prelude.Text,
-- | The Amazon Resource Name (ARN) of the file system resource.
resourceARN :: Prelude.Maybe Prelude.Text,
-- | The storage capacity of the file system in gibibytes (GiB).
storageCapacity :: Prelude.Maybe Prelude.Natural,
-- | The type of storage the file system is using. If set to @SSD@, the file
-- system uses solid state drive storage. If set to @HDD@, the file system
-- uses hard disk drive storage.
storageType :: Prelude.Maybe StorageType,
-- | Specifies the IDs of the subnets that the file system is accessible
-- from. For the Amazon FSx Windows and ONTAP @MULTI_AZ_1@ file system
-- deployment type, there are two subnet IDs, one for the preferred file
-- server and one for the standby file server. The preferred file server
-- subnet identified in the @PreferredSubnetID@ property. All other file
-- systems have only one subnet ID.
--
-- For FSx for Lustre file systems, and Single-AZ Windows file systems,
-- this is the ID of the subnet that contains the file system\'s endpoint.
-- For @MULTI_AZ_1@ Windows and ONTAP file systems, the file system
-- endpoint is available in the @PreferredSubnetID@.
subnetIds :: Prelude.Maybe [Prelude.Text],
-- | The tags to associate with the file system. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging your Amazon EC2 resources>
-- in the /Amazon EC2 User Guide/.
tags :: Prelude.Maybe (Prelude.NonEmpty Tag),
-- | The ID of the primary virtual private cloud (VPC) for the file system.
vpcId :: Prelude.Maybe Prelude.Text,
-- | The configuration for this Amazon FSx for Windows File Server file
-- system.
windowsConfiguration :: Prelude.Maybe WindowsFileSystemConfiguration
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'FileSystem' 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:
--
-- 'administrativeActions', 'fileSystem_administrativeActions' - A list of administrative actions for the file system that are in process
-- or waiting to be processed. Administrative actions describe changes to
-- the Amazon FSx system that you have initiated using the
-- @UpdateFileSystem@ operation.
--
-- 'creationTime', 'fileSystem_creationTime' - The time that the file system was created, in seconds (since
-- 1970-01-01T00:00:00Z), also known as Unix time.
--
-- 'dNSName', 'fileSystem_dNSName' - The Domain Name System (DNS) name for the file system.
--
-- 'failureDetails', 'fileSystem_failureDetails' - Undocumented member.
--
-- 'fileSystemId', 'fileSystem_fileSystemId' - The system-generated, unique 17-digit ID of the file system.
--
-- 'fileSystemType', 'fileSystem_fileSystemType' - The type of Amazon FSx file system, which can be @LUSTRE@, @WINDOWS@,
-- @ONTAP@, or @OPENZFS@.
--
-- 'fileSystemTypeVersion', 'fileSystem_fileSystemTypeVersion' - The Lustre version of the Amazon FSx for Lustre file system, either
-- @2.10@ or @2.12@.
--
-- 'kmsKeyId', 'fileSystem_kmsKeyId' - The ID of the Key Management Service (KMS) key used to encrypt Amazon
-- FSx file system data. Used as follows with Amazon FSx file system types:
--
-- - Amazon FSx for Lustre @PERSISTENT_1@ and @PERSISTENT_2@ deployment
-- types only.
--
-- @SCRATCH_1@ and @SCRATCH_2@ types are encrypted using the Amazon FSx
-- service KMS key for your account.
--
-- - Amazon FSx for NetApp ONTAP
--
-- - Amazon FSx for OpenZFS
--
-- - Amazon FSx for Windows File Server
--
-- 'lifecycle', 'fileSystem_lifecycle' - The lifecycle status of the file system. The following are the possible
-- values and what they mean:
--
-- - @AVAILABLE@ - The file system is in a healthy state, and is
-- reachable and available for use.
--
-- - @CREATING@ - Amazon FSx is creating the new file system.
--
-- - @DELETING@ - Amazon FSx is deleting an existing file system.
--
-- - @FAILED@ - An existing file system has experienced an unrecoverable
-- failure. When creating a new file system, Amazon FSx was unable to
-- create the file system.
--
-- - @MISCONFIGURED@ - The file system is in a failed but recoverable
-- state.
--
-- - @MISCONFIGURED_UNAVAILABLE@ - (Amazon FSx for Windows File Server
-- only) The file system is currently unavailable due to a change in
-- your Active Directory configuration.
--
-- - @UPDATING@ - The file system is undergoing a customer-initiated
-- update.
--
-- 'lustreConfiguration', 'fileSystem_lustreConfiguration' - Undocumented member.
--
-- 'networkInterfaceIds', 'fileSystem_networkInterfaceIds' - The IDs of the elastic network interfaces from which a specific file
-- system is accessible. The elastic network interface is automatically
-- created in the same virtual private cloud (VPC) that the Amazon FSx file
-- system was created in. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html Elastic Network Interfaces>
-- in the /Amazon EC2 User Guide./
--
-- For an Amazon FSx for Windows File Server file system, you can have one
-- network interface ID. For an Amazon FSx for Lustre file system, you can
-- have more than one.
--
-- 'ontapConfiguration', 'fileSystem_ontapConfiguration' - The configuration for this Amazon FSx for NetApp ONTAP file system.
--
-- 'openZFSConfiguration', 'fileSystem_openZFSConfiguration' - The configuration for this Amazon FSx for OpenZFS file system.
--
-- 'ownerId', 'fileSystem_ownerId' - The Amazon Web Services account that created the file system. If the
-- file system was created by an Identity and Access Management (IAM) user,
-- the Amazon Web Services account to which the IAM user belongs is the
-- owner.
--
-- 'resourceARN', 'fileSystem_resourceARN' - The Amazon Resource Name (ARN) of the file system resource.
--
-- 'storageCapacity', 'fileSystem_storageCapacity' - The storage capacity of the file system in gibibytes (GiB).
--
-- 'storageType', 'fileSystem_storageType' - The type of storage the file system is using. If set to @SSD@, the file
-- system uses solid state drive storage. If set to @HDD@, the file system
-- uses hard disk drive storage.
--
-- 'subnetIds', 'fileSystem_subnetIds' - Specifies the IDs of the subnets that the file system is accessible
-- from. For the Amazon FSx Windows and ONTAP @MULTI_AZ_1@ file system
-- deployment type, there are two subnet IDs, one for the preferred file
-- server and one for the standby file server. The preferred file server
-- subnet identified in the @PreferredSubnetID@ property. All other file
-- systems have only one subnet ID.
--
-- For FSx for Lustre file systems, and Single-AZ Windows file systems,
-- this is the ID of the subnet that contains the file system\'s endpoint.
-- For @MULTI_AZ_1@ Windows and ONTAP file systems, the file system
-- endpoint is available in the @PreferredSubnetID@.
--
-- 'tags', 'fileSystem_tags' - The tags to associate with the file system. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging your Amazon EC2 resources>
-- in the /Amazon EC2 User Guide/.
--
-- 'vpcId', 'fileSystem_vpcId' - The ID of the primary virtual private cloud (VPC) for the file system.
--
-- 'windowsConfiguration', 'fileSystem_windowsConfiguration' - The configuration for this Amazon FSx for Windows File Server file
-- system.
newFileSystem ::
FileSystem
newFileSystem =
FileSystem'
{ administrativeActions =
Prelude.Nothing,
creationTime = Prelude.Nothing,
dNSName = Prelude.Nothing,
failureDetails = Prelude.Nothing,
fileSystemId = Prelude.Nothing,
fileSystemType = Prelude.Nothing,
fileSystemTypeVersion = Prelude.Nothing,
kmsKeyId = Prelude.Nothing,
lifecycle = Prelude.Nothing,
lustreConfiguration = Prelude.Nothing,
networkInterfaceIds = Prelude.Nothing,
ontapConfiguration = Prelude.Nothing,
openZFSConfiguration = Prelude.Nothing,
ownerId = Prelude.Nothing,
resourceARN = Prelude.Nothing,
storageCapacity = Prelude.Nothing,
storageType = Prelude.Nothing,
subnetIds = Prelude.Nothing,
tags = Prelude.Nothing,
vpcId = Prelude.Nothing,
windowsConfiguration = Prelude.Nothing
}
-- | A list of administrative actions for the file system that are in process
-- or waiting to be processed. Administrative actions describe changes to
-- the Amazon FSx system that you have initiated using the
-- @UpdateFileSystem@ operation.
fileSystem_administrativeActions :: Lens.Lens' FileSystem (Prelude.Maybe [AdministrativeAction])
fileSystem_administrativeActions = Lens.lens (\FileSystem' {administrativeActions} -> administrativeActions) (\s@FileSystem' {} a -> s {administrativeActions = a} :: FileSystem) Prelude.. Lens.mapping Lens.coerced
-- | The time that the file system was created, in seconds (since
-- 1970-01-01T00:00:00Z), also known as Unix time.
fileSystem_creationTime :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.UTCTime)
fileSystem_creationTime = Lens.lens (\FileSystem' {creationTime} -> creationTime) (\s@FileSystem' {} a -> s {creationTime = a} :: FileSystem) Prelude.. Lens.mapping Data._Time
-- | The Domain Name System (DNS) name for the file system.
fileSystem_dNSName :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Text)
fileSystem_dNSName = Lens.lens (\FileSystem' {dNSName} -> dNSName) (\s@FileSystem' {} a -> s {dNSName = a} :: FileSystem)
-- | Undocumented member.
fileSystem_failureDetails :: Lens.Lens' FileSystem (Prelude.Maybe FileSystemFailureDetails)
fileSystem_failureDetails = Lens.lens (\FileSystem' {failureDetails} -> failureDetails) (\s@FileSystem' {} a -> s {failureDetails = a} :: FileSystem)
-- | The system-generated, unique 17-digit ID of the file system.
fileSystem_fileSystemId :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Text)
fileSystem_fileSystemId = Lens.lens (\FileSystem' {fileSystemId} -> fileSystemId) (\s@FileSystem' {} a -> s {fileSystemId = a} :: FileSystem)
-- | The type of Amazon FSx file system, which can be @LUSTRE@, @WINDOWS@,
-- @ONTAP@, or @OPENZFS@.
fileSystem_fileSystemType :: Lens.Lens' FileSystem (Prelude.Maybe FileSystemType)
fileSystem_fileSystemType = Lens.lens (\FileSystem' {fileSystemType} -> fileSystemType) (\s@FileSystem' {} a -> s {fileSystemType = a} :: FileSystem)
-- | The Lustre version of the Amazon FSx for Lustre file system, either
-- @2.10@ or @2.12@.
fileSystem_fileSystemTypeVersion :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Text)
fileSystem_fileSystemTypeVersion = Lens.lens (\FileSystem' {fileSystemTypeVersion} -> fileSystemTypeVersion) (\s@FileSystem' {} a -> s {fileSystemTypeVersion = a} :: FileSystem)
-- | The ID of the Key Management Service (KMS) key used to encrypt Amazon
-- FSx file system data. Used as follows with Amazon FSx file system types:
--
-- - Amazon FSx for Lustre @PERSISTENT_1@ and @PERSISTENT_2@ deployment
-- types only.
--
-- @SCRATCH_1@ and @SCRATCH_2@ types are encrypted using the Amazon FSx
-- service KMS key for your account.
--
-- - Amazon FSx for NetApp ONTAP
--
-- - Amazon FSx for OpenZFS
--
-- - Amazon FSx for Windows File Server
fileSystem_kmsKeyId :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Text)
fileSystem_kmsKeyId = Lens.lens (\FileSystem' {kmsKeyId} -> kmsKeyId) (\s@FileSystem' {} a -> s {kmsKeyId = a} :: FileSystem)
-- | The lifecycle status of the file system. The following are the possible
-- values and what they mean:
--
-- - @AVAILABLE@ - The file system is in a healthy state, and is
-- reachable and available for use.
--
-- - @CREATING@ - Amazon FSx is creating the new file system.
--
-- - @DELETING@ - Amazon FSx is deleting an existing file system.
--
-- - @FAILED@ - An existing file system has experienced an unrecoverable
-- failure. When creating a new file system, Amazon FSx was unable to
-- create the file system.
--
-- - @MISCONFIGURED@ - The file system is in a failed but recoverable
-- state.
--
-- - @MISCONFIGURED_UNAVAILABLE@ - (Amazon FSx for Windows File Server
-- only) The file system is currently unavailable due to a change in
-- your Active Directory configuration.
--
-- - @UPDATING@ - The file system is undergoing a customer-initiated
-- update.
fileSystem_lifecycle :: Lens.Lens' FileSystem (Prelude.Maybe FileSystemLifecycle)
fileSystem_lifecycle = Lens.lens (\FileSystem' {lifecycle} -> lifecycle) (\s@FileSystem' {} a -> s {lifecycle = a} :: FileSystem)
-- | Undocumented member.
fileSystem_lustreConfiguration :: Lens.Lens' FileSystem (Prelude.Maybe LustreFileSystemConfiguration)
fileSystem_lustreConfiguration = Lens.lens (\FileSystem' {lustreConfiguration} -> lustreConfiguration) (\s@FileSystem' {} a -> s {lustreConfiguration = a} :: FileSystem)
-- | The IDs of the elastic network interfaces from which a specific file
-- system is accessible. The elastic network interface is automatically
-- created in the same virtual private cloud (VPC) that the Amazon FSx file
-- system was created in. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html Elastic Network Interfaces>
-- in the /Amazon EC2 User Guide./
--
-- For an Amazon FSx for Windows File Server file system, you can have one
-- network interface ID. For an Amazon FSx for Lustre file system, you can
-- have more than one.
fileSystem_networkInterfaceIds :: Lens.Lens' FileSystem (Prelude.Maybe [Prelude.Text])
fileSystem_networkInterfaceIds = Lens.lens (\FileSystem' {networkInterfaceIds} -> networkInterfaceIds) (\s@FileSystem' {} a -> s {networkInterfaceIds = a} :: FileSystem) Prelude.. Lens.mapping Lens.coerced
-- | The configuration for this Amazon FSx for NetApp ONTAP file system.
fileSystem_ontapConfiguration :: Lens.Lens' FileSystem (Prelude.Maybe OntapFileSystemConfiguration)
fileSystem_ontapConfiguration = Lens.lens (\FileSystem' {ontapConfiguration} -> ontapConfiguration) (\s@FileSystem' {} a -> s {ontapConfiguration = a} :: FileSystem)
-- | The configuration for this Amazon FSx for OpenZFS file system.
fileSystem_openZFSConfiguration :: Lens.Lens' FileSystem (Prelude.Maybe OpenZFSFileSystemConfiguration)
fileSystem_openZFSConfiguration = Lens.lens (\FileSystem' {openZFSConfiguration} -> openZFSConfiguration) (\s@FileSystem' {} a -> s {openZFSConfiguration = a} :: FileSystem)
-- | The Amazon Web Services account that created the file system. If the
-- file system was created by an Identity and Access Management (IAM) user,
-- the Amazon Web Services account to which the IAM user belongs is the
-- owner.
fileSystem_ownerId :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Text)
fileSystem_ownerId = Lens.lens (\FileSystem' {ownerId} -> ownerId) (\s@FileSystem' {} a -> s {ownerId = a} :: FileSystem)
-- | The Amazon Resource Name (ARN) of the file system resource.
fileSystem_resourceARN :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Text)
fileSystem_resourceARN = Lens.lens (\FileSystem' {resourceARN} -> resourceARN) (\s@FileSystem' {} a -> s {resourceARN = a} :: FileSystem)
-- | The storage capacity of the file system in gibibytes (GiB).
fileSystem_storageCapacity :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Natural)
fileSystem_storageCapacity = Lens.lens (\FileSystem' {storageCapacity} -> storageCapacity) (\s@FileSystem' {} a -> s {storageCapacity = a} :: FileSystem)
-- | The type of storage the file system is using. If set to @SSD@, the file
-- system uses solid state drive storage. If set to @HDD@, the file system
-- uses hard disk drive storage.
fileSystem_storageType :: Lens.Lens' FileSystem (Prelude.Maybe StorageType)
fileSystem_storageType = Lens.lens (\FileSystem' {storageType} -> storageType) (\s@FileSystem' {} a -> s {storageType = a} :: FileSystem)
-- | Specifies the IDs of the subnets that the file system is accessible
-- from. For the Amazon FSx Windows and ONTAP @MULTI_AZ_1@ file system
-- deployment type, there are two subnet IDs, one for the preferred file
-- server and one for the standby file server. The preferred file server
-- subnet identified in the @PreferredSubnetID@ property. All other file
-- systems have only one subnet ID.
--
-- For FSx for Lustre file systems, and Single-AZ Windows file systems,
-- this is the ID of the subnet that contains the file system\'s endpoint.
-- For @MULTI_AZ_1@ Windows and ONTAP file systems, the file system
-- endpoint is available in the @PreferredSubnetID@.
fileSystem_subnetIds :: Lens.Lens' FileSystem (Prelude.Maybe [Prelude.Text])
fileSystem_subnetIds = Lens.lens (\FileSystem' {subnetIds} -> subnetIds) (\s@FileSystem' {} a -> s {subnetIds = a} :: FileSystem) Prelude.. Lens.mapping Lens.coerced
-- | The tags to associate with the file system. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html Tagging your Amazon EC2 resources>
-- in the /Amazon EC2 User Guide/.
fileSystem_tags :: Lens.Lens' FileSystem (Prelude.Maybe (Prelude.NonEmpty Tag))
fileSystem_tags = Lens.lens (\FileSystem' {tags} -> tags) (\s@FileSystem' {} a -> s {tags = a} :: FileSystem) Prelude.. Lens.mapping Lens.coerced
-- | The ID of the primary virtual private cloud (VPC) for the file system.
fileSystem_vpcId :: Lens.Lens' FileSystem (Prelude.Maybe Prelude.Text)
fileSystem_vpcId = Lens.lens (\FileSystem' {vpcId} -> vpcId) (\s@FileSystem' {} a -> s {vpcId = a} :: FileSystem)
-- | The configuration for this Amazon FSx for Windows File Server file
-- system.
fileSystem_windowsConfiguration :: Lens.Lens' FileSystem (Prelude.Maybe WindowsFileSystemConfiguration)
fileSystem_windowsConfiguration = Lens.lens (\FileSystem' {windowsConfiguration} -> windowsConfiguration) (\s@FileSystem' {} a -> s {windowsConfiguration = a} :: FileSystem)
instance Data.FromJSON FileSystem where
parseJSON =
Data.withObject
"FileSystem"
( \x ->
FileSystem'
Prelude.<$> ( x
Data..:? "AdministrativeActions"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "CreationTime")
Prelude.<*> (x Data..:? "DNSName")
Prelude.<*> (x Data..:? "FailureDetails")
Prelude.<*> (x Data..:? "FileSystemId")
Prelude.<*> (x Data..:? "FileSystemType")
Prelude.<*> (x Data..:? "FileSystemTypeVersion")
Prelude.<*> (x Data..:? "KmsKeyId")
Prelude.<*> (x Data..:? "Lifecycle")
Prelude.<*> (x Data..:? "LustreConfiguration")
Prelude.<*> ( x
Data..:? "NetworkInterfaceIds"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "OntapConfiguration")
Prelude.<*> (x Data..:? "OpenZFSConfiguration")
Prelude.<*> (x Data..:? "OwnerId")
Prelude.<*> (x Data..:? "ResourceARN")
Prelude.<*> (x Data..:? "StorageCapacity")
Prelude.<*> (x Data..:? "StorageType")
Prelude.<*> (x Data..:? "SubnetIds" Data..!= Prelude.mempty)
Prelude.<*> (x Data..:? "Tags")
Prelude.<*> (x Data..:? "VpcId")
Prelude.<*> (x Data..:? "WindowsConfiguration")
)
instance Prelude.Hashable FileSystem where
hashWithSalt _salt FileSystem' {..} =
_salt
`Prelude.hashWithSalt` administrativeActions
`Prelude.hashWithSalt` creationTime
`Prelude.hashWithSalt` dNSName
`Prelude.hashWithSalt` failureDetails
`Prelude.hashWithSalt` fileSystemId
`Prelude.hashWithSalt` fileSystemType
`Prelude.hashWithSalt` fileSystemTypeVersion
`Prelude.hashWithSalt` kmsKeyId
`Prelude.hashWithSalt` lifecycle
`Prelude.hashWithSalt` lustreConfiguration
`Prelude.hashWithSalt` networkInterfaceIds
`Prelude.hashWithSalt` ontapConfiguration
`Prelude.hashWithSalt` openZFSConfiguration
`Prelude.hashWithSalt` ownerId
`Prelude.hashWithSalt` resourceARN
`Prelude.hashWithSalt` storageCapacity
`Prelude.hashWithSalt` storageType
`Prelude.hashWithSalt` subnetIds
`Prelude.hashWithSalt` tags
`Prelude.hashWithSalt` vpcId
`Prelude.hashWithSalt` windowsConfiguration
instance Prelude.NFData FileSystem where
rnf FileSystem' {..} =
Prelude.rnf administrativeActions
`Prelude.seq` Prelude.rnf creationTime
`Prelude.seq` Prelude.rnf dNSName
`Prelude.seq` Prelude.rnf failureDetails
`Prelude.seq` Prelude.rnf fileSystemId
`Prelude.seq` Prelude.rnf fileSystemType
`Prelude.seq` Prelude.rnf fileSystemTypeVersion
`Prelude.seq` Prelude.rnf kmsKeyId
`Prelude.seq` Prelude.rnf lifecycle
`Prelude.seq` Prelude.rnf lustreConfiguration
`Prelude.seq` Prelude.rnf networkInterfaceIds
`Prelude.seq` Prelude.rnf ontapConfiguration
`Prelude.seq` Prelude.rnf openZFSConfiguration
`Prelude.seq` Prelude.rnf ownerId
`Prelude.seq` Prelude.rnf resourceARN
`Prelude.seq` Prelude.rnf storageCapacity
`Prelude.seq` Prelude.rnf storageType
`Prelude.seq` Prelude.rnf subnetIds
`Prelude.seq` Prelude.rnf tags
`Prelude.seq` Prelude.rnf vpcId
`Prelude.seq` Prelude.rnf
windowsConfiguration