packages feed

amazonka-fsx (empty) → 2.0

raw patch · 279 files changed

+38307/−0 lines, 279 filesdep +amazonka-coredep +amazonka-fsxdep +amazonka-test

Dependencies added: amazonka-core, amazonka-fsx, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon FSx SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-03-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-fsx)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Amazonka.FSx](http://hackage.haskell.org/package/amazonka-fsx/docs/Amazonka-FSx.html)+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-fsx` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ amazonka-fsx.cabal view
@@ -0,0 +1,264 @@+cabal-version:      2.2+name:               amazonka-fsx+version:            2.0+synopsis:           Amazon FSx SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2018-03-01@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.FSx.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.FSx" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-fsx++library+  default-language: Haskell2010+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields++  exposed-modules:+    Amazonka.FSx+    Amazonka.FSx.AssociateFileSystemAliases+    Amazonka.FSx.CancelDataRepositoryTask+    Amazonka.FSx.CopyBackup+    Amazonka.FSx.CreateBackup+    Amazonka.FSx.CreateDataRepositoryAssociation+    Amazonka.FSx.CreateDataRepositoryTask+    Amazonka.FSx.CreateFileCache+    Amazonka.FSx.CreateFileSystem+    Amazonka.FSx.CreateFileSystemFromBackup+    Amazonka.FSx.CreateSnapshot+    Amazonka.FSx.CreateStorageVirtualMachine+    Amazonka.FSx.CreateVolume+    Amazonka.FSx.CreateVolumeFromBackup+    Amazonka.FSx.DeleteBackup+    Amazonka.FSx.DeleteDataRepositoryAssociation+    Amazonka.FSx.DeleteFileCache+    Amazonka.FSx.DeleteFileSystem+    Amazonka.FSx.DeleteSnapshot+    Amazonka.FSx.DeleteStorageVirtualMachine+    Amazonka.FSx.DeleteVolume+    Amazonka.FSx.DescribeBackups+    Amazonka.FSx.DescribeDataRepositoryAssociations+    Amazonka.FSx.DescribeDataRepositoryTasks+    Amazonka.FSx.DescribeFileCaches+    Amazonka.FSx.DescribeFileSystemAliases+    Amazonka.FSx.DescribeFileSystems+    Amazonka.FSx.DescribeSnapshots+    Amazonka.FSx.DescribeStorageVirtualMachines+    Amazonka.FSx.DescribeVolumes+    Amazonka.FSx.DisassociateFileSystemAliases+    Amazonka.FSx.Lens+    Amazonka.FSx.ListTagsForResource+    Amazonka.FSx.ReleaseFileSystemNfsV3Locks+    Amazonka.FSx.RestoreVolumeFromSnapshot+    Amazonka.FSx.TagResource+    Amazonka.FSx.Types+    Amazonka.FSx.Types.ActiveDirectoryBackupAttributes+    Amazonka.FSx.Types.AdministrativeAction+    Amazonka.FSx.Types.AdministrativeActionFailureDetails+    Amazonka.FSx.Types.AdministrativeActionType+    Amazonka.FSx.Types.Alias+    Amazonka.FSx.Types.AliasLifecycle+    Amazonka.FSx.Types.AutoExportPolicy+    Amazonka.FSx.Types.AutoImportPolicy+    Amazonka.FSx.Types.AutoImportPolicyType+    Amazonka.FSx.Types.Backup+    Amazonka.FSx.Types.BackupFailureDetails+    Amazonka.FSx.Types.BackupLifecycle+    Amazonka.FSx.Types.BackupType+    Amazonka.FSx.Types.CompletionReport+    Amazonka.FSx.Types.CreateFileCacheLustreConfiguration+    Amazonka.FSx.Types.CreateFileSystemLustreConfiguration+    Amazonka.FSx.Types.CreateFileSystemOntapConfiguration+    Amazonka.FSx.Types.CreateFileSystemOpenZFSConfiguration+    Amazonka.FSx.Types.CreateFileSystemWindowsConfiguration+    Amazonka.FSx.Types.CreateOntapVolumeConfiguration+    Amazonka.FSx.Types.CreateOpenZFSOriginSnapshotConfiguration+    Amazonka.FSx.Types.CreateOpenZFSVolumeConfiguration+    Amazonka.FSx.Types.CreateSvmActiveDirectoryConfiguration+    Amazonka.FSx.Types.DataCompressionType+    Amazonka.FSx.Types.DataRepositoryAssociation+    Amazonka.FSx.Types.DataRepositoryConfiguration+    Amazonka.FSx.Types.DataRepositoryFailureDetails+    Amazonka.FSx.Types.DataRepositoryLifecycle+    Amazonka.FSx.Types.DataRepositoryTask+    Amazonka.FSx.Types.DataRepositoryTaskFailureDetails+    Amazonka.FSx.Types.DataRepositoryTaskFilter+    Amazonka.FSx.Types.DataRepositoryTaskFilterName+    Amazonka.FSx.Types.DataRepositoryTaskLifecycle+    Amazonka.FSx.Types.DataRepositoryTaskStatus+    Amazonka.FSx.Types.DataRepositoryTaskType+    Amazonka.FSx.Types.DeleteFileSystemLustreConfiguration+    Amazonka.FSx.Types.DeleteFileSystemLustreResponse+    Amazonka.FSx.Types.DeleteFileSystemOpenZFSConfiguration+    Amazonka.FSx.Types.DeleteFileSystemOpenZFSOption+    Amazonka.FSx.Types.DeleteFileSystemOpenZFSResponse+    Amazonka.FSx.Types.DeleteFileSystemWindowsConfiguration+    Amazonka.FSx.Types.DeleteFileSystemWindowsResponse+    Amazonka.FSx.Types.DeleteOpenZFSVolumeOption+    Amazonka.FSx.Types.DeleteVolumeOntapConfiguration+    Amazonka.FSx.Types.DeleteVolumeOntapResponse+    Amazonka.FSx.Types.DeleteVolumeOpenZFSConfiguration+    Amazonka.FSx.Types.DiskIopsConfiguration+    Amazonka.FSx.Types.DiskIopsConfigurationMode+    Amazonka.FSx.Types.DriveCacheType+    Amazonka.FSx.Types.EventType+    Amazonka.FSx.Types.FileCache+    Amazonka.FSx.Types.FileCacheCreating+    Amazonka.FSx.Types.FileCacheDataRepositoryAssociation+    Amazonka.FSx.Types.FileCacheFailureDetails+    Amazonka.FSx.Types.FileCacheLifecycle+    Amazonka.FSx.Types.FileCacheLustreConfiguration+    Amazonka.FSx.Types.FileCacheLustreDeploymentType+    Amazonka.FSx.Types.FileCacheLustreMetadataConfiguration+    Amazonka.FSx.Types.FileCacheNFSConfiguration+    Amazonka.FSx.Types.FileCacheType+    Amazonka.FSx.Types.FileSystem+    Amazonka.FSx.Types.FileSystemEndpoint+    Amazonka.FSx.Types.FileSystemEndpoints+    Amazonka.FSx.Types.FileSystemFailureDetails+    Amazonka.FSx.Types.FileSystemLifecycle+    Amazonka.FSx.Types.FileSystemMaintenanceOperation+    Amazonka.FSx.Types.FileSystemType+    Amazonka.FSx.Types.Filter+    Amazonka.FSx.Types.FilterName+    Amazonka.FSx.Types.FlexCacheEndpointType+    Amazonka.FSx.Types.InputOntapVolumeType+    Amazonka.FSx.Types.LifecycleTransitionReason+    Amazonka.FSx.Types.LustreAccessAuditLogLevel+    Amazonka.FSx.Types.LustreDeploymentType+    Amazonka.FSx.Types.LustreFileSystemConfiguration+    Amazonka.FSx.Types.LustreLogConfiguration+    Amazonka.FSx.Types.LustreLogCreateConfiguration+    Amazonka.FSx.Types.LustreRootSquashConfiguration+    Amazonka.FSx.Types.NFSDataRepositoryConfiguration+    Amazonka.FSx.Types.NfsVersion+    Amazonka.FSx.Types.OntapDeploymentType+    Amazonka.FSx.Types.OntapFileSystemConfiguration+    Amazonka.FSx.Types.OntapVolumeConfiguration+    Amazonka.FSx.Types.OntapVolumeType+    Amazonka.FSx.Types.OpenZFSClientConfiguration+    Amazonka.FSx.Types.OpenZFSCopyStrategy+    Amazonka.FSx.Types.OpenZFSCreateRootVolumeConfiguration+    Amazonka.FSx.Types.OpenZFSDataCompressionType+    Amazonka.FSx.Types.OpenZFSDeploymentType+    Amazonka.FSx.Types.OpenZFSFileSystemConfiguration+    Amazonka.FSx.Types.OpenZFSNfsExport+    Amazonka.FSx.Types.OpenZFSOriginSnapshotConfiguration+    Amazonka.FSx.Types.OpenZFSQuotaType+    Amazonka.FSx.Types.OpenZFSUserOrGroupQuota+    Amazonka.FSx.Types.OpenZFSVolumeConfiguration+    Amazonka.FSx.Types.ReportFormat+    Amazonka.FSx.Types.ReportScope+    Amazonka.FSx.Types.ResourceType+    Amazonka.FSx.Types.RestoreOpenZFSVolumeOption+    Amazonka.FSx.Types.S3DataRepositoryConfiguration+    Amazonka.FSx.Types.SecurityStyle+    Amazonka.FSx.Types.SelfManagedActiveDirectoryAttributes+    Amazonka.FSx.Types.SelfManagedActiveDirectoryConfiguration+    Amazonka.FSx.Types.SelfManagedActiveDirectoryConfigurationUpdates+    Amazonka.FSx.Types.Snapshot+    Amazonka.FSx.Types.SnapshotFilter+    Amazonka.FSx.Types.SnapshotFilterName+    Amazonka.FSx.Types.SnapshotLifecycle+    Amazonka.FSx.Types.Status+    Amazonka.FSx.Types.StorageType+    Amazonka.FSx.Types.StorageVirtualMachine+    Amazonka.FSx.Types.StorageVirtualMachineFilter+    Amazonka.FSx.Types.StorageVirtualMachineFilterName+    Amazonka.FSx.Types.StorageVirtualMachineLifecycle+    Amazonka.FSx.Types.StorageVirtualMachineRootVolumeSecurityStyle+    Amazonka.FSx.Types.StorageVirtualMachineSubtype+    Amazonka.FSx.Types.SvmActiveDirectoryConfiguration+    Amazonka.FSx.Types.SvmEndpoint+    Amazonka.FSx.Types.SvmEndpoints+    Amazonka.FSx.Types.Tag+    Amazonka.FSx.Types.TieringPolicy+    Amazonka.FSx.Types.TieringPolicyName+    Amazonka.FSx.Types.UpdateFileCacheLustreConfiguration+    Amazonka.FSx.Types.UpdateFileSystemLustreConfiguration+    Amazonka.FSx.Types.UpdateFileSystemOntapConfiguration+    Amazonka.FSx.Types.UpdateFileSystemOpenZFSConfiguration+    Amazonka.FSx.Types.UpdateFileSystemWindowsConfiguration+    Amazonka.FSx.Types.UpdateOntapVolumeConfiguration+    Amazonka.FSx.Types.UpdateOpenZFSVolumeConfiguration+    Amazonka.FSx.Types.UpdateSvmActiveDirectoryConfiguration+    Amazonka.FSx.Types.Volume+    Amazonka.FSx.Types.VolumeFilter+    Amazonka.FSx.Types.VolumeFilterName+    Amazonka.FSx.Types.VolumeLifecycle+    Amazonka.FSx.Types.VolumeType+    Amazonka.FSx.Types.WindowsAccessAuditLogLevel+    Amazonka.FSx.Types.WindowsAuditLogConfiguration+    Amazonka.FSx.Types.WindowsAuditLogCreateConfiguration+    Amazonka.FSx.Types.WindowsDeploymentType+    Amazonka.FSx.Types.WindowsFileSystemConfiguration+    Amazonka.FSx.UntagResource+    Amazonka.FSx.UpdateDataRepositoryAssociation+    Amazonka.FSx.UpdateFileCache+    Amazonka.FSx.UpdateFileSystem+    Amazonka.FSx.UpdateSnapshot+    Amazonka.FSx.UpdateStorageVirtualMachine+    Amazonka.FSx.UpdateVolume+    Amazonka.FSx.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-fsx-test+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded++  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.FSx+    Test.Amazonka.FSx.Internal+    Test.Amazonka.Gen.FSx++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-fsx+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateFileSystemAliases.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/AssociateFileSystemAliasesResponse.proto view
+ fixture/CancelDataRepositoryTask.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CancelDataRepositoryTaskResponse.proto view
+ fixture/CopyBackup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CopyBackupResponse.proto view
+ fixture/CreateBackup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateBackupResponse.proto view
+ fixture/CreateDataRepositoryAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDataRepositoryAssociationResponse.proto view
+ fixture/CreateDataRepositoryTask.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDataRepositoryTaskResponse.proto view
+ fixture/CreateFileCache.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateFileCacheResponse.proto view
+ fixture/CreateFileSystem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateFileSystemFromBackup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateFileSystemFromBackupResponse.proto view
+ fixture/CreateFileSystemResponse.proto view
+ fixture/CreateSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSnapshotResponse.proto view
+ fixture/CreateStorageVirtualMachine.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateStorageVirtualMachineResponse.proto view
+ fixture/CreateVolume.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateVolumeFromBackup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateVolumeFromBackupResponse.proto view
+ fixture/CreateVolumeResponse.proto view
+ fixture/DeleteBackup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteBackupResponse.proto view
+ fixture/DeleteDataRepositoryAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteDataRepositoryAssociationResponse.proto view
+ fixture/DeleteFileCache.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteFileCacheResponse.proto view
+ fixture/DeleteFileSystem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteFileSystemResponse.proto view
+ fixture/DeleteSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteSnapshotResponse.proto view
+ fixture/DeleteStorageVirtualMachine.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteStorageVirtualMachineResponse.proto view
+ fixture/DeleteVolume.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteVolumeResponse.proto view
+ fixture/DescribeBackups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBackupsResponse.proto view
+ fixture/DescribeDataRepositoryAssociations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeDataRepositoryAssociationsResponse.proto view
+ fixture/DescribeDataRepositoryTasks.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeDataRepositoryTasksResponse.proto view
+ fixture/DescribeFileCaches.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeFileCachesResponse.proto view
+ fixture/DescribeFileSystemAliases.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeFileSystemAliasesResponse.proto view
+ fixture/DescribeFileSystems.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeFileSystemsResponse.proto view
+ fixture/DescribeSnapshots.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeSnapshotsResponse.proto view
+ fixture/DescribeStorageVirtualMachines.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeStorageVirtualMachinesResponse.proto view
+ fixture/DescribeVolumes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeVolumesResponse.proto view
+ fixture/DisassociateFileSystemAliases.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DisassociateFileSystemAliasesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ReleaseFileSystemNfsV3Locks.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ReleaseFileSystemNfsV3LocksResponse.proto view
+ fixture/RestoreVolumeFromSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/RestoreVolumeFromSnapshotResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateDataRepositoryAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateDataRepositoryAssociationResponse.proto view
+ fixture/UpdateFileCache.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateFileCacheResponse.proto view
+ fixture/UpdateFileSystem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateFileSystemResponse.proto view
+ fixture/UpdateSnapshot.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSnapshotResponse.proto view
+ fixture/UpdateStorageVirtualMachine.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateStorageVirtualMachineResponse.proto view
+ fixture/UpdateVolume.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/fsx/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  fsx.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateVolumeResponse.proto view
+ gen/Amazonka/FSx.hs view
@@ -0,0 +1,962 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.FSx+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2018-03-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon FSx is a fully managed service that makes it easy for storage and+-- application administrators to launch and use shared file storage.+module Amazonka.FSx+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** ActiveDirectoryError+    _ActiveDirectoryError,++    -- ** BackupBeingCopied+    _BackupBeingCopied,++    -- ** BackupInProgress+    _BackupInProgress,++    -- ** BackupNotFound+    _BackupNotFound,++    -- ** BackupRestoring+    _BackupRestoring,++    -- ** BadRequest+    _BadRequest,++    -- ** DataRepositoryAssociationNotFound+    _DataRepositoryAssociationNotFound,++    -- ** DataRepositoryTaskEnded+    _DataRepositoryTaskEnded,++    -- ** DataRepositoryTaskExecuting+    _DataRepositoryTaskExecuting,++    -- ** DataRepositoryTaskNotFound+    _DataRepositoryTaskNotFound,++    -- ** FileCacheNotFound+    _FileCacheNotFound,++    -- ** FileSystemNotFound+    _FileSystemNotFound,++    -- ** IncompatibleParameterError+    _IncompatibleParameterError,++    -- ** IncompatibleRegionForMultiAZ+    _IncompatibleRegionForMultiAZ,++    -- ** InternalServerError+    _InternalServerError,++    -- ** InvalidDataRepositoryType+    _InvalidDataRepositoryType,++    -- ** InvalidDestinationKmsKey+    _InvalidDestinationKmsKey,++    -- ** InvalidExportPath+    _InvalidExportPath,++    -- ** InvalidImportPath+    _InvalidImportPath,++    -- ** InvalidNetworkSettings+    _InvalidNetworkSettings,++    -- ** InvalidPerUnitStorageThroughput+    _InvalidPerUnitStorageThroughput,++    -- ** InvalidRegion+    _InvalidRegion,++    -- ** InvalidSourceKmsKey+    _InvalidSourceKmsKey,++    -- ** MissingFileCacheConfiguration+    _MissingFileCacheConfiguration,++    -- ** MissingFileSystemConfiguration+    _MissingFileSystemConfiguration,++    -- ** MissingVolumeConfiguration+    _MissingVolumeConfiguration,++    -- ** NotServiceResourceError+    _NotServiceResourceError,++    -- ** ResourceDoesNotSupportTagging+    _ResourceDoesNotSupportTagging,++    -- ** ResourceNotFound+    _ResourceNotFound,++    -- ** ServiceLimitExceeded+    _ServiceLimitExceeded,++    -- ** SnapshotNotFound+    _SnapshotNotFound,++    -- ** SourceBackupUnavailable+    _SourceBackupUnavailable,++    -- ** StorageVirtualMachineNotFound+    _StorageVirtualMachineNotFound,++    -- ** UnsupportedOperation+    _UnsupportedOperation,++    -- ** VolumeNotFound+    _VolumeNotFound,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AssociateFileSystemAliases+    AssociateFileSystemAliases (AssociateFileSystemAliases'),+    newAssociateFileSystemAliases,+    AssociateFileSystemAliasesResponse (AssociateFileSystemAliasesResponse'),+    newAssociateFileSystemAliasesResponse,++    -- ** CancelDataRepositoryTask+    CancelDataRepositoryTask (CancelDataRepositoryTask'),+    newCancelDataRepositoryTask,+    CancelDataRepositoryTaskResponse (CancelDataRepositoryTaskResponse'),+    newCancelDataRepositoryTaskResponse,++    -- ** CopyBackup+    CopyBackup (CopyBackup'),+    newCopyBackup,+    CopyBackupResponse (CopyBackupResponse'),+    newCopyBackupResponse,++    -- ** CreateBackup+    CreateBackup (CreateBackup'),+    newCreateBackup,+    CreateBackupResponse (CreateBackupResponse'),+    newCreateBackupResponse,++    -- ** CreateDataRepositoryAssociation+    CreateDataRepositoryAssociation (CreateDataRepositoryAssociation'),+    newCreateDataRepositoryAssociation,+    CreateDataRepositoryAssociationResponse (CreateDataRepositoryAssociationResponse'),+    newCreateDataRepositoryAssociationResponse,++    -- ** CreateDataRepositoryTask+    CreateDataRepositoryTask (CreateDataRepositoryTask'),+    newCreateDataRepositoryTask,+    CreateDataRepositoryTaskResponse (CreateDataRepositoryTaskResponse'),+    newCreateDataRepositoryTaskResponse,++    -- ** CreateFileCache+    CreateFileCache (CreateFileCache'),+    newCreateFileCache,+    CreateFileCacheResponse (CreateFileCacheResponse'),+    newCreateFileCacheResponse,++    -- ** CreateFileSystem+    CreateFileSystem (CreateFileSystem'),+    newCreateFileSystem,+    CreateFileSystemResponse (CreateFileSystemResponse'),+    newCreateFileSystemResponse,++    -- ** CreateFileSystemFromBackup+    CreateFileSystemFromBackup (CreateFileSystemFromBackup'),+    newCreateFileSystemFromBackup,+    CreateFileSystemFromBackupResponse (CreateFileSystemFromBackupResponse'),+    newCreateFileSystemFromBackupResponse,++    -- ** CreateSnapshot+    CreateSnapshot (CreateSnapshot'),+    newCreateSnapshot,+    CreateSnapshotResponse (CreateSnapshotResponse'),+    newCreateSnapshotResponse,++    -- ** CreateStorageVirtualMachine+    CreateStorageVirtualMachine (CreateStorageVirtualMachine'),+    newCreateStorageVirtualMachine,+    CreateStorageVirtualMachineResponse (CreateStorageVirtualMachineResponse'),+    newCreateStorageVirtualMachineResponse,++    -- ** CreateVolume+    CreateVolume (CreateVolume'),+    newCreateVolume,+    CreateVolumeResponse (CreateVolumeResponse'),+    newCreateVolumeResponse,++    -- ** CreateVolumeFromBackup+    CreateVolumeFromBackup (CreateVolumeFromBackup'),+    newCreateVolumeFromBackup,+    CreateVolumeFromBackupResponse (CreateVolumeFromBackupResponse'),+    newCreateVolumeFromBackupResponse,++    -- ** DeleteBackup+    DeleteBackup (DeleteBackup'),+    newDeleteBackup,+    DeleteBackupResponse (DeleteBackupResponse'),+    newDeleteBackupResponse,++    -- ** DeleteDataRepositoryAssociation+    DeleteDataRepositoryAssociation (DeleteDataRepositoryAssociation'),+    newDeleteDataRepositoryAssociation,+    DeleteDataRepositoryAssociationResponse (DeleteDataRepositoryAssociationResponse'),+    newDeleteDataRepositoryAssociationResponse,++    -- ** DeleteFileCache+    DeleteFileCache (DeleteFileCache'),+    newDeleteFileCache,+    DeleteFileCacheResponse (DeleteFileCacheResponse'),+    newDeleteFileCacheResponse,++    -- ** DeleteFileSystem+    DeleteFileSystem (DeleteFileSystem'),+    newDeleteFileSystem,+    DeleteFileSystemResponse (DeleteFileSystemResponse'),+    newDeleteFileSystemResponse,++    -- ** DeleteSnapshot+    DeleteSnapshot (DeleteSnapshot'),+    newDeleteSnapshot,+    DeleteSnapshotResponse (DeleteSnapshotResponse'),+    newDeleteSnapshotResponse,++    -- ** DeleteStorageVirtualMachine+    DeleteStorageVirtualMachine (DeleteStorageVirtualMachine'),+    newDeleteStorageVirtualMachine,+    DeleteStorageVirtualMachineResponse (DeleteStorageVirtualMachineResponse'),+    newDeleteStorageVirtualMachineResponse,++    -- ** DeleteVolume+    DeleteVolume (DeleteVolume'),+    newDeleteVolume,+    DeleteVolumeResponse (DeleteVolumeResponse'),+    newDeleteVolumeResponse,++    -- ** DescribeBackups (Paginated)+    DescribeBackups (DescribeBackups'),+    newDescribeBackups,+    DescribeBackupsResponse (DescribeBackupsResponse'),+    newDescribeBackupsResponse,++    -- ** DescribeDataRepositoryAssociations+    DescribeDataRepositoryAssociations (DescribeDataRepositoryAssociations'),+    newDescribeDataRepositoryAssociations,+    DescribeDataRepositoryAssociationsResponse (DescribeDataRepositoryAssociationsResponse'),+    newDescribeDataRepositoryAssociationsResponse,++    -- ** DescribeDataRepositoryTasks+    DescribeDataRepositoryTasks (DescribeDataRepositoryTasks'),+    newDescribeDataRepositoryTasks,+    DescribeDataRepositoryTasksResponse (DescribeDataRepositoryTasksResponse'),+    newDescribeDataRepositoryTasksResponse,++    -- ** DescribeFileCaches+    DescribeFileCaches (DescribeFileCaches'),+    newDescribeFileCaches,+    DescribeFileCachesResponse (DescribeFileCachesResponse'),+    newDescribeFileCachesResponse,++    -- ** DescribeFileSystemAliases+    DescribeFileSystemAliases (DescribeFileSystemAliases'),+    newDescribeFileSystemAliases,+    DescribeFileSystemAliasesResponse (DescribeFileSystemAliasesResponse'),+    newDescribeFileSystemAliasesResponse,++    -- ** DescribeFileSystems (Paginated)+    DescribeFileSystems (DescribeFileSystems'),+    newDescribeFileSystems,+    DescribeFileSystemsResponse (DescribeFileSystemsResponse'),+    newDescribeFileSystemsResponse,++    -- ** DescribeSnapshots+    DescribeSnapshots (DescribeSnapshots'),+    newDescribeSnapshots,+    DescribeSnapshotsResponse (DescribeSnapshotsResponse'),+    newDescribeSnapshotsResponse,++    -- ** DescribeStorageVirtualMachines (Paginated)+    DescribeStorageVirtualMachines (DescribeStorageVirtualMachines'),+    newDescribeStorageVirtualMachines,+    DescribeStorageVirtualMachinesResponse (DescribeStorageVirtualMachinesResponse'),+    newDescribeStorageVirtualMachinesResponse,++    -- ** DescribeVolumes (Paginated)+    DescribeVolumes (DescribeVolumes'),+    newDescribeVolumes,+    DescribeVolumesResponse (DescribeVolumesResponse'),+    newDescribeVolumesResponse,++    -- ** DisassociateFileSystemAliases+    DisassociateFileSystemAliases (DisassociateFileSystemAliases'),+    newDisassociateFileSystemAliases,+    DisassociateFileSystemAliasesResponse (DisassociateFileSystemAliasesResponse'),+    newDisassociateFileSystemAliasesResponse,++    -- ** ListTagsForResource (Paginated)+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ReleaseFileSystemNfsV3Locks+    ReleaseFileSystemNfsV3Locks (ReleaseFileSystemNfsV3Locks'),+    newReleaseFileSystemNfsV3Locks,+    ReleaseFileSystemNfsV3LocksResponse (ReleaseFileSystemNfsV3LocksResponse'),+    newReleaseFileSystemNfsV3LocksResponse,++    -- ** RestoreVolumeFromSnapshot+    RestoreVolumeFromSnapshot (RestoreVolumeFromSnapshot'),+    newRestoreVolumeFromSnapshot,+    RestoreVolumeFromSnapshotResponse (RestoreVolumeFromSnapshotResponse'),+    newRestoreVolumeFromSnapshotResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateDataRepositoryAssociation+    UpdateDataRepositoryAssociation (UpdateDataRepositoryAssociation'),+    newUpdateDataRepositoryAssociation,+    UpdateDataRepositoryAssociationResponse (UpdateDataRepositoryAssociationResponse'),+    newUpdateDataRepositoryAssociationResponse,++    -- ** UpdateFileCache+    UpdateFileCache (UpdateFileCache'),+    newUpdateFileCache,+    UpdateFileCacheResponse (UpdateFileCacheResponse'),+    newUpdateFileCacheResponse,++    -- ** UpdateFileSystem+    UpdateFileSystem (UpdateFileSystem'),+    newUpdateFileSystem,+    UpdateFileSystemResponse (UpdateFileSystemResponse'),+    newUpdateFileSystemResponse,++    -- ** UpdateSnapshot+    UpdateSnapshot (UpdateSnapshot'),+    newUpdateSnapshot,+    UpdateSnapshotResponse (UpdateSnapshotResponse'),+    newUpdateSnapshotResponse,++    -- ** UpdateStorageVirtualMachine+    UpdateStorageVirtualMachine (UpdateStorageVirtualMachine'),+    newUpdateStorageVirtualMachine,+    UpdateStorageVirtualMachineResponse (UpdateStorageVirtualMachineResponse'),+    newUpdateStorageVirtualMachineResponse,++    -- ** UpdateVolume+    UpdateVolume (UpdateVolume'),+    newUpdateVolume,+    UpdateVolumeResponse (UpdateVolumeResponse'),+    newUpdateVolumeResponse,++    -- * Types++    -- ** AdministrativeActionType+    AdministrativeActionType (..),++    -- ** AliasLifecycle+    AliasLifecycle (..),++    -- ** AutoImportPolicyType+    AutoImportPolicyType (..),++    -- ** BackupLifecycle+    BackupLifecycle (..),++    -- ** BackupType+    BackupType (..),++    -- ** DataCompressionType+    DataCompressionType (..),++    -- ** DataRepositoryLifecycle+    DataRepositoryLifecycle (..),++    -- ** DataRepositoryTaskFilterName+    DataRepositoryTaskFilterName (..),++    -- ** DataRepositoryTaskLifecycle+    DataRepositoryTaskLifecycle (..),++    -- ** DataRepositoryTaskType+    DataRepositoryTaskType (..),++    -- ** DeleteFileSystemOpenZFSOption+    DeleteFileSystemOpenZFSOption (..),++    -- ** DeleteOpenZFSVolumeOption+    DeleteOpenZFSVolumeOption (..),++    -- ** DiskIopsConfigurationMode+    DiskIopsConfigurationMode (..),++    -- ** DriveCacheType+    DriveCacheType (..),++    -- ** EventType+    EventType (..),++    -- ** FileCacheLifecycle+    FileCacheLifecycle (..),++    -- ** FileCacheLustreDeploymentType+    FileCacheLustreDeploymentType (..),++    -- ** FileCacheType+    FileCacheType (..),++    -- ** FileSystemLifecycle+    FileSystemLifecycle (..),++    -- ** FileSystemMaintenanceOperation+    FileSystemMaintenanceOperation (..),++    -- ** FileSystemType+    FileSystemType (..),++    -- ** FilterName+    FilterName (..),++    -- ** FlexCacheEndpointType+    FlexCacheEndpointType (..),++    -- ** InputOntapVolumeType+    InputOntapVolumeType (..),++    -- ** LustreAccessAuditLogLevel+    LustreAccessAuditLogLevel (..),++    -- ** LustreDeploymentType+    LustreDeploymentType (..),++    -- ** NfsVersion+    NfsVersion (..),++    -- ** OntapDeploymentType+    OntapDeploymentType (..),++    -- ** OntapVolumeType+    OntapVolumeType (..),++    -- ** OpenZFSCopyStrategy+    OpenZFSCopyStrategy (..),++    -- ** OpenZFSDataCompressionType+    OpenZFSDataCompressionType (..),++    -- ** OpenZFSDeploymentType+    OpenZFSDeploymentType (..),++    -- ** OpenZFSQuotaType+    OpenZFSQuotaType (..),++    -- ** ReportFormat+    ReportFormat (..),++    -- ** ReportScope+    ReportScope (..),++    -- ** ResourceType+    ResourceType (..),++    -- ** RestoreOpenZFSVolumeOption+    RestoreOpenZFSVolumeOption (..),++    -- ** SecurityStyle+    SecurityStyle (..),++    -- ** SnapshotFilterName+    SnapshotFilterName (..),++    -- ** SnapshotLifecycle+    SnapshotLifecycle (..),++    -- ** Status+    Status (..),++    -- ** StorageType+    StorageType (..),++    -- ** StorageVirtualMachineFilterName+    StorageVirtualMachineFilterName (..),++    -- ** StorageVirtualMachineLifecycle+    StorageVirtualMachineLifecycle (..),++    -- ** StorageVirtualMachineRootVolumeSecurityStyle+    StorageVirtualMachineRootVolumeSecurityStyle (..),++    -- ** StorageVirtualMachineSubtype+    StorageVirtualMachineSubtype (..),++    -- ** TieringPolicyName+    TieringPolicyName (..),++    -- ** VolumeFilterName+    VolumeFilterName (..),++    -- ** VolumeLifecycle+    VolumeLifecycle (..),++    -- ** VolumeType+    VolumeType (..),++    -- ** WindowsAccessAuditLogLevel+    WindowsAccessAuditLogLevel (..),++    -- ** WindowsDeploymentType+    WindowsDeploymentType (..),++    -- ** ActiveDirectoryBackupAttributes+    ActiveDirectoryBackupAttributes (ActiveDirectoryBackupAttributes'),+    newActiveDirectoryBackupAttributes,++    -- ** AdministrativeAction+    AdministrativeAction (AdministrativeAction'),+    newAdministrativeAction,++    -- ** AdministrativeActionFailureDetails+    AdministrativeActionFailureDetails (AdministrativeActionFailureDetails'),+    newAdministrativeActionFailureDetails,++    -- ** Alias+    Alias (Alias'),+    newAlias,++    -- ** AutoExportPolicy+    AutoExportPolicy (AutoExportPolicy'),+    newAutoExportPolicy,++    -- ** AutoImportPolicy+    AutoImportPolicy (AutoImportPolicy'),+    newAutoImportPolicy,++    -- ** Backup+    Backup (Backup'),+    newBackup,++    -- ** BackupFailureDetails+    BackupFailureDetails (BackupFailureDetails'),+    newBackupFailureDetails,++    -- ** CompletionReport+    CompletionReport (CompletionReport'),+    newCompletionReport,++    -- ** CreateFileCacheLustreConfiguration+    CreateFileCacheLustreConfiguration (CreateFileCacheLustreConfiguration'),+    newCreateFileCacheLustreConfiguration,++    -- ** CreateFileSystemLustreConfiguration+    CreateFileSystemLustreConfiguration (CreateFileSystemLustreConfiguration'),+    newCreateFileSystemLustreConfiguration,++    -- ** CreateFileSystemOntapConfiguration+    CreateFileSystemOntapConfiguration (CreateFileSystemOntapConfiguration'),+    newCreateFileSystemOntapConfiguration,++    -- ** CreateFileSystemOpenZFSConfiguration+    CreateFileSystemOpenZFSConfiguration (CreateFileSystemOpenZFSConfiguration'),+    newCreateFileSystemOpenZFSConfiguration,++    -- ** CreateFileSystemWindowsConfiguration+    CreateFileSystemWindowsConfiguration (CreateFileSystemWindowsConfiguration'),+    newCreateFileSystemWindowsConfiguration,++    -- ** CreateOntapVolumeConfiguration+    CreateOntapVolumeConfiguration (CreateOntapVolumeConfiguration'),+    newCreateOntapVolumeConfiguration,++    -- ** CreateOpenZFSOriginSnapshotConfiguration+    CreateOpenZFSOriginSnapshotConfiguration (CreateOpenZFSOriginSnapshotConfiguration'),+    newCreateOpenZFSOriginSnapshotConfiguration,++    -- ** CreateOpenZFSVolumeConfiguration+    CreateOpenZFSVolumeConfiguration (CreateOpenZFSVolumeConfiguration'),+    newCreateOpenZFSVolumeConfiguration,++    -- ** CreateSvmActiveDirectoryConfiguration+    CreateSvmActiveDirectoryConfiguration (CreateSvmActiveDirectoryConfiguration'),+    newCreateSvmActiveDirectoryConfiguration,++    -- ** DataRepositoryAssociation+    DataRepositoryAssociation (DataRepositoryAssociation'),+    newDataRepositoryAssociation,++    -- ** DataRepositoryConfiguration+    DataRepositoryConfiguration (DataRepositoryConfiguration'),+    newDataRepositoryConfiguration,++    -- ** DataRepositoryFailureDetails+    DataRepositoryFailureDetails (DataRepositoryFailureDetails'),+    newDataRepositoryFailureDetails,++    -- ** DataRepositoryTask+    DataRepositoryTask (DataRepositoryTask'),+    newDataRepositoryTask,++    -- ** DataRepositoryTaskFailureDetails+    DataRepositoryTaskFailureDetails (DataRepositoryTaskFailureDetails'),+    newDataRepositoryTaskFailureDetails,++    -- ** DataRepositoryTaskFilter+    DataRepositoryTaskFilter (DataRepositoryTaskFilter'),+    newDataRepositoryTaskFilter,++    -- ** DataRepositoryTaskStatus+    DataRepositoryTaskStatus (DataRepositoryTaskStatus'),+    newDataRepositoryTaskStatus,++    -- ** DeleteFileSystemLustreConfiguration+    DeleteFileSystemLustreConfiguration (DeleteFileSystemLustreConfiguration'),+    newDeleteFileSystemLustreConfiguration,++    -- ** DeleteFileSystemLustreResponse+    DeleteFileSystemLustreResponse (DeleteFileSystemLustreResponse'),+    newDeleteFileSystemLustreResponse,++    -- ** DeleteFileSystemOpenZFSConfiguration+    DeleteFileSystemOpenZFSConfiguration (DeleteFileSystemOpenZFSConfiguration'),+    newDeleteFileSystemOpenZFSConfiguration,++    -- ** DeleteFileSystemOpenZFSResponse+    DeleteFileSystemOpenZFSResponse (DeleteFileSystemOpenZFSResponse'),+    newDeleteFileSystemOpenZFSResponse,++    -- ** DeleteFileSystemWindowsConfiguration+    DeleteFileSystemWindowsConfiguration (DeleteFileSystemWindowsConfiguration'),+    newDeleteFileSystemWindowsConfiguration,++    -- ** DeleteFileSystemWindowsResponse+    DeleteFileSystemWindowsResponse (DeleteFileSystemWindowsResponse'),+    newDeleteFileSystemWindowsResponse,++    -- ** DeleteVolumeOntapConfiguration+    DeleteVolumeOntapConfiguration (DeleteVolumeOntapConfiguration'),+    newDeleteVolumeOntapConfiguration,++    -- ** DeleteVolumeOntapResponse+    DeleteVolumeOntapResponse (DeleteVolumeOntapResponse'),+    newDeleteVolumeOntapResponse,++    -- ** DeleteVolumeOpenZFSConfiguration+    DeleteVolumeOpenZFSConfiguration (DeleteVolumeOpenZFSConfiguration'),+    newDeleteVolumeOpenZFSConfiguration,++    -- ** DiskIopsConfiguration+    DiskIopsConfiguration (DiskIopsConfiguration'),+    newDiskIopsConfiguration,++    -- ** FileCache+    FileCache (FileCache'),+    newFileCache,++    -- ** FileCacheCreating+    FileCacheCreating (FileCacheCreating'),+    newFileCacheCreating,++    -- ** FileCacheDataRepositoryAssociation+    FileCacheDataRepositoryAssociation (FileCacheDataRepositoryAssociation'),+    newFileCacheDataRepositoryAssociation,++    -- ** FileCacheFailureDetails+    FileCacheFailureDetails (FileCacheFailureDetails'),+    newFileCacheFailureDetails,++    -- ** FileCacheLustreConfiguration+    FileCacheLustreConfiguration (FileCacheLustreConfiguration'),+    newFileCacheLustreConfiguration,++    -- ** FileCacheLustreMetadataConfiguration+    FileCacheLustreMetadataConfiguration (FileCacheLustreMetadataConfiguration'),+    newFileCacheLustreMetadataConfiguration,++    -- ** FileCacheNFSConfiguration+    FileCacheNFSConfiguration (FileCacheNFSConfiguration'),+    newFileCacheNFSConfiguration,++    -- ** FileSystem+    FileSystem (FileSystem'),+    newFileSystem,++    -- ** FileSystemEndpoint+    FileSystemEndpoint (FileSystemEndpoint'),+    newFileSystemEndpoint,++    -- ** FileSystemEndpoints+    FileSystemEndpoints (FileSystemEndpoints'),+    newFileSystemEndpoints,++    -- ** FileSystemFailureDetails+    FileSystemFailureDetails (FileSystemFailureDetails'),+    newFileSystemFailureDetails,++    -- ** Filter+    Filter (Filter'),+    newFilter,++    -- ** LifecycleTransitionReason+    LifecycleTransitionReason (LifecycleTransitionReason'),+    newLifecycleTransitionReason,++    -- ** LustreFileSystemConfiguration+    LustreFileSystemConfiguration (LustreFileSystemConfiguration'),+    newLustreFileSystemConfiguration,++    -- ** LustreLogConfiguration+    LustreLogConfiguration (LustreLogConfiguration'),+    newLustreLogConfiguration,++    -- ** LustreLogCreateConfiguration+    LustreLogCreateConfiguration (LustreLogCreateConfiguration'),+    newLustreLogCreateConfiguration,++    -- ** LustreRootSquashConfiguration+    LustreRootSquashConfiguration (LustreRootSquashConfiguration'),+    newLustreRootSquashConfiguration,++    -- ** NFSDataRepositoryConfiguration+    NFSDataRepositoryConfiguration (NFSDataRepositoryConfiguration'),+    newNFSDataRepositoryConfiguration,++    -- ** OntapFileSystemConfiguration+    OntapFileSystemConfiguration (OntapFileSystemConfiguration'),+    newOntapFileSystemConfiguration,++    -- ** OntapVolumeConfiguration+    OntapVolumeConfiguration (OntapVolumeConfiguration'),+    newOntapVolumeConfiguration,++    -- ** OpenZFSClientConfiguration+    OpenZFSClientConfiguration (OpenZFSClientConfiguration'),+    newOpenZFSClientConfiguration,++    -- ** OpenZFSCreateRootVolumeConfiguration+    OpenZFSCreateRootVolumeConfiguration (OpenZFSCreateRootVolumeConfiguration'),+    newOpenZFSCreateRootVolumeConfiguration,++    -- ** OpenZFSFileSystemConfiguration+    OpenZFSFileSystemConfiguration (OpenZFSFileSystemConfiguration'),+    newOpenZFSFileSystemConfiguration,++    -- ** OpenZFSNfsExport+    OpenZFSNfsExport (OpenZFSNfsExport'),+    newOpenZFSNfsExport,++    -- ** OpenZFSOriginSnapshotConfiguration+    OpenZFSOriginSnapshotConfiguration (OpenZFSOriginSnapshotConfiguration'),+    newOpenZFSOriginSnapshotConfiguration,++    -- ** OpenZFSUserOrGroupQuota+    OpenZFSUserOrGroupQuota (OpenZFSUserOrGroupQuota'),+    newOpenZFSUserOrGroupQuota,++    -- ** OpenZFSVolumeConfiguration+    OpenZFSVolumeConfiguration (OpenZFSVolumeConfiguration'),+    newOpenZFSVolumeConfiguration,++    -- ** S3DataRepositoryConfiguration+    S3DataRepositoryConfiguration (S3DataRepositoryConfiguration'),+    newS3DataRepositoryConfiguration,++    -- ** SelfManagedActiveDirectoryAttributes+    SelfManagedActiveDirectoryAttributes (SelfManagedActiveDirectoryAttributes'),+    newSelfManagedActiveDirectoryAttributes,++    -- ** SelfManagedActiveDirectoryConfiguration+    SelfManagedActiveDirectoryConfiguration (SelfManagedActiveDirectoryConfiguration'),+    newSelfManagedActiveDirectoryConfiguration,++    -- ** SelfManagedActiveDirectoryConfigurationUpdates+    SelfManagedActiveDirectoryConfigurationUpdates (SelfManagedActiveDirectoryConfigurationUpdates'),+    newSelfManagedActiveDirectoryConfigurationUpdates,++    -- ** Snapshot+    Snapshot (Snapshot'),+    newSnapshot,++    -- ** SnapshotFilter+    SnapshotFilter (SnapshotFilter'),+    newSnapshotFilter,++    -- ** StorageVirtualMachine+    StorageVirtualMachine (StorageVirtualMachine'),+    newStorageVirtualMachine,++    -- ** StorageVirtualMachineFilter+    StorageVirtualMachineFilter (StorageVirtualMachineFilter'),+    newStorageVirtualMachineFilter,++    -- ** SvmActiveDirectoryConfiguration+    SvmActiveDirectoryConfiguration (SvmActiveDirectoryConfiguration'),+    newSvmActiveDirectoryConfiguration,++    -- ** SvmEndpoint+    SvmEndpoint (SvmEndpoint'),+    newSvmEndpoint,++    -- ** SvmEndpoints+    SvmEndpoints (SvmEndpoints'),+    newSvmEndpoints,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** TieringPolicy+    TieringPolicy (TieringPolicy'),+    newTieringPolicy,++    -- ** UpdateFileCacheLustreConfiguration+    UpdateFileCacheLustreConfiguration (UpdateFileCacheLustreConfiguration'),+    newUpdateFileCacheLustreConfiguration,++    -- ** UpdateFileSystemLustreConfiguration+    UpdateFileSystemLustreConfiguration (UpdateFileSystemLustreConfiguration'),+    newUpdateFileSystemLustreConfiguration,++    -- ** UpdateFileSystemOntapConfiguration+    UpdateFileSystemOntapConfiguration (UpdateFileSystemOntapConfiguration'),+    newUpdateFileSystemOntapConfiguration,++    -- ** UpdateFileSystemOpenZFSConfiguration+    UpdateFileSystemOpenZFSConfiguration (UpdateFileSystemOpenZFSConfiguration'),+    newUpdateFileSystemOpenZFSConfiguration,++    -- ** UpdateFileSystemWindowsConfiguration+    UpdateFileSystemWindowsConfiguration (UpdateFileSystemWindowsConfiguration'),+    newUpdateFileSystemWindowsConfiguration,++    -- ** UpdateOntapVolumeConfiguration+    UpdateOntapVolumeConfiguration (UpdateOntapVolumeConfiguration'),+    newUpdateOntapVolumeConfiguration,++    -- ** UpdateOpenZFSVolumeConfiguration+    UpdateOpenZFSVolumeConfiguration (UpdateOpenZFSVolumeConfiguration'),+    newUpdateOpenZFSVolumeConfiguration,++    -- ** UpdateSvmActiveDirectoryConfiguration+    UpdateSvmActiveDirectoryConfiguration (UpdateSvmActiveDirectoryConfiguration'),+    newUpdateSvmActiveDirectoryConfiguration,++    -- ** Volume+    Volume (Volume'),+    newVolume,++    -- ** VolumeFilter+    VolumeFilter (VolumeFilter'),+    newVolumeFilter,++    -- ** WindowsAuditLogConfiguration+    WindowsAuditLogConfiguration (WindowsAuditLogConfiguration'),+    newWindowsAuditLogConfiguration,++    -- ** WindowsAuditLogCreateConfiguration+    WindowsAuditLogCreateConfiguration (WindowsAuditLogCreateConfiguration'),+    newWindowsAuditLogCreateConfiguration,++    -- ** WindowsFileSystemConfiguration+    WindowsFileSystemConfiguration (WindowsFileSystemConfiguration'),+    newWindowsFileSystemConfiguration,+  )+where++import Amazonka.FSx.AssociateFileSystemAliases+import Amazonka.FSx.CancelDataRepositoryTask+import Amazonka.FSx.CopyBackup+import Amazonka.FSx.CreateBackup+import Amazonka.FSx.CreateDataRepositoryAssociation+import Amazonka.FSx.CreateDataRepositoryTask+import Amazonka.FSx.CreateFileCache+import Amazonka.FSx.CreateFileSystem+import Amazonka.FSx.CreateFileSystemFromBackup+import Amazonka.FSx.CreateSnapshot+import Amazonka.FSx.CreateStorageVirtualMachine+import Amazonka.FSx.CreateVolume+import Amazonka.FSx.CreateVolumeFromBackup+import Amazonka.FSx.DeleteBackup+import Amazonka.FSx.DeleteDataRepositoryAssociation+import Amazonka.FSx.DeleteFileCache+import Amazonka.FSx.DeleteFileSystem+import Amazonka.FSx.DeleteSnapshot+import Amazonka.FSx.DeleteStorageVirtualMachine+import Amazonka.FSx.DeleteVolume+import Amazonka.FSx.DescribeBackups+import Amazonka.FSx.DescribeDataRepositoryAssociations+import Amazonka.FSx.DescribeDataRepositoryTasks+import Amazonka.FSx.DescribeFileCaches+import Amazonka.FSx.DescribeFileSystemAliases+import Amazonka.FSx.DescribeFileSystems+import Amazonka.FSx.DescribeSnapshots+import Amazonka.FSx.DescribeStorageVirtualMachines+import Amazonka.FSx.DescribeVolumes+import Amazonka.FSx.DisassociateFileSystemAliases+import Amazonka.FSx.Lens+import Amazonka.FSx.ListTagsForResource+import Amazonka.FSx.ReleaseFileSystemNfsV3Locks+import Amazonka.FSx.RestoreVolumeFromSnapshot+import Amazonka.FSx.TagResource+import Amazonka.FSx.Types+import Amazonka.FSx.UntagResource+import Amazonka.FSx.UpdateDataRepositoryAssociation+import Amazonka.FSx.UpdateFileCache+import Amazonka.FSx.UpdateFileSystem+import Amazonka.FSx.UpdateSnapshot+import Amazonka.FSx.UpdateStorageVirtualMachine+import Amazonka.FSx.UpdateVolume+import Amazonka.FSx.Waiters++-- $errors+-- Error matchers are designed for use with the functions provided by+-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+-- This allows catching (and rethrowing) service specific errors returned+-- by 'FSx'.++-- $operations+-- Some AWS operations return results that are incomplete and require subsequent+-- requests in order to obtain the entire result set. The process of sending+-- subsequent requests to continue where a previous request left off is called+-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+-- 1000 objects at a time, and you must send subsequent requests with the+-- appropriate Marker in order to retrieve the next page of results.+--+-- Operations that have an 'AWSPager' instance can transparently perform subsequent+-- requests, correctly setting Markers and other request facets to iterate through+-- the entire result set of a truncated API operation. Operations which support+-- this have an additional note in the documentation.+--+-- Many operations have the ability to filter results on the server side. See the+-- individual operation parameters for details.++-- $waiters+-- Waiters poll by repeatedly sending a request until some remote success condition+-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification+-- determines how many attempts should be made, in addition to delay and retry strategies.
+ gen/Amazonka/FSx/AssociateFileSystemAliases.hs view
@@ -0,0 +1,280 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.AssociateFileSystemAliases+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use this action to associate one or more Domain Name Server (DNS)+-- aliases with an existing Amazon FSx for Windows File Server file system.+-- A file system can have a maximum of 50 DNS aliases associated with it at+-- any one time. If you try to associate a DNS alias that is already+-- associated with the file system, FSx takes no action on that alias in+-- the request. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html Working with DNS Aliases>+-- and+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html Walkthrough 5: Using DNS aliases to access your file system>,+-- including additional steps you must take to be able to access your file+-- system using a DNS alias.+--+-- The system response shows the DNS aliases that Amazon FSx is attempting+-- to associate with the file system. Use the API operation to monitor the+-- status of the aliases Amazon FSx is associating with the file system.+module Amazonka.FSx.AssociateFileSystemAliases+  ( -- * Creating a Request+    AssociateFileSystemAliases (..),+    newAssociateFileSystemAliases,++    -- * Request Lenses+    associateFileSystemAliases_clientRequestToken,+    associateFileSystemAliases_fileSystemId,+    associateFileSystemAliases_aliases,++    -- * Destructuring the Response+    AssociateFileSystemAliasesResponse (..),+    newAssociateFileSystemAliasesResponse,++    -- * Response Lenses+    associateFileSystemAliasesResponse_aliases,+    associateFileSystemAliasesResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object specifying one or more DNS alias names to associate+-- with an Amazon FSx for Windows File Server file system.+--+-- /See:/ 'newAssociateFileSystemAliases' smart constructor.+data AssociateFileSystemAliases = AssociateFileSystemAliases'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies the file system with which you want to associate one or more+    -- DNS aliases.+    fileSystemId :: Prelude.Text,+    -- | An array of one or more DNS alias names to associate with the file+    -- system. The alias name has to comply with the following formatting+    -- requirements:+    --+    -- -   Formatted as a fully-qualified domain name (FQDN),+    --     /@hostname.domain@/ , for example, @accounting.corp.example.com@.+    --+    -- -   Can contain alphanumeric characters and the hyphen (-).+    --+    -- -   Cannot start or end with a hyphen.+    --+    -- -   Can start with a numeric.+    --+    -- For DNS alias names, Amazon FSx stores alphabetic characters as+    -- lowercase letters (a-z), regardless of how you specify them: as+    -- uppercase letters, lowercase letters, or the corresponding letters in+    -- escape codes.+    aliases :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateFileSystemAliases' 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:+--+-- 'clientRequestToken', 'associateFileSystemAliases_clientRequestToken' - Undocumented member.+--+-- 'fileSystemId', 'associateFileSystemAliases_fileSystemId' - Specifies the file system with which you want to associate one or more+-- DNS aliases.+--+-- 'aliases', 'associateFileSystemAliases_aliases' - An array of one or more DNS alias names to associate with the file+-- system. The alias name has to comply with the following formatting+-- requirements:+--+-- -   Formatted as a fully-qualified domain name (FQDN),+--     /@hostname.domain@/ , for example, @accounting.corp.example.com@.+--+-- -   Can contain alphanumeric characters and the hyphen (-).+--+-- -   Cannot start or end with a hyphen.+--+-- -   Can start with a numeric.+--+-- For DNS alias names, Amazon FSx stores alphabetic characters as+-- lowercase letters (a-z), regardless of how you specify them: as+-- uppercase letters, lowercase letters, or the corresponding letters in+-- escape codes.+newAssociateFileSystemAliases ::+  -- | 'fileSystemId'+  Prelude.Text ->+  AssociateFileSystemAliases+newAssociateFileSystemAliases pFileSystemId_ =+  AssociateFileSystemAliases'+    { clientRequestToken =+        Prelude.Nothing,+      fileSystemId = pFileSystemId_,+      aliases = Prelude.mempty+    }++-- | Undocumented member.+associateFileSystemAliases_clientRequestToken :: Lens.Lens' AssociateFileSystemAliases (Prelude.Maybe Prelude.Text)+associateFileSystemAliases_clientRequestToken = Lens.lens (\AssociateFileSystemAliases' {clientRequestToken} -> clientRequestToken) (\s@AssociateFileSystemAliases' {} a -> s {clientRequestToken = a} :: AssociateFileSystemAliases)++-- | Specifies the file system with which you want to associate one or more+-- DNS aliases.+associateFileSystemAliases_fileSystemId :: Lens.Lens' AssociateFileSystemAliases Prelude.Text+associateFileSystemAliases_fileSystemId = Lens.lens (\AssociateFileSystemAliases' {fileSystemId} -> fileSystemId) (\s@AssociateFileSystemAliases' {} a -> s {fileSystemId = a} :: AssociateFileSystemAliases)++-- | An array of one or more DNS alias names to associate with the file+-- system. The alias name has to comply with the following formatting+-- requirements:+--+-- -   Formatted as a fully-qualified domain name (FQDN),+--     /@hostname.domain@/ , for example, @accounting.corp.example.com@.+--+-- -   Can contain alphanumeric characters and the hyphen (-).+--+-- -   Cannot start or end with a hyphen.+--+-- -   Can start with a numeric.+--+-- For DNS alias names, Amazon FSx stores alphabetic characters as+-- lowercase letters (a-z), regardless of how you specify them: as+-- uppercase letters, lowercase letters, or the corresponding letters in+-- escape codes.+associateFileSystemAliases_aliases :: Lens.Lens' AssociateFileSystemAliases [Prelude.Text]+associateFileSystemAliases_aliases = Lens.lens (\AssociateFileSystemAliases' {aliases} -> aliases) (\s@AssociateFileSystemAliases' {} a -> s {aliases = a} :: AssociateFileSystemAliases) Prelude.. Lens.coerced++instance Core.AWSRequest AssociateFileSystemAliases where+  type+    AWSResponse AssociateFileSystemAliases =+      AssociateFileSystemAliasesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociateFileSystemAliasesResponse'+            Prelude.<$> (x Data..?> "Aliases" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociateFileSystemAliases where+  hashWithSalt _salt AssociateFileSystemAliases' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` aliases++instance Prelude.NFData AssociateFileSystemAliases where+  rnf AssociateFileSystemAliases' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf aliases++instance Data.ToHeaders AssociateFileSystemAliases where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.AssociateFileSystemAliases" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateFileSystemAliases where+  toJSON AssociateFileSystemAliases' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("FileSystemId" Data..= fileSystemId),+            Prelude.Just ("Aliases" Data..= aliases)+          ]+      )++instance Data.ToPath AssociateFileSystemAliases where+  toPath = Prelude.const "/"++instance Data.ToQuery AssociateFileSystemAliases where+  toQuery = Prelude.const Prelude.mempty++-- | The system generated response showing the DNS aliases that Amazon FSx is+-- attempting to associate with the file system. Use the API operation to+-- monitor the status of the aliases Amazon FSx is associating with the+-- file system. It can take up to 2.5 minutes for the alias status to+-- change from @CREATING@ to @AVAILABLE@.+--+-- /See:/ 'newAssociateFileSystemAliasesResponse' smart constructor.+data AssociateFileSystemAliasesResponse = AssociateFileSystemAliasesResponse'+  { -- | An array of the DNS aliases that Amazon FSx is associating with the file+    -- system.+    aliases :: Prelude.Maybe [Alias],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateFileSystemAliasesResponse' 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:+--+-- 'aliases', 'associateFileSystemAliasesResponse_aliases' - An array of the DNS aliases that Amazon FSx is associating with the file+-- system.+--+-- 'httpStatus', 'associateFileSystemAliasesResponse_httpStatus' - The response's http status code.+newAssociateFileSystemAliasesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateFileSystemAliasesResponse+newAssociateFileSystemAliasesResponse pHttpStatus_ =+  AssociateFileSystemAliasesResponse'+    { aliases =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of the DNS aliases that Amazon FSx is associating with the file+-- system.+associateFileSystemAliasesResponse_aliases :: Lens.Lens' AssociateFileSystemAliasesResponse (Prelude.Maybe [Alias])+associateFileSystemAliasesResponse_aliases = Lens.lens (\AssociateFileSystemAliasesResponse' {aliases} -> aliases) (\s@AssociateFileSystemAliasesResponse' {} a -> s {aliases = a} :: AssociateFileSystemAliasesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+associateFileSystemAliasesResponse_httpStatus :: Lens.Lens' AssociateFileSystemAliasesResponse Prelude.Int+associateFileSystemAliasesResponse_httpStatus = Lens.lens (\AssociateFileSystemAliasesResponse' {httpStatus} -> httpStatus) (\s@AssociateFileSystemAliasesResponse' {} a -> s {httpStatus = a} :: AssociateFileSystemAliasesResponse)++instance+  Prelude.NFData+    AssociateFileSystemAliasesResponse+  where+  rnf AssociateFileSystemAliasesResponse' {..} =+    Prelude.rnf aliases+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CancelDataRepositoryTask.hs view
@@ -0,0 +1,240 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CancelDataRepositoryTask+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels an existing Amazon FSx for Lustre data repository task if that+-- task is in either the @PENDING@ or @EXECUTING@ state. When you cancel a+-- task, Amazon FSx does the following.+--+-- -   Any files that FSx has already exported are not reverted.+--+-- -   FSx continues to export any files that are \"in-flight\" when the+--     cancel operation is received.+--+-- -   FSx does not export any files that have not yet been exported.+module Amazonka.FSx.CancelDataRepositoryTask+  ( -- * Creating a Request+    CancelDataRepositoryTask (..),+    newCancelDataRepositoryTask,++    -- * Request Lenses+    cancelDataRepositoryTask_taskId,++    -- * Destructuring the Response+    CancelDataRepositoryTaskResponse (..),+    newCancelDataRepositoryTaskResponse,++    -- * Response Lenses+    cancelDataRepositoryTaskResponse_lifecycle,+    cancelDataRepositoryTaskResponse_taskId,+    cancelDataRepositoryTaskResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Cancels a data repository task.+--+-- /See:/ 'newCancelDataRepositoryTask' smart constructor.+data CancelDataRepositoryTask = CancelDataRepositoryTask'+  { -- | Specifies the data repository task to cancel.+    taskId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelDataRepositoryTask' 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:+--+-- 'taskId', 'cancelDataRepositoryTask_taskId' - Specifies the data repository task to cancel.+newCancelDataRepositoryTask ::+  -- | 'taskId'+  Prelude.Text ->+  CancelDataRepositoryTask+newCancelDataRepositoryTask pTaskId_ =+  CancelDataRepositoryTask' {taskId = pTaskId_}++-- | Specifies the data repository task to cancel.+cancelDataRepositoryTask_taskId :: Lens.Lens' CancelDataRepositoryTask Prelude.Text+cancelDataRepositoryTask_taskId = Lens.lens (\CancelDataRepositoryTask' {taskId} -> taskId) (\s@CancelDataRepositoryTask' {} a -> s {taskId = a} :: CancelDataRepositoryTask)++instance Core.AWSRequest CancelDataRepositoryTask where+  type+    AWSResponse CancelDataRepositoryTask =+      CancelDataRepositoryTaskResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CancelDataRepositoryTaskResponse'+            Prelude.<$> (x Data..?> "Lifecycle")+            Prelude.<*> (x Data..?> "TaskId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelDataRepositoryTask where+  hashWithSalt _salt CancelDataRepositoryTask' {..} =+    _salt `Prelude.hashWithSalt` taskId++instance Prelude.NFData CancelDataRepositoryTask where+  rnf CancelDataRepositoryTask' {..} =+    Prelude.rnf taskId++instance Data.ToHeaders CancelDataRepositoryTask where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CancelDataRepositoryTask" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelDataRepositoryTask where+  toJSON CancelDataRepositoryTask' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("TaskId" Data..= taskId)]+      )++instance Data.ToPath CancelDataRepositoryTask where+  toPath = Prelude.const "/"++instance Data.ToQuery CancelDataRepositoryTask where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelDataRepositoryTaskResponse' smart constructor.+data CancelDataRepositoryTaskResponse = CancelDataRepositoryTaskResponse'+  { -- | The lifecycle status of the data repository task, as follows:+    --+    -- -   @PENDING@ - Amazon FSx has not started the task.+    --+    -- -   @EXECUTING@ - Amazon FSx is processing the task.+    --+    -- -   @FAILED@ - Amazon FSx was not able to complete the task. For+    --     example, there may be files the task failed to process. The+    --     DataRepositoryTaskFailureDetails property provides more information+    --     about task failures.+    --+    -- -   @SUCCEEDED@ - FSx completed the task successfully.+    --+    -- -   @CANCELED@ - Amazon FSx canceled the task and it did not complete.+    --+    -- -   @CANCELING@ - FSx is in process of canceling the task.+    lifecycle :: Prelude.Maybe DataRepositoryTaskLifecycle,+    -- | The ID of the task being canceled.+    taskId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelDataRepositoryTaskResponse' 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:+--+-- 'lifecycle', 'cancelDataRepositoryTaskResponse_lifecycle' - The lifecycle status of the data repository task, as follows:+--+-- -   @PENDING@ - Amazon FSx has not started the task.+--+-- -   @EXECUTING@ - Amazon FSx is processing the task.+--+-- -   @FAILED@ - Amazon FSx was not able to complete the task. For+--     example, there may be files the task failed to process. The+--     DataRepositoryTaskFailureDetails property provides more information+--     about task failures.+--+-- -   @SUCCEEDED@ - FSx completed the task successfully.+--+-- -   @CANCELED@ - Amazon FSx canceled the task and it did not complete.+--+-- -   @CANCELING@ - FSx is in process of canceling the task.+--+-- 'taskId', 'cancelDataRepositoryTaskResponse_taskId' - The ID of the task being canceled.+--+-- 'httpStatus', 'cancelDataRepositoryTaskResponse_httpStatus' - The response's http status code.+newCancelDataRepositoryTaskResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelDataRepositoryTaskResponse+newCancelDataRepositoryTaskResponse pHttpStatus_ =+  CancelDataRepositoryTaskResponse'+    { lifecycle =+        Prelude.Nothing,+      taskId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The lifecycle status of the data repository task, as follows:+--+-- -   @PENDING@ - Amazon FSx has not started the task.+--+-- -   @EXECUTING@ - Amazon FSx is processing the task.+--+-- -   @FAILED@ - Amazon FSx was not able to complete the task. For+--     example, there may be files the task failed to process. The+--     DataRepositoryTaskFailureDetails property provides more information+--     about task failures.+--+-- -   @SUCCEEDED@ - FSx completed the task successfully.+--+-- -   @CANCELED@ - Amazon FSx canceled the task and it did not complete.+--+-- -   @CANCELING@ - FSx is in process of canceling the task.+cancelDataRepositoryTaskResponse_lifecycle :: Lens.Lens' CancelDataRepositoryTaskResponse (Prelude.Maybe DataRepositoryTaskLifecycle)+cancelDataRepositoryTaskResponse_lifecycle = Lens.lens (\CancelDataRepositoryTaskResponse' {lifecycle} -> lifecycle) (\s@CancelDataRepositoryTaskResponse' {} a -> s {lifecycle = a} :: CancelDataRepositoryTaskResponse)++-- | The ID of the task being canceled.+cancelDataRepositoryTaskResponse_taskId :: Lens.Lens' CancelDataRepositoryTaskResponse (Prelude.Maybe Prelude.Text)+cancelDataRepositoryTaskResponse_taskId = Lens.lens (\CancelDataRepositoryTaskResponse' {taskId} -> taskId) (\s@CancelDataRepositoryTaskResponse' {} a -> s {taskId = a} :: CancelDataRepositoryTaskResponse)++-- | The response's http status code.+cancelDataRepositoryTaskResponse_httpStatus :: Lens.Lens' CancelDataRepositoryTaskResponse Prelude.Int+cancelDataRepositoryTaskResponse_httpStatus = Lens.lens (\CancelDataRepositoryTaskResponse' {httpStatus} -> httpStatus) (\s@CancelDataRepositoryTaskResponse' {} a -> s {httpStatus = a} :: CancelDataRepositoryTaskResponse)++instance+  Prelude.NFData+    CancelDataRepositoryTaskResponse+  where+  rnf CancelDataRepositoryTaskResponse' {..} =+    Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf taskId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CopyBackup.hs view
@@ -0,0 +1,305 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CopyBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Copies an existing backup within the same Amazon Web Services account to+-- another Amazon Web Services Region (cross-Region copy) or within the+-- same Amazon Web Services Region (in-Region copy). You can have up to+-- five backup copy requests in progress to a single destination Region per+-- account.+--+-- You can use cross-Region backup copies for cross-Region disaster+-- recovery. You can periodically take backups and copy them to another+-- Region so that in the event of a disaster in the primary Region, you can+-- restore from backup and recover availability quickly in the other+-- Region. You can make cross-Region copies only within your Amazon Web+-- Services partition. A partition is a grouping of Regions. Amazon Web+-- Services currently has three partitions: @aws@ (Standard Regions),+-- @aws-cn@ (China Regions), and @aws-us-gov@ (Amazon Web Services GovCloud+-- [US] Regions).+--+-- You can also use backup copies to clone your file dataset to another+-- Region or within the same Region.+--+-- You can use the @SourceRegion@ parameter to specify the Amazon Web+-- Services Region from which the backup will be copied. For example, if+-- you make the call from the @us-west-1@ Region and want to copy a backup+-- from the @us-east-2@ Region, you specify @us-east-2@ in the+-- @SourceRegion@ parameter to make a cross-Region copy. If you don\'t+-- specify a Region, the backup copy is created in the same Region where+-- the request is sent from (in-Region copy).+--+-- For more information about creating backup copies, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#copy-backups Copying backups>+-- in the /Amazon FSx for Windows User Guide/,+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html#copy-backups Copying backups>+-- in the /Amazon FSx for Lustre User Guide/, and+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/using-backups.html#copy-backups Copying backups>+-- in the /Amazon FSx for OpenZFS User Guide/.+module Amazonka.FSx.CopyBackup+  ( -- * Creating a Request+    CopyBackup (..),+    newCopyBackup,++    -- * Request Lenses+    copyBackup_clientRequestToken,+    copyBackup_copyTags,+    copyBackup_kmsKeyId,+    copyBackup_sourceRegion,+    copyBackup_tags,+    copyBackup_sourceBackupId,++    -- * Destructuring the Response+    CopyBackupResponse (..),+    newCopyBackupResponse,++    -- * Response Lenses+    copyBackupResponse_backup,+    copyBackupResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCopyBackup' smart constructor.+data CopyBackup = CopyBackup'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A Boolean flag indicating whether tags from the source backup should be+    -- copied to the backup copy. This value defaults to @false@.+    --+    -- If you set @CopyTags@ to @true@ and the source backup has existing tags,+    -- you can use the @Tags@ parameter to create new tags, provided that the+    -- sum of the source backup tags and the new tags doesn\'t exceed 50. Both+    -- sets of tags are merged. If there are tag conflicts (for example, two+    -- tags with the same key but different values), the tags created with the+    -- @Tags@ parameter take precedence.+    copyTags :: Prelude.Maybe Prelude.Bool,+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The source Amazon Web Services Region of the backup. Specifies the+    -- Amazon Web Services Region from which the backup is being copied. The+    -- source and destination Regions must be in the same Amazon Web Services+    -- partition. If you don\'t specify a Region, @SourceRegion@ defaults to+    -- the Region where the request is sent from (in-Region copy).+    sourceRegion :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The ID of the source backup. Specifies the ID of the backup that\'s+    -- being copied.+    sourceBackupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopyBackup' 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:+--+-- 'clientRequestToken', 'copyBackup_clientRequestToken' - Undocumented member.+--+-- 'copyTags', 'copyBackup_copyTags' - A Boolean flag indicating whether tags from the source backup should be+-- copied to the backup copy. This value defaults to @false@.+--+-- If you set @CopyTags@ to @true@ and the source backup has existing tags,+-- you can use the @Tags@ parameter to create new tags, provided that the+-- sum of the source backup tags and the new tags doesn\'t exceed 50. Both+-- sets of tags are merged. If there are tag conflicts (for example, two+-- tags with the same key but different values), the tags created with the+-- @Tags@ parameter take precedence.+--+-- 'kmsKeyId', 'copyBackup_kmsKeyId' - Undocumented member.+--+-- 'sourceRegion', 'copyBackup_sourceRegion' - The source Amazon Web Services Region of the backup. Specifies the+-- Amazon Web Services Region from which the backup is being copied. The+-- source and destination Regions must be in the same Amazon Web Services+-- partition. If you don\'t specify a Region, @SourceRegion@ defaults to+-- the Region where the request is sent from (in-Region copy).+--+-- 'tags', 'copyBackup_tags' - Undocumented member.+--+-- 'sourceBackupId', 'copyBackup_sourceBackupId' - The ID of the source backup. Specifies the ID of the backup that\'s+-- being copied.+newCopyBackup ::+  -- | 'sourceBackupId'+  Prelude.Text ->+  CopyBackup+newCopyBackup pSourceBackupId_ =+  CopyBackup'+    { clientRequestToken = Prelude.Nothing,+      copyTags = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      sourceRegion = Prelude.Nothing,+      tags = Prelude.Nothing,+      sourceBackupId = pSourceBackupId_+    }++-- | Undocumented member.+copyBackup_clientRequestToken :: Lens.Lens' CopyBackup (Prelude.Maybe Prelude.Text)+copyBackup_clientRequestToken = Lens.lens (\CopyBackup' {clientRequestToken} -> clientRequestToken) (\s@CopyBackup' {} a -> s {clientRequestToken = a} :: CopyBackup)++-- | A Boolean flag indicating whether tags from the source backup should be+-- copied to the backup copy. This value defaults to @false@.+--+-- If you set @CopyTags@ to @true@ and the source backup has existing tags,+-- you can use the @Tags@ parameter to create new tags, provided that the+-- sum of the source backup tags and the new tags doesn\'t exceed 50. Both+-- sets of tags are merged. If there are tag conflicts (for example, two+-- tags with the same key but different values), the tags created with the+-- @Tags@ parameter take precedence.+copyBackup_copyTags :: Lens.Lens' CopyBackup (Prelude.Maybe Prelude.Bool)+copyBackup_copyTags = Lens.lens (\CopyBackup' {copyTags} -> copyTags) (\s@CopyBackup' {} a -> s {copyTags = a} :: CopyBackup)++-- | Undocumented member.+copyBackup_kmsKeyId :: Lens.Lens' CopyBackup (Prelude.Maybe Prelude.Text)+copyBackup_kmsKeyId = Lens.lens (\CopyBackup' {kmsKeyId} -> kmsKeyId) (\s@CopyBackup' {} a -> s {kmsKeyId = a} :: CopyBackup)++-- | The source Amazon Web Services Region of the backup. Specifies the+-- Amazon Web Services Region from which the backup is being copied. The+-- source and destination Regions must be in the same Amazon Web Services+-- partition. If you don\'t specify a Region, @SourceRegion@ defaults to+-- the Region where the request is sent from (in-Region copy).+copyBackup_sourceRegion :: Lens.Lens' CopyBackup (Prelude.Maybe Prelude.Text)+copyBackup_sourceRegion = Lens.lens (\CopyBackup' {sourceRegion} -> sourceRegion) (\s@CopyBackup' {} a -> s {sourceRegion = a} :: CopyBackup)++-- | Undocumented member.+copyBackup_tags :: Lens.Lens' CopyBackup (Prelude.Maybe (Prelude.NonEmpty Tag))+copyBackup_tags = Lens.lens (\CopyBackup' {tags} -> tags) (\s@CopyBackup' {} a -> s {tags = a} :: CopyBackup) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the source backup. Specifies the ID of the backup that\'s+-- being copied.+copyBackup_sourceBackupId :: Lens.Lens' CopyBackup Prelude.Text+copyBackup_sourceBackupId = Lens.lens (\CopyBackup' {sourceBackupId} -> sourceBackupId) (\s@CopyBackup' {} a -> s {sourceBackupId = a} :: CopyBackup)++instance Core.AWSRequest CopyBackup where+  type AWSResponse CopyBackup = CopyBackupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CopyBackupResponse'+            Prelude.<$> (x Data..?> "Backup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CopyBackup where+  hashWithSalt _salt CopyBackup' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` copyTags+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` sourceRegion+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceBackupId++instance Prelude.NFData CopyBackup where+  rnf CopyBackup' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf copyTags+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf sourceRegion+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceBackupId++instance Data.ToHeaders CopyBackup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CopyBackup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CopyBackup where+  toJSON CopyBackup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("CopyTags" Data..=) Prelude.<$> copyTags,+            ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            ("SourceRegion" Data..=) Prelude.<$> sourceRegion,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("SourceBackupId" Data..= sourceBackupId)+          ]+      )++instance Data.ToPath CopyBackup where+  toPath = Prelude.const "/"++instance Data.ToQuery CopyBackup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCopyBackupResponse' smart constructor.+data CopyBackupResponse = CopyBackupResponse'+  { backup :: Prelude.Maybe Backup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CopyBackupResponse' 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:+--+-- 'backup', 'copyBackupResponse_backup' - Undocumented member.+--+-- 'httpStatus', 'copyBackupResponse_httpStatus' - The response's http status code.+newCopyBackupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CopyBackupResponse+newCopyBackupResponse pHttpStatus_ =+  CopyBackupResponse'+    { backup = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+copyBackupResponse_backup :: Lens.Lens' CopyBackupResponse (Prelude.Maybe Backup)+copyBackupResponse_backup = Lens.lens (\CopyBackupResponse' {backup} -> backup) (\s@CopyBackupResponse' {} a -> s {backup = a} :: CopyBackupResponse)++-- | The response's http status code.+copyBackupResponse_httpStatus :: Lens.Lens' CopyBackupResponse Prelude.Int+copyBackupResponse_httpStatus = Lens.lens (\CopyBackupResponse' {httpStatus} -> httpStatus) (\s@CopyBackupResponse' {} a -> s {httpStatus = a} :: CopyBackupResponse)++instance Prelude.NFData CopyBackupResponse where+  rnf CopyBackupResponse' {..} =+    Prelude.rnf backup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateBackup.hs view
@@ -0,0 +1,283 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a backup of an existing Amazon FSx for Windows File Server file+-- system, Amazon FSx for Lustre file system, Amazon FSx for NetApp ONTAP+-- volume, or Amazon FSx for OpenZFS file system. We recommend creating+-- regular backups so that you can restore a file system or volume from a+-- backup if an issue arises with the original file system or volume.+--+-- For Amazon FSx for Lustre file systems, you can create a backup only for+-- file systems that have the following configuration:+--+-- -   A Persistent deployment type+--+-- -   Are /not/ linked to a data repository+--+-- For more information about backups, see the following:+--+-- -   For Amazon FSx for Lustre, see+--     <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html Working with FSx for Lustre backups>.+--+-- -   For Amazon FSx for Windows, see+--     <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html Working with FSx for Windows backups>.+--+-- -   For Amazon FSx for NetApp ONTAP, see+--     <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/using-backups.html Working with FSx for NetApp ONTAP backups>.+--+-- -   For Amazon FSx for OpenZFS, see+--     <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/using-backups.html Working with FSx for OpenZFS backups>.+--+-- If a backup with the specified client request token exists and the+-- parameters match, this operation returns the description of the existing+-- backup. If a backup with the specified client request token exists and+-- the parameters don\'t match, this operation returns+-- @IncompatibleParameterError@. If a backup with the specified client+-- request token doesn\'t exist, @CreateBackup@ does the following:+--+-- -   Creates a new Amazon FSx backup with an assigned ID, and an initial+--     lifecycle state of @CREATING@.+--+-- -   Returns the description of the backup.+--+-- By using the idempotent operation, you can retry a @CreateBackup@+-- operation without the risk of creating an extra backup. This approach+-- can be useful when an initial call fails in a way that makes it unclear+-- whether a backup was created. If you use the same client request token+-- and the initial call created a backup, the operation returns a+-- successful result because all the parameters are the same.+--+-- The @CreateBackup@ operation returns while the backup\'s lifecycle state+-- is still @CREATING@. You can check the backup creation status by calling+-- the+-- <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeBackups.html DescribeBackups>+-- operation, which returns the backup state along with other information.+module Amazonka.FSx.CreateBackup+  ( -- * Creating a Request+    CreateBackup (..),+    newCreateBackup,++    -- * Request Lenses+    createBackup_clientRequestToken,+    createBackup_fileSystemId,+    createBackup_tags,+    createBackup_volumeId,++    -- * Destructuring the Response+    CreateBackupResponse (..),+    newCreateBackupResponse,++    -- * Response Lenses+    createBackupResponse_backup,+    createBackupResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for the @CreateBackup@ operation.+--+-- /See:/ 'newCreateBackup' smart constructor.+data CreateBackup = CreateBackup'+  { -- | (Optional) A string of up to 64 ASCII characters that Amazon FSx uses to+    -- ensure idempotent creation. This string is automatically filled on your+    -- behalf when you use the Command Line Interface (CLI) or an Amazon Web+    -- Services SDK.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the file system to back up.+    fileSystemId :: Prelude.Maybe Prelude.Text,+    -- | (Optional) The tags to apply to the backup at backup creation. The key+    -- value of the @Name@ tag appears in the console as the backup name. If+    -- you have set @CopyTagsToBackups@ to @true@, and you specify one or more+    -- tags using the @CreateBackup@ operation, no existing file system tags+    -- are copied from the file system to the backup.+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | (Optional) The ID of the FSx for ONTAP volume to back up.+    volumeId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBackup' 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:+--+-- 'clientRequestToken', 'createBackup_clientRequestToken' - (Optional) A string of up to 64 ASCII characters that Amazon FSx uses to+-- ensure idempotent creation. This string is automatically filled on your+-- behalf when you use the Command Line Interface (CLI) or an Amazon Web+-- Services SDK.+--+-- 'fileSystemId', 'createBackup_fileSystemId' - The ID of the file system to back up.+--+-- 'tags', 'createBackup_tags' - (Optional) The tags to apply to the backup at backup creation. The key+-- value of the @Name@ tag appears in the console as the backup name. If+-- you have set @CopyTagsToBackups@ to @true@, and you specify one or more+-- tags using the @CreateBackup@ operation, no existing file system tags+-- are copied from the file system to the backup.+--+-- 'volumeId', 'createBackup_volumeId' - (Optional) The ID of the FSx for ONTAP volume to back up.+newCreateBackup ::+  CreateBackup+newCreateBackup =+  CreateBackup'+    { clientRequestToken = Prelude.Nothing,+      fileSystemId = Prelude.Nothing,+      tags = Prelude.Nothing,+      volumeId = Prelude.Nothing+    }++-- | (Optional) A string of up to 64 ASCII characters that Amazon FSx uses to+-- ensure idempotent creation. This string is automatically filled on your+-- behalf when you use the Command Line Interface (CLI) or an Amazon Web+-- Services SDK.+createBackup_clientRequestToken :: Lens.Lens' CreateBackup (Prelude.Maybe Prelude.Text)+createBackup_clientRequestToken = Lens.lens (\CreateBackup' {clientRequestToken} -> clientRequestToken) (\s@CreateBackup' {} a -> s {clientRequestToken = a} :: CreateBackup)++-- | The ID of the file system to back up.+createBackup_fileSystemId :: Lens.Lens' CreateBackup (Prelude.Maybe Prelude.Text)+createBackup_fileSystemId = Lens.lens (\CreateBackup' {fileSystemId} -> fileSystemId) (\s@CreateBackup' {} a -> s {fileSystemId = a} :: CreateBackup)++-- | (Optional) The tags to apply to the backup at backup creation. The key+-- value of the @Name@ tag appears in the console as the backup name. If+-- you have set @CopyTagsToBackups@ to @true@, and you specify one or more+-- tags using the @CreateBackup@ operation, no existing file system tags+-- are copied from the file system to the backup.+createBackup_tags :: Lens.Lens' CreateBackup (Prelude.Maybe (Prelude.NonEmpty Tag))+createBackup_tags = Lens.lens (\CreateBackup' {tags} -> tags) (\s@CreateBackup' {} a -> s {tags = a} :: CreateBackup) Prelude.. Lens.mapping Lens.coerced++-- | (Optional) The ID of the FSx for ONTAP volume to back up.+createBackup_volumeId :: Lens.Lens' CreateBackup (Prelude.Maybe Prelude.Text)+createBackup_volumeId = Lens.lens (\CreateBackup' {volumeId} -> volumeId) (\s@CreateBackup' {} a -> s {volumeId = a} :: CreateBackup)++instance Core.AWSRequest CreateBackup where+  type AWSResponse CreateBackup = CreateBackupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBackupResponse'+            Prelude.<$> (x Data..?> "Backup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBackup where+  hashWithSalt _salt CreateBackup' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` volumeId++instance Prelude.NFData CreateBackup where+  rnf CreateBackup' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf volumeId++instance Data.ToHeaders CreateBackup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateBackup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBackup where+  toJSON CreateBackup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("FileSystemId" Data..=) Prelude.<$> fileSystemId,+            ("Tags" Data..=) Prelude.<$> tags,+            ("VolumeId" Data..=) Prelude.<$> volumeId+          ]+      )++instance Data.ToPath CreateBackup where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateBackup where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for the @CreateBackup@ operation.+--+-- /See:/ 'newCreateBackupResponse' smart constructor.+data CreateBackupResponse = CreateBackupResponse'+  { -- | A description of the backup.+    backup :: Prelude.Maybe Backup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBackupResponse' 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:+--+-- 'backup', 'createBackupResponse_backup' - A description of the backup.+--+-- 'httpStatus', 'createBackupResponse_httpStatus' - The response's http status code.+newCreateBackupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBackupResponse+newCreateBackupResponse pHttpStatus_ =+  CreateBackupResponse'+    { backup = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A description of the backup.+createBackupResponse_backup :: Lens.Lens' CreateBackupResponse (Prelude.Maybe Backup)+createBackupResponse_backup = Lens.lens (\CreateBackupResponse' {backup} -> backup) (\s@CreateBackupResponse' {} a -> s {backup = a} :: CreateBackupResponse)++-- | The response's http status code.+createBackupResponse_httpStatus :: Lens.Lens' CreateBackupResponse Prelude.Int+createBackupResponse_httpStatus = Lens.lens (\CreateBackupResponse' {httpStatus} -> httpStatus) (\s@CreateBackupResponse' {} a -> s {httpStatus = a} :: CreateBackupResponse)++instance Prelude.NFData CreateBackupResponse where+  rnf CreateBackupResponse' {..} =+    Prelude.rnf backup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateDataRepositoryAssociation.hs view
@@ -0,0 +1,407 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateDataRepositoryAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Amazon FSx for Lustre data repository association (DRA). A+-- data repository association is a link between a directory on the file+-- system and an Amazon S3 bucket or prefix. You can have a maximum of 8+-- data repository associations on a file system. Data repository+-- associations are supported only for file systems with the @Persistent_2@+-- deployment type.+--+-- Each data repository association must have a unique Amazon FSx file+-- system directory and a unique S3 bucket or prefix associated with it.+-- You can configure a data repository association for automatic import+-- only, for automatic export only, or for both. To learn more about+-- linking a data repository to your file system, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html Linking your file system to an S3 bucket>.+--+-- @CreateDataRepositoryAssociation@ isn\'t supported on Amazon File Cache+-- resources. To create a DRA on Amazon File Cache, use the+-- @CreateFileCache@ operation.+module Amazonka.FSx.CreateDataRepositoryAssociation+  ( -- * Creating a Request+    CreateDataRepositoryAssociation (..),+    newCreateDataRepositoryAssociation,++    -- * Request Lenses+    createDataRepositoryAssociation_batchImportMetaDataOnCreate,+    createDataRepositoryAssociation_clientRequestToken,+    createDataRepositoryAssociation_fileSystemPath,+    createDataRepositoryAssociation_importedFileChunkSize,+    createDataRepositoryAssociation_s3,+    createDataRepositoryAssociation_tags,+    createDataRepositoryAssociation_fileSystemId,+    createDataRepositoryAssociation_dataRepositoryPath,++    -- * Destructuring the Response+    CreateDataRepositoryAssociationResponse (..),+    newCreateDataRepositoryAssociationResponse,++    -- * Response Lenses+    createDataRepositoryAssociationResponse_association,+    createDataRepositoryAssociationResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDataRepositoryAssociation' smart constructor.+data CreateDataRepositoryAssociation = CreateDataRepositoryAssociation'+  { -- | Set to @true@ to run an import data repository task to import metadata+    -- from the data repository to the file system after the data repository+    -- association is created. Default is @false@.+    batchImportMetaDataOnCreate :: Prelude.Maybe Prelude.Bool,+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A path on the file system that points to a high-level directory (such as+    -- @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that will be+    -- mapped 1-1 with @DataRepositoryPath@. The leading forward slash in the+    -- name is required. Two data repository associations cannot have+    -- overlapping file system paths. For example, if a data repository is+    -- associated with file system path @\/ns1\/@, then you cannot link another+    -- data repository with file system path @\/ns1\/ns2@.+    --+    -- This path specifies where in your file system files will be exported+    -- from or imported to. This file system directory can be linked to only+    -- one Amazon S3 bucket, and no other S3 bucket can be linked to the+    -- directory.+    --+    -- If you specify only a forward slash (@\/@) as the file system path, you+    -- can link only one data repository to the file system. You can only+    -- specify \"\/\" as the file system path for the first data repository+    -- associated with a file system.+    fileSystemPath :: 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.+    importedFileChunkSize :: Prelude.Maybe Prelude.Natural,+    -- | The configuration for an Amazon S3 data repository linked to an Amazon+    -- FSx Lustre file system with a data repository association. The+    -- configuration defines which file events (new, changed, or deleted files+    -- or directories) are automatically imported from the linked data+    -- repository to the file system or automatically exported from the file+    -- system to the data repository.+    s3 :: Prelude.Maybe S3DataRepositoryConfiguration,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    fileSystemId :: Prelude.Text,+    -- | The path to the Amazon S3 data repository that will be linked to the+    -- file system. The path can be an S3 bucket or prefix in the format+    -- @s3:\/\/myBucket\/myPrefix\/@. This path specifies where in the S3 data+    -- repository files will be imported from or exported to.+    dataRepositoryPath :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataRepositoryAssociation' 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:+--+-- 'batchImportMetaDataOnCreate', 'createDataRepositoryAssociation_batchImportMetaDataOnCreate' - Set to @true@ to run an import data repository task to import metadata+-- from the data repository to the file system after the data repository+-- association is created. Default is @false@.+--+-- 'clientRequestToken', 'createDataRepositoryAssociation_clientRequestToken' - Undocumented member.+--+-- 'fileSystemPath', 'createDataRepositoryAssociation_fileSystemPath' - A path on the file system that points to a high-level directory (such as+-- @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that will be+-- mapped 1-1 with @DataRepositoryPath@. The leading forward slash in the+-- name is required. Two data repository associations cannot have+-- overlapping file system paths. For example, if a data repository is+-- associated with file system path @\/ns1\/@, then you cannot link another+-- data repository with file system path @\/ns1\/ns2@.+--+-- This path specifies where in your file system files will be exported+-- from or imported to. This file system directory can be linked to only+-- one Amazon S3 bucket, and no other S3 bucket can be linked to the+-- directory.+--+-- If you specify only a forward slash (@\/@) as the file system path, you+-- can link only one data repository to the file system. You can only+-- specify \"\/\" as the file system path for the first data repository+-- associated with a file system.+--+-- 'importedFileChunkSize', 'createDataRepositoryAssociation_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.+--+-- 's3', 'createDataRepositoryAssociation_s3' - The configuration for an Amazon S3 data repository linked to an Amazon+-- FSx Lustre file system with a data repository association. The+-- configuration defines which file events (new, changed, or deleted files+-- or directories) are automatically imported from the linked data+-- repository to the file system or automatically exported from the file+-- system to the data repository.+--+-- 'tags', 'createDataRepositoryAssociation_tags' - Undocumented member.+--+-- 'fileSystemId', 'createDataRepositoryAssociation_fileSystemId' - Undocumented member.+--+-- 'dataRepositoryPath', 'createDataRepositoryAssociation_dataRepositoryPath' - The path to the Amazon S3 data repository that will be linked to the+-- file system. The path can be an S3 bucket or prefix in the format+-- @s3:\/\/myBucket\/myPrefix\/@. This path specifies where in the S3 data+-- repository files will be imported from or exported to.+newCreateDataRepositoryAssociation ::+  -- | 'fileSystemId'+  Prelude.Text ->+  -- | 'dataRepositoryPath'+  Prelude.Text ->+  CreateDataRepositoryAssociation+newCreateDataRepositoryAssociation+  pFileSystemId_+  pDataRepositoryPath_ =+    CreateDataRepositoryAssociation'+      { batchImportMetaDataOnCreate =+          Prelude.Nothing,+        clientRequestToken = Prelude.Nothing,+        fileSystemPath = Prelude.Nothing,+        importedFileChunkSize = Prelude.Nothing,+        s3 = Prelude.Nothing,+        tags = Prelude.Nothing,+        fileSystemId = pFileSystemId_,+        dataRepositoryPath = pDataRepositoryPath_+      }++-- | Set to @true@ to run an import data repository task to import metadata+-- from the data repository to the file system after the data repository+-- association is created. Default is @false@.+createDataRepositoryAssociation_batchImportMetaDataOnCreate :: Lens.Lens' CreateDataRepositoryAssociation (Prelude.Maybe Prelude.Bool)+createDataRepositoryAssociation_batchImportMetaDataOnCreate = Lens.lens (\CreateDataRepositoryAssociation' {batchImportMetaDataOnCreate} -> batchImportMetaDataOnCreate) (\s@CreateDataRepositoryAssociation' {} a -> s {batchImportMetaDataOnCreate = a} :: CreateDataRepositoryAssociation)++-- | Undocumented member.+createDataRepositoryAssociation_clientRequestToken :: Lens.Lens' CreateDataRepositoryAssociation (Prelude.Maybe Prelude.Text)+createDataRepositoryAssociation_clientRequestToken = Lens.lens (\CreateDataRepositoryAssociation' {clientRequestToken} -> clientRequestToken) (\s@CreateDataRepositoryAssociation' {} a -> s {clientRequestToken = a} :: CreateDataRepositoryAssociation)++-- | A path on the file system that points to a high-level directory (such as+-- @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that will be+-- mapped 1-1 with @DataRepositoryPath@. The leading forward slash in the+-- name is required. Two data repository associations cannot have+-- overlapping file system paths. For example, if a data repository is+-- associated with file system path @\/ns1\/@, then you cannot link another+-- data repository with file system path @\/ns1\/ns2@.+--+-- This path specifies where in your file system files will be exported+-- from or imported to. This file system directory can be linked to only+-- one Amazon S3 bucket, and no other S3 bucket can be linked to the+-- directory.+--+-- If you specify only a forward slash (@\/@) as the file system path, you+-- can link only one data repository to the file system. You can only+-- specify \"\/\" as the file system path for the first data repository+-- associated with a file system.+createDataRepositoryAssociation_fileSystemPath :: Lens.Lens' CreateDataRepositoryAssociation (Prelude.Maybe Prelude.Text)+createDataRepositoryAssociation_fileSystemPath = Lens.lens (\CreateDataRepositoryAssociation' {fileSystemPath} -> fileSystemPath) (\s@CreateDataRepositoryAssociation' {} a -> s {fileSystemPath = a} :: CreateDataRepositoryAssociation)++-- | 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.+createDataRepositoryAssociation_importedFileChunkSize :: Lens.Lens' CreateDataRepositoryAssociation (Prelude.Maybe Prelude.Natural)+createDataRepositoryAssociation_importedFileChunkSize = Lens.lens (\CreateDataRepositoryAssociation' {importedFileChunkSize} -> importedFileChunkSize) (\s@CreateDataRepositoryAssociation' {} a -> s {importedFileChunkSize = a} :: CreateDataRepositoryAssociation)++-- | The configuration for an Amazon S3 data repository linked to an Amazon+-- FSx Lustre file system with a data repository association. The+-- configuration defines which file events (new, changed, or deleted files+-- or directories) are automatically imported from the linked data+-- repository to the file system or automatically exported from the file+-- system to the data repository.+createDataRepositoryAssociation_s3 :: Lens.Lens' CreateDataRepositoryAssociation (Prelude.Maybe S3DataRepositoryConfiguration)+createDataRepositoryAssociation_s3 = Lens.lens (\CreateDataRepositoryAssociation' {s3} -> s3) (\s@CreateDataRepositoryAssociation' {} a -> s {s3 = a} :: CreateDataRepositoryAssociation)++-- | Undocumented member.+createDataRepositoryAssociation_tags :: Lens.Lens' CreateDataRepositoryAssociation (Prelude.Maybe (Prelude.NonEmpty Tag))+createDataRepositoryAssociation_tags = Lens.lens (\CreateDataRepositoryAssociation' {tags} -> tags) (\s@CreateDataRepositoryAssociation' {} a -> s {tags = a} :: CreateDataRepositoryAssociation) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createDataRepositoryAssociation_fileSystemId :: Lens.Lens' CreateDataRepositoryAssociation Prelude.Text+createDataRepositoryAssociation_fileSystemId = Lens.lens (\CreateDataRepositoryAssociation' {fileSystemId} -> fileSystemId) (\s@CreateDataRepositoryAssociation' {} a -> s {fileSystemId = a} :: CreateDataRepositoryAssociation)++-- | The path to the Amazon S3 data repository that will be linked to the+-- file system. The path can be an S3 bucket or prefix in the format+-- @s3:\/\/myBucket\/myPrefix\/@. This path specifies where in the S3 data+-- repository files will be imported from or exported to.+createDataRepositoryAssociation_dataRepositoryPath :: Lens.Lens' CreateDataRepositoryAssociation Prelude.Text+createDataRepositoryAssociation_dataRepositoryPath = Lens.lens (\CreateDataRepositoryAssociation' {dataRepositoryPath} -> dataRepositoryPath) (\s@CreateDataRepositoryAssociation' {} a -> s {dataRepositoryPath = a} :: CreateDataRepositoryAssociation)++instance+  Core.AWSRequest+    CreateDataRepositoryAssociation+  where+  type+    AWSResponse CreateDataRepositoryAssociation =+      CreateDataRepositoryAssociationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDataRepositoryAssociationResponse'+            Prelude.<$> (x Data..?> "Association")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateDataRepositoryAssociation+  where+  hashWithSalt+    _salt+    CreateDataRepositoryAssociation' {..} =+      _salt+        `Prelude.hashWithSalt` batchImportMetaDataOnCreate+        `Prelude.hashWithSalt` clientRequestToken+        `Prelude.hashWithSalt` fileSystemPath+        `Prelude.hashWithSalt` importedFileChunkSize+        `Prelude.hashWithSalt` s3+        `Prelude.hashWithSalt` tags+        `Prelude.hashWithSalt` fileSystemId+        `Prelude.hashWithSalt` dataRepositoryPath++instance+  Prelude.NFData+    CreateDataRepositoryAssociation+  where+  rnf CreateDataRepositoryAssociation' {..} =+    Prelude.rnf batchImportMetaDataOnCreate+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileSystemPath+      `Prelude.seq` Prelude.rnf importedFileChunkSize+      `Prelude.seq` Prelude.rnf s3+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf dataRepositoryPath++instance+  Data.ToHeaders+    CreateDataRepositoryAssociation+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateDataRepositoryAssociation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataRepositoryAssociation where+  toJSON CreateDataRepositoryAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BatchImportMetaDataOnCreate" Data..=)+              Prelude.<$> batchImportMetaDataOnCreate,+            ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("FileSystemPath" Data..=)+              Prelude.<$> fileSystemPath,+            ("ImportedFileChunkSize" Data..=)+              Prelude.<$> importedFileChunkSize,+            ("S3" Data..=) Prelude.<$> s3,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("FileSystemId" Data..= fileSystemId),+            Prelude.Just+              ("DataRepositoryPath" Data..= dataRepositoryPath)+          ]+      )++instance Data.ToPath CreateDataRepositoryAssociation where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDataRepositoryAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDataRepositoryAssociationResponse' smart constructor.+data CreateDataRepositoryAssociationResponse = CreateDataRepositoryAssociationResponse'+  { -- | The response object returned after the data repository association is+    -- created.+    association :: Prelude.Maybe DataRepositoryAssociation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataRepositoryAssociationResponse' 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:+--+-- 'association', 'createDataRepositoryAssociationResponse_association' - The response object returned after the data repository association is+-- created.+--+-- 'httpStatus', 'createDataRepositoryAssociationResponse_httpStatus' - The response's http status code.+newCreateDataRepositoryAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDataRepositoryAssociationResponse+newCreateDataRepositoryAssociationResponse+  pHttpStatus_ =+    CreateDataRepositoryAssociationResponse'+      { association =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The response object returned after the data repository association is+-- created.+createDataRepositoryAssociationResponse_association :: Lens.Lens' CreateDataRepositoryAssociationResponse (Prelude.Maybe DataRepositoryAssociation)+createDataRepositoryAssociationResponse_association = Lens.lens (\CreateDataRepositoryAssociationResponse' {association} -> association) (\s@CreateDataRepositoryAssociationResponse' {} a -> s {association = a} :: CreateDataRepositoryAssociationResponse)++-- | The response's http status code.+createDataRepositoryAssociationResponse_httpStatus :: Lens.Lens' CreateDataRepositoryAssociationResponse Prelude.Int+createDataRepositoryAssociationResponse_httpStatus = Lens.lens (\CreateDataRepositoryAssociationResponse' {httpStatus} -> httpStatus) (\s@CreateDataRepositoryAssociationResponse' {} a -> s {httpStatus = a} :: CreateDataRepositoryAssociationResponse)++instance+  Prelude.NFData+    CreateDataRepositoryAssociationResponse+  where+  rnf CreateDataRepositoryAssociationResponse' {..} =+    Prelude.rnf association+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateDataRepositoryTask.hs view
@@ -0,0 +1,332 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateDataRepositoryTask+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Amazon FSx for Lustre data repository task. You use data+-- repository tasks to perform bulk operations between your Amazon FSx file+-- system and its linked data repositories. An example of a data repository+-- task is exporting any data and metadata changes, including POSIX+-- metadata, to files, directories, and symbolic links (symlinks) from your+-- FSx file system to a linked data repository. A+-- @CreateDataRepositoryTask@ operation will fail if a data repository is+-- not linked to the FSx file system. To learn more about data repository+-- tasks, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-repository-tasks.html Data Repository Tasks>.+-- To learn more about linking a data repository to your file system, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html Linking your file system to an S3 bucket>.+module Amazonka.FSx.CreateDataRepositoryTask+  ( -- * Creating a Request+    CreateDataRepositoryTask (..),+    newCreateDataRepositoryTask,++    -- * Request Lenses+    createDataRepositoryTask_capacityToRelease,+    createDataRepositoryTask_clientRequestToken,+    createDataRepositoryTask_paths,+    createDataRepositoryTask_tags,+    createDataRepositoryTask_type,+    createDataRepositoryTask_fileSystemId,+    createDataRepositoryTask_report,++    -- * Destructuring the Response+    CreateDataRepositoryTaskResponse (..),+    newCreateDataRepositoryTaskResponse,++    -- * Response Lenses+    createDataRepositoryTaskResponse_dataRepositoryTask,+    createDataRepositoryTaskResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDataRepositoryTask' smart constructor.+data CreateDataRepositoryTask = CreateDataRepositoryTask'+  { -- | Specifies the amount of data to release, in GiB, by an Amazon File Cache+    -- @AUTO_RELEASE_DATA@ task that automatically releases files from the+    -- cache.+    capacityToRelease :: Prelude.Maybe Prelude.Natural,+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A list of paths for the data repository task to use when the task is+    -- processed. If a path that you provide isn\'t valid, the task fails.+    --+    -- -   For export tasks, the list contains paths on the Amazon FSx file+    --     system from which the files are exported to the Amazon S3 bucket.+    --     The default path is the file system root directory. The paths you+    --     provide need to be relative to the mount point of the file system.+    --     If the mount point is @\/mnt\/fsx@ and @\/mnt\/fsx\/path1@ is a+    --     directory or file on the file system you want to export, then the+    --     path to provide is @path1@.+    --+    -- -   For import tasks, the list contains paths in the Amazon S3 bucket+    --     from which POSIX metadata changes are imported to the Amazon FSx+    --     file system. The path can be an S3 bucket or prefix in the format+    --     @s3:\/\/myBucket\/myPrefix@ (where @myPrefix@ is optional).+    paths :: Prelude.Maybe [Prelude.Text],+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | Specifies the type of data repository task to create.+    type' :: DataRepositoryTaskType,+    fileSystemId :: Prelude.Text,+    -- | Defines whether or not Amazon FSx provides a CompletionReport once the+    -- task has completed. A CompletionReport provides a detailed report on the+    -- files that Amazon FSx processed that meet the criteria specified by the+    -- @Scope@ parameter. For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/task-completion-report.html Working with Task Completion Reports>.+    report :: CompletionReport+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataRepositoryTask' 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:+--+-- 'capacityToRelease', 'createDataRepositoryTask_capacityToRelease' - Specifies the amount of data to release, in GiB, by an Amazon File Cache+-- @AUTO_RELEASE_DATA@ task that automatically releases files from the+-- cache.+--+-- 'clientRequestToken', 'createDataRepositoryTask_clientRequestToken' - Undocumented member.+--+-- 'paths', 'createDataRepositoryTask_paths' - A list of paths for the data repository task to use when the task is+-- processed. If a path that you provide isn\'t valid, the task fails.+--+-- -   For export tasks, the list contains paths on the Amazon FSx file+--     system from which the files are exported to the Amazon S3 bucket.+--     The default path is the file system root directory. The paths you+--     provide need to be relative to the mount point of the file system.+--     If the mount point is @\/mnt\/fsx@ and @\/mnt\/fsx\/path1@ is a+--     directory or file on the file system you want to export, then the+--     path to provide is @path1@.+--+-- -   For import tasks, the list contains paths in the Amazon S3 bucket+--     from which POSIX metadata changes are imported to the Amazon FSx+--     file system. The path can be an S3 bucket or prefix in the format+--     @s3:\/\/myBucket\/myPrefix@ (where @myPrefix@ is optional).+--+-- 'tags', 'createDataRepositoryTask_tags' - Undocumented member.+--+-- 'type'', 'createDataRepositoryTask_type' - Specifies the type of data repository task to create.+--+-- 'fileSystemId', 'createDataRepositoryTask_fileSystemId' - Undocumented member.+--+-- 'report', 'createDataRepositoryTask_report' - Defines whether or not Amazon FSx provides a CompletionReport once the+-- task has completed. A CompletionReport provides a detailed report on the+-- files that Amazon FSx processed that meet the criteria specified by the+-- @Scope@ parameter. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/task-completion-report.html Working with Task Completion Reports>.+newCreateDataRepositoryTask ::+  -- | 'type''+  DataRepositoryTaskType ->+  -- | 'fileSystemId'+  Prelude.Text ->+  -- | 'report'+  CompletionReport ->+  CreateDataRepositoryTask+newCreateDataRepositoryTask+  pType_+  pFileSystemId_+  pReport_ =+    CreateDataRepositoryTask'+      { capacityToRelease =+          Prelude.Nothing,+        clientRequestToken = Prelude.Nothing,+        paths = Prelude.Nothing,+        tags = Prelude.Nothing,+        type' = pType_,+        fileSystemId = pFileSystemId_,+        report = pReport_+      }++-- | Specifies the amount of data to release, in GiB, by an Amazon File Cache+-- @AUTO_RELEASE_DATA@ task that automatically releases files from the+-- cache.+createDataRepositoryTask_capacityToRelease :: Lens.Lens' CreateDataRepositoryTask (Prelude.Maybe Prelude.Natural)+createDataRepositoryTask_capacityToRelease = Lens.lens (\CreateDataRepositoryTask' {capacityToRelease} -> capacityToRelease) (\s@CreateDataRepositoryTask' {} a -> s {capacityToRelease = a} :: CreateDataRepositoryTask)++-- | Undocumented member.+createDataRepositoryTask_clientRequestToken :: Lens.Lens' CreateDataRepositoryTask (Prelude.Maybe Prelude.Text)+createDataRepositoryTask_clientRequestToken = Lens.lens (\CreateDataRepositoryTask' {clientRequestToken} -> clientRequestToken) (\s@CreateDataRepositoryTask' {} a -> s {clientRequestToken = a} :: CreateDataRepositoryTask)++-- | A list of paths for the data repository task to use when the task is+-- processed. If a path that you provide isn\'t valid, the task fails.+--+-- -   For export tasks, the list contains paths on the Amazon FSx file+--     system from which the files are exported to the Amazon S3 bucket.+--     The default path is the file system root directory. The paths you+--     provide need to be relative to the mount point of the file system.+--     If the mount point is @\/mnt\/fsx@ and @\/mnt\/fsx\/path1@ is a+--     directory or file on the file system you want to export, then the+--     path to provide is @path1@.+--+-- -   For import tasks, the list contains paths in the Amazon S3 bucket+--     from which POSIX metadata changes are imported to the Amazon FSx+--     file system. The path can be an S3 bucket or prefix in the format+--     @s3:\/\/myBucket\/myPrefix@ (where @myPrefix@ is optional).+createDataRepositoryTask_paths :: Lens.Lens' CreateDataRepositoryTask (Prelude.Maybe [Prelude.Text])+createDataRepositoryTask_paths = Lens.lens (\CreateDataRepositoryTask' {paths} -> paths) (\s@CreateDataRepositoryTask' {} a -> s {paths = a} :: CreateDataRepositoryTask) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createDataRepositoryTask_tags :: Lens.Lens' CreateDataRepositoryTask (Prelude.Maybe (Prelude.NonEmpty Tag))+createDataRepositoryTask_tags = Lens.lens (\CreateDataRepositoryTask' {tags} -> tags) (\s@CreateDataRepositoryTask' {} a -> s {tags = a} :: CreateDataRepositoryTask) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the type of data repository task to create.+createDataRepositoryTask_type :: Lens.Lens' CreateDataRepositoryTask DataRepositoryTaskType+createDataRepositoryTask_type = Lens.lens (\CreateDataRepositoryTask' {type'} -> type') (\s@CreateDataRepositoryTask' {} a -> s {type' = a} :: CreateDataRepositoryTask)++-- | Undocumented member.+createDataRepositoryTask_fileSystemId :: Lens.Lens' CreateDataRepositoryTask Prelude.Text+createDataRepositoryTask_fileSystemId = Lens.lens (\CreateDataRepositoryTask' {fileSystemId} -> fileSystemId) (\s@CreateDataRepositoryTask' {} a -> s {fileSystemId = a} :: CreateDataRepositoryTask)++-- | Defines whether or not Amazon FSx provides a CompletionReport once the+-- task has completed. A CompletionReport provides a detailed report on the+-- files that Amazon FSx processed that meet the criteria specified by the+-- @Scope@ parameter. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/task-completion-report.html Working with Task Completion Reports>.+createDataRepositoryTask_report :: Lens.Lens' CreateDataRepositoryTask CompletionReport+createDataRepositoryTask_report = Lens.lens (\CreateDataRepositoryTask' {report} -> report) (\s@CreateDataRepositoryTask' {} a -> s {report = a} :: CreateDataRepositoryTask)++instance Core.AWSRequest CreateDataRepositoryTask where+  type+    AWSResponse CreateDataRepositoryTask =+      CreateDataRepositoryTaskResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDataRepositoryTaskResponse'+            Prelude.<$> (x Data..?> "DataRepositoryTask")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDataRepositoryTask where+  hashWithSalt _salt CreateDataRepositoryTask' {..} =+    _salt+      `Prelude.hashWithSalt` capacityToRelease+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` paths+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` report++instance Prelude.NFData CreateDataRepositoryTask where+  rnf CreateDataRepositoryTask' {..} =+    Prelude.rnf capacityToRelease+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf paths+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf report++instance Data.ToHeaders CreateDataRepositoryTask where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateDataRepositoryTask" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataRepositoryTask where+  toJSON CreateDataRepositoryTask' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CapacityToRelease" Data..=)+              Prelude.<$> capacityToRelease,+            ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("Paths" Data..=) Prelude.<$> paths,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Type" Data..= type'),+            Prelude.Just ("FileSystemId" Data..= fileSystemId),+            Prelude.Just ("Report" Data..= report)+          ]+      )++instance Data.ToPath CreateDataRepositoryTask where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDataRepositoryTask where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDataRepositoryTaskResponse' smart constructor.+data CreateDataRepositoryTaskResponse = CreateDataRepositoryTaskResponse'+  { -- | The description of the data repository task that you just created.+    dataRepositoryTask :: Prelude.Maybe DataRepositoryTask,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataRepositoryTaskResponse' 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:+--+-- 'dataRepositoryTask', 'createDataRepositoryTaskResponse_dataRepositoryTask' - The description of the data repository task that you just created.+--+-- 'httpStatus', 'createDataRepositoryTaskResponse_httpStatus' - The response's http status code.+newCreateDataRepositoryTaskResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDataRepositoryTaskResponse+newCreateDataRepositoryTaskResponse pHttpStatus_ =+  CreateDataRepositoryTaskResponse'+    { dataRepositoryTask =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The description of the data repository task that you just created.+createDataRepositoryTaskResponse_dataRepositoryTask :: Lens.Lens' CreateDataRepositoryTaskResponse (Prelude.Maybe DataRepositoryTask)+createDataRepositoryTaskResponse_dataRepositoryTask = Lens.lens (\CreateDataRepositoryTaskResponse' {dataRepositoryTask} -> dataRepositoryTask) (\s@CreateDataRepositoryTaskResponse' {} a -> s {dataRepositoryTask = a} :: CreateDataRepositoryTaskResponse)++-- | The response's http status code.+createDataRepositoryTaskResponse_httpStatus :: Lens.Lens' CreateDataRepositoryTaskResponse Prelude.Int+createDataRepositoryTaskResponse_httpStatus = Lens.lens (\CreateDataRepositoryTaskResponse' {httpStatus} -> httpStatus) (\s@CreateDataRepositoryTaskResponse' {} a -> s {httpStatus = a} :: CreateDataRepositoryTaskResponse)++instance+  Prelude.NFData+    CreateDataRepositoryTaskResponse+  where+  rnf CreateDataRepositoryTaskResponse' {..} =+    Prelude.rnf dataRepositoryTask+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateFileCache.hs view
@@ -0,0 +1,440 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateFileCache+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Amazon File Cache resource.+--+-- You can use this operation with a client request token in the request+-- that Amazon File Cache uses to ensure idempotent creation. If a cache+-- with the specified client request token exists and the parameters match,+-- @CreateFileCache@ returns the description of the existing cache. If a+-- cache with the specified client request token exists and the parameters+-- don\'t match, this call returns @IncompatibleParameterError@. If a file+-- cache with the specified client request token doesn\'t exist,+-- @CreateFileCache@ does the following:+--+-- -   Creates a new, empty Amazon File Cache resourcewith an assigned ID,+--     and an initial lifecycle state of @CREATING@.+--+-- -   Returns the description of the cache in JSON format.+--+-- The @CreateFileCache@ call returns while the cache\'s lifecycle state is+-- still @CREATING@. You can check the cache creation status by calling the+-- <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileCaches.html DescribeFileCaches>+-- operation, which returns the cache state along with other information.+module Amazonka.FSx.CreateFileCache+  ( -- * Creating a Request+    CreateFileCache (..),+    newCreateFileCache,++    -- * Request Lenses+    createFileCache_clientRequestToken,+    createFileCache_copyTagsToDataRepositoryAssociations,+    createFileCache_dataRepositoryAssociations,+    createFileCache_kmsKeyId,+    createFileCache_lustreConfiguration,+    createFileCache_securityGroupIds,+    createFileCache_tags,+    createFileCache_fileCacheType,+    createFileCache_fileCacheTypeVersion,+    createFileCache_storageCapacity,+    createFileCache_subnetIds,++    -- * Destructuring the Response+    CreateFileCacheResponse (..),+    newCreateFileCacheResponse,++    -- * Response Lenses+    createFileCacheResponse_fileCache,+    createFileCacheResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateFileCache' smart constructor.+data CreateFileCache = CreateFileCache'+  { -- | An idempotency token for resource creation, in a string of up to 64+    -- ASCII characters. This token is automatically filled on your behalf when+    -- you use the Command Line Interface (CLI) or an Amazon Web Services SDK.+    --+    -- By using the idempotent operation, you can retry a @CreateFileCache@+    -- operation without the risk of creating an extra cache. This approach can+    -- be useful when an initial call fails in a way that makes it unclear+    -- whether a cache was created. Examples are if a transport level timeout+    -- occurred, or your connection was reset. If you use the same client+    -- request token and the initial call created a cache, the client receives+    -- success as long as the parameters are the same.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A boolean flag indicating whether tags for the cache should be copied to+    -- data repository associations. This value defaults to false.+    copyTagsToDataRepositoryAssociations :: Prelude.Maybe Prelude.Bool,+    -- | A list of up to 8 configurations for data repository associations (DRAs)+    -- to be created during the cache creation. The DRAs link the cache to+    -- either an Amazon S3 data repository or a Network File System (NFS) data+    -- repository that supports the NFSv3 protocol.+    --+    -- The DRA configurations must meet the following requirements:+    --+    -- -   All configurations on the list must be of the same data repository+    --     type, either all S3 or all NFS. A cache can\'t link to different+    --     data repository types at the same time.+    --+    -- -   An NFS DRA must link to an NFS file system that supports the NFSv3+    --     protocol.+    --+    -- DRA automatic import and automatic export is not supported.+    dataRepositoryAssociations :: Prelude.Maybe [FileCacheDataRepositoryAssociation],+    -- | Specifies the ID of the Key Management Service (KMS) key to use for+    -- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+    -- specified, the Amazon FSx-managed KMS key for your account is used. For+    -- more information, see+    -- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+    -- in the /Key Management Service API Reference/.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The configuration for the Amazon File Cache resource being created.+    lustreConfiguration :: Prelude.Maybe CreateFileCacheLustreConfiguration,+    -- | A list of IDs specifying the security groups to apply to all network+    -- interfaces created for Amazon File Cache access. This list isn\'t+    -- returned in later requests to describe the cache.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The type of cache that you\'re creating, which must be @LUSTRE@.+    fileCacheType :: FileCacheType,+    -- | Sets the Lustre version for the cache that you\'re creating, which must+    -- be @2.12@.+    fileCacheTypeVersion :: Prelude.Text,+    -- | The storage capacity of the cache in gibibytes (GiB). Valid values are+    -- 1200 GiB, 2400 GiB, and increments of 2400 GiB.+    storageCapacity :: Prelude.Natural,+    subnetIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileCache' 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:+--+-- 'clientRequestToken', 'createFileCache_clientRequestToken' - An idempotency token for resource creation, in a string of up to 64+-- ASCII characters. This token is automatically filled on your behalf when+-- you use the Command Line Interface (CLI) or an Amazon Web Services SDK.+--+-- By using the idempotent operation, you can retry a @CreateFileCache@+-- operation without the risk of creating an extra cache. This approach can+-- be useful when an initial call fails in a way that makes it unclear+-- whether a cache was created. Examples are if a transport level timeout+-- occurred, or your connection was reset. If you use the same client+-- request token and the initial call created a cache, the client receives+-- success as long as the parameters are the same.+--+-- 'copyTagsToDataRepositoryAssociations', 'createFileCache_copyTagsToDataRepositoryAssociations' - A boolean flag indicating whether tags for the cache should be copied to+-- data repository associations. This value defaults to false.+--+-- 'dataRepositoryAssociations', 'createFileCache_dataRepositoryAssociations' - A list of up to 8 configurations for data repository associations (DRAs)+-- to be created during the cache creation. The DRAs link the cache to+-- either an Amazon S3 data repository or a Network File System (NFS) data+-- repository that supports the NFSv3 protocol.+--+-- The DRA configurations must meet the following requirements:+--+-- -   All configurations on the list must be of the same data repository+--     type, either all S3 or all NFS. A cache can\'t link to different+--     data repository types at the same time.+--+-- -   An NFS DRA must link to an NFS file system that supports the NFSv3+--     protocol.+--+-- DRA automatic import and automatic export is not supported.+--+-- 'kmsKeyId', 'createFileCache_kmsKeyId' - Specifies the ID of the Key Management Service (KMS) key to use for+-- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+-- specified, the Amazon FSx-managed KMS key for your account is used. For+-- more information, see+-- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+-- in the /Key Management Service API Reference/.+--+-- 'lustreConfiguration', 'createFileCache_lustreConfiguration' - The configuration for the Amazon File Cache resource being created.+--+-- 'securityGroupIds', 'createFileCache_securityGroupIds' - A list of IDs specifying the security groups to apply to all network+-- interfaces created for Amazon File Cache access. This list isn\'t+-- returned in later requests to describe the cache.+--+-- 'tags', 'createFileCache_tags' - Undocumented member.+--+-- 'fileCacheType', 'createFileCache_fileCacheType' - The type of cache that you\'re creating, which must be @LUSTRE@.+--+-- 'fileCacheTypeVersion', 'createFileCache_fileCacheTypeVersion' - Sets the Lustre version for the cache that you\'re creating, which must+-- be @2.12@.+--+-- 'storageCapacity', 'createFileCache_storageCapacity' - The storage capacity of the cache in gibibytes (GiB). Valid values are+-- 1200 GiB, 2400 GiB, and increments of 2400 GiB.+--+-- 'subnetIds', 'createFileCache_subnetIds' - Undocumented member.+newCreateFileCache ::+  -- | 'fileCacheType'+  FileCacheType ->+  -- | 'fileCacheTypeVersion'+  Prelude.Text ->+  -- | 'storageCapacity'+  Prelude.Natural ->+  CreateFileCache+newCreateFileCache+  pFileCacheType_+  pFileCacheTypeVersion_+  pStorageCapacity_ =+    CreateFileCache'+      { clientRequestToken =+          Prelude.Nothing,+        copyTagsToDataRepositoryAssociations =+          Prelude.Nothing,+        dataRepositoryAssociations = Prelude.Nothing,+        kmsKeyId = Prelude.Nothing,+        lustreConfiguration = Prelude.Nothing,+        securityGroupIds = Prelude.Nothing,+        tags = Prelude.Nothing,+        fileCacheType = pFileCacheType_,+        fileCacheTypeVersion = pFileCacheTypeVersion_,+        storageCapacity = pStorageCapacity_,+        subnetIds = Prelude.mempty+      }++-- | An idempotency token for resource creation, in a string of up to 64+-- ASCII characters. This token is automatically filled on your behalf when+-- you use the Command Line Interface (CLI) or an Amazon Web Services SDK.+--+-- By using the idempotent operation, you can retry a @CreateFileCache@+-- operation without the risk of creating an extra cache. This approach can+-- be useful when an initial call fails in a way that makes it unclear+-- whether a cache was created. Examples are if a transport level timeout+-- occurred, or your connection was reset. If you use the same client+-- request token and the initial call created a cache, the client receives+-- success as long as the parameters are the same.+createFileCache_clientRequestToken :: Lens.Lens' CreateFileCache (Prelude.Maybe Prelude.Text)+createFileCache_clientRequestToken = Lens.lens (\CreateFileCache' {clientRequestToken} -> clientRequestToken) (\s@CreateFileCache' {} a -> s {clientRequestToken = a} :: CreateFileCache)++-- | A boolean flag indicating whether tags for the cache should be copied to+-- data repository associations. This value defaults to false.+createFileCache_copyTagsToDataRepositoryAssociations :: Lens.Lens' CreateFileCache (Prelude.Maybe Prelude.Bool)+createFileCache_copyTagsToDataRepositoryAssociations = Lens.lens (\CreateFileCache' {copyTagsToDataRepositoryAssociations} -> copyTagsToDataRepositoryAssociations) (\s@CreateFileCache' {} a -> s {copyTagsToDataRepositoryAssociations = a} :: CreateFileCache)++-- | A list of up to 8 configurations for data repository associations (DRAs)+-- to be created during the cache creation. The DRAs link the cache to+-- either an Amazon S3 data repository or a Network File System (NFS) data+-- repository that supports the NFSv3 protocol.+--+-- The DRA configurations must meet the following requirements:+--+-- -   All configurations on the list must be of the same data repository+--     type, either all S3 or all NFS. A cache can\'t link to different+--     data repository types at the same time.+--+-- -   An NFS DRA must link to an NFS file system that supports the NFSv3+--     protocol.+--+-- DRA automatic import and automatic export is not supported.+createFileCache_dataRepositoryAssociations :: Lens.Lens' CreateFileCache (Prelude.Maybe [FileCacheDataRepositoryAssociation])+createFileCache_dataRepositoryAssociations = Lens.lens (\CreateFileCache' {dataRepositoryAssociations} -> dataRepositoryAssociations) (\s@CreateFileCache' {} a -> s {dataRepositoryAssociations = a} :: CreateFileCache) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the ID of the Key Management Service (KMS) key to use for+-- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+-- specified, the Amazon FSx-managed KMS key for your account is used. For+-- more information, see+-- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+-- in the /Key Management Service API Reference/.+createFileCache_kmsKeyId :: Lens.Lens' CreateFileCache (Prelude.Maybe Prelude.Text)+createFileCache_kmsKeyId = Lens.lens (\CreateFileCache' {kmsKeyId} -> kmsKeyId) (\s@CreateFileCache' {} a -> s {kmsKeyId = a} :: CreateFileCache)++-- | The configuration for the Amazon File Cache resource being created.+createFileCache_lustreConfiguration :: Lens.Lens' CreateFileCache (Prelude.Maybe CreateFileCacheLustreConfiguration)+createFileCache_lustreConfiguration = Lens.lens (\CreateFileCache' {lustreConfiguration} -> lustreConfiguration) (\s@CreateFileCache' {} a -> s {lustreConfiguration = a} :: CreateFileCache)++-- | A list of IDs specifying the security groups to apply to all network+-- interfaces created for Amazon File Cache access. This list isn\'t+-- returned in later requests to describe the cache.+createFileCache_securityGroupIds :: Lens.Lens' CreateFileCache (Prelude.Maybe [Prelude.Text])+createFileCache_securityGroupIds = Lens.lens (\CreateFileCache' {securityGroupIds} -> securityGroupIds) (\s@CreateFileCache' {} a -> s {securityGroupIds = a} :: CreateFileCache) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createFileCache_tags :: Lens.Lens' CreateFileCache (Prelude.Maybe (Prelude.NonEmpty Tag))+createFileCache_tags = Lens.lens (\CreateFileCache' {tags} -> tags) (\s@CreateFileCache' {} a -> s {tags = a} :: CreateFileCache) Prelude.. Lens.mapping Lens.coerced++-- | The type of cache that you\'re creating, which must be @LUSTRE@.+createFileCache_fileCacheType :: Lens.Lens' CreateFileCache FileCacheType+createFileCache_fileCacheType = Lens.lens (\CreateFileCache' {fileCacheType} -> fileCacheType) (\s@CreateFileCache' {} a -> s {fileCacheType = a} :: CreateFileCache)++-- | Sets the Lustre version for the cache that you\'re creating, which must+-- be @2.12@.+createFileCache_fileCacheTypeVersion :: Lens.Lens' CreateFileCache Prelude.Text+createFileCache_fileCacheTypeVersion = Lens.lens (\CreateFileCache' {fileCacheTypeVersion} -> fileCacheTypeVersion) (\s@CreateFileCache' {} a -> s {fileCacheTypeVersion = a} :: CreateFileCache)++-- | The storage capacity of the cache in gibibytes (GiB). Valid values are+-- 1200 GiB, 2400 GiB, and increments of 2400 GiB.+createFileCache_storageCapacity :: Lens.Lens' CreateFileCache Prelude.Natural+createFileCache_storageCapacity = Lens.lens (\CreateFileCache' {storageCapacity} -> storageCapacity) (\s@CreateFileCache' {} a -> s {storageCapacity = a} :: CreateFileCache)++-- | Undocumented member.+createFileCache_subnetIds :: Lens.Lens' CreateFileCache [Prelude.Text]+createFileCache_subnetIds = Lens.lens (\CreateFileCache' {subnetIds} -> subnetIds) (\s@CreateFileCache' {} a -> s {subnetIds = a} :: CreateFileCache) Prelude.. Lens.coerced++instance Core.AWSRequest CreateFileCache where+  type+    AWSResponse CreateFileCache =+      CreateFileCacheResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFileCacheResponse'+            Prelude.<$> (x Data..?> "FileCache")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateFileCache where+  hashWithSalt _salt CreateFileCache' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` copyTagsToDataRepositoryAssociations+      `Prelude.hashWithSalt` dataRepositoryAssociations+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` fileCacheType+      `Prelude.hashWithSalt` fileCacheTypeVersion+      `Prelude.hashWithSalt` storageCapacity+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData CreateFileCache where+  rnf CreateFileCache' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf copyTagsToDataRepositoryAssociations+      `Prelude.seq` Prelude.rnf dataRepositoryAssociations+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf fileCacheType+      `Prelude.seq` Prelude.rnf fileCacheTypeVersion+      `Prelude.seq` Prelude.rnf storageCapacity+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToHeaders CreateFileCache where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateFileCache" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFileCache where+  toJSON CreateFileCache' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("CopyTagsToDataRepositoryAssociations" Data..=)+              Prelude.<$> copyTagsToDataRepositoryAssociations,+            ("DataRepositoryAssociations" Data..=)+              Prelude.<$> dataRepositoryAssociations,+            ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            ("LustreConfiguration" Data..=)+              Prelude.<$> lustreConfiguration,+            ("SecurityGroupIds" Data..=)+              Prelude.<$> securityGroupIds,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("FileCacheType" Data..= fileCacheType),+            Prelude.Just+              ( "FileCacheTypeVersion"+                  Data..= fileCacheTypeVersion+              ),+            Prelude.Just+              ("StorageCapacity" Data..= storageCapacity),+            Prelude.Just ("SubnetIds" Data..= subnetIds)+          ]+      )++instance Data.ToPath CreateFileCache where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateFileCache where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateFileCacheResponse' smart constructor.+data CreateFileCacheResponse = CreateFileCacheResponse'+  { -- | A description of the cache that was created.+    fileCache :: Prelude.Maybe FileCacheCreating,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileCacheResponse' 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:+--+-- 'fileCache', 'createFileCacheResponse_fileCache' - A description of the cache that was created.+--+-- 'httpStatus', 'createFileCacheResponse_httpStatus' - The response's http status code.+newCreateFileCacheResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFileCacheResponse+newCreateFileCacheResponse pHttpStatus_ =+  CreateFileCacheResponse'+    { fileCache =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A description of the cache that was created.+createFileCacheResponse_fileCache :: Lens.Lens' CreateFileCacheResponse (Prelude.Maybe FileCacheCreating)+createFileCacheResponse_fileCache = Lens.lens (\CreateFileCacheResponse' {fileCache} -> fileCache) (\s@CreateFileCacheResponse' {} a -> s {fileCache = a} :: CreateFileCacheResponse)++-- | The response's http status code.+createFileCacheResponse_httpStatus :: Lens.Lens' CreateFileCacheResponse Prelude.Int+createFileCacheResponse_httpStatus = Lens.lens (\CreateFileCacheResponse' {httpStatus} -> httpStatus) (\s@CreateFileCacheResponse' {} a -> s {httpStatus = a} :: CreateFileCacheResponse)++instance Prelude.NFData CreateFileCacheResponse where+  rnf CreateFileCacheResponse' {..} =+    Prelude.rnf fileCache+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateFileSystem.hs view
@@ -0,0 +1,625 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateFileSystem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new, empty Amazon FSx file system. You can create the+-- following supported Amazon FSx file systems using the @CreateFileSystem@+-- API operation:+--+-- -   Amazon FSx for Lustre+--+-- -   Amazon FSx for NetApp ONTAP+--+-- -   Amazon FSx for OpenZFS+--+-- -   Amazon FSx for Windows File Server+--+-- This operation requires a client request token in the request that+-- Amazon FSx uses to ensure idempotent creation. This means that calling+-- the operation multiple times with the same client request token has no+-- effect. By using the idempotent operation, you can retry a+-- @CreateFileSystem@ operation without the risk of creating an extra file+-- system. This approach can be useful when an initial call fails in a way+-- that makes it unclear whether a file system was created. Examples are if+-- a transport level timeout occurred, or your connection was reset. If you+-- use the same client request token and the initial call created a file+-- system, the client receives success as long as the parameters are the+-- same.+--+-- If a file system with the specified client request token exists and the+-- parameters match, @CreateFileSystem@ returns the description of the+-- existing file system. If a file system with the specified client request+-- token exists and the parameters don\'t match, this call returns+-- @IncompatibleParameterError@. If a file system with the specified client+-- request token doesn\'t exist, @CreateFileSystem@ does the following:+--+-- -   Creates a new, empty Amazon FSx file system with an assigned ID, and+--     an initial lifecycle state of @CREATING@.+--+-- -   Returns the description of the file system in JSON format.+--+-- The @CreateFileSystem@ call returns while the file system\'s lifecycle+-- state is still @CREATING@. You can check the file-system creation status+-- by calling the+-- <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html DescribeFileSystems>+-- operation, which returns the file system state along with other+-- information.+module Amazonka.FSx.CreateFileSystem+  ( -- * Creating a Request+    CreateFileSystem (..),+    newCreateFileSystem,++    -- * Request Lenses+    createFileSystem_clientRequestToken,+    createFileSystem_fileSystemTypeVersion,+    createFileSystem_kmsKeyId,+    createFileSystem_lustreConfiguration,+    createFileSystem_ontapConfiguration,+    createFileSystem_openZFSConfiguration,+    createFileSystem_securityGroupIds,+    createFileSystem_storageType,+    createFileSystem_tags,+    createFileSystem_windowsConfiguration,+    createFileSystem_fileSystemType,+    createFileSystem_storageCapacity,+    createFileSystem_subnetIds,++    -- * Destructuring the Response+    CreateFileSystemResponse (..),+    newCreateFileSystemResponse,++    -- * Response Lenses+    createFileSystemResponse_fileSystem,+    createFileSystemResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object used to create a new Amazon FSx file system.+--+-- /See:/ 'newCreateFileSystem' smart constructor.+data CreateFileSystem = CreateFileSystem'+  { -- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+    -- idempotent creation. This string is automatically filled on your behalf+    -- when you use the Command Line Interface (CLI) or an Amazon Web Services+    -- SDK.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | (Optional) For FSx for Lustre file systems, sets the Lustre version for+    -- the file system that you\'re creating. Valid values are @2.10@ and+    -- @2.12@:+    --+    -- -   2.10 is supported by the Scratch and Persistent_1 Lustre deployment+    --     types.+    --+    -- -   2.12 is supported by all Lustre deployment types. @2.12@ is required+    --     when setting FSx for Lustre @DeploymentType@ to @PERSISTENT_2@.+    --+    -- Default value = @2.10@, except when @DeploymentType@ is set to+    -- @PERSISTENT_2@, then the default is @2.12@.+    --+    -- If you set @FileSystemTypeVersion@ to @2.10@ for a @PERSISTENT_2@ Lustre+    -- deployment type, the @CreateFileSystem@ operation fails.+    fileSystemTypeVersion :: Prelude.Maybe Prelude.Text,+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    lustreConfiguration :: Prelude.Maybe CreateFileSystemLustreConfiguration,+    ontapConfiguration :: Prelude.Maybe CreateFileSystemOntapConfiguration,+    -- | The OpenZFS configuration for the file system that\'s being created.+    openZFSConfiguration :: Prelude.Maybe CreateFileSystemOpenZFSConfiguration,+    -- | A list of IDs specifying the security groups to apply to all network+    -- interfaces created for file system access. This list isn\'t returned in+    -- later requests to describe the file system.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | Sets the storage type for the file system that you\'re creating. Valid+    -- values are @SSD@ and @HDD@.+    --+    -- -   Set to @SSD@ to use solid state drive storage. SSD is supported on+    --     all Windows, Lustre, ONTAP, and OpenZFS deployment types.+    --+    -- -   Set to @HDD@ to use hard disk drive storage. HDD is supported on+    --     @SINGLE_AZ_2@ and @MULTI_AZ_1@ Windows file system deployment types,+    --     and on @PERSISTENT_1@ Lustre file system deployment types.+    --+    -- Default value is @SSD@. For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options Storage type options>+    -- in the /FSx for Windows File Server User Guide/ and+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options Multiple storage options>+    -- in the /FSx for Lustre User Guide/.+    storageType :: Prelude.Maybe StorageType,+    -- | The tags to apply to the file system that\'s being created. The key+    -- value of the @Name@ tag appears in the console as the file system name.+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The Microsoft Windows configuration for the file system that\'s being+    -- created.+    windowsConfiguration :: Prelude.Maybe CreateFileSystemWindowsConfiguration,+    -- | The type of Amazon FSx file system to create. Valid values are+    -- @WINDOWS@, @LUSTRE@, @ONTAP@, and @OPENZFS@.+    fileSystemType :: FileSystemType,+    -- | Sets the storage capacity of the file system that you\'re creating, in+    -- gibibytes (GiB).+    --+    -- __FSx for Lustre file systems__ - The amount of storage capacity that+    -- you can configure depends on the value that you set for @StorageType@+    -- and the Lustre @DeploymentType@, as follows:+    --+    -- -   For @SCRATCH_2@, @PERSISTENT_2@ and @PERSISTENT_1@ deployment types+    --     using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and+    --     increments of 2400 GiB.+    --+    -- -   For @PERSISTENT_1@ HDD file systems, valid values are increments of+    --     6000 GiB for 12 MB\/s\/TiB file systems and increments of 1800 GiB+    --     for 40 MB\/s\/TiB file systems.+    --+    -- -   For @SCRATCH_1@ deployment type, valid values are 1200 GiB, 2400+    --     GiB, and increments of 3600 GiB.+    --+    -- __FSx for ONTAP file systems__ - The amount of storage capacity that you+    -- can configure is from 1024 GiB up to 196,608 GiB (192 TiB).+    --+    -- __FSx for OpenZFS file systems__ - The amount of storage capacity that+    -- you can configure is from 64 GiB up to 524,288 GiB (512 TiB).+    --+    -- __FSx for Windows File Server file systems__ - The amount of storage+    -- capacity that you can configure depends on the value that you set for+    -- @StorageType@ as follows:+    --+    -- -   For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).+    --+    -- -   For HDD storage, valid values are 2000 GiB-65,536 GiB (64 TiB).+    storageCapacity :: Prelude.Natural,+    -- | Specifies the IDs of the subnets that the file system will be accessible+    -- from. For Windows and ONTAP @MULTI_AZ_1@ deployment types,provide+    -- exactly two subnet IDs, one for the preferred file server and one for+    -- the standby file server. You specify one of these subnets as the+    -- preferred subnet using the @WindowsConfiguration > PreferredSubnetID@ or+    -- @OntapConfiguration > PreferredSubnetID@ properties. For more+    -- information about Multi-AZ file system configuration, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Availability and durability: Single-AZ and Multi-AZ file systems>+    -- in the /Amazon FSx for Windows User Guide/ and+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html Availability and durability>+    -- in the /Amazon FSx for ONTAP User Guide/.+    --+    -- For Windows @SINGLE_AZ_1@ and @SINGLE_AZ_2@ and all Lustre deployment+    -- types, provide exactly one subnet ID. The file server is launched in+    -- that subnet\'s Availability Zone.+    subnetIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileSystem' 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:+--+-- 'clientRequestToken', 'createFileSystem_clientRequestToken' - A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent creation. This string is automatically filled on your behalf+-- when you use the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+--+-- 'fileSystemTypeVersion', 'createFileSystem_fileSystemTypeVersion' - (Optional) For FSx for Lustre file systems, sets the Lustre version for+-- the file system that you\'re creating. Valid values are @2.10@ and+-- @2.12@:+--+-- -   2.10 is supported by the Scratch and Persistent_1 Lustre deployment+--     types.+--+-- -   2.12 is supported by all Lustre deployment types. @2.12@ is required+--     when setting FSx for Lustre @DeploymentType@ to @PERSISTENT_2@.+--+-- Default value = @2.10@, except when @DeploymentType@ is set to+-- @PERSISTENT_2@, then the default is @2.12@.+--+-- If you set @FileSystemTypeVersion@ to @2.10@ for a @PERSISTENT_2@ Lustre+-- deployment type, the @CreateFileSystem@ operation fails.+--+-- 'kmsKeyId', 'createFileSystem_kmsKeyId' - Undocumented member.+--+-- 'lustreConfiguration', 'createFileSystem_lustreConfiguration' - Undocumented member.+--+-- 'ontapConfiguration', 'createFileSystem_ontapConfiguration' - Undocumented member.+--+-- 'openZFSConfiguration', 'createFileSystem_openZFSConfiguration' - The OpenZFS configuration for the file system that\'s being created.+--+-- 'securityGroupIds', 'createFileSystem_securityGroupIds' - A list of IDs specifying the security groups to apply to all network+-- interfaces created for file system access. This list isn\'t returned in+-- later requests to describe the file system.+--+-- 'storageType', 'createFileSystem_storageType' - Sets the storage type for the file system that you\'re creating. Valid+-- values are @SSD@ and @HDD@.+--+-- -   Set to @SSD@ to use solid state drive storage. SSD is supported on+--     all Windows, Lustre, ONTAP, and OpenZFS deployment types.+--+-- -   Set to @HDD@ to use hard disk drive storage. HDD is supported on+--     @SINGLE_AZ_2@ and @MULTI_AZ_1@ Windows file system deployment types,+--     and on @PERSISTENT_1@ Lustre file system deployment types.+--+-- Default value is @SSD@. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options Storage type options>+-- in the /FSx for Windows File Server User Guide/ and+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options Multiple storage options>+-- in the /FSx for Lustre User Guide/.+--+-- 'tags', 'createFileSystem_tags' - The tags to apply to the file system that\'s being created. The key+-- value of the @Name@ tag appears in the console as the file system name.+--+-- 'windowsConfiguration', 'createFileSystem_windowsConfiguration' - The Microsoft Windows configuration for the file system that\'s being+-- created.+--+-- 'fileSystemType', 'createFileSystem_fileSystemType' - The type of Amazon FSx file system to create. Valid values are+-- @WINDOWS@, @LUSTRE@, @ONTAP@, and @OPENZFS@.+--+-- 'storageCapacity', 'createFileSystem_storageCapacity' - Sets the storage capacity of the file system that you\'re creating, in+-- gibibytes (GiB).+--+-- __FSx for Lustre file systems__ - The amount of storage capacity that+-- you can configure depends on the value that you set for @StorageType@+-- and the Lustre @DeploymentType@, as follows:+--+-- -   For @SCRATCH_2@, @PERSISTENT_2@ and @PERSISTENT_1@ deployment types+--     using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and+--     increments of 2400 GiB.+--+-- -   For @PERSISTENT_1@ HDD file systems, valid values are increments of+--     6000 GiB for 12 MB\/s\/TiB file systems and increments of 1800 GiB+--     for 40 MB\/s\/TiB file systems.+--+-- -   For @SCRATCH_1@ deployment type, valid values are 1200 GiB, 2400+--     GiB, and increments of 3600 GiB.+--+-- __FSx for ONTAP file systems__ - The amount of storage capacity that you+-- can configure is from 1024 GiB up to 196,608 GiB (192 TiB).+--+-- __FSx for OpenZFS file systems__ - The amount of storage capacity that+-- you can configure is from 64 GiB up to 524,288 GiB (512 TiB).+--+-- __FSx for Windows File Server file systems__ - The amount of storage+-- capacity that you can configure depends on the value that you set for+-- @StorageType@ as follows:+--+-- -   For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).+--+-- -   For HDD storage, valid values are 2000 GiB-65,536 GiB (64 TiB).+--+-- 'subnetIds', 'createFileSystem_subnetIds' - Specifies the IDs of the subnets that the file system will be accessible+-- from. For Windows and ONTAP @MULTI_AZ_1@ deployment types,provide+-- exactly two subnet IDs, one for the preferred file server and one for+-- the standby file server. You specify one of these subnets as the+-- preferred subnet using the @WindowsConfiguration > PreferredSubnetID@ or+-- @OntapConfiguration > PreferredSubnetID@ properties. For more+-- information about Multi-AZ file system configuration, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Availability and durability: Single-AZ and Multi-AZ file systems>+-- in the /Amazon FSx for Windows User Guide/ and+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html Availability and durability>+-- in the /Amazon FSx for ONTAP User Guide/.+--+-- For Windows @SINGLE_AZ_1@ and @SINGLE_AZ_2@ and all Lustre deployment+-- types, provide exactly one subnet ID. The file server is launched in+-- that subnet\'s Availability Zone.+newCreateFileSystem ::+  -- | 'fileSystemType'+  FileSystemType ->+  -- | 'storageCapacity'+  Prelude.Natural ->+  CreateFileSystem+newCreateFileSystem+  pFileSystemType_+  pStorageCapacity_ =+    CreateFileSystem'+      { clientRequestToken =+          Prelude.Nothing,+        fileSystemTypeVersion = Prelude.Nothing,+        kmsKeyId = Prelude.Nothing,+        lustreConfiguration = Prelude.Nothing,+        ontapConfiguration = Prelude.Nothing,+        openZFSConfiguration = Prelude.Nothing,+        securityGroupIds = Prelude.Nothing,+        storageType = Prelude.Nothing,+        tags = Prelude.Nothing,+        windowsConfiguration = Prelude.Nothing,+        fileSystemType = pFileSystemType_,+        storageCapacity = pStorageCapacity_,+        subnetIds = Prelude.mempty+      }++-- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent creation. This string is automatically filled on your behalf+-- when you use the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+createFileSystem_clientRequestToken :: Lens.Lens' CreateFileSystem (Prelude.Maybe Prelude.Text)+createFileSystem_clientRequestToken = Lens.lens (\CreateFileSystem' {clientRequestToken} -> clientRequestToken) (\s@CreateFileSystem' {} a -> s {clientRequestToken = a} :: CreateFileSystem)++-- | (Optional) For FSx for Lustre file systems, sets the Lustre version for+-- the file system that you\'re creating. Valid values are @2.10@ and+-- @2.12@:+--+-- -   2.10 is supported by the Scratch and Persistent_1 Lustre deployment+--     types.+--+-- -   2.12 is supported by all Lustre deployment types. @2.12@ is required+--     when setting FSx for Lustre @DeploymentType@ to @PERSISTENT_2@.+--+-- Default value = @2.10@, except when @DeploymentType@ is set to+-- @PERSISTENT_2@, then the default is @2.12@.+--+-- If you set @FileSystemTypeVersion@ to @2.10@ for a @PERSISTENT_2@ Lustre+-- deployment type, the @CreateFileSystem@ operation fails.+createFileSystem_fileSystemTypeVersion :: Lens.Lens' CreateFileSystem (Prelude.Maybe Prelude.Text)+createFileSystem_fileSystemTypeVersion = Lens.lens (\CreateFileSystem' {fileSystemTypeVersion} -> fileSystemTypeVersion) (\s@CreateFileSystem' {} a -> s {fileSystemTypeVersion = a} :: CreateFileSystem)++-- | Undocumented member.+createFileSystem_kmsKeyId :: Lens.Lens' CreateFileSystem (Prelude.Maybe Prelude.Text)+createFileSystem_kmsKeyId = Lens.lens (\CreateFileSystem' {kmsKeyId} -> kmsKeyId) (\s@CreateFileSystem' {} a -> s {kmsKeyId = a} :: CreateFileSystem)++-- | Undocumented member.+createFileSystem_lustreConfiguration :: Lens.Lens' CreateFileSystem (Prelude.Maybe CreateFileSystemLustreConfiguration)+createFileSystem_lustreConfiguration = Lens.lens (\CreateFileSystem' {lustreConfiguration} -> lustreConfiguration) (\s@CreateFileSystem' {} a -> s {lustreConfiguration = a} :: CreateFileSystem)++-- | Undocumented member.+createFileSystem_ontapConfiguration :: Lens.Lens' CreateFileSystem (Prelude.Maybe CreateFileSystemOntapConfiguration)+createFileSystem_ontapConfiguration = Lens.lens (\CreateFileSystem' {ontapConfiguration} -> ontapConfiguration) (\s@CreateFileSystem' {} a -> s {ontapConfiguration = a} :: CreateFileSystem)++-- | The OpenZFS configuration for the file system that\'s being created.+createFileSystem_openZFSConfiguration :: Lens.Lens' CreateFileSystem (Prelude.Maybe CreateFileSystemOpenZFSConfiguration)+createFileSystem_openZFSConfiguration = Lens.lens (\CreateFileSystem' {openZFSConfiguration} -> openZFSConfiguration) (\s@CreateFileSystem' {} a -> s {openZFSConfiguration = a} :: CreateFileSystem)++-- | A list of IDs specifying the security groups to apply to all network+-- interfaces created for file system access. This list isn\'t returned in+-- later requests to describe the file system.+createFileSystem_securityGroupIds :: Lens.Lens' CreateFileSystem (Prelude.Maybe [Prelude.Text])+createFileSystem_securityGroupIds = Lens.lens (\CreateFileSystem' {securityGroupIds} -> securityGroupIds) (\s@CreateFileSystem' {} a -> s {securityGroupIds = a} :: CreateFileSystem) Prelude.. Lens.mapping Lens.coerced++-- | Sets the storage type for the file system that you\'re creating. Valid+-- values are @SSD@ and @HDD@.+--+-- -   Set to @SSD@ to use solid state drive storage. SSD is supported on+--     all Windows, Lustre, ONTAP, and OpenZFS deployment types.+--+-- -   Set to @HDD@ to use hard disk drive storage. HDD is supported on+--     @SINGLE_AZ_2@ and @MULTI_AZ_1@ Windows file system deployment types,+--     and on @PERSISTENT_1@ Lustre file system deployment types.+--+-- Default value is @SSD@. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/optimize-fsx-costs.html#storage-type-options Storage type options>+-- in the /FSx for Windows File Server User Guide/ and+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html#storage-options Multiple storage options>+-- in the /FSx for Lustre User Guide/.+createFileSystem_storageType :: Lens.Lens' CreateFileSystem (Prelude.Maybe StorageType)+createFileSystem_storageType = Lens.lens (\CreateFileSystem' {storageType} -> storageType) (\s@CreateFileSystem' {} a -> s {storageType = a} :: CreateFileSystem)++-- | The tags to apply to the file system that\'s being created. The key+-- value of the @Name@ tag appears in the console as the file system name.+createFileSystem_tags :: Lens.Lens' CreateFileSystem (Prelude.Maybe (Prelude.NonEmpty Tag))+createFileSystem_tags = Lens.lens (\CreateFileSystem' {tags} -> tags) (\s@CreateFileSystem' {} a -> s {tags = a} :: CreateFileSystem) Prelude.. Lens.mapping Lens.coerced++-- | The Microsoft Windows configuration for the file system that\'s being+-- created.+createFileSystem_windowsConfiguration :: Lens.Lens' CreateFileSystem (Prelude.Maybe CreateFileSystemWindowsConfiguration)+createFileSystem_windowsConfiguration = Lens.lens (\CreateFileSystem' {windowsConfiguration} -> windowsConfiguration) (\s@CreateFileSystem' {} a -> s {windowsConfiguration = a} :: CreateFileSystem)++-- | The type of Amazon FSx file system to create. Valid values are+-- @WINDOWS@, @LUSTRE@, @ONTAP@, and @OPENZFS@.+createFileSystem_fileSystemType :: Lens.Lens' CreateFileSystem FileSystemType+createFileSystem_fileSystemType = Lens.lens (\CreateFileSystem' {fileSystemType} -> fileSystemType) (\s@CreateFileSystem' {} a -> s {fileSystemType = a} :: CreateFileSystem)++-- | Sets the storage capacity of the file system that you\'re creating, in+-- gibibytes (GiB).+--+-- __FSx for Lustre file systems__ - The amount of storage capacity that+-- you can configure depends on the value that you set for @StorageType@+-- and the Lustre @DeploymentType@, as follows:+--+-- -   For @SCRATCH_2@, @PERSISTENT_2@ and @PERSISTENT_1@ deployment types+--     using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and+--     increments of 2400 GiB.+--+-- -   For @PERSISTENT_1@ HDD file systems, valid values are increments of+--     6000 GiB for 12 MB\/s\/TiB file systems and increments of 1800 GiB+--     for 40 MB\/s\/TiB file systems.+--+-- -   For @SCRATCH_1@ deployment type, valid values are 1200 GiB, 2400+--     GiB, and increments of 3600 GiB.+--+-- __FSx for ONTAP file systems__ - The amount of storage capacity that you+-- can configure is from 1024 GiB up to 196,608 GiB (192 TiB).+--+-- __FSx for OpenZFS file systems__ - The amount of storage capacity that+-- you can configure is from 64 GiB up to 524,288 GiB (512 TiB).+--+-- __FSx for Windows File Server file systems__ - The amount of storage+-- capacity that you can configure depends on the value that you set for+-- @StorageType@ as follows:+--+-- -   For SSD storage, valid values are 32 GiB-65,536 GiB (64 TiB).+--+-- -   For HDD storage, valid values are 2000 GiB-65,536 GiB (64 TiB).+createFileSystem_storageCapacity :: Lens.Lens' CreateFileSystem Prelude.Natural+createFileSystem_storageCapacity = Lens.lens (\CreateFileSystem' {storageCapacity} -> storageCapacity) (\s@CreateFileSystem' {} a -> s {storageCapacity = a} :: CreateFileSystem)++-- | Specifies the IDs of the subnets that the file system will be accessible+-- from. For Windows and ONTAP @MULTI_AZ_1@ deployment types,provide+-- exactly two subnet IDs, one for the preferred file server and one for+-- the standby file server. You specify one of these subnets as the+-- preferred subnet using the @WindowsConfiguration > PreferredSubnetID@ or+-- @OntapConfiguration > PreferredSubnetID@ properties. For more+-- information about Multi-AZ file system configuration, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Availability and durability: Single-AZ and Multi-AZ file systems>+-- in the /Amazon FSx for Windows User Guide/ and+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html Availability and durability>+-- in the /Amazon FSx for ONTAP User Guide/.+--+-- For Windows @SINGLE_AZ_1@ and @SINGLE_AZ_2@ and all Lustre deployment+-- types, provide exactly one subnet ID. The file server is launched in+-- that subnet\'s Availability Zone.+createFileSystem_subnetIds :: Lens.Lens' CreateFileSystem [Prelude.Text]+createFileSystem_subnetIds = Lens.lens (\CreateFileSystem' {subnetIds} -> subnetIds) (\s@CreateFileSystem' {} a -> s {subnetIds = a} :: CreateFileSystem) Prelude.. Lens.coerced++instance Core.AWSRequest CreateFileSystem where+  type+    AWSResponse CreateFileSystem =+      CreateFileSystemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFileSystemResponse'+            Prelude.<$> (x Data..?> "FileSystem")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateFileSystem where+  hashWithSalt _salt CreateFileSystem' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` fileSystemTypeVersion+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` ontapConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` storageType+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` windowsConfiguration+      `Prelude.hashWithSalt` fileSystemType+      `Prelude.hashWithSalt` storageCapacity+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData CreateFileSystem where+  rnf CreateFileSystem' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileSystemTypeVersion+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf ontapConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf storageType+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf windowsConfiguration+      `Prelude.seq` Prelude.rnf fileSystemType+      `Prelude.seq` Prelude.rnf storageCapacity+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToHeaders CreateFileSystem where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateFileSystem" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFileSystem where+  toJSON CreateFileSystem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("FileSystemTypeVersion" Data..=)+              Prelude.<$> fileSystemTypeVersion,+            ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            ("LustreConfiguration" Data..=)+              Prelude.<$> lustreConfiguration,+            ("OntapConfiguration" Data..=)+              Prelude.<$> ontapConfiguration,+            ("OpenZFSConfiguration" Data..=)+              Prelude.<$> openZFSConfiguration,+            ("SecurityGroupIds" Data..=)+              Prelude.<$> securityGroupIds,+            ("StorageType" Data..=) Prelude.<$> storageType,+            ("Tags" Data..=) Prelude.<$> tags,+            ("WindowsConfiguration" Data..=)+              Prelude.<$> windowsConfiguration,+            Prelude.Just+              ("FileSystemType" Data..= fileSystemType),+            Prelude.Just+              ("StorageCapacity" Data..= storageCapacity),+            Prelude.Just ("SubnetIds" Data..= subnetIds)+          ]+      )++instance Data.ToPath CreateFileSystem where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateFileSystem where+  toQuery = Prelude.const Prelude.mempty++-- | The response object returned after the file system is created.+--+-- /See:/ 'newCreateFileSystemResponse' smart constructor.+data CreateFileSystemResponse = CreateFileSystemResponse'+  { -- | The configuration of the file system that was created.+    fileSystem :: Prelude.Maybe FileSystem,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileSystemResponse' 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:+--+-- 'fileSystem', 'createFileSystemResponse_fileSystem' - The configuration of the file system that was created.+--+-- 'httpStatus', 'createFileSystemResponse_httpStatus' - The response's http status code.+newCreateFileSystemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFileSystemResponse+newCreateFileSystemResponse pHttpStatus_ =+  CreateFileSystemResponse'+    { fileSystem =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The configuration of the file system that was created.+createFileSystemResponse_fileSystem :: Lens.Lens' CreateFileSystemResponse (Prelude.Maybe FileSystem)+createFileSystemResponse_fileSystem = Lens.lens (\CreateFileSystemResponse' {fileSystem} -> fileSystem) (\s@CreateFileSystemResponse' {} a -> s {fileSystem = a} :: CreateFileSystemResponse)++-- | The response's http status code.+createFileSystemResponse_httpStatus :: Lens.Lens' CreateFileSystemResponse Prelude.Int+createFileSystemResponse_httpStatus = Lens.lens (\CreateFileSystemResponse' {httpStatus} -> httpStatus) (\s@CreateFileSystemResponse' {} a -> s {httpStatus = a} :: CreateFileSystemResponse)++instance Prelude.NFData CreateFileSystemResponse where+  rnf CreateFileSystemResponse' {..} =+    Prelude.rnf fileSystem+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateFileSystemFromBackup.hs view
@@ -0,0 +1,507 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateFileSystemFromBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Amazon FSx for Lustre, Amazon FSx for Windows File Server,+-- or Amazon FSx for OpenZFS file system from an existing Amazon FSx+-- backup.+--+-- If a file system with the specified client request token exists and the+-- parameters match, this operation returns the description of the file+-- system. If a file system with the specified client request token exists+-- but the parameters don\'t match, this call returns+-- @IncompatibleParameterError@. If a file system with the specified client+-- request token doesn\'t exist, this operation does the following:+--+-- -   Creates a new Amazon FSx file system from backup with an assigned+--     ID, and an initial lifecycle state of @CREATING@.+--+-- -   Returns the description of the file system.+--+-- Parameters like the Active Directory, default share name, automatic+-- backup, and backup settings default to the parameters of the file system+-- that was backed up, unless overridden. You can explicitly supply other+-- settings.+--+-- By using the idempotent operation, you can retry a+-- @CreateFileSystemFromBackup@ call without the risk of creating an extra+-- file system. This approach can be useful when an initial call fails in a+-- way that makes it unclear whether a file system was created. Examples+-- are if a transport level timeout occurred, or your connection was reset.+-- If you use the same client request token and the initial call created a+-- file system, the client receives a success message as long as the+-- parameters are the same.+--+-- The @CreateFileSystemFromBackup@ call returns while the file system\'s+-- lifecycle state is still @CREATING@. You can check the file-system+-- creation status by calling the+-- <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html DescribeFileSystems>+-- operation, which returns the file system state along with other+-- information.+module Amazonka.FSx.CreateFileSystemFromBackup+  ( -- * Creating a Request+    CreateFileSystemFromBackup (..),+    newCreateFileSystemFromBackup,++    -- * Request Lenses+    createFileSystemFromBackup_clientRequestToken,+    createFileSystemFromBackup_fileSystemTypeVersion,+    createFileSystemFromBackup_kmsKeyId,+    createFileSystemFromBackup_lustreConfiguration,+    createFileSystemFromBackup_openZFSConfiguration,+    createFileSystemFromBackup_securityGroupIds,+    createFileSystemFromBackup_storageCapacity,+    createFileSystemFromBackup_storageType,+    createFileSystemFromBackup_tags,+    createFileSystemFromBackup_windowsConfiguration,+    createFileSystemFromBackup_backupId,+    createFileSystemFromBackup_subnetIds,++    -- * Destructuring the Response+    CreateFileSystemFromBackupResponse (..),+    newCreateFileSystemFromBackupResponse,++    -- * Response Lenses+    createFileSystemFromBackupResponse_fileSystem,+    createFileSystemFromBackupResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for the @CreateFileSystemFromBackup@ operation.+--+-- /See:/ 'newCreateFileSystemFromBackup' smart constructor.+data CreateFileSystemFromBackup = CreateFileSystemFromBackup'+  { -- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+    -- idempotent creation. This string is automatically filled on your behalf+    -- when you use the Command Line Interface (CLI) or an Amazon Web Services+    -- SDK.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Sets the version for the Amazon FSx for Lustre file system that you\'re+    -- creating from a backup. Valid values are @2.10@ and @2.12@.+    --+    -- You don\'t need to specify @FileSystemTypeVersion@ because it will be+    -- applied using the backup\'s @FileSystemTypeVersion@ setting. If you+    -- choose to specify @FileSystemTypeVersion@ when creating from backup, the+    -- value must match the backup\'s @FileSystemTypeVersion@ setting.+    fileSystemTypeVersion :: Prelude.Maybe Prelude.Text,+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    lustreConfiguration :: Prelude.Maybe CreateFileSystemLustreConfiguration,+    -- | The OpenZFS configuration for the file system that\'s being created.+    openZFSConfiguration :: Prelude.Maybe CreateFileSystemOpenZFSConfiguration,+    -- | A list of IDs for the security groups that apply to the specified+    -- network interfaces created for file system access. These security groups+    -- apply to all network interfaces. This value isn\'t returned in later+    -- @DescribeFileSystem@ requests.+    securityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | Sets the storage capacity of the OpenZFS file system that you\'re+    -- creating from a backup, in gibibytes (GiB). Valid values are from 64 GiB+    -- up to 524,288 GiB (512 TiB). However, the value that you specify must be+    -- equal to or greater than the backup\'s storage capacity value. If you+    -- don\'t use the @StorageCapacity@ parameter, the default is the backup\'s+    -- @StorageCapacity@ value.+    --+    -- If used to create a file system other than OpenZFS, you must provide a+    -- value that matches the backup\'s @StorageCapacity@ value. If you provide+    -- any other value, Amazon FSx responds with a 400 Bad Request.+    storageCapacity :: Prelude.Maybe Prelude.Natural,+    -- | Sets the storage type for the Windows or OpenZFS file system that+    -- you\'re creating from a backup. Valid values are @SSD@ and @HDD@.+    --+    -- -   Set to @SSD@ to use solid state drive storage. SSD is supported on+    --     all Windows and OpenZFS deployment types.+    --+    -- -   Set to @HDD@ to use hard disk drive storage. HDD is supported on+    --     @SINGLE_AZ_2@ and @MULTI_AZ_1@ FSx for Windows File Server file+    --     system deployment types.+    --+    -- The default value is @SSD@.+    --+    -- HDD and SSD storage types have different minimum storage capacity+    -- requirements. A restored file system\'s storage capacity is tied to the+    -- file system that was backed up. You can create a file system that uses+    -- HDD storage from a backup of a file system that used SSD storage if the+    -- original SSD file system had a storage capacity of at least 2000 GiB.+    storageType :: Prelude.Maybe StorageType,+    -- | The tags to be applied to the file system at file system creation. The+    -- key value of the @Name@ tag appears in the console as the file system+    -- name.+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The configuration for this Microsoft Windows file system.+    windowsConfiguration :: Prelude.Maybe CreateFileSystemWindowsConfiguration,+    backupId :: Prelude.Text,+    -- | Specifies the IDs of the subnets that the file system will be accessible+    -- from. For Windows @MULTI_AZ_1@ file system deployment types, provide+    -- exactly two subnet IDs, one for the preferred file server and one for+    -- the standby file server. You specify one of these subnets as the+    -- preferred subnet using the @WindowsConfiguration > PreferredSubnetID@+    -- property.+    --+    -- Windows @SINGLE_AZ_1@ and @SINGLE_AZ_2@ file system deployment types,+    -- Lustre file systems, and OpenZFS file systems provide exactly one subnet+    -- ID. The file server is launched in that subnet\'s Availability Zone.+    subnetIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileSystemFromBackup' 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:+--+-- 'clientRequestToken', 'createFileSystemFromBackup_clientRequestToken' - A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent creation. This string is automatically filled on your behalf+-- when you use the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+--+-- 'fileSystemTypeVersion', 'createFileSystemFromBackup_fileSystemTypeVersion' - Sets the version for the Amazon FSx for Lustre file system that you\'re+-- creating from a backup. Valid values are @2.10@ and @2.12@.+--+-- You don\'t need to specify @FileSystemTypeVersion@ because it will be+-- applied using the backup\'s @FileSystemTypeVersion@ setting. If you+-- choose to specify @FileSystemTypeVersion@ when creating from backup, the+-- value must match the backup\'s @FileSystemTypeVersion@ setting.+--+-- 'kmsKeyId', 'createFileSystemFromBackup_kmsKeyId' - Undocumented member.+--+-- 'lustreConfiguration', 'createFileSystemFromBackup_lustreConfiguration' - Undocumented member.+--+-- 'openZFSConfiguration', 'createFileSystemFromBackup_openZFSConfiguration' - The OpenZFS configuration for the file system that\'s being created.+--+-- 'securityGroupIds', 'createFileSystemFromBackup_securityGroupIds' - A list of IDs for the security groups that apply to the specified+-- network interfaces created for file system access. These security groups+-- apply to all network interfaces. This value isn\'t returned in later+-- @DescribeFileSystem@ requests.+--+-- 'storageCapacity', 'createFileSystemFromBackup_storageCapacity' - Sets the storage capacity of the OpenZFS file system that you\'re+-- creating from a backup, in gibibytes (GiB). Valid values are from 64 GiB+-- up to 524,288 GiB (512 TiB). However, the value that you specify must be+-- equal to or greater than the backup\'s storage capacity value. If you+-- don\'t use the @StorageCapacity@ parameter, the default is the backup\'s+-- @StorageCapacity@ value.+--+-- If used to create a file system other than OpenZFS, you must provide a+-- value that matches the backup\'s @StorageCapacity@ value. If you provide+-- any other value, Amazon FSx responds with a 400 Bad Request.+--+-- 'storageType', 'createFileSystemFromBackup_storageType' - Sets the storage type for the Windows or OpenZFS file system that+-- you\'re creating from a backup. Valid values are @SSD@ and @HDD@.+--+-- -   Set to @SSD@ to use solid state drive storage. SSD is supported on+--     all Windows and OpenZFS deployment types.+--+-- -   Set to @HDD@ to use hard disk drive storage. HDD is supported on+--     @SINGLE_AZ_2@ and @MULTI_AZ_1@ FSx for Windows File Server file+--     system deployment types.+--+-- The default value is @SSD@.+--+-- HDD and SSD storage types have different minimum storage capacity+-- requirements. A restored file system\'s storage capacity is tied to the+-- file system that was backed up. You can create a file system that uses+-- HDD storage from a backup of a file system that used SSD storage if the+-- original SSD file system had a storage capacity of at least 2000 GiB.+--+-- 'tags', 'createFileSystemFromBackup_tags' - The tags to be applied to the file system at file system creation. The+-- key value of the @Name@ tag appears in the console as the file system+-- name.+--+-- 'windowsConfiguration', 'createFileSystemFromBackup_windowsConfiguration' - The configuration for this Microsoft Windows file system.+--+-- 'backupId', 'createFileSystemFromBackup_backupId' - Undocumented member.+--+-- 'subnetIds', 'createFileSystemFromBackup_subnetIds' - Specifies the IDs of the subnets that the file system will be accessible+-- from. For Windows @MULTI_AZ_1@ file system deployment types, provide+-- exactly two subnet IDs, one for the preferred file server and one for+-- the standby file server. You specify one of these subnets as the+-- preferred subnet using the @WindowsConfiguration > PreferredSubnetID@+-- property.+--+-- Windows @SINGLE_AZ_1@ and @SINGLE_AZ_2@ file system deployment types,+-- Lustre file systems, and OpenZFS file systems provide exactly one subnet+-- ID. The file server is launched in that subnet\'s Availability Zone.+newCreateFileSystemFromBackup ::+  -- | 'backupId'+  Prelude.Text ->+  CreateFileSystemFromBackup+newCreateFileSystemFromBackup pBackupId_ =+  CreateFileSystemFromBackup'+    { clientRequestToken =+        Prelude.Nothing,+      fileSystemTypeVersion = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      lustreConfiguration = Prelude.Nothing,+      openZFSConfiguration = Prelude.Nothing,+      securityGroupIds = Prelude.Nothing,+      storageCapacity = Prelude.Nothing,+      storageType = Prelude.Nothing,+      tags = Prelude.Nothing,+      windowsConfiguration = Prelude.Nothing,+      backupId = pBackupId_,+      subnetIds = Prelude.mempty+    }++-- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent creation. This string is automatically filled on your behalf+-- when you use the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+createFileSystemFromBackup_clientRequestToken :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe Prelude.Text)+createFileSystemFromBackup_clientRequestToken = Lens.lens (\CreateFileSystemFromBackup' {clientRequestToken} -> clientRequestToken) (\s@CreateFileSystemFromBackup' {} a -> s {clientRequestToken = a} :: CreateFileSystemFromBackup)++-- | Sets the version for the Amazon FSx for Lustre file system that you\'re+-- creating from a backup. Valid values are @2.10@ and @2.12@.+--+-- You don\'t need to specify @FileSystemTypeVersion@ because it will be+-- applied using the backup\'s @FileSystemTypeVersion@ setting. If you+-- choose to specify @FileSystemTypeVersion@ when creating from backup, the+-- value must match the backup\'s @FileSystemTypeVersion@ setting.+createFileSystemFromBackup_fileSystemTypeVersion :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe Prelude.Text)+createFileSystemFromBackup_fileSystemTypeVersion = Lens.lens (\CreateFileSystemFromBackup' {fileSystemTypeVersion} -> fileSystemTypeVersion) (\s@CreateFileSystemFromBackup' {} a -> s {fileSystemTypeVersion = a} :: CreateFileSystemFromBackup)++-- | Undocumented member.+createFileSystemFromBackup_kmsKeyId :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe Prelude.Text)+createFileSystemFromBackup_kmsKeyId = Lens.lens (\CreateFileSystemFromBackup' {kmsKeyId} -> kmsKeyId) (\s@CreateFileSystemFromBackup' {} a -> s {kmsKeyId = a} :: CreateFileSystemFromBackup)++-- | Undocumented member.+createFileSystemFromBackup_lustreConfiguration :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe CreateFileSystemLustreConfiguration)+createFileSystemFromBackup_lustreConfiguration = Lens.lens (\CreateFileSystemFromBackup' {lustreConfiguration} -> lustreConfiguration) (\s@CreateFileSystemFromBackup' {} a -> s {lustreConfiguration = a} :: CreateFileSystemFromBackup)++-- | The OpenZFS configuration for the file system that\'s being created.+createFileSystemFromBackup_openZFSConfiguration :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe CreateFileSystemOpenZFSConfiguration)+createFileSystemFromBackup_openZFSConfiguration = Lens.lens (\CreateFileSystemFromBackup' {openZFSConfiguration} -> openZFSConfiguration) (\s@CreateFileSystemFromBackup' {} a -> s {openZFSConfiguration = a} :: CreateFileSystemFromBackup)++-- | A list of IDs for the security groups that apply to the specified+-- network interfaces created for file system access. These security groups+-- apply to all network interfaces. This value isn\'t returned in later+-- @DescribeFileSystem@ requests.+createFileSystemFromBackup_securityGroupIds :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe [Prelude.Text])+createFileSystemFromBackup_securityGroupIds = Lens.lens (\CreateFileSystemFromBackup' {securityGroupIds} -> securityGroupIds) (\s@CreateFileSystemFromBackup' {} a -> s {securityGroupIds = a} :: CreateFileSystemFromBackup) Prelude.. Lens.mapping Lens.coerced++-- | Sets the storage capacity of the OpenZFS file system that you\'re+-- creating from a backup, in gibibytes (GiB). Valid values are from 64 GiB+-- up to 524,288 GiB (512 TiB). However, the value that you specify must be+-- equal to or greater than the backup\'s storage capacity value. If you+-- don\'t use the @StorageCapacity@ parameter, the default is the backup\'s+-- @StorageCapacity@ value.+--+-- If used to create a file system other than OpenZFS, you must provide a+-- value that matches the backup\'s @StorageCapacity@ value. If you provide+-- any other value, Amazon FSx responds with a 400 Bad Request.+createFileSystemFromBackup_storageCapacity :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe Prelude.Natural)+createFileSystemFromBackup_storageCapacity = Lens.lens (\CreateFileSystemFromBackup' {storageCapacity} -> storageCapacity) (\s@CreateFileSystemFromBackup' {} a -> s {storageCapacity = a} :: CreateFileSystemFromBackup)++-- | Sets the storage type for the Windows or OpenZFS file system that+-- you\'re creating from a backup. Valid values are @SSD@ and @HDD@.+--+-- -   Set to @SSD@ to use solid state drive storage. SSD is supported on+--     all Windows and OpenZFS deployment types.+--+-- -   Set to @HDD@ to use hard disk drive storage. HDD is supported on+--     @SINGLE_AZ_2@ and @MULTI_AZ_1@ FSx for Windows File Server file+--     system deployment types.+--+-- The default value is @SSD@.+--+-- HDD and SSD storage types have different minimum storage capacity+-- requirements. A restored file system\'s storage capacity is tied to the+-- file system that was backed up. You can create a file system that uses+-- HDD storage from a backup of a file system that used SSD storage if the+-- original SSD file system had a storage capacity of at least 2000 GiB.+createFileSystemFromBackup_storageType :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe StorageType)+createFileSystemFromBackup_storageType = Lens.lens (\CreateFileSystemFromBackup' {storageType} -> storageType) (\s@CreateFileSystemFromBackup' {} a -> s {storageType = a} :: CreateFileSystemFromBackup)++-- | The tags to be applied to the file system at file system creation. The+-- key value of the @Name@ tag appears in the console as the file system+-- name.+createFileSystemFromBackup_tags :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe (Prelude.NonEmpty Tag))+createFileSystemFromBackup_tags = Lens.lens (\CreateFileSystemFromBackup' {tags} -> tags) (\s@CreateFileSystemFromBackup' {} a -> s {tags = a} :: CreateFileSystemFromBackup) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for this Microsoft Windows file system.+createFileSystemFromBackup_windowsConfiguration :: Lens.Lens' CreateFileSystemFromBackup (Prelude.Maybe CreateFileSystemWindowsConfiguration)+createFileSystemFromBackup_windowsConfiguration = Lens.lens (\CreateFileSystemFromBackup' {windowsConfiguration} -> windowsConfiguration) (\s@CreateFileSystemFromBackup' {} a -> s {windowsConfiguration = a} :: CreateFileSystemFromBackup)++-- | Undocumented member.+createFileSystemFromBackup_backupId :: Lens.Lens' CreateFileSystemFromBackup Prelude.Text+createFileSystemFromBackup_backupId = Lens.lens (\CreateFileSystemFromBackup' {backupId} -> backupId) (\s@CreateFileSystemFromBackup' {} a -> s {backupId = a} :: CreateFileSystemFromBackup)++-- | Specifies the IDs of the subnets that the file system will be accessible+-- from. For Windows @MULTI_AZ_1@ file system deployment types, provide+-- exactly two subnet IDs, one for the preferred file server and one for+-- the standby file server. You specify one of these subnets as the+-- preferred subnet using the @WindowsConfiguration > PreferredSubnetID@+-- property.+--+-- Windows @SINGLE_AZ_1@ and @SINGLE_AZ_2@ file system deployment types,+-- Lustre file systems, and OpenZFS file systems provide exactly one subnet+-- ID. The file server is launched in that subnet\'s Availability Zone.+createFileSystemFromBackup_subnetIds :: Lens.Lens' CreateFileSystemFromBackup [Prelude.Text]+createFileSystemFromBackup_subnetIds = Lens.lens (\CreateFileSystemFromBackup' {subnetIds} -> subnetIds) (\s@CreateFileSystemFromBackup' {} a -> s {subnetIds = a} :: CreateFileSystemFromBackup) Prelude.. Lens.coerced++instance Core.AWSRequest CreateFileSystemFromBackup where+  type+    AWSResponse CreateFileSystemFromBackup =+      CreateFileSystemFromBackupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFileSystemFromBackupResponse'+            Prelude.<$> (x Data..?> "FileSystem")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateFileSystemFromBackup where+  hashWithSalt _salt CreateFileSystemFromBackup' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` fileSystemTypeVersion+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` storageCapacity+      `Prelude.hashWithSalt` storageType+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` windowsConfiguration+      `Prelude.hashWithSalt` backupId+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData CreateFileSystemFromBackup where+  rnf CreateFileSystemFromBackup' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileSystemTypeVersion+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf storageCapacity+      `Prelude.seq` Prelude.rnf storageType+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf windowsConfiguration+      `Prelude.seq` Prelude.rnf backupId+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToHeaders CreateFileSystemFromBackup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateFileSystemFromBackup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFileSystemFromBackup where+  toJSON CreateFileSystemFromBackup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("FileSystemTypeVersion" Data..=)+              Prelude.<$> fileSystemTypeVersion,+            ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            ("LustreConfiguration" Data..=)+              Prelude.<$> lustreConfiguration,+            ("OpenZFSConfiguration" Data..=)+              Prelude.<$> openZFSConfiguration,+            ("SecurityGroupIds" Data..=)+              Prelude.<$> securityGroupIds,+            ("StorageCapacity" Data..=)+              Prelude.<$> storageCapacity,+            ("StorageType" Data..=) Prelude.<$> storageType,+            ("Tags" Data..=) Prelude.<$> tags,+            ("WindowsConfiguration" Data..=)+              Prelude.<$> windowsConfiguration,+            Prelude.Just ("BackupId" Data..= backupId),+            Prelude.Just ("SubnetIds" Data..= subnetIds)+          ]+      )++instance Data.ToPath CreateFileSystemFromBackup where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateFileSystemFromBackup where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for the @CreateFileSystemFromBackup@ operation.+--+-- /See:/ 'newCreateFileSystemFromBackupResponse' smart constructor.+data CreateFileSystemFromBackupResponse = CreateFileSystemFromBackupResponse'+  { -- | A description of the file system.+    fileSystem :: Prelude.Maybe FileSystem,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileSystemFromBackupResponse' 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:+--+-- 'fileSystem', 'createFileSystemFromBackupResponse_fileSystem' - A description of the file system.+--+-- 'httpStatus', 'createFileSystemFromBackupResponse_httpStatus' - The response's http status code.+newCreateFileSystemFromBackupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFileSystemFromBackupResponse+newCreateFileSystemFromBackupResponse pHttpStatus_ =+  CreateFileSystemFromBackupResponse'+    { fileSystem =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A description of the file system.+createFileSystemFromBackupResponse_fileSystem :: Lens.Lens' CreateFileSystemFromBackupResponse (Prelude.Maybe FileSystem)+createFileSystemFromBackupResponse_fileSystem = Lens.lens (\CreateFileSystemFromBackupResponse' {fileSystem} -> fileSystem) (\s@CreateFileSystemFromBackupResponse' {} a -> s {fileSystem = a} :: CreateFileSystemFromBackupResponse)++-- | The response's http status code.+createFileSystemFromBackupResponse_httpStatus :: Lens.Lens' CreateFileSystemFromBackupResponse Prelude.Int+createFileSystemFromBackupResponse_httpStatus = Lens.lens (\CreateFileSystemFromBackupResponse' {httpStatus} -> httpStatus) (\s@CreateFileSystemFromBackupResponse' {} a -> s {httpStatus = a} :: CreateFileSystemFromBackupResponse)++instance+  Prelude.NFData+    CreateFileSystemFromBackupResponse+  where+  rnf CreateFileSystemFromBackupResponse' {..} =+    Prelude.rnf fileSystem+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateSnapshot.hs view
@@ -0,0 +1,241 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateSnapshot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a snapshot of an existing Amazon FSx for OpenZFS volume. With+-- snapshots, you can easily undo file changes and compare file versions by+-- restoring the volume to a previous version.+--+-- If a snapshot with the specified client request token exists, and the+-- parameters match, this operation returns the description of the existing+-- snapshot. If a snapshot with the specified client request token exists,+-- and the parameters don\'t match, this operation returns+-- @IncompatibleParameterError@. If a snapshot with the specified client+-- request token doesn\'t exist, @CreateSnapshot@ does the following:+--+-- -   Creates a new OpenZFS snapshot with an assigned ID, and an initial+--     lifecycle state of @CREATING@.+--+-- -   Returns the description of the snapshot.+--+-- By using the idempotent operation, you can retry a @CreateSnapshot@+-- operation without the risk of creating an extra snapshot. This approach+-- can be useful when an initial call fails in a way that makes it unclear+-- whether a snapshot was created. If you use the same client request token+-- and the initial call created a snapshot, the operation returns a+-- successful result because all the parameters are the same.+--+-- The @CreateSnapshot@ operation returns while the snapshot\'s lifecycle+-- state is still @CREATING@. You can check the snapshot creation status by+-- calling the+-- <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeSnapshots.html DescribeSnapshots>+-- operation, which returns the snapshot state along with other+-- information.+module Amazonka.FSx.CreateSnapshot+  ( -- * Creating a Request+    CreateSnapshot (..),+    newCreateSnapshot,++    -- * Request Lenses+    createSnapshot_clientRequestToken,+    createSnapshot_tags,+    createSnapshot_name,+    createSnapshot_volumeId,++    -- * Destructuring the Response+    CreateSnapshotResponse (..),+    newCreateSnapshotResponse,++    -- * Response Lenses+    createSnapshotResponse_snapshot,+    createSnapshotResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSnapshot' smart constructor.+data CreateSnapshot = CreateSnapshot'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The name of the snapshot.+    name :: Prelude.Text,+    -- | The ID of the volume that you are taking a snapshot of.+    volumeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSnapshot' 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:+--+-- 'clientRequestToken', 'createSnapshot_clientRequestToken' - Undocumented member.+--+-- 'tags', 'createSnapshot_tags' - Undocumented member.+--+-- 'name', 'createSnapshot_name' - The name of the snapshot.+--+-- 'volumeId', 'createSnapshot_volumeId' - The ID of the volume that you are taking a snapshot of.+newCreateSnapshot ::+  -- | 'name'+  Prelude.Text ->+  -- | 'volumeId'+  Prelude.Text ->+  CreateSnapshot+newCreateSnapshot pName_ pVolumeId_ =+  CreateSnapshot'+    { clientRequestToken =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      volumeId = pVolumeId_+    }++-- | Undocumented member.+createSnapshot_clientRequestToken :: Lens.Lens' CreateSnapshot (Prelude.Maybe Prelude.Text)+createSnapshot_clientRequestToken = Lens.lens (\CreateSnapshot' {clientRequestToken} -> clientRequestToken) (\s@CreateSnapshot' {} a -> s {clientRequestToken = a} :: CreateSnapshot)++-- | Undocumented member.+createSnapshot_tags :: Lens.Lens' CreateSnapshot (Prelude.Maybe (Prelude.NonEmpty Tag))+createSnapshot_tags = Lens.lens (\CreateSnapshot' {tags} -> tags) (\s@CreateSnapshot' {} a -> s {tags = a} :: CreateSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The name of the snapshot.+createSnapshot_name :: Lens.Lens' CreateSnapshot Prelude.Text+createSnapshot_name = Lens.lens (\CreateSnapshot' {name} -> name) (\s@CreateSnapshot' {} a -> s {name = a} :: CreateSnapshot)++-- | The ID of the volume that you are taking a snapshot of.+createSnapshot_volumeId :: Lens.Lens' CreateSnapshot Prelude.Text+createSnapshot_volumeId = Lens.lens (\CreateSnapshot' {volumeId} -> volumeId) (\s@CreateSnapshot' {} a -> s {volumeId = a} :: CreateSnapshot)++instance Core.AWSRequest CreateSnapshot where+  type+    AWSResponse CreateSnapshot =+      CreateSnapshotResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSnapshotResponse'+            Prelude.<$> (x Data..?> "Snapshot")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSnapshot where+  hashWithSalt _salt CreateSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` volumeId++instance Prelude.NFData CreateSnapshot where+  rnf CreateSnapshot' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf volumeId++instance Data.ToHeaders CreateSnapshot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateSnapshot" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSnapshot where+  toJSON CreateSnapshot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("VolumeId" Data..= volumeId)+          ]+      )++instance Data.ToPath CreateSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateSnapshot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSnapshotResponse' smart constructor.+data CreateSnapshotResponse = CreateSnapshotResponse'+  { -- | A description of the snapshot.+    snapshot :: Prelude.Maybe Snapshot,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSnapshotResponse' 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:+--+-- 'snapshot', 'createSnapshotResponse_snapshot' - A description of the snapshot.+--+-- 'httpStatus', 'createSnapshotResponse_httpStatus' - The response's http status code.+newCreateSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSnapshotResponse+newCreateSnapshotResponse pHttpStatus_ =+  CreateSnapshotResponse'+    { snapshot = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A description of the snapshot.+createSnapshotResponse_snapshot :: Lens.Lens' CreateSnapshotResponse (Prelude.Maybe Snapshot)+createSnapshotResponse_snapshot = Lens.lens (\CreateSnapshotResponse' {snapshot} -> snapshot) (\s@CreateSnapshotResponse' {} a -> s {snapshot = a} :: CreateSnapshotResponse)++-- | The response's http status code.+createSnapshotResponse_httpStatus :: Lens.Lens' CreateSnapshotResponse Prelude.Int+createSnapshotResponse_httpStatus = Lens.lens (\CreateSnapshotResponse' {httpStatus} -> httpStatus) (\s@CreateSnapshotResponse' {} a -> s {httpStatus = a} :: CreateSnapshotResponse)++instance Prelude.NFData CreateSnapshotResponse where+  rnf CreateSnapshotResponse' {..} =+    Prelude.rnf snapshot+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateStorageVirtualMachine.hs view
@@ -0,0 +1,313 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateStorageVirtualMachine+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a storage virtual machine (SVM) for an Amazon FSx for ONTAP file+-- system.+module Amazonka.FSx.CreateStorageVirtualMachine+  ( -- * Creating a Request+    CreateStorageVirtualMachine (..),+    newCreateStorageVirtualMachine,++    -- * Request Lenses+    createStorageVirtualMachine_activeDirectoryConfiguration,+    createStorageVirtualMachine_clientRequestToken,+    createStorageVirtualMachine_rootVolumeSecurityStyle,+    createStorageVirtualMachine_svmAdminPassword,+    createStorageVirtualMachine_tags,+    createStorageVirtualMachine_fileSystemId,+    createStorageVirtualMachine_name,++    -- * Destructuring the Response+    CreateStorageVirtualMachineResponse (..),+    newCreateStorageVirtualMachineResponse,++    -- * Response Lenses+    createStorageVirtualMachineResponse_storageVirtualMachine,+    createStorageVirtualMachineResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateStorageVirtualMachine' smart constructor.+data CreateStorageVirtualMachine = CreateStorageVirtualMachine'+  { -- | Describes the self-managed Microsoft Active Directory to which you want+    -- to join the SVM. Joining an Active Directory provides user+    -- authentication and access control for SMB clients, including Microsoft+    -- Windows and macOS client accessing the file system.+    activeDirectoryConfiguration :: Prelude.Maybe CreateSvmActiveDirectoryConfiguration,+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The security style of the root volume of the SVM. Specify one of the+    -- following values:+    --+    -- -   @UNIX@ if the file system is managed by a UNIX administrator, the+    --     majority of users are NFS clients, and an application accessing the+    --     data uses a UNIX user as the service account.+    --+    -- -   @NTFS@ if the file system is managed by a Windows administrator, the+    --     majority of users are SMB clients, and an application accessing the+    --     data uses a Windows user as the service account.+    --+    -- -   @MIXED@ if the file system is managed by both UNIX and Windows+    --     administrators and users consist of both NFS and SMB clients.+    rootVolumeSecurityStyle :: Prelude.Maybe StorageVirtualMachineRootVolumeSecurityStyle,+    -- | The password to use when managing the SVM using the NetApp ONTAP CLI or+    -- REST API. If you do not specify a password, you can still use the file+    -- system\'s @fsxadmin@ user to manage the SVM.+    svmAdminPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    fileSystemId :: Prelude.Text,+    -- | The name of the SVM.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStorageVirtualMachine' 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:+--+-- 'activeDirectoryConfiguration', 'createStorageVirtualMachine_activeDirectoryConfiguration' - Describes the self-managed Microsoft Active Directory to which you want+-- to join the SVM. Joining an Active Directory provides user+-- authentication and access control for SMB clients, including Microsoft+-- Windows and macOS client accessing the file system.+--+-- 'clientRequestToken', 'createStorageVirtualMachine_clientRequestToken' - Undocumented member.+--+-- 'rootVolumeSecurityStyle', 'createStorageVirtualMachine_rootVolumeSecurityStyle' - The security style of the root volume of the SVM. Specify one of the+-- following values:+--+-- -   @UNIX@ if the file system is managed by a UNIX administrator, the+--     majority of users are NFS clients, and an application accessing the+--     data uses a UNIX user as the service account.+--+-- -   @NTFS@ if the file system is managed by a Windows administrator, the+--     majority of users are SMB clients, and an application accessing the+--     data uses a Windows user as the service account.+--+-- -   @MIXED@ if the file system is managed by both UNIX and Windows+--     administrators and users consist of both NFS and SMB clients.+--+-- 'svmAdminPassword', 'createStorageVirtualMachine_svmAdminPassword' - The password to use when managing the SVM using the NetApp ONTAP CLI or+-- REST API. If you do not specify a password, you can still use the file+-- system\'s @fsxadmin@ user to manage the SVM.+--+-- 'tags', 'createStorageVirtualMachine_tags' - Undocumented member.+--+-- 'fileSystemId', 'createStorageVirtualMachine_fileSystemId' - Undocumented member.+--+-- 'name', 'createStorageVirtualMachine_name' - The name of the SVM.+newCreateStorageVirtualMachine ::+  -- | 'fileSystemId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateStorageVirtualMachine+newCreateStorageVirtualMachine pFileSystemId_ pName_ =+  CreateStorageVirtualMachine'+    { activeDirectoryConfiguration =+        Prelude.Nothing,+      clientRequestToken = Prelude.Nothing,+      rootVolumeSecurityStyle = Prelude.Nothing,+      svmAdminPassword = Prelude.Nothing,+      tags = Prelude.Nothing,+      fileSystemId = pFileSystemId_,+      name = pName_+    }++-- | Describes the self-managed Microsoft Active Directory to which you want+-- to join the SVM. Joining an Active Directory provides user+-- authentication and access control for SMB clients, including Microsoft+-- Windows and macOS client accessing the file system.+createStorageVirtualMachine_activeDirectoryConfiguration :: Lens.Lens' CreateStorageVirtualMachine (Prelude.Maybe CreateSvmActiveDirectoryConfiguration)+createStorageVirtualMachine_activeDirectoryConfiguration = Lens.lens (\CreateStorageVirtualMachine' {activeDirectoryConfiguration} -> activeDirectoryConfiguration) (\s@CreateStorageVirtualMachine' {} a -> s {activeDirectoryConfiguration = a} :: CreateStorageVirtualMachine)++-- | Undocumented member.+createStorageVirtualMachine_clientRequestToken :: Lens.Lens' CreateStorageVirtualMachine (Prelude.Maybe Prelude.Text)+createStorageVirtualMachine_clientRequestToken = Lens.lens (\CreateStorageVirtualMachine' {clientRequestToken} -> clientRequestToken) (\s@CreateStorageVirtualMachine' {} a -> s {clientRequestToken = a} :: CreateStorageVirtualMachine)++-- | The security style of the root volume of the SVM. Specify one of the+-- following values:+--+-- -   @UNIX@ if the file system is managed by a UNIX administrator, the+--     majority of users are NFS clients, and an application accessing the+--     data uses a UNIX user as the service account.+--+-- -   @NTFS@ if the file system is managed by a Windows administrator, the+--     majority of users are SMB clients, and an application accessing the+--     data uses a Windows user as the service account.+--+-- -   @MIXED@ if the file system is managed by both UNIX and Windows+--     administrators and users consist of both NFS and SMB clients.+createStorageVirtualMachine_rootVolumeSecurityStyle :: Lens.Lens' CreateStorageVirtualMachine (Prelude.Maybe StorageVirtualMachineRootVolumeSecurityStyle)+createStorageVirtualMachine_rootVolumeSecurityStyle = Lens.lens (\CreateStorageVirtualMachine' {rootVolumeSecurityStyle} -> rootVolumeSecurityStyle) (\s@CreateStorageVirtualMachine' {} a -> s {rootVolumeSecurityStyle = a} :: CreateStorageVirtualMachine)++-- | The password to use when managing the SVM using the NetApp ONTAP CLI or+-- REST API. If you do not specify a password, you can still use the file+-- system\'s @fsxadmin@ user to manage the SVM.+createStorageVirtualMachine_svmAdminPassword :: Lens.Lens' CreateStorageVirtualMachine (Prelude.Maybe Prelude.Text)+createStorageVirtualMachine_svmAdminPassword = Lens.lens (\CreateStorageVirtualMachine' {svmAdminPassword} -> svmAdminPassword) (\s@CreateStorageVirtualMachine' {} a -> s {svmAdminPassword = a} :: CreateStorageVirtualMachine) Prelude.. Lens.mapping Data._Sensitive++-- | Undocumented member.+createStorageVirtualMachine_tags :: Lens.Lens' CreateStorageVirtualMachine (Prelude.Maybe (Prelude.NonEmpty Tag))+createStorageVirtualMachine_tags = Lens.lens (\CreateStorageVirtualMachine' {tags} -> tags) (\s@CreateStorageVirtualMachine' {} a -> s {tags = a} :: CreateStorageVirtualMachine) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createStorageVirtualMachine_fileSystemId :: Lens.Lens' CreateStorageVirtualMachine Prelude.Text+createStorageVirtualMachine_fileSystemId = Lens.lens (\CreateStorageVirtualMachine' {fileSystemId} -> fileSystemId) (\s@CreateStorageVirtualMachine' {} a -> s {fileSystemId = a} :: CreateStorageVirtualMachine)++-- | The name of the SVM.+createStorageVirtualMachine_name :: Lens.Lens' CreateStorageVirtualMachine Prelude.Text+createStorageVirtualMachine_name = Lens.lens (\CreateStorageVirtualMachine' {name} -> name) (\s@CreateStorageVirtualMachine' {} a -> s {name = a} :: CreateStorageVirtualMachine)++instance Core.AWSRequest CreateStorageVirtualMachine where+  type+    AWSResponse CreateStorageVirtualMachine =+      CreateStorageVirtualMachineResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateStorageVirtualMachineResponse'+            Prelude.<$> (x Data..?> "StorageVirtualMachine")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateStorageVirtualMachine where+  hashWithSalt _salt CreateStorageVirtualMachine' {..} =+    _salt+      `Prelude.hashWithSalt` activeDirectoryConfiguration+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` rootVolumeSecurityStyle+      `Prelude.hashWithSalt` svmAdminPassword+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateStorageVirtualMachine where+  rnf CreateStorageVirtualMachine' {..} =+    Prelude.rnf activeDirectoryConfiguration+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf rootVolumeSecurityStyle+      `Prelude.seq` Prelude.rnf svmAdminPassword+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateStorageVirtualMachine where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateStorageVirtualMachine" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateStorageVirtualMachine where+  toJSON CreateStorageVirtualMachine' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ActiveDirectoryConfiguration" Data..=)+              Prelude.<$> activeDirectoryConfiguration,+            ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("RootVolumeSecurityStyle" Data..=)+              Prelude.<$> rootVolumeSecurityStyle,+            ("SvmAdminPassword" Data..=)+              Prelude.<$> svmAdminPassword,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("FileSystemId" Data..= fileSystemId),+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateStorageVirtualMachine where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateStorageVirtualMachine where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStorageVirtualMachineResponse' smart constructor.+data CreateStorageVirtualMachineResponse = CreateStorageVirtualMachineResponse'+  { -- | Returned after a successful @CreateStorageVirtualMachine@ operation;+    -- describes the SVM just created.+    storageVirtualMachine :: Prelude.Maybe StorageVirtualMachine,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStorageVirtualMachineResponse' 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:+--+-- 'storageVirtualMachine', 'createStorageVirtualMachineResponse_storageVirtualMachine' - Returned after a successful @CreateStorageVirtualMachine@ operation;+-- describes the SVM just created.+--+-- 'httpStatus', 'createStorageVirtualMachineResponse_httpStatus' - The response's http status code.+newCreateStorageVirtualMachineResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateStorageVirtualMachineResponse+newCreateStorageVirtualMachineResponse pHttpStatus_ =+  CreateStorageVirtualMachineResponse'+    { storageVirtualMachine =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Returned after a successful @CreateStorageVirtualMachine@ operation;+-- describes the SVM just created.+createStorageVirtualMachineResponse_storageVirtualMachine :: Lens.Lens' CreateStorageVirtualMachineResponse (Prelude.Maybe StorageVirtualMachine)+createStorageVirtualMachineResponse_storageVirtualMachine = Lens.lens (\CreateStorageVirtualMachineResponse' {storageVirtualMachine} -> storageVirtualMachine) (\s@CreateStorageVirtualMachineResponse' {} a -> s {storageVirtualMachine = a} :: CreateStorageVirtualMachineResponse)++-- | The response's http status code.+createStorageVirtualMachineResponse_httpStatus :: Lens.Lens' CreateStorageVirtualMachineResponse Prelude.Int+createStorageVirtualMachineResponse_httpStatus = Lens.lens (\CreateStorageVirtualMachineResponse' {httpStatus} -> httpStatus) (\s@CreateStorageVirtualMachineResponse' {} a -> s {httpStatus = a} :: CreateStorageVirtualMachineResponse)++instance+  Prelude.NFData+    CreateStorageVirtualMachineResponse+  where+  rnf CreateStorageVirtualMachineResponse' {..} =+    Prelude.rnf storageVirtualMachine+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateVolume.hs view
@@ -0,0 +1,244 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateVolume+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an FSx for ONTAP or Amazon FSx for OpenZFS storage volume.+module Amazonka.FSx.CreateVolume+  ( -- * Creating a Request+    CreateVolume (..),+    newCreateVolume,++    -- * Request Lenses+    createVolume_clientRequestToken,+    createVolume_ontapConfiguration,+    createVolume_openZFSConfiguration,+    createVolume_tags,+    createVolume_volumeType,+    createVolume_name,++    -- * Destructuring the Response+    CreateVolumeResponse (..),+    newCreateVolumeResponse,++    -- * Response Lenses+    createVolumeResponse_volume,+    createVolumeResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateVolume' smart constructor.+data CreateVolume = CreateVolume'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies the configuration to use when creating the ONTAP volume.+    ontapConfiguration :: Prelude.Maybe CreateOntapVolumeConfiguration,+    -- | Specifies the configuration to use when creating the OpenZFS volume.+    openZFSConfiguration :: Prelude.Maybe CreateOpenZFSVolumeConfiguration,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | Specifies the type of volume to create; @ONTAP@ and @OPENZFS@ are the+    -- only valid volume types.+    volumeType :: VolumeType,+    -- | Specifies the name of the volume that you\'re creating.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVolume' 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:+--+-- 'clientRequestToken', 'createVolume_clientRequestToken' - Undocumented member.+--+-- 'ontapConfiguration', 'createVolume_ontapConfiguration' - Specifies the configuration to use when creating the ONTAP volume.+--+-- 'openZFSConfiguration', 'createVolume_openZFSConfiguration' - Specifies the configuration to use when creating the OpenZFS volume.+--+-- 'tags', 'createVolume_tags' - Undocumented member.+--+-- 'volumeType', 'createVolume_volumeType' - Specifies the type of volume to create; @ONTAP@ and @OPENZFS@ are the+-- only valid volume types.+--+-- 'name', 'createVolume_name' - Specifies the name of the volume that you\'re creating.+newCreateVolume ::+  -- | 'volumeType'+  VolumeType ->+  -- | 'name'+  Prelude.Text ->+  CreateVolume+newCreateVolume pVolumeType_ pName_ =+  CreateVolume'+    { clientRequestToken = Prelude.Nothing,+      ontapConfiguration = Prelude.Nothing,+      openZFSConfiguration = Prelude.Nothing,+      tags = Prelude.Nothing,+      volumeType = pVolumeType_,+      name = pName_+    }++-- | Undocumented member.+createVolume_clientRequestToken :: Lens.Lens' CreateVolume (Prelude.Maybe Prelude.Text)+createVolume_clientRequestToken = Lens.lens (\CreateVolume' {clientRequestToken} -> clientRequestToken) (\s@CreateVolume' {} a -> s {clientRequestToken = a} :: CreateVolume)++-- | Specifies the configuration to use when creating the ONTAP volume.+createVolume_ontapConfiguration :: Lens.Lens' CreateVolume (Prelude.Maybe CreateOntapVolumeConfiguration)+createVolume_ontapConfiguration = Lens.lens (\CreateVolume' {ontapConfiguration} -> ontapConfiguration) (\s@CreateVolume' {} a -> s {ontapConfiguration = a} :: CreateVolume)++-- | Specifies the configuration to use when creating the OpenZFS volume.+createVolume_openZFSConfiguration :: Lens.Lens' CreateVolume (Prelude.Maybe CreateOpenZFSVolumeConfiguration)+createVolume_openZFSConfiguration = Lens.lens (\CreateVolume' {openZFSConfiguration} -> openZFSConfiguration) (\s@CreateVolume' {} a -> s {openZFSConfiguration = a} :: CreateVolume)++-- | Undocumented member.+createVolume_tags :: Lens.Lens' CreateVolume (Prelude.Maybe (Prelude.NonEmpty Tag))+createVolume_tags = Lens.lens (\CreateVolume' {tags} -> tags) (\s@CreateVolume' {} a -> s {tags = a} :: CreateVolume) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the type of volume to create; @ONTAP@ and @OPENZFS@ are the+-- only valid volume types.+createVolume_volumeType :: Lens.Lens' CreateVolume VolumeType+createVolume_volumeType = Lens.lens (\CreateVolume' {volumeType} -> volumeType) (\s@CreateVolume' {} a -> s {volumeType = a} :: CreateVolume)++-- | Specifies the name of the volume that you\'re creating.+createVolume_name :: Lens.Lens' CreateVolume Prelude.Text+createVolume_name = Lens.lens (\CreateVolume' {name} -> name) (\s@CreateVolume' {} a -> s {name = a} :: CreateVolume)++instance Core.AWSRequest CreateVolume where+  type AWSResponse CreateVolume = CreateVolumeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateVolumeResponse'+            Prelude.<$> (x Data..?> "Volume")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVolume where+  hashWithSalt _salt CreateVolume' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` ontapConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` volumeType+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateVolume where+  rnf CreateVolume' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf ontapConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf volumeType+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateVolume where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateVolume" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVolume where+  toJSON CreateVolume' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("OntapConfiguration" Data..=)+              Prelude.<$> ontapConfiguration,+            ("OpenZFSConfiguration" Data..=)+              Prelude.<$> openZFSConfiguration,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("VolumeType" Data..= volumeType),+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateVolume where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateVolume where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVolumeResponse' smart constructor.+data CreateVolumeResponse = CreateVolumeResponse'+  { -- | Returned after a successful @CreateVolume@ API operation, describing the+    -- volume just created.+    volume :: Prelude.Maybe Volume,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVolumeResponse' 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:+--+-- 'volume', 'createVolumeResponse_volume' - Returned after a successful @CreateVolume@ API operation, describing the+-- volume just created.+--+-- 'httpStatus', 'createVolumeResponse_httpStatus' - The response's http status code.+newCreateVolumeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVolumeResponse+newCreateVolumeResponse pHttpStatus_ =+  CreateVolumeResponse'+    { volume = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Returned after a successful @CreateVolume@ API operation, describing the+-- volume just created.+createVolumeResponse_volume :: Lens.Lens' CreateVolumeResponse (Prelude.Maybe Volume)+createVolumeResponse_volume = Lens.lens (\CreateVolumeResponse' {volume} -> volume) (\s@CreateVolumeResponse' {} a -> s {volume = a} :: CreateVolumeResponse)++-- | The response's http status code.+createVolumeResponse_httpStatus :: Lens.Lens' CreateVolumeResponse Prelude.Int+createVolumeResponse_httpStatus = Lens.lens (\CreateVolumeResponse' {httpStatus} -> httpStatus) (\s@CreateVolumeResponse' {} a -> s {httpStatus = a} :: CreateVolumeResponse)++instance Prelude.NFData CreateVolumeResponse where+  rnf CreateVolumeResponse' {..} =+    Prelude.rnf volume+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/CreateVolumeFromBackup.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.CreateVolumeFromBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Amazon FSx for NetApp ONTAP volume from an existing Amazon+-- FSx volume backup.+module Amazonka.FSx.CreateVolumeFromBackup+  ( -- * Creating a Request+    CreateVolumeFromBackup (..),+    newCreateVolumeFromBackup,++    -- * Request Lenses+    createVolumeFromBackup_clientRequestToken,+    createVolumeFromBackup_ontapConfiguration,+    createVolumeFromBackup_tags,+    createVolumeFromBackup_backupId,+    createVolumeFromBackup_name,++    -- * Destructuring the Response+    CreateVolumeFromBackupResponse (..),+    newCreateVolumeFromBackupResponse,++    -- * Response Lenses+    createVolumeFromBackupResponse_volume,+    createVolumeFromBackupResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateVolumeFromBackup' smart constructor.+data CreateVolumeFromBackup = CreateVolumeFromBackup'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies the configuration of the ONTAP volume that you are creating.+    ontapConfiguration :: Prelude.Maybe CreateOntapVolumeConfiguration,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    backupId :: Prelude.Text,+    -- | The name of the new volume you\'re creating.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVolumeFromBackup' 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:+--+-- 'clientRequestToken', 'createVolumeFromBackup_clientRequestToken' - Undocumented member.+--+-- 'ontapConfiguration', 'createVolumeFromBackup_ontapConfiguration' - Specifies the configuration of the ONTAP volume that you are creating.+--+-- 'tags', 'createVolumeFromBackup_tags' - Undocumented member.+--+-- 'backupId', 'createVolumeFromBackup_backupId' - Undocumented member.+--+-- 'name', 'createVolumeFromBackup_name' - The name of the new volume you\'re creating.+newCreateVolumeFromBackup ::+  -- | 'backupId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateVolumeFromBackup+newCreateVolumeFromBackup pBackupId_ pName_ =+  CreateVolumeFromBackup'+    { clientRequestToken =+        Prelude.Nothing,+      ontapConfiguration = Prelude.Nothing,+      tags = Prelude.Nothing,+      backupId = pBackupId_,+      name = pName_+    }++-- | Undocumented member.+createVolumeFromBackup_clientRequestToken :: Lens.Lens' CreateVolumeFromBackup (Prelude.Maybe Prelude.Text)+createVolumeFromBackup_clientRequestToken = Lens.lens (\CreateVolumeFromBackup' {clientRequestToken} -> clientRequestToken) (\s@CreateVolumeFromBackup' {} a -> s {clientRequestToken = a} :: CreateVolumeFromBackup)++-- | Specifies the configuration of the ONTAP volume that you are creating.+createVolumeFromBackup_ontapConfiguration :: Lens.Lens' CreateVolumeFromBackup (Prelude.Maybe CreateOntapVolumeConfiguration)+createVolumeFromBackup_ontapConfiguration = Lens.lens (\CreateVolumeFromBackup' {ontapConfiguration} -> ontapConfiguration) (\s@CreateVolumeFromBackup' {} a -> s {ontapConfiguration = a} :: CreateVolumeFromBackup)++-- | Undocumented member.+createVolumeFromBackup_tags :: Lens.Lens' CreateVolumeFromBackup (Prelude.Maybe (Prelude.NonEmpty Tag))+createVolumeFromBackup_tags = Lens.lens (\CreateVolumeFromBackup' {tags} -> tags) (\s@CreateVolumeFromBackup' {} a -> s {tags = a} :: CreateVolumeFromBackup) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createVolumeFromBackup_backupId :: Lens.Lens' CreateVolumeFromBackup Prelude.Text+createVolumeFromBackup_backupId = Lens.lens (\CreateVolumeFromBackup' {backupId} -> backupId) (\s@CreateVolumeFromBackup' {} a -> s {backupId = a} :: CreateVolumeFromBackup)++-- | The name of the new volume you\'re creating.+createVolumeFromBackup_name :: Lens.Lens' CreateVolumeFromBackup Prelude.Text+createVolumeFromBackup_name = Lens.lens (\CreateVolumeFromBackup' {name} -> name) (\s@CreateVolumeFromBackup' {} a -> s {name = a} :: CreateVolumeFromBackup)++instance Core.AWSRequest CreateVolumeFromBackup where+  type+    AWSResponse CreateVolumeFromBackup =+      CreateVolumeFromBackupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateVolumeFromBackupResponse'+            Prelude.<$> (x Data..?> "Volume")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVolumeFromBackup where+  hashWithSalt _salt CreateVolumeFromBackup' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` ontapConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` backupId+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateVolumeFromBackup where+  rnf CreateVolumeFromBackup' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf ontapConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf backupId+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateVolumeFromBackup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.CreateVolumeFromBackup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVolumeFromBackup where+  toJSON CreateVolumeFromBackup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("OntapConfiguration" Data..=)+              Prelude.<$> ontapConfiguration,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("BackupId" Data..= backupId),+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateVolumeFromBackup where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateVolumeFromBackup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVolumeFromBackupResponse' smart constructor.+data CreateVolumeFromBackupResponse = CreateVolumeFromBackupResponse'+  { -- | Returned after a successful @CreateVolumeFromBackup@ API operation,+    -- describing the volume just created.+    volume :: Prelude.Maybe Volume,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVolumeFromBackupResponse' 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:+--+-- 'volume', 'createVolumeFromBackupResponse_volume' - Returned after a successful @CreateVolumeFromBackup@ API operation,+-- describing the volume just created.+--+-- 'httpStatus', 'createVolumeFromBackupResponse_httpStatus' - The response's http status code.+newCreateVolumeFromBackupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVolumeFromBackupResponse+newCreateVolumeFromBackupResponse pHttpStatus_ =+  CreateVolumeFromBackupResponse'+    { volume =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Returned after a successful @CreateVolumeFromBackup@ API operation,+-- describing the volume just created.+createVolumeFromBackupResponse_volume :: Lens.Lens' CreateVolumeFromBackupResponse (Prelude.Maybe Volume)+createVolumeFromBackupResponse_volume = Lens.lens (\CreateVolumeFromBackupResponse' {volume} -> volume) (\s@CreateVolumeFromBackupResponse' {} a -> s {volume = a} :: CreateVolumeFromBackupResponse)++-- | The response's http status code.+createVolumeFromBackupResponse_httpStatus :: Lens.Lens' CreateVolumeFromBackupResponse Prelude.Int+createVolumeFromBackupResponse_httpStatus = Lens.lens (\CreateVolumeFromBackupResponse' {httpStatus} -> httpStatus) (\s@CreateVolumeFromBackupResponse' {} a -> s {httpStatus = a} :: CreateVolumeFromBackupResponse)++instance+  Prelude.NFData+    CreateVolumeFromBackupResponse+  where+  rnf CreateVolumeFromBackupResponse' {..} =+    Prelude.rnf volume+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DeleteBackup.hs view
@@ -0,0 +1,216 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DeleteBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Amazon FSx backup. After deletion, the backup no longer+-- exists, and its data is gone.+--+-- The @DeleteBackup@ call returns instantly. The backup won\'t show up in+-- later @DescribeBackups@ calls.+--+-- The data in a deleted backup is also deleted and can\'t be recovered by+-- any means.+module Amazonka.FSx.DeleteBackup+  ( -- * Creating a Request+    DeleteBackup (..),+    newDeleteBackup,++    -- * Request Lenses+    deleteBackup_clientRequestToken,+    deleteBackup_backupId,++    -- * Destructuring the Response+    DeleteBackupResponse (..),+    newDeleteBackupResponse,++    -- * Response Lenses+    deleteBackupResponse_backupId,+    deleteBackupResponse_lifecycle,+    deleteBackupResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for the @DeleteBackup@ operation.+--+-- /See:/ 'newDeleteBackup' smart constructor.+data DeleteBackup = DeleteBackup'+  { -- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+    -- idempotent deletion. This parameter is automatically filled on your+    -- behalf when using the CLI or SDK.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the backup that you want to delete.+    backupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBackup' 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:+--+-- 'clientRequestToken', 'deleteBackup_clientRequestToken' - A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent deletion. This parameter is automatically filled on your+-- behalf when using the CLI or SDK.+--+-- 'backupId', 'deleteBackup_backupId' - The ID of the backup that you want to delete.+newDeleteBackup ::+  -- | 'backupId'+  Prelude.Text ->+  DeleteBackup+newDeleteBackup pBackupId_ =+  DeleteBackup'+    { clientRequestToken = Prelude.Nothing,+      backupId = pBackupId_+    }++-- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent deletion. This parameter is automatically filled on your+-- behalf when using the CLI or SDK.+deleteBackup_clientRequestToken :: Lens.Lens' DeleteBackup (Prelude.Maybe Prelude.Text)+deleteBackup_clientRequestToken = Lens.lens (\DeleteBackup' {clientRequestToken} -> clientRequestToken) (\s@DeleteBackup' {} a -> s {clientRequestToken = a} :: DeleteBackup)++-- | The ID of the backup that you want to delete.+deleteBackup_backupId :: Lens.Lens' DeleteBackup Prelude.Text+deleteBackup_backupId = Lens.lens (\DeleteBackup' {backupId} -> backupId) (\s@DeleteBackup' {} a -> s {backupId = a} :: DeleteBackup)++instance Core.AWSRequest DeleteBackup where+  type AWSResponse DeleteBackup = DeleteBackupResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBackupResponse'+            Prelude.<$> (x Data..?> "BackupId")+            Prelude.<*> (x Data..?> "Lifecycle")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBackup where+  hashWithSalt _salt DeleteBackup' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` backupId++instance Prelude.NFData DeleteBackup where+  rnf DeleteBackup' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf backupId++instance Data.ToHeaders DeleteBackup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DeleteBackup" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteBackup where+  toJSON DeleteBackup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("BackupId" Data..= backupId)+          ]+      )++instance Data.ToPath DeleteBackup where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteBackup where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for the @DeleteBackup@ operation.+--+-- /See:/ 'newDeleteBackupResponse' smart constructor.+data DeleteBackupResponse = DeleteBackupResponse'+  { -- | The ID of the backup that was deleted.+    backupId :: Prelude.Maybe Prelude.Text,+    -- | The lifecycle status of the backup. If the @DeleteBackup@ operation is+    -- successful, the status is @DELETED@.+    lifecycle :: Prelude.Maybe BackupLifecycle,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBackupResponse' 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:+--+-- 'backupId', 'deleteBackupResponse_backupId' - The ID of the backup that was deleted.+--+-- 'lifecycle', 'deleteBackupResponse_lifecycle' - The lifecycle status of the backup. If the @DeleteBackup@ operation is+-- successful, the status is @DELETED@.+--+-- 'httpStatus', 'deleteBackupResponse_httpStatus' - The response's http status code.+newDeleteBackupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBackupResponse+newDeleteBackupResponse pHttpStatus_ =+  DeleteBackupResponse'+    { backupId = Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ID of the backup that was deleted.+deleteBackupResponse_backupId :: Lens.Lens' DeleteBackupResponse (Prelude.Maybe Prelude.Text)+deleteBackupResponse_backupId = Lens.lens (\DeleteBackupResponse' {backupId} -> backupId) (\s@DeleteBackupResponse' {} a -> s {backupId = a} :: DeleteBackupResponse)++-- | The lifecycle status of the backup. If the @DeleteBackup@ operation is+-- successful, the status is @DELETED@.+deleteBackupResponse_lifecycle :: Lens.Lens' DeleteBackupResponse (Prelude.Maybe BackupLifecycle)+deleteBackupResponse_lifecycle = Lens.lens (\DeleteBackupResponse' {lifecycle} -> lifecycle) (\s@DeleteBackupResponse' {} a -> s {lifecycle = a} :: DeleteBackupResponse)++-- | The response's http status code.+deleteBackupResponse_httpStatus :: Lens.Lens' DeleteBackupResponse Prelude.Int+deleteBackupResponse_httpStatus = Lens.lens (\DeleteBackupResponse' {httpStatus} -> httpStatus) (\s@DeleteBackupResponse' {} a -> s {httpStatus = a} :: DeleteBackupResponse)++instance Prelude.NFData DeleteBackupResponse where+  rnf DeleteBackupResponse' {..} =+    Prelude.rnf backupId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DeleteDataRepositoryAssociation.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DeleteDataRepositoryAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a data repository association on an Amazon FSx for Lustre file+-- system. Deleting the data repository association unlinks the file system+-- from the Amazon S3 bucket. When deleting a data repository association,+-- you have the option of deleting the data in the file system that+-- corresponds to the data repository association. Data repository+-- associations are supported only for file systems with the @Persistent_2@+-- deployment type.+module Amazonka.FSx.DeleteDataRepositoryAssociation+  ( -- * Creating a Request+    DeleteDataRepositoryAssociation (..),+    newDeleteDataRepositoryAssociation,++    -- * Request Lenses+    deleteDataRepositoryAssociation_clientRequestToken,+    deleteDataRepositoryAssociation_deleteDataInFileSystem,+    deleteDataRepositoryAssociation_associationId,++    -- * Destructuring the Response+    DeleteDataRepositoryAssociationResponse (..),+    newDeleteDataRepositoryAssociationResponse,++    -- * Response Lenses+    deleteDataRepositoryAssociationResponse_associationId,+    deleteDataRepositoryAssociationResponse_deleteDataInFileSystem,+    deleteDataRepositoryAssociationResponse_lifecycle,+    deleteDataRepositoryAssociationResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDataRepositoryAssociation' smart constructor.+data DeleteDataRepositoryAssociation = DeleteDataRepositoryAssociation'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Set to @true@ to delete the data in the file system that corresponds to+    -- the data repository association.+    deleteDataInFileSystem :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the data repository association that you want to delete.+    associationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataRepositoryAssociation' 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:+--+-- 'clientRequestToken', 'deleteDataRepositoryAssociation_clientRequestToken' - Undocumented member.+--+-- 'deleteDataInFileSystem', 'deleteDataRepositoryAssociation_deleteDataInFileSystem' - Set to @true@ to delete the data in the file system that corresponds to+-- the data repository association.+--+-- 'associationId', 'deleteDataRepositoryAssociation_associationId' - The ID of the data repository association that you want to delete.+newDeleteDataRepositoryAssociation ::+  -- | 'associationId'+  Prelude.Text ->+  DeleteDataRepositoryAssociation+newDeleteDataRepositoryAssociation pAssociationId_ =+  DeleteDataRepositoryAssociation'+    { clientRequestToken =+        Prelude.Nothing,+      deleteDataInFileSystem = Prelude.Nothing,+      associationId = pAssociationId_+    }++-- | Undocumented member.+deleteDataRepositoryAssociation_clientRequestToken :: Lens.Lens' DeleteDataRepositoryAssociation (Prelude.Maybe Prelude.Text)+deleteDataRepositoryAssociation_clientRequestToken = Lens.lens (\DeleteDataRepositoryAssociation' {clientRequestToken} -> clientRequestToken) (\s@DeleteDataRepositoryAssociation' {} a -> s {clientRequestToken = a} :: DeleteDataRepositoryAssociation)++-- | Set to @true@ to delete the data in the file system that corresponds to+-- the data repository association.+deleteDataRepositoryAssociation_deleteDataInFileSystem :: Lens.Lens' DeleteDataRepositoryAssociation (Prelude.Maybe Prelude.Bool)+deleteDataRepositoryAssociation_deleteDataInFileSystem = Lens.lens (\DeleteDataRepositoryAssociation' {deleteDataInFileSystem} -> deleteDataInFileSystem) (\s@DeleteDataRepositoryAssociation' {} a -> s {deleteDataInFileSystem = a} :: DeleteDataRepositoryAssociation)++-- | The ID of the data repository association that you want to delete.+deleteDataRepositoryAssociation_associationId :: Lens.Lens' DeleteDataRepositoryAssociation Prelude.Text+deleteDataRepositoryAssociation_associationId = Lens.lens (\DeleteDataRepositoryAssociation' {associationId} -> associationId) (\s@DeleteDataRepositoryAssociation' {} a -> s {associationId = a} :: DeleteDataRepositoryAssociation)++instance+  Core.AWSRequest+    DeleteDataRepositoryAssociation+  where+  type+    AWSResponse DeleteDataRepositoryAssociation =+      DeleteDataRepositoryAssociationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteDataRepositoryAssociationResponse'+            Prelude.<$> (x Data..?> "AssociationId")+            Prelude.<*> (x Data..?> "DeleteDataInFileSystem")+            Prelude.<*> (x Data..?> "Lifecycle")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteDataRepositoryAssociation+  where+  hashWithSalt+    _salt+    DeleteDataRepositoryAssociation' {..} =+      _salt+        `Prelude.hashWithSalt` clientRequestToken+        `Prelude.hashWithSalt` deleteDataInFileSystem+        `Prelude.hashWithSalt` associationId++instance+  Prelude.NFData+    DeleteDataRepositoryAssociation+  where+  rnf DeleteDataRepositoryAssociation' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf deleteDataInFileSystem+      `Prelude.seq` Prelude.rnf associationId++instance+  Data.ToHeaders+    DeleteDataRepositoryAssociation+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DeleteDataRepositoryAssociation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDataRepositoryAssociation where+  toJSON DeleteDataRepositoryAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("DeleteDataInFileSystem" Data..=)+              Prelude.<$> deleteDataInFileSystem,+            Prelude.Just+              ("AssociationId" Data..= associationId)+          ]+      )++instance Data.ToPath DeleteDataRepositoryAssociation where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDataRepositoryAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDataRepositoryAssociationResponse' smart constructor.+data DeleteDataRepositoryAssociationResponse = DeleteDataRepositoryAssociationResponse'+  { -- | The ID of the data repository association being deleted.+    associationId :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether data in the file system that corresponds to the data+    -- repository association is being deleted. Default is @false@.+    deleteDataInFileSystem :: Prelude.Maybe Prelude.Bool,+    -- | Describes the lifecycle state of the data repository association being+    -- deleted.+    lifecycle :: Prelude.Maybe DataRepositoryLifecycle,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataRepositoryAssociationResponse' 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:+--+-- 'associationId', 'deleteDataRepositoryAssociationResponse_associationId' - The ID of the data repository association being deleted.+--+-- 'deleteDataInFileSystem', 'deleteDataRepositoryAssociationResponse_deleteDataInFileSystem' - Indicates whether data in the file system that corresponds to the data+-- repository association is being deleted. Default is @false@.+--+-- 'lifecycle', 'deleteDataRepositoryAssociationResponse_lifecycle' - Describes the lifecycle state of the data repository association being+-- deleted.+--+-- 'httpStatus', 'deleteDataRepositoryAssociationResponse_httpStatus' - The response's http status code.+newDeleteDataRepositoryAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteDataRepositoryAssociationResponse+newDeleteDataRepositoryAssociationResponse+  pHttpStatus_ =+    DeleteDataRepositoryAssociationResponse'+      { associationId =+          Prelude.Nothing,+        deleteDataInFileSystem =+          Prelude.Nothing,+        lifecycle = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The ID of the data repository association being deleted.+deleteDataRepositoryAssociationResponse_associationId :: Lens.Lens' DeleteDataRepositoryAssociationResponse (Prelude.Maybe Prelude.Text)+deleteDataRepositoryAssociationResponse_associationId = Lens.lens (\DeleteDataRepositoryAssociationResponse' {associationId} -> associationId) (\s@DeleteDataRepositoryAssociationResponse' {} a -> s {associationId = a} :: DeleteDataRepositoryAssociationResponse)++-- | Indicates whether data in the file system that corresponds to the data+-- repository association is being deleted. Default is @false@.+deleteDataRepositoryAssociationResponse_deleteDataInFileSystem :: Lens.Lens' DeleteDataRepositoryAssociationResponse (Prelude.Maybe Prelude.Bool)+deleteDataRepositoryAssociationResponse_deleteDataInFileSystem = Lens.lens (\DeleteDataRepositoryAssociationResponse' {deleteDataInFileSystem} -> deleteDataInFileSystem) (\s@DeleteDataRepositoryAssociationResponse' {} a -> s {deleteDataInFileSystem = a} :: DeleteDataRepositoryAssociationResponse)++-- | Describes the lifecycle state of the data repository association being+-- deleted.+deleteDataRepositoryAssociationResponse_lifecycle :: Lens.Lens' DeleteDataRepositoryAssociationResponse (Prelude.Maybe DataRepositoryLifecycle)+deleteDataRepositoryAssociationResponse_lifecycle = Lens.lens (\DeleteDataRepositoryAssociationResponse' {lifecycle} -> lifecycle) (\s@DeleteDataRepositoryAssociationResponse' {} a -> s {lifecycle = a} :: DeleteDataRepositoryAssociationResponse)++-- | The response's http status code.+deleteDataRepositoryAssociationResponse_httpStatus :: Lens.Lens' DeleteDataRepositoryAssociationResponse Prelude.Int+deleteDataRepositoryAssociationResponse_httpStatus = Lens.lens (\DeleteDataRepositoryAssociationResponse' {httpStatus} -> httpStatus) (\s@DeleteDataRepositoryAssociationResponse' {} a -> s {httpStatus = a} :: DeleteDataRepositoryAssociationResponse)++instance+  Prelude.NFData+    DeleteDataRepositoryAssociationResponse+  where+  rnf DeleteDataRepositoryAssociationResponse' {..} =+    Prelude.rnf associationId+      `Prelude.seq` Prelude.rnf deleteDataInFileSystem+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DeleteFileCache.hs view
@@ -0,0 +1,214 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DeleteFileCache+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Amazon File Cache resource. After deletion, the cache no+-- longer exists, and its data is gone.+--+-- The @DeleteFileCache@ operation returns while the cache has the+-- @DELETING@ status. You can check the cache deletion status by calling+-- the+-- <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileCaches.html DescribeFileCaches>+-- operation, which returns a list of caches in your account. If you pass+-- the cache ID for a deleted cache, the @DescribeFileCaches@ operation+-- returns a @FileCacheNotFound@ error.+--+-- The data in a deleted cache is also deleted and can\'t be recovered by+-- any means.+module Amazonka.FSx.DeleteFileCache+  ( -- * Creating a Request+    DeleteFileCache (..),+    newDeleteFileCache,++    -- * Request Lenses+    deleteFileCache_clientRequestToken,+    deleteFileCache_fileCacheId,++    -- * Destructuring the Response+    DeleteFileCacheResponse (..),+    newDeleteFileCacheResponse,++    -- * Response Lenses+    deleteFileCacheResponse_fileCacheId,+    deleteFileCacheResponse_lifecycle,+    deleteFileCacheResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteFileCache' smart constructor.+data DeleteFileCache = DeleteFileCache'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the cache that\'s being deleted.+    fileCacheId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileCache' 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:+--+-- 'clientRequestToken', 'deleteFileCache_clientRequestToken' - Undocumented member.+--+-- 'fileCacheId', 'deleteFileCache_fileCacheId' - The ID of the cache that\'s being deleted.+newDeleteFileCache ::+  -- | 'fileCacheId'+  Prelude.Text ->+  DeleteFileCache+newDeleteFileCache pFileCacheId_ =+  DeleteFileCache'+    { clientRequestToken =+        Prelude.Nothing,+      fileCacheId = pFileCacheId_+    }++-- | Undocumented member.+deleteFileCache_clientRequestToken :: Lens.Lens' DeleteFileCache (Prelude.Maybe Prelude.Text)+deleteFileCache_clientRequestToken = Lens.lens (\DeleteFileCache' {clientRequestToken} -> clientRequestToken) (\s@DeleteFileCache' {} a -> s {clientRequestToken = a} :: DeleteFileCache)++-- | The ID of the cache that\'s being deleted.+deleteFileCache_fileCacheId :: Lens.Lens' DeleteFileCache Prelude.Text+deleteFileCache_fileCacheId = Lens.lens (\DeleteFileCache' {fileCacheId} -> fileCacheId) (\s@DeleteFileCache' {} a -> s {fileCacheId = a} :: DeleteFileCache)++instance Core.AWSRequest DeleteFileCache where+  type+    AWSResponse DeleteFileCache =+      DeleteFileCacheResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteFileCacheResponse'+            Prelude.<$> (x Data..?> "FileCacheId")+            Prelude.<*> (x Data..?> "Lifecycle")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteFileCache where+  hashWithSalt _salt DeleteFileCache' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` fileCacheId++instance Prelude.NFData DeleteFileCache where+  rnf DeleteFileCache' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileCacheId++instance Data.ToHeaders DeleteFileCache where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DeleteFileCache" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteFileCache where+  toJSON DeleteFileCache' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("FileCacheId" Data..= fileCacheId)+          ]+      )++instance Data.ToPath DeleteFileCache where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteFileCache where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFileCacheResponse' smart constructor.+data DeleteFileCacheResponse = DeleteFileCacheResponse'+  { -- | The ID of the cache that\'s being deleted.+    fileCacheId :: Prelude.Maybe Prelude.Text,+    -- | The cache lifecycle for the deletion request. If the @DeleteFileCache@+    -- operation is successful, this status is @DELETING@.+    lifecycle :: Prelude.Maybe FileCacheLifecycle,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileCacheResponse' 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:+--+-- 'fileCacheId', 'deleteFileCacheResponse_fileCacheId' - The ID of the cache that\'s being deleted.+--+-- 'lifecycle', 'deleteFileCacheResponse_lifecycle' - The cache lifecycle for the deletion request. If the @DeleteFileCache@+-- operation is successful, this status is @DELETING@.+--+-- 'httpStatus', 'deleteFileCacheResponse_httpStatus' - The response's http status code.+newDeleteFileCacheResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteFileCacheResponse+newDeleteFileCacheResponse pHttpStatus_ =+  DeleteFileCacheResponse'+    { fileCacheId =+        Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ID of the cache that\'s being deleted.+deleteFileCacheResponse_fileCacheId :: Lens.Lens' DeleteFileCacheResponse (Prelude.Maybe Prelude.Text)+deleteFileCacheResponse_fileCacheId = Lens.lens (\DeleteFileCacheResponse' {fileCacheId} -> fileCacheId) (\s@DeleteFileCacheResponse' {} a -> s {fileCacheId = a} :: DeleteFileCacheResponse)++-- | The cache lifecycle for the deletion request. If the @DeleteFileCache@+-- operation is successful, this status is @DELETING@.+deleteFileCacheResponse_lifecycle :: Lens.Lens' DeleteFileCacheResponse (Prelude.Maybe FileCacheLifecycle)+deleteFileCacheResponse_lifecycle = Lens.lens (\DeleteFileCacheResponse' {lifecycle} -> lifecycle) (\s@DeleteFileCacheResponse' {} a -> s {lifecycle = a} :: DeleteFileCacheResponse)++-- | The response's http status code.+deleteFileCacheResponse_httpStatus :: Lens.Lens' DeleteFileCacheResponse Prelude.Int+deleteFileCacheResponse_httpStatus = Lens.lens (\DeleteFileCacheResponse' {httpStatus} -> httpStatus) (\s@DeleteFileCacheResponse' {} a -> s {httpStatus = a} :: DeleteFileCacheResponse)++instance Prelude.NFData DeleteFileCacheResponse where+  rnf DeleteFileCacheResponse' {..} =+    Prelude.rnf fileCacheId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DeleteFileSystem.hs view
@@ -0,0 +1,322 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DeleteFileSystem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a file system. After deletion, the file system no longer exists,+-- and its data is gone. Any existing automatic backups and snapshots are+-- also deleted.+--+-- To delete an Amazon FSx for NetApp ONTAP file system, first delete all+-- the volumes and storage virtual machines (SVMs) on the file system. Then+-- provide a @FileSystemId@ value to the @DeleFileSystem@ operation.+--+-- By default, when you delete an Amazon FSx for Windows File Server file+-- system, a final backup is created upon deletion. This final backup+-- isn\'t subject to the file system\'s retention policy, and must be+-- manually deleted.+--+-- The @DeleteFileSystem@ operation returns while the file system has the+-- @DELETING@ status. You can check the file system deletion status by+-- calling the+-- <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html DescribeFileSystems>+-- operation, which returns a list of file systems in your account. If you+-- pass the file system ID for a deleted file system, the+-- @DescribeFileSystems@ operation returns a @FileSystemNotFound@ error.+--+-- If a data repository task is in a @PENDING@ or @EXECUTING@ state,+-- deleting an Amazon FSx for Lustre file system will fail with an HTTP+-- status code 400 (Bad Request).+--+-- The data in a deleted file system is also deleted and can\'t be+-- recovered by any means.+module Amazonka.FSx.DeleteFileSystem+  ( -- * Creating a Request+    DeleteFileSystem (..),+    newDeleteFileSystem,++    -- * Request Lenses+    deleteFileSystem_clientRequestToken,+    deleteFileSystem_lustreConfiguration,+    deleteFileSystem_openZFSConfiguration,+    deleteFileSystem_windowsConfiguration,+    deleteFileSystem_fileSystemId,++    -- * Destructuring the Response+    DeleteFileSystemResponse (..),+    newDeleteFileSystemResponse,++    -- * Response Lenses+    deleteFileSystemResponse_fileSystemId,+    deleteFileSystemResponse_lifecycle,+    deleteFileSystemResponse_lustreResponse,+    deleteFileSystemResponse_openZFSResponse,+    deleteFileSystemResponse_windowsResponse,+    deleteFileSystemResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystem' smart constructor.+data DeleteFileSystem = DeleteFileSystem'+  { -- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+    -- idempotent deletion. This token is automatically filled on your behalf+    -- when using the Command Line Interface (CLI) or an Amazon Web Services+    -- SDK.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    lustreConfiguration :: Prelude.Maybe DeleteFileSystemLustreConfiguration,+    -- | The configuration object for the OpenZFS file system used in the+    -- @DeleteFileSystem@ operation.+    openZFSConfiguration :: Prelude.Maybe DeleteFileSystemOpenZFSConfiguration,+    windowsConfiguration :: Prelude.Maybe DeleteFileSystemWindowsConfiguration,+    -- | The ID of the file system that you want to delete.+    fileSystemId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystem' 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:+--+-- 'clientRequestToken', 'deleteFileSystem_clientRequestToken' - A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent deletion. This token is automatically filled on your behalf+-- when using the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+--+-- 'lustreConfiguration', 'deleteFileSystem_lustreConfiguration' - Undocumented member.+--+-- 'openZFSConfiguration', 'deleteFileSystem_openZFSConfiguration' - The configuration object for the OpenZFS file system used in the+-- @DeleteFileSystem@ operation.+--+-- 'windowsConfiguration', 'deleteFileSystem_windowsConfiguration' - Undocumented member.+--+-- 'fileSystemId', 'deleteFileSystem_fileSystemId' - The ID of the file system that you want to delete.+newDeleteFileSystem ::+  -- | 'fileSystemId'+  Prelude.Text ->+  DeleteFileSystem+newDeleteFileSystem pFileSystemId_ =+  DeleteFileSystem'+    { clientRequestToken =+        Prelude.Nothing,+      lustreConfiguration = Prelude.Nothing,+      openZFSConfiguration = Prelude.Nothing,+      windowsConfiguration = Prelude.Nothing,+      fileSystemId = pFileSystemId_+    }++-- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent deletion. This token is automatically filled on your behalf+-- when using the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+deleteFileSystem_clientRequestToken :: Lens.Lens' DeleteFileSystem (Prelude.Maybe Prelude.Text)+deleteFileSystem_clientRequestToken = Lens.lens (\DeleteFileSystem' {clientRequestToken} -> clientRequestToken) (\s@DeleteFileSystem' {} a -> s {clientRequestToken = a} :: DeleteFileSystem)++-- | Undocumented member.+deleteFileSystem_lustreConfiguration :: Lens.Lens' DeleteFileSystem (Prelude.Maybe DeleteFileSystemLustreConfiguration)+deleteFileSystem_lustreConfiguration = Lens.lens (\DeleteFileSystem' {lustreConfiguration} -> lustreConfiguration) (\s@DeleteFileSystem' {} a -> s {lustreConfiguration = a} :: DeleteFileSystem)++-- | The configuration object for the OpenZFS file system used in the+-- @DeleteFileSystem@ operation.+deleteFileSystem_openZFSConfiguration :: Lens.Lens' DeleteFileSystem (Prelude.Maybe DeleteFileSystemOpenZFSConfiguration)+deleteFileSystem_openZFSConfiguration = Lens.lens (\DeleteFileSystem' {openZFSConfiguration} -> openZFSConfiguration) (\s@DeleteFileSystem' {} a -> s {openZFSConfiguration = a} :: DeleteFileSystem)++-- | Undocumented member.+deleteFileSystem_windowsConfiguration :: Lens.Lens' DeleteFileSystem (Prelude.Maybe DeleteFileSystemWindowsConfiguration)+deleteFileSystem_windowsConfiguration = Lens.lens (\DeleteFileSystem' {windowsConfiguration} -> windowsConfiguration) (\s@DeleteFileSystem' {} a -> s {windowsConfiguration = a} :: DeleteFileSystem)++-- | The ID of the file system that you want to delete.+deleteFileSystem_fileSystemId :: Lens.Lens' DeleteFileSystem Prelude.Text+deleteFileSystem_fileSystemId = Lens.lens (\DeleteFileSystem' {fileSystemId} -> fileSystemId) (\s@DeleteFileSystem' {} a -> s {fileSystemId = a} :: DeleteFileSystem)++instance Core.AWSRequest DeleteFileSystem where+  type+    AWSResponse DeleteFileSystem =+      DeleteFileSystemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteFileSystemResponse'+            Prelude.<$> (x Data..?> "FileSystemId")+            Prelude.<*> (x Data..?> "Lifecycle")+            Prelude.<*> (x Data..?> "LustreResponse")+            Prelude.<*> (x Data..?> "OpenZFSResponse")+            Prelude.<*> (x Data..?> "WindowsResponse")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteFileSystem where+  hashWithSalt _salt DeleteFileSystem' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` windowsConfiguration+      `Prelude.hashWithSalt` fileSystemId++instance Prelude.NFData DeleteFileSystem where+  rnf DeleteFileSystem' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf windowsConfiguration+      `Prelude.seq` Prelude.rnf fileSystemId++instance Data.ToHeaders DeleteFileSystem where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DeleteFileSystem" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteFileSystem where+  toJSON DeleteFileSystem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("LustreConfiguration" Data..=)+              Prelude.<$> lustreConfiguration,+            ("OpenZFSConfiguration" Data..=)+              Prelude.<$> openZFSConfiguration,+            ("WindowsConfiguration" Data..=)+              Prelude.<$> windowsConfiguration,+            Prelude.Just ("FileSystemId" Data..= fileSystemId)+          ]+      )++instance Data.ToPath DeleteFileSystem where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteFileSystem where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for the @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystemResponse' smart constructor.+data DeleteFileSystemResponse = DeleteFileSystemResponse'+  { -- | The ID of the file system that\'s being deleted.+    fileSystemId :: Prelude.Maybe Prelude.Text,+    -- | The file system lifecycle for the deletion request. If the+    -- @DeleteFileSystem@ operation is successful, this status is @DELETING@.+    lifecycle :: Prelude.Maybe FileSystemLifecycle,+    lustreResponse :: Prelude.Maybe DeleteFileSystemLustreResponse,+    -- | The response object for the OpenZFS file system that\'s being deleted in+    -- the @DeleteFileSystem@ operation.+    openZFSResponse :: Prelude.Maybe DeleteFileSystemOpenZFSResponse,+    windowsResponse :: Prelude.Maybe DeleteFileSystemWindowsResponse,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystemResponse' 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:+--+-- 'fileSystemId', 'deleteFileSystemResponse_fileSystemId' - The ID of the file system that\'s being deleted.+--+-- 'lifecycle', 'deleteFileSystemResponse_lifecycle' - The file system lifecycle for the deletion request. If the+-- @DeleteFileSystem@ operation is successful, this status is @DELETING@.+--+-- 'lustreResponse', 'deleteFileSystemResponse_lustreResponse' - Undocumented member.+--+-- 'openZFSResponse', 'deleteFileSystemResponse_openZFSResponse' - The response object for the OpenZFS file system that\'s being deleted in+-- the @DeleteFileSystem@ operation.+--+-- 'windowsResponse', 'deleteFileSystemResponse_windowsResponse' - Undocumented member.+--+-- 'httpStatus', 'deleteFileSystemResponse_httpStatus' - The response's http status code.+newDeleteFileSystemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteFileSystemResponse+newDeleteFileSystemResponse pHttpStatus_ =+  DeleteFileSystemResponse'+    { fileSystemId =+        Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      lustreResponse = Prelude.Nothing,+      openZFSResponse = Prelude.Nothing,+      windowsResponse = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ID of the file system that\'s being deleted.+deleteFileSystemResponse_fileSystemId :: Lens.Lens' DeleteFileSystemResponse (Prelude.Maybe Prelude.Text)+deleteFileSystemResponse_fileSystemId = Lens.lens (\DeleteFileSystemResponse' {fileSystemId} -> fileSystemId) (\s@DeleteFileSystemResponse' {} a -> s {fileSystemId = a} :: DeleteFileSystemResponse)++-- | The file system lifecycle for the deletion request. If the+-- @DeleteFileSystem@ operation is successful, this status is @DELETING@.+deleteFileSystemResponse_lifecycle :: Lens.Lens' DeleteFileSystemResponse (Prelude.Maybe FileSystemLifecycle)+deleteFileSystemResponse_lifecycle = Lens.lens (\DeleteFileSystemResponse' {lifecycle} -> lifecycle) (\s@DeleteFileSystemResponse' {} a -> s {lifecycle = a} :: DeleteFileSystemResponse)++-- | Undocumented member.+deleteFileSystemResponse_lustreResponse :: Lens.Lens' DeleteFileSystemResponse (Prelude.Maybe DeleteFileSystemLustreResponse)+deleteFileSystemResponse_lustreResponse = Lens.lens (\DeleteFileSystemResponse' {lustreResponse} -> lustreResponse) (\s@DeleteFileSystemResponse' {} a -> s {lustreResponse = a} :: DeleteFileSystemResponse)++-- | The response object for the OpenZFS file system that\'s being deleted in+-- the @DeleteFileSystem@ operation.+deleteFileSystemResponse_openZFSResponse :: Lens.Lens' DeleteFileSystemResponse (Prelude.Maybe DeleteFileSystemOpenZFSResponse)+deleteFileSystemResponse_openZFSResponse = Lens.lens (\DeleteFileSystemResponse' {openZFSResponse} -> openZFSResponse) (\s@DeleteFileSystemResponse' {} a -> s {openZFSResponse = a} :: DeleteFileSystemResponse)++-- | Undocumented member.+deleteFileSystemResponse_windowsResponse :: Lens.Lens' DeleteFileSystemResponse (Prelude.Maybe DeleteFileSystemWindowsResponse)+deleteFileSystemResponse_windowsResponse = Lens.lens (\DeleteFileSystemResponse' {windowsResponse} -> windowsResponse) (\s@DeleteFileSystemResponse' {} a -> s {windowsResponse = a} :: DeleteFileSystemResponse)++-- | The response's http status code.+deleteFileSystemResponse_httpStatus :: Lens.Lens' DeleteFileSystemResponse Prelude.Int+deleteFileSystemResponse_httpStatus = Lens.lens (\DeleteFileSystemResponse' {httpStatus} -> httpStatus) (\s@DeleteFileSystemResponse' {} a -> s {httpStatus = a} :: DeleteFileSystemResponse)++instance Prelude.NFData DeleteFileSystemResponse where+  rnf DeleteFileSystemResponse' {..} =+    Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf lustreResponse+      `Prelude.seq` Prelude.rnf openZFSResponse+      `Prelude.seq` Prelude.rnf windowsResponse+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DeleteSnapshot.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DeleteSnapshot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Amazon FSx for OpenZFS snapshot. After deletion, the snapshot+-- no longer exists, and its data is gone. Deleting a snapshot doesn\'t+-- affect snapshots stored in a file system backup.+--+-- The @DeleteSnapshot@ operation returns instantly. The snapshot appears+-- with the lifecycle status of @DELETING@ until the deletion is complete.+module Amazonka.FSx.DeleteSnapshot+  ( -- * Creating a Request+    DeleteSnapshot (..),+    newDeleteSnapshot,++    -- * Request Lenses+    deleteSnapshot_clientRequestToken,+    deleteSnapshot_snapshotId,++    -- * Destructuring the Response+    DeleteSnapshotResponse (..),+    newDeleteSnapshotResponse,++    -- * Response Lenses+    deleteSnapshotResponse_lifecycle,+    deleteSnapshotResponse_snapshotId,+    deleteSnapshotResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSnapshot' smart constructor.+data DeleteSnapshot = DeleteSnapshot'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the snapshot that you want to delete.+    snapshotId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSnapshot' 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:+--+-- 'clientRequestToken', 'deleteSnapshot_clientRequestToken' - Undocumented member.+--+-- 'snapshotId', 'deleteSnapshot_snapshotId' - The ID of the snapshot that you want to delete.+newDeleteSnapshot ::+  -- | 'snapshotId'+  Prelude.Text ->+  DeleteSnapshot+newDeleteSnapshot pSnapshotId_ =+  DeleteSnapshot'+    { clientRequestToken =+        Prelude.Nothing,+      snapshotId = pSnapshotId_+    }++-- | Undocumented member.+deleteSnapshot_clientRequestToken :: Lens.Lens' DeleteSnapshot (Prelude.Maybe Prelude.Text)+deleteSnapshot_clientRequestToken = Lens.lens (\DeleteSnapshot' {clientRequestToken} -> clientRequestToken) (\s@DeleteSnapshot' {} a -> s {clientRequestToken = a} :: DeleteSnapshot)++-- | The ID of the snapshot that you want to delete.+deleteSnapshot_snapshotId :: Lens.Lens' DeleteSnapshot Prelude.Text+deleteSnapshot_snapshotId = Lens.lens (\DeleteSnapshot' {snapshotId} -> snapshotId) (\s@DeleteSnapshot' {} a -> s {snapshotId = a} :: DeleteSnapshot)++instance Core.AWSRequest DeleteSnapshot where+  type+    AWSResponse DeleteSnapshot =+      DeleteSnapshotResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteSnapshotResponse'+            Prelude.<$> (x Data..?> "Lifecycle")+            Prelude.<*> (x Data..?> "SnapshotId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteSnapshot where+  hashWithSalt _salt DeleteSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` snapshotId++instance Prelude.NFData DeleteSnapshot where+  rnf DeleteSnapshot' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf snapshotId++instance Data.ToHeaders DeleteSnapshot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DeleteSnapshot" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSnapshot where+  toJSON DeleteSnapshot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("SnapshotId" Data..= snapshotId)+          ]+      )++instance Data.ToPath DeleteSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteSnapshot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSnapshotResponse' smart constructor.+data DeleteSnapshotResponse = DeleteSnapshotResponse'+  { -- | The lifecycle status of the snapshot. If the @DeleteSnapshot@ operation+    -- is successful, this status is @DELETING@.+    lifecycle :: Prelude.Maybe SnapshotLifecycle,+    -- | The ID of the deleted snapshot.+    snapshotId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSnapshotResponse' 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:+--+-- 'lifecycle', 'deleteSnapshotResponse_lifecycle' - The lifecycle status of the snapshot. If the @DeleteSnapshot@ operation+-- is successful, this status is @DELETING@.+--+-- 'snapshotId', 'deleteSnapshotResponse_snapshotId' - The ID of the deleted snapshot.+--+-- 'httpStatus', 'deleteSnapshotResponse_httpStatus' - The response's http status code.+newDeleteSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSnapshotResponse+newDeleteSnapshotResponse pHttpStatus_ =+  DeleteSnapshotResponse'+    { lifecycle =+        Prelude.Nothing,+      snapshotId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The lifecycle status of the snapshot. If the @DeleteSnapshot@ operation+-- is successful, this status is @DELETING@.+deleteSnapshotResponse_lifecycle :: Lens.Lens' DeleteSnapshotResponse (Prelude.Maybe SnapshotLifecycle)+deleteSnapshotResponse_lifecycle = Lens.lens (\DeleteSnapshotResponse' {lifecycle} -> lifecycle) (\s@DeleteSnapshotResponse' {} a -> s {lifecycle = a} :: DeleteSnapshotResponse)++-- | The ID of the deleted snapshot.+deleteSnapshotResponse_snapshotId :: Lens.Lens' DeleteSnapshotResponse (Prelude.Maybe Prelude.Text)+deleteSnapshotResponse_snapshotId = Lens.lens (\DeleteSnapshotResponse' {snapshotId} -> snapshotId) (\s@DeleteSnapshotResponse' {} a -> s {snapshotId = a} :: DeleteSnapshotResponse)++-- | The response's http status code.+deleteSnapshotResponse_httpStatus :: Lens.Lens' DeleteSnapshotResponse Prelude.Int+deleteSnapshotResponse_httpStatus = Lens.lens (\DeleteSnapshotResponse' {httpStatus} -> httpStatus) (\s@DeleteSnapshotResponse' {} a -> s {httpStatus = a} :: DeleteSnapshotResponse)++instance Prelude.NFData DeleteSnapshotResponse where+  rnf DeleteSnapshotResponse' {..} =+    Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf snapshotId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DeleteStorageVirtualMachine.hs view
@@ -0,0 +1,210 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DeleteStorageVirtualMachine+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing Amazon FSx for ONTAP storage virtual machine (SVM).+-- Prior to deleting an SVM, you must delete all non-root volumes in the+-- SVM, otherwise the operation will fail.+module Amazonka.FSx.DeleteStorageVirtualMachine+  ( -- * Creating a Request+    DeleteStorageVirtualMachine (..),+    newDeleteStorageVirtualMachine,++    -- * Request Lenses+    deleteStorageVirtualMachine_clientRequestToken,+    deleteStorageVirtualMachine_storageVirtualMachineId,++    -- * Destructuring the Response+    DeleteStorageVirtualMachineResponse (..),+    newDeleteStorageVirtualMachineResponse,++    -- * Response Lenses+    deleteStorageVirtualMachineResponse_lifecycle,+    deleteStorageVirtualMachineResponse_storageVirtualMachineId,+    deleteStorageVirtualMachineResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteStorageVirtualMachine' smart constructor.+data DeleteStorageVirtualMachine = DeleteStorageVirtualMachine'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the SVM that you want to delete.+    storageVirtualMachineId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStorageVirtualMachine' 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:+--+-- 'clientRequestToken', 'deleteStorageVirtualMachine_clientRequestToken' - Undocumented member.+--+-- 'storageVirtualMachineId', 'deleteStorageVirtualMachine_storageVirtualMachineId' - The ID of the SVM that you want to delete.+newDeleteStorageVirtualMachine ::+  -- | 'storageVirtualMachineId'+  Prelude.Text ->+  DeleteStorageVirtualMachine+newDeleteStorageVirtualMachine+  pStorageVirtualMachineId_ =+    DeleteStorageVirtualMachine'+      { clientRequestToken =+          Prelude.Nothing,+        storageVirtualMachineId =+          pStorageVirtualMachineId_+      }++-- | Undocumented member.+deleteStorageVirtualMachine_clientRequestToken :: Lens.Lens' DeleteStorageVirtualMachine (Prelude.Maybe Prelude.Text)+deleteStorageVirtualMachine_clientRequestToken = Lens.lens (\DeleteStorageVirtualMachine' {clientRequestToken} -> clientRequestToken) (\s@DeleteStorageVirtualMachine' {} a -> s {clientRequestToken = a} :: DeleteStorageVirtualMachine)++-- | The ID of the SVM that you want to delete.+deleteStorageVirtualMachine_storageVirtualMachineId :: Lens.Lens' DeleteStorageVirtualMachine Prelude.Text+deleteStorageVirtualMachine_storageVirtualMachineId = Lens.lens (\DeleteStorageVirtualMachine' {storageVirtualMachineId} -> storageVirtualMachineId) (\s@DeleteStorageVirtualMachine' {} a -> s {storageVirtualMachineId = a} :: DeleteStorageVirtualMachine)++instance Core.AWSRequest DeleteStorageVirtualMachine where+  type+    AWSResponse DeleteStorageVirtualMachine =+      DeleteStorageVirtualMachineResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteStorageVirtualMachineResponse'+            Prelude.<$> (x Data..?> "Lifecycle")+            Prelude.<*> (x Data..?> "StorageVirtualMachineId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteStorageVirtualMachine where+  hashWithSalt _salt DeleteStorageVirtualMachine' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` storageVirtualMachineId++instance Prelude.NFData DeleteStorageVirtualMachine where+  rnf DeleteStorageVirtualMachine' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf storageVirtualMachineId++instance Data.ToHeaders DeleteStorageVirtualMachine where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DeleteStorageVirtualMachine" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteStorageVirtualMachine where+  toJSON DeleteStorageVirtualMachine' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just+              ( "StorageVirtualMachineId"+                  Data..= storageVirtualMachineId+              )+          ]+      )++instance Data.ToPath DeleteStorageVirtualMachine where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteStorageVirtualMachine where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStorageVirtualMachineResponse' smart constructor.+data DeleteStorageVirtualMachineResponse = DeleteStorageVirtualMachineResponse'+  { -- | Describes the lifecycle state of the SVM being deleted.+    lifecycle :: Prelude.Maybe StorageVirtualMachineLifecycle,+    -- | The ID of the SVM Amazon FSx is deleting.+    storageVirtualMachineId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStorageVirtualMachineResponse' 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:+--+-- 'lifecycle', 'deleteStorageVirtualMachineResponse_lifecycle' - Describes the lifecycle state of the SVM being deleted.+--+-- 'storageVirtualMachineId', 'deleteStorageVirtualMachineResponse_storageVirtualMachineId' - The ID of the SVM Amazon FSx is deleting.+--+-- 'httpStatus', 'deleteStorageVirtualMachineResponse_httpStatus' - The response's http status code.+newDeleteStorageVirtualMachineResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteStorageVirtualMachineResponse+newDeleteStorageVirtualMachineResponse pHttpStatus_ =+  DeleteStorageVirtualMachineResponse'+    { lifecycle =+        Prelude.Nothing,+      storageVirtualMachineId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Describes the lifecycle state of the SVM being deleted.+deleteStorageVirtualMachineResponse_lifecycle :: Lens.Lens' DeleteStorageVirtualMachineResponse (Prelude.Maybe StorageVirtualMachineLifecycle)+deleteStorageVirtualMachineResponse_lifecycle = Lens.lens (\DeleteStorageVirtualMachineResponse' {lifecycle} -> lifecycle) (\s@DeleteStorageVirtualMachineResponse' {} a -> s {lifecycle = a} :: DeleteStorageVirtualMachineResponse)++-- | The ID of the SVM Amazon FSx is deleting.+deleteStorageVirtualMachineResponse_storageVirtualMachineId :: Lens.Lens' DeleteStorageVirtualMachineResponse (Prelude.Maybe Prelude.Text)+deleteStorageVirtualMachineResponse_storageVirtualMachineId = Lens.lens (\DeleteStorageVirtualMachineResponse' {storageVirtualMachineId} -> storageVirtualMachineId) (\s@DeleteStorageVirtualMachineResponse' {} a -> s {storageVirtualMachineId = a} :: DeleteStorageVirtualMachineResponse)++-- | The response's http status code.+deleteStorageVirtualMachineResponse_httpStatus :: Lens.Lens' DeleteStorageVirtualMachineResponse Prelude.Int+deleteStorageVirtualMachineResponse_httpStatus = Lens.lens (\DeleteStorageVirtualMachineResponse' {httpStatus} -> httpStatus) (\s@DeleteStorageVirtualMachineResponse' {} a -> s {httpStatus = a} :: DeleteStorageVirtualMachineResponse)++instance+  Prelude.NFData+    DeleteStorageVirtualMachineResponse+  where+  rnf DeleteStorageVirtualMachineResponse' {..} =+    Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf storageVirtualMachineId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DeleteVolume.hs view
@@ -0,0 +1,250 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DeleteVolume+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume.+module Amazonka.FSx.DeleteVolume+  ( -- * Creating a Request+    DeleteVolume (..),+    newDeleteVolume,++    -- * Request Lenses+    deleteVolume_clientRequestToken,+    deleteVolume_ontapConfiguration,+    deleteVolume_openZFSConfiguration,+    deleteVolume_volumeId,++    -- * Destructuring the Response+    DeleteVolumeResponse (..),+    newDeleteVolumeResponse,++    -- * Response Lenses+    deleteVolumeResponse_lifecycle,+    deleteVolumeResponse_ontapResponse,+    deleteVolumeResponse_volumeId,+    deleteVolumeResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteVolume' smart constructor.+data DeleteVolume = DeleteVolume'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | For Amazon FSx for ONTAP volumes, specify whether to take a final backup+    -- of the volume and apply tags to the backup. To apply tags to the backup,+    -- you must have the @fsx:TagResource@ permission.+    ontapConfiguration :: Prelude.Maybe DeleteVolumeOntapConfiguration,+    -- | For Amazon FSx for OpenZFS volumes, specify whether to delete all child+    -- volumes and snapshots.+    openZFSConfiguration :: Prelude.Maybe DeleteVolumeOpenZFSConfiguration,+    -- | The ID of the volume that you are deleting.+    volumeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVolume' 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:+--+-- 'clientRequestToken', 'deleteVolume_clientRequestToken' - Undocumented member.+--+-- 'ontapConfiguration', 'deleteVolume_ontapConfiguration' - For Amazon FSx for ONTAP volumes, specify whether to take a final backup+-- of the volume and apply tags to the backup. To apply tags to the backup,+-- you must have the @fsx:TagResource@ permission.+--+-- 'openZFSConfiguration', 'deleteVolume_openZFSConfiguration' - For Amazon FSx for OpenZFS volumes, specify whether to delete all child+-- volumes and snapshots.+--+-- 'volumeId', 'deleteVolume_volumeId' - The ID of the volume that you are deleting.+newDeleteVolume ::+  -- | 'volumeId'+  Prelude.Text ->+  DeleteVolume+newDeleteVolume pVolumeId_ =+  DeleteVolume'+    { clientRequestToken = Prelude.Nothing,+      ontapConfiguration = Prelude.Nothing,+      openZFSConfiguration = Prelude.Nothing,+      volumeId = pVolumeId_+    }++-- | Undocumented member.+deleteVolume_clientRequestToken :: Lens.Lens' DeleteVolume (Prelude.Maybe Prelude.Text)+deleteVolume_clientRequestToken = Lens.lens (\DeleteVolume' {clientRequestToken} -> clientRequestToken) (\s@DeleteVolume' {} a -> s {clientRequestToken = a} :: DeleteVolume)++-- | For Amazon FSx for ONTAP volumes, specify whether to take a final backup+-- of the volume and apply tags to the backup. To apply tags to the backup,+-- you must have the @fsx:TagResource@ permission.+deleteVolume_ontapConfiguration :: Lens.Lens' DeleteVolume (Prelude.Maybe DeleteVolumeOntapConfiguration)+deleteVolume_ontapConfiguration = Lens.lens (\DeleteVolume' {ontapConfiguration} -> ontapConfiguration) (\s@DeleteVolume' {} a -> s {ontapConfiguration = a} :: DeleteVolume)++-- | For Amazon FSx for OpenZFS volumes, specify whether to delete all child+-- volumes and snapshots.+deleteVolume_openZFSConfiguration :: Lens.Lens' DeleteVolume (Prelude.Maybe DeleteVolumeOpenZFSConfiguration)+deleteVolume_openZFSConfiguration = Lens.lens (\DeleteVolume' {openZFSConfiguration} -> openZFSConfiguration) (\s@DeleteVolume' {} a -> s {openZFSConfiguration = a} :: DeleteVolume)++-- | The ID of the volume that you are deleting.+deleteVolume_volumeId :: Lens.Lens' DeleteVolume Prelude.Text+deleteVolume_volumeId = Lens.lens (\DeleteVolume' {volumeId} -> volumeId) (\s@DeleteVolume' {} a -> s {volumeId = a} :: DeleteVolume)++instance Core.AWSRequest DeleteVolume where+  type AWSResponse DeleteVolume = DeleteVolumeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteVolumeResponse'+            Prelude.<$> (x Data..?> "Lifecycle")+            Prelude.<*> (x Data..?> "OntapResponse")+            Prelude.<*> (x Data..?> "VolumeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteVolume where+  hashWithSalt _salt DeleteVolume' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` ontapConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` volumeId++instance Prelude.NFData DeleteVolume where+  rnf DeleteVolume' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf ontapConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf volumeId++instance Data.ToHeaders DeleteVolume where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DeleteVolume" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteVolume where+  toJSON DeleteVolume' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("OntapConfiguration" Data..=)+              Prelude.<$> ontapConfiguration,+            ("OpenZFSConfiguration" Data..=)+              Prelude.<$> openZFSConfiguration,+            Prelude.Just ("VolumeId" Data..= volumeId)+          ]+      )++instance Data.ToPath DeleteVolume where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteVolume where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVolumeResponse' smart constructor.+data DeleteVolumeResponse = DeleteVolumeResponse'+  { -- | The lifecycle state of the volume being deleted. If the @DeleteVolume@+    -- operation is successful, this value is @DELETING@.+    lifecycle :: Prelude.Maybe VolumeLifecycle,+    -- | Returned after a @DeleteVolume@ request, showing the status of the+    -- delete request.+    ontapResponse :: Prelude.Maybe DeleteVolumeOntapResponse,+    -- | The ID of the volume that\'s being deleted.+    volumeId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVolumeResponse' 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:+--+-- 'lifecycle', 'deleteVolumeResponse_lifecycle' - The lifecycle state of the volume being deleted. If the @DeleteVolume@+-- operation is successful, this value is @DELETING@.+--+-- 'ontapResponse', 'deleteVolumeResponse_ontapResponse' - Returned after a @DeleteVolume@ request, showing the status of the+-- delete request.+--+-- 'volumeId', 'deleteVolumeResponse_volumeId' - The ID of the volume that\'s being deleted.+--+-- 'httpStatus', 'deleteVolumeResponse_httpStatus' - The response's http status code.+newDeleteVolumeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteVolumeResponse+newDeleteVolumeResponse pHttpStatus_ =+  DeleteVolumeResponse'+    { lifecycle = Prelude.Nothing,+      ontapResponse = Prelude.Nothing,+      volumeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The lifecycle state of the volume being deleted. If the @DeleteVolume@+-- operation is successful, this value is @DELETING@.+deleteVolumeResponse_lifecycle :: Lens.Lens' DeleteVolumeResponse (Prelude.Maybe VolumeLifecycle)+deleteVolumeResponse_lifecycle = Lens.lens (\DeleteVolumeResponse' {lifecycle} -> lifecycle) (\s@DeleteVolumeResponse' {} a -> s {lifecycle = a} :: DeleteVolumeResponse)++-- | Returned after a @DeleteVolume@ request, showing the status of the+-- delete request.+deleteVolumeResponse_ontapResponse :: Lens.Lens' DeleteVolumeResponse (Prelude.Maybe DeleteVolumeOntapResponse)+deleteVolumeResponse_ontapResponse = Lens.lens (\DeleteVolumeResponse' {ontapResponse} -> ontapResponse) (\s@DeleteVolumeResponse' {} a -> s {ontapResponse = a} :: DeleteVolumeResponse)++-- | The ID of the volume that\'s being deleted.+deleteVolumeResponse_volumeId :: Lens.Lens' DeleteVolumeResponse (Prelude.Maybe Prelude.Text)+deleteVolumeResponse_volumeId = Lens.lens (\DeleteVolumeResponse' {volumeId} -> volumeId) (\s@DeleteVolumeResponse' {} a -> s {volumeId = a} :: DeleteVolumeResponse)++-- | The response's http status code.+deleteVolumeResponse_httpStatus :: Lens.Lens' DeleteVolumeResponse Prelude.Int+deleteVolumeResponse_httpStatus = Lens.lens (\DeleteVolumeResponse' {httpStatus} -> httpStatus) (\s@DeleteVolumeResponse' {} a -> s {httpStatus = a} :: DeleteVolumeResponse)++instance Prelude.NFData DeleteVolumeResponse where+  rnf DeleteVolumeResponse' {..} =+    Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf ontapResponse+      `Prelude.seq` Prelude.rnf volumeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeBackups.hs view
@@ -0,0 +1,303 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeBackups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the description of a specific Amazon FSx backup, if a+-- @BackupIds@ value is provided for that backup. Otherwise, it returns all+-- backups owned by your Amazon Web Services account in the Amazon Web+-- Services Region of the endpoint that you\'re calling.+--+-- When retrieving all backups, you can optionally specify the @MaxResults@+-- parameter to limit the number of backups in a response. If more backups+-- remain, Amazon FSx returns a @NextToken@ value in the response. In this+-- case, send a later request with the @NextToken@ request parameter set to+-- the value of the @NextToken@ value from the last response.+--+-- This operation is used in an iterative process to retrieve a list of+-- your backups. @DescribeBackups@ is called first without a @NextToken@+-- value. Then the operation continues to be called with the @NextToken@+-- parameter set to the value of the last @NextToken@ value until a+-- response has no @NextToken@ value.+--+-- When using this operation, keep the following in mind:+--+-- -   The operation might return fewer than the @MaxResults@ value of+--     backup descriptions while still including a @NextToken@ value.+--+-- -   The order of the backups returned in the response of one+--     @DescribeBackups@ call and the order of the backups returned across+--     the responses of a multi-call iteration is unspecified.+--+-- This operation returns paginated results.+module Amazonka.FSx.DescribeBackups+  ( -- * Creating a Request+    DescribeBackups (..),+    newDescribeBackups,++    -- * Request Lenses+    describeBackups_backupIds,+    describeBackups_filters,+    describeBackups_maxResults,+    describeBackups_nextToken,++    -- * Destructuring the Response+    DescribeBackupsResponse (..),+    newDescribeBackupsResponse,++    -- * Response Lenses+    describeBackupsResponse_backups,+    describeBackupsResponse_nextToken,+    describeBackupsResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for the @DescribeBackups@ operation.+--+-- /See:/ 'newDescribeBackups' smart constructor.+data DescribeBackups = DescribeBackups'+  { -- | The IDs of the backups that you want to retrieve. This parameter value+    -- overrides any filters. If any IDs aren\'t found, a @BackupNotFound@+    -- error occurs.+    backupIds :: Prelude.Maybe [Prelude.Text],+    -- | The filters structure. The supported names are @file-system-id@,+    -- @backup-type@, @file-system-type@, and @volume-id@.+    filters :: Prelude.Maybe [Filter],+    -- | Maximum number of backups to return in the response. This parameter+    -- value must be greater than 0. The number of items that Amazon FSx+    -- returns is the minimum of the @MaxResults@ parameter specified in the+    -- request and the service\'s internal maximum number of items per page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | An opaque pagination token returned from a previous @DescribeBackups@+    -- operation. If a token is present, the operation continues the list from+    -- where the returning call left off.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBackups' 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:+--+-- 'backupIds', 'describeBackups_backupIds' - The IDs of the backups that you want to retrieve. This parameter value+-- overrides any filters. If any IDs aren\'t found, a @BackupNotFound@+-- error occurs.+--+-- 'filters', 'describeBackups_filters' - The filters structure. The supported names are @file-system-id@,+-- @backup-type@, @file-system-type@, and @volume-id@.+--+-- 'maxResults', 'describeBackups_maxResults' - Maximum number of backups to return in the response. This parameter+-- value must be greater than 0. The number of items that Amazon FSx+-- returns is the minimum of the @MaxResults@ parameter specified in the+-- request and the service\'s internal maximum number of items per page.+--+-- 'nextToken', 'describeBackups_nextToken' - An opaque pagination token returned from a previous @DescribeBackups@+-- operation. If a token is present, the operation continues the list from+-- where the returning call left off.+newDescribeBackups ::+  DescribeBackups+newDescribeBackups =+  DescribeBackups'+    { backupIds = Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The IDs of the backups that you want to retrieve. This parameter value+-- overrides any filters. If any IDs aren\'t found, a @BackupNotFound@+-- error occurs.+describeBackups_backupIds :: Lens.Lens' DescribeBackups (Prelude.Maybe [Prelude.Text])+describeBackups_backupIds = Lens.lens (\DescribeBackups' {backupIds} -> backupIds) (\s@DescribeBackups' {} a -> s {backupIds = a} :: DescribeBackups) Prelude.. Lens.mapping Lens.coerced++-- | The filters structure. The supported names are @file-system-id@,+-- @backup-type@, @file-system-type@, and @volume-id@.+describeBackups_filters :: Lens.Lens' DescribeBackups (Prelude.Maybe [Filter])+describeBackups_filters = Lens.lens (\DescribeBackups' {filters} -> filters) (\s@DescribeBackups' {} a -> s {filters = a} :: DescribeBackups) Prelude.. Lens.mapping Lens.coerced++-- | Maximum number of backups to return in the response. This parameter+-- value must be greater than 0. The number of items that Amazon FSx+-- returns is the minimum of the @MaxResults@ parameter specified in the+-- request and the service\'s internal maximum number of items per page.+describeBackups_maxResults :: Lens.Lens' DescribeBackups (Prelude.Maybe Prelude.Natural)+describeBackups_maxResults = Lens.lens (\DescribeBackups' {maxResults} -> maxResults) (\s@DescribeBackups' {} a -> s {maxResults = a} :: DescribeBackups)++-- | An opaque pagination token returned from a previous @DescribeBackups@+-- operation. If a token is present, the operation continues the list from+-- where the returning call left off.+describeBackups_nextToken :: Lens.Lens' DescribeBackups (Prelude.Maybe Prelude.Text)+describeBackups_nextToken = Lens.lens (\DescribeBackups' {nextToken} -> nextToken) (\s@DescribeBackups' {} a -> s {nextToken = a} :: DescribeBackups)++instance Core.AWSPager DescribeBackups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeBackupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeBackupsResponse_backups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeBackups_nextToken+          Lens..~ rs+          Lens.^? describeBackupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeBackups where+  type+    AWSResponse DescribeBackups =+      DescribeBackupsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBackupsResponse'+            Prelude.<$> (x Data..?> "Backups" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBackups where+  hashWithSalt _salt DescribeBackups' {..} =+    _salt+      `Prelude.hashWithSalt` backupIds+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeBackups where+  rnf DescribeBackups' {..} =+    Prelude.rnf backupIds+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeBackups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeBackups" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeBackups where+  toJSON DescribeBackups' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BackupIds" Data..=) Prelude.<$> backupIds,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeBackups where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeBackups where+  toQuery = Prelude.const Prelude.mempty++-- | Response object for the @DescribeBackups@ operation.+--+-- /See:/ 'newDescribeBackupsResponse' smart constructor.+data DescribeBackupsResponse = DescribeBackupsResponse'+  { -- | An array of backups.+    backups :: Prelude.Maybe [Backup],+    -- | A @NextToken@ value is present if there are more backups than returned+    -- in the response. You can use the @NextToken@ value in the subsequent+    -- request to fetch the backups.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBackupsResponse' 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:+--+-- 'backups', 'describeBackupsResponse_backups' - An array of backups.+--+-- 'nextToken', 'describeBackupsResponse_nextToken' - A @NextToken@ value is present if there are more backups than returned+-- in the response. You can use the @NextToken@ value in the subsequent+-- request to fetch the backups.+--+-- 'httpStatus', 'describeBackupsResponse_httpStatus' - The response's http status code.+newDescribeBackupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBackupsResponse+newDescribeBackupsResponse pHttpStatus_ =+  DescribeBackupsResponse'+    { backups = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of backups.+describeBackupsResponse_backups :: Lens.Lens' DescribeBackupsResponse (Prelude.Maybe [Backup])+describeBackupsResponse_backups = Lens.lens (\DescribeBackupsResponse' {backups} -> backups) (\s@DescribeBackupsResponse' {} a -> s {backups = a} :: DescribeBackupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A @NextToken@ value is present if there are more backups than returned+-- in the response. You can use the @NextToken@ value in the subsequent+-- request to fetch the backups.+describeBackupsResponse_nextToken :: Lens.Lens' DescribeBackupsResponse (Prelude.Maybe Prelude.Text)+describeBackupsResponse_nextToken = Lens.lens (\DescribeBackupsResponse' {nextToken} -> nextToken) (\s@DescribeBackupsResponse' {} a -> s {nextToken = a} :: DescribeBackupsResponse)++-- | The response's http status code.+describeBackupsResponse_httpStatus :: Lens.Lens' DescribeBackupsResponse Prelude.Int+describeBackupsResponse_httpStatus = Lens.lens (\DescribeBackupsResponse' {httpStatus} -> httpStatus) (\s@DescribeBackupsResponse' {} a -> s {httpStatus = a} :: DescribeBackupsResponse)++instance Prelude.NFData DescribeBackupsResponse where+  rnf DescribeBackupsResponse' {..} =+    Prelude.rnf backups+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeDataRepositoryAssociations.hs view
@@ -0,0 +1,277 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeDataRepositoryAssociations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the description of specific Amazon FSx for Lustre or Amazon File+-- Cache data repository associations, if one or more @AssociationIds@+-- values are provided in the request, or if filters are used in the+-- request. Data repository associations are supported only for Amazon FSx+-- for Lustre file systems with the @Persistent_2@ deployment type and for+-- Amazon File Cache resources.+--+-- You can use filters to narrow the response to include just data+-- repository associations for specific file systems (use the+-- @file-system-id@ filter with the ID of the file system) or caches (use+-- the @file-cache-id@ filter with the ID of the cache), or data repository+-- associations for a specific repository type (use the+-- @data-repository-type@ filter with a value of @S3@ or @NFS@). If you+-- don\'t use filters, the response returns all data repository+-- associations owned by your Amazon Web Services account in the Amazon Web+-- Services Region of the endpoint that you\'re calling.+--+-- When retrieving all data repository associations, you can paginate the+-- response by using the optional @MaxResults@ parameter to limit the+-- number of data repository associations returned in a response. If more+-- data repository associations remain, a @NextToken@ value is returned in+-- the response. In this case, send a later request with the @NextToken@+-- request parameter set to the value of @NextToken@ from the last+-- response.+module Amazonka.FSx.DescribeDataRepositoryAssociations+  ( -- * Creating a Request+    DescribeDataRepositoryAssociations (..),+    newDescribeDataRepositoryAssociations,++    -- * Request Lenses+    describeDataRepositoryAssociations_associationIds,+    describeDataRepositoryAssociations_filters,+    describeDataRepositoryAssociations_maxResults,+    describeDataRepositoryAssociations_nextToken,++    -- * Destructuring the Response+    DescribeDataRepositoryAssociationsResponse (..),+    newDescribeDataRepositoryAssociationsResponse,++    -- * Response Lenses+    describeDataRepositoryAssociationsResponse_associations,+    describeDataRepositoryAssociationsResponse_nextToken,+    describeDataRepositoryAssociationsResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDataRepositoryAssociations' smart constructor.+data DescribeDataRepositoryAssociations = DescribeDataRepositoryAssociations'+  { -- | IDs of the data repository associations whose descriptions you want to+    -- retrieve (String).+    associationIds :: Prelude.Maybe [Prelude.Text],+    filters :: Prelude.Maybe [Filter],+    -- | The maximum number of resources to return in the response. This value+    -- must be an integer greater than zero.+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataRepositoryAssociations' 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:+--+-- 'associationIds', 'describeDataRepositoryAssociations_associationIds' - IDs of the data repository associations whose descriptions you want to+-- retrieve (String).+--+-- 'filters', 'describeDataRepositoryAssociations_filters' - Undocumented member.+--+-- 'maxResults', 'describeDataRepositoryAssociations_maxResults' - The maximum number of resources to return in the response. This value+-- must be an integer greater than zero.+--+-- 'nextToken', 'describeDataRepositoryAssociations_nextToken' - Undocumented member.+newDescribeDataRepositoryAssociations ::+  DescribeDataRepositoryAssociations+newDescribeDataRepositoryAssociations =+  DescribeDataRepositoryAssociations'+    { associationIds =+        Prelude.Nothing,+      filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | IDs of the data repository associations whose descriptions you want to+-- retrieve (String).+describeDataRepositoryAssociations_associationIds :: Lens.Lens' DescribeDataRepositoryAssociations (Prelude.Maybe [Prelude.Text])+describeDataRepositoryAssociations_associationIds = Lens.lens (\DescribeDataRepositoryAssociations' {associationIds} -> associationIds) (\s@DescribeDataRepositoryAssociations' {} a -> s {associationIds = a} :: DescribeDataRepositoryAssociations) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeDataRepositoryAssociations_filters :: Lens.Lens' DescribeDataRepositoryAssociations (Prelude.Maybe [Filter])+describeDataRepositoryAssociations_filters = Lens.lens (\DescribeDataRepositoryAssociations' {filters} -> filters) (\s@DescribeDataRepositoryAssociations' {} a -> s {filters = a} :: DescribeDataRepositoryAssociations) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of resources to return in the response. This value+-- must be an integer greater than zero.+describeDataRepositoryAssociations_maxResults :: Lens.Lens' DescribeDataRepositoryAssociations (Prelude.Maybe Prelude.Natural)+describeDataRepositoryAssociations_maxResults = Lens.lens (\DescribeDataRepositoryAssociations' {maxResults} -> maxResults) (\s@DescribeDataRepositoryAssociations' {} a -> s {maxResults = a} :: DescribeDataRepositoryAssociations)++-- | Undocumented member.+describeDataRepositoryAssociations_nextToken :: Lens.Lens' DescribeDataRepositoryAssociations (Prelude.Maybe Prelude.Text)+describeDataRepositoryAssociations_nextToken = Lens.lens (\DescribeDataRepositoryAssociations' {nextToken} -> nextToken) (\s@DescribeDataRepositoryAssociations' {} a -> s {nextToken = a} :: DescribeDataRepositoryAssociations)++instance+  Core.AWSRequest+    DescribeDataRepositoryAssociations+  where+  type+    AWSResponse DescribeDataRepositoryAssociations =+      DescribeDataRepositoryAssociationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDataRepositoryAssociationsResponse'+            Prelude.<$> (x Data..?> "Associations" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeDataRepositoryAssociations+  where+  hashWithSalt+    _salt+    DescribeDataRepositoryAssociations' {..} =+      _salt+        `Prelude.hashWithSalt` associationIds+        `Prelude.hashWithSalt` filters+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken++instance+  Prelude.NFData+    DescribeDataRepositoryAssociations+  where+  rnf DescribeDataRepositoryAssociations' {..} =+    Prelude.rnf associationIds+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance+  Data.ToHeaders+    DescribeDataRepositoryAssociations+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeDataRepositoryAssociations" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeDataRepositoryAssociations+  where+  toJSON DescribeDataRepositoryAssociations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AssociationIds" Data..=)+              Prelude.<$> associationIds,+            ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance+  Data.ToPath+    DescribeDataRepositoryAssociations+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribeDataRepositoryAssociations+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDataRepositoryAssociationsResponse' smart constructor.+data DescribeDataRepositoryAssociationsResponse = DescribeDataRepositoryAssociationsResponse'+  { -- | An array of one or more data repository association descriptions.+    associations :: Prelude.Maybe [DataRepositoryAssociation],+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataRepositoryAssociationsResponse' 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:+--+-- 'associations', 'describeDataRepositoryAssociationsResponse_associations' - An array of one or more data repository association descriptions.+--+-- 'nextToken', 'describeDataRepositoryAssociationsResponse_nextToken' - Undocumented member.+--+-- 'httpStatus', 'describeDataRepositoryAssociationsResponse_httpStatus' - The response's http status code.+newDescribeDataRepositoryAssociationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDataRepositoryAssociationsResponse+newDescribeDataRepositoryAssociationsResponse+  pHttpStatus_ =+    DescribeDataRepositoryAssociationsResponse'+      { associations =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | An array of one or more data repository association descriptions.+describeDataRepositoryAssociationsResponse_associations :: Lens.Lens' DescribeDataRepositoryAssociationsResponse (Prelude.Maybe [DataRepositoryAssociation])+describeDataRepositoryAssociationsResponse_associations = Lens.lens (\DescribeDataRepositoryAssociationsResponse' {associations} -> associations) (\s@DescribeDataRepositoryAssociationsResponse' {} a -> s {associations = a} :: DescribeDataRepositoryAssociationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeDataRepositoryAssociationsResponse_nextToken :: Lens.Lens' DescribeDataRepositoryAssociationsResponse (Prelude.Maybe Prelude.Text)+describeDataRepositoryAssociationsResponse_nextToken = Lens.lens (\DescribeDataRepositoryAssociationsResponse' {nextToken} -> nextToken) (\s@DescribeDataRepositoryAssociationsResponse' {} a -> s {nextToken = a} :: DescribeDataRepositoryAssociationsResponse)++-- | The response's http status code.+describeDataRepositoryAssociationsResponse_httpStatus :: Lens.Lens' DescribeDataRepositoryAssociationsResponse Prelude.Int+describeDataRepositoryAssociationsResponse_httpStatus = Lens.lens (\DescribeDataRepositoryAssociationsResponse' {httpStatus} -> httpStatus) (\s@DescribeDataRepositoryAssociationsResponse' {} a -> s {httpStatus = a} :: DescribeDataRepositoryAssociationsResponse)++instance+  Prelude.NFData+    DescribeDataRepositoryAssociationsResponse+  where+  rnf DescribeDataRepositoryAssociationsResponse' {..} =+    Prelude.rnf associations+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeDataRepositoryTasks.hs view
@@ -0,0 +1,249 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeDataRepositoryTasks+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the description of specific Amazon FSx for Lustre or Amazon File+-- Cache data repository tasks, if one or more @TaskIds@ values are+-- provided in the request, or if filters are used in the request. You can+-- use filters to narrow the response to include just tasks for specific+-- file systems or caches, or tasks in a specific lifecycle state.+-- Otherwise, it returns all data repository tasks owned by your Amazon Web+-- Services account in the Amazon Web Services Region of the endpoint that+-- you\'re calling.+--+-- When retrieving all tasks, you can paginate the response by using the+-- optional @MaxResults@ parameter to limit the number of tasks returned in+-- a response. If more tasks remain, a @NextToken@ value is returned in the+-- response. In this case, send a later request with the @NextToken@+-- request parameter set to the value of @NextToken@ from the last+-- response.+module Amazonka.FSx.DescribeDataRepositoryTasks+  ( -- * Creating a Request+    DescribeDataRepositoryTasks (..),+    newDescribeDataRepositoryTasks,++    -- * Request Lenses+    describeDataRepositoryTasks_filters,+    describeDataRepositoryTasks_maxResults,+    describeDataRepositoryTasks_nextToken,+    describeDataRepositoryTasks_taskIds,++    -- * Destructuring the Response+    DescribeDataRepositoryTasksResponse (..),+    newDescribeDataRepositoryTasksResponse,++    -- * Response Lenses+    describeDataRepositoryTasksResponse_dataRepositoryTasks,+    describeDataRepositoryTasksResponse_nextToken,+    describeDataRepositoryTasksResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDataRepositoryTasks' smart constructor.+data DescribeDataRepositoryTasks = DescribeDataRepositoryTasks'+  { -- | (Optional) You can use filters to narrow the+    -- @DescribeDataRepositoryTasks@ response to include just tasks for+    -- specific file systems, or tasks in a specific lifecycle state.+    filters :: Prelude.Maybe [DataRepositoryTaskFilter],+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | (Optional) IDs of the tasks whose descriptions you want to retrieve+    -- (String).+    taskIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataRepositoryTasks' 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:+--+-- 'filters', 'describeDataRepositoryTasks_filters' - (Optional) You can use filters to narrow the+-- @DescribeDataRepositoryTasks@ response to include just tasks for+-- specific file systems, or tasks in a specific lifecycle state.+--+-- 'maxResults', 'describeDataRepositoryTasks_maxResults' - Undocumented member.+--+-- 'nextToken', 'describeDataRepositoryTasks_nextToken' - Undocumented member.+--+-- 'taskIds', 'describeDataRepositoryTasks_taskIds' - (Optional) IDs of the tasks whose descriptions you want to retrieve+-- (String).+newDescribeDataRepositoryTasks ::+  DescribeDataRepositoryTasks+newDescribeDataRepositoryTasks =+  DescribeDataRepositoryTasks'+    { filters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      taskIds = Prelude.Nothing+    }++-- | (Optional) You can use filters to narrow the+-- @DescribeDataRepositoryTasks@ response to include just tasks for+-- specific file systems, or tasks in a specific lifecycle state.+describeDataRepositoryTasks_filters :: Lens.Lens' DescribeDataRepositoryTasks (Prelude.Maybe [DataRepositoryTaskFilter])+describeDataRepositoryTasks_filters = Lens.lens (\DescribeDataRepositoryTasks' {filters} -> filters) (\s@DescribeDataRepositoryTasks' {} a -> s {filters = a} :: DescribeDataRepositoryTasks) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeDataRepositoryTasks_maxResults :: Lens.Lens' DescribeDataRepositoryTasks (Prelude.Maybe Prelude.Natural)+describeDataRepositoryTasks_maxResults = Lens.lens (\DescribeDataRepositoryTasks' {maxResults} -> maxResults) (\s@DescribeDataRepositoryTasks' {} a -> s {maxResults = a} :: DescribeDataRepositoryTasks)++-- | Undocumented member.+describeDataRepositoryTasks_nextToken :: Lens.Lens' DescribeDataRepositoryTasks (Prelude.Maybe Prelude.Text)+describeDataRepositoryTasks_nextToken = Lens.lens (\DescribeDataRepositoryTasks' {nextToken} -> nextToken) (\s@DescribeDataRepositoryTasks' {} a -> s {nextToken = a} :: DescribeDataRepositoryTasks)++-- | (Optional) IDs of the tasks whose descriptions you want to retrieve+-- (String).+describeDataRepositoryTasks_taskIds :: Lens.Lens' DescribeDataRepositoryTasks (Prelude.Maybe [Prelude.Text])+describeDataRepositoryTasks_taskIds = Lens.lens (\DescribeDataRepositoryTasks' {taskIds} -> taskIds) (\s@DescribeDataRepositoryTasks' {} a -> s {taskIds = a} :: DescribeDataRepositoryTasks) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest DescribeDataRepositoryTasks where+  type+    AWSResponse DescribeDataRepositoryTasks =+      DescribeDataRepositoryTasksResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDataRepositoryTasksResponse'+            Prelude.<$> ( x+                            Data..?> "DataRepositoryTasks"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDataRepositoryTasks where+  hashWithSalt _salt DescribeDataRepositoryTasks' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` taskIds++instance Prelude.NFData DescribeDataRepositoryTasks where+  rnf DescribeDataRepositoryTasks' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf taskIds++instance Data.ToHeaders DescribeDataRepositoryTasks where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeDataRepositoryTasks" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDataRepositoryTasks where+  toJSON DescribeDataRepositoryTasks' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("TaskIds" Data..=) Prelude.<$> taskIds+          ]+      )++instance Data.ToPath DescribeDataRepositoryTasks where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDataRepositoryTasks where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDataRepositoryTasksResponse' smart constructor.+data DescribeDataRepositoryTasksResponse = DescribeDataRepositoryTasksResponse'+  { -- | The collection of data repository task descriptions returned.+    dataRepositoryTasks :: Prelude.Maybe [DataRepositoryTask],+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataRepositoryTasksResponse' 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:+--+-- 'dataRepositoryTasks', 'describeDataRepositoryTasksResponse_dataRepositoryTasks' - The collection of data repository task descriptions returned.+--+-- 'nextToken', 'describeDataRepositoryTasksResponse_nextToken' - Undocumented member.+--+-- 'httpStatus', 'describeDataRepositoryTasksResponse_httpStatus' - The response's http status code.+newDescribeDataRepositoryTasksResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDataRepositoryTasksResponse+newDescribeDataRepositoryTasksResponse pHttpStatus_ =+  DescribeDataRepositoryTasksResponse'+    { dataRepositoryTasks =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The collection of data repository task descriptions returned.+describeDataRepositoryTasksResponse_dataRepositoryTasks :: Lens.Lens' DescribeDataRepositoryTasksResponse (Prelude.Maybe [DataRepositoryTask])+describeDataRepositoryTasksResponse_dataRepositoryTasks = Lens.lens (\DescribeDataRepositoryTasksResponse' {dataRepositoryTasks} -> dataRepositoryTasks) (\s@DescribeDataRepositoryTasksResponse' {} a -> s {dataRepositoryTasks = a} :: DescribeDataRepositoryTasksResponse) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeDataRepositoryTasksResponse_nextToken :: Lens.Lens' DescribeDataRepositoryTasksResponse (Prelude.Maybe Prelude.Text)+describeDataRepositoryTasksResponse_nextToken = Lens.lens (\DescribeDataRepositoryTasksResponse' {nextToken} -> nextToken) (\s@DescribeDataRepositoryTasksResponse' {} a -> s {nextToken = a} :: DescribeDataRepositoryTasksResponse)++-- | The response's http status code.+describeDataRepositoryTasksResponse_httpStatus :: Lens.Lens' DescribeDataRepositoryTasksResponse Prelude.Int+describeDataRepositoryTasksResponse_httpStatus = Lens.lens (\DescribeDataRepositoryTasksResponse' {httpStatus} -> httpStatus) (\s@DescribeDataRepositoryTasksResponse' {} a -> s {httpStatus = a} :: DescribeDataRepositoryTasksResponse)++instance+  Prelude.NFData+    DescribeDataRepositoryTasksResponse+  where+  rnf DescribeDataRepositoryTasksResponse' {..} =+    Prelude.rnf dataRepositoryTasks+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeFileCaches.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeFileCaches+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the description of a specific Amazon File Cache resource, if a+-- @FileCacheIds@ value is provided for that cache. Otherwise, it returns+-- descriptions of all caches owned by your Amazon Web Services account in+-- the Amazon Web Services Region of the endpoint that you\'re calling.+--+-- When retrieving all cache descriptions, you can optionally specify the+-- @MaxResults@ parameter to limit the number of descriptions in a+-- response. If more cache descriptions remain, the operation returns a+-- @NextToken@ value in the response. In this case, send a later request+-- with the @NextToken@ request parameter set to the value of @NextToken@+-- from the last response.+--+-- This operation is used in an iterative process to retrieve a list of+-- your cache descriptions. @DescribeFileCaches@ is called first without a+-- @NextToken@value. Then the operation continues to be called with the+-- @NextToken@ parameter set to the value of the last @NextToken@ value+-- until a response has no @NextToken@.+--+-- When using this operation, keep the following in mind:+--+-- -   The implementation might return fewer than @MaxResults@ cache+--     descriptions while still including a @NextToken@ value.+--+-- -   The order of caches returned in the response of one+--     @DescribeFileCaches@ call and the order of caches returned across+--     the responses of a multicall iteration is unspecified.+module Amazonka.FSx.DescribeFileCaches+  ( -- * Creating a Request+    DescribeFileCaches (..),+    newDescribeFileCaches,++    -- * Request Lenses+    describeFileCaches_fileCacheIds,+    describeFileCaches_maxResults,+    describeFileCaches_nextToken,++    -- * Destructuring the Response+    DescribeFileCachesResponse (..),+    newDescribeFileCachesResponse,++    -- * Response Lenses+    describeFileCachesResponse_fileCaches,+    describeFileCachesResponse_nextToken,+    describeFileCachesResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeFileCaches' smart constructor.+data DescribeFileCaches = DescribeFileCaches'+  { -- | IDs of the caches whose descriptions you want to retrieve (String).+    fileCacheIds :: Prelude.Maybe [Prelude.Text],+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFileCaches' 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:+--+-- 'fileCacheIds', 'describeFileCaches_fileCacheIds' - IDs of the caches whose descriptions you want to retrieve (String).+--+-- 'maxResults', 'describeFileCaches_maxResults' - Undocumented member.+--+-- 'nextToken', 'describeFileCaches_nextToken' - Undocumented member.+newDescribeFileCaches ::+  DescribeFileCaches+newDescribeFileCaches =+  DescribeFileCaches'+    { fileCacheIds = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | IDs of the caches whose descriptions you want to retrieve (String).+describeFileCaches_fileCacheIds :: Lens.Lens' DescribeFileCaches (Prelude.Maybe [Prelude.Text])+describeFileCaches_fileCacheIds = Lens.lens (\DescribeFileCaches' {fileCacheIds} -> fileCacheIds) (\s@DescribeFileCaches' {} a -> s {fileCacheIds = a} :: DescribeFileCaches) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeFileCaches_maxResults :: Lens.Lens' DescribeFileCaches (Prelude.Maybe Prelude.Natural)+describeFileCaches_maxResults = Lens.lens (\DescribeFileCaches' {maxResults} -> maxResults) (\s@DescribeFileCaches' {} a -> s {maxResults = a} :: DescribeFileCaches)++-- | Undocumented member.+describeFileCaches_nextToken :: Lens.Lens' DescribeFileCaches (Prelude.Maybe Prelude.Text)+describeFileCaches_nextToken = Lens.lens (\DescribeFileCaches' {nextToken} -> nextToken) (\s@DescribeFileCaches' {} a -> s {nextToken = a} :: DescribeFileCaches)++instance Core.AWSRequest DescribeFileCaches where+  type+    AWSResponse DescribeFileCaches =+      DescribeFileCachesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeFileCachesResponse'+            Prelude.<$> (x Data..?> "FileCaches" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeFileCaches where+  hashWithSalt _salt DescribeFileCaches' {..} =+    _salt+      `Prelude.hashWithSalt` fileCacheIds+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeFileCaches where+  rnf DescribeFileCaches' {..} =+    Prelude.rnf fileCacheIds+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeFileCaches where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeFileCaches" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeFileCaches where+  toJSON DescribeFileCaches' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FileCacheIds" Data..=) Prelude.<$> fileCacheIds,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeFileCaches where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeFileCaches where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeFileCachesResponse' smart constructor.+data DescribeFileCachesResponse = DescribeFileCachesResponse'+  { -- | The response object for the @DescribeFileCaches@ operation.+    fileCaches :: Prelude.Maybe [FileCache],+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFileCachesResponse' 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:+--+-- 'fileCaches', 'describeFileCachesResponse_fileCaches' - The response object for the @DescribeFileCaches@ operation.+--+-- 'nextToken', 'describeFileCachesResponse_nextToken' - Undocumented member.+--+-- 'httpStatus', 'describeFileCachesResponse_httpStatus' - The response's http status code.+newDescribeFileCachesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeFileCachesResponse+newDescribeFileCachesResponse pHttpStatus_ =+  DescribeFileCachesResponse'+    { fileCaches =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The response object for the @DescribeFileCaches@ operation.+describeFileCachesResponse_fileCaches :: Lens.Lens' DescribeFileCachesResponse (Prelude.Maybe [FileCache])+describeFileCachesResponse_fileCaches = Lens.lens (\DescribeFileCachesResponse' {fileCaches} -> fileCaches) (\s@DescribeFileCachesResponse' {} a -> s {fileCaches = a} :: DescribeFileCachesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeFileCachesResponse_nextToken :: Lens.Lens' DescribeFileCachesResponse (Prelude.Maybe Prelude.Text)+describeFileCachesResponse_nextToken = Lens.lens (\DescribeFileCachesResponse' {nextToken} -> nextToken) (\s@DescribeFileCachesResponse' {} a -> s {nextToken = a} :: DescribeFileCachesResponse)++-- | The response's http status code.+describeFileCachesResponse_httpStatus :: Lens.Lens' DescribeFileCachesResponse Prelude.Int+describeFileCachesResponse_httpStatus = Lens.lens (\DescribeFileCachesResponse' {httpStatus} -> httpStatus) (\s@DescribeFileCachesResponse' {} a -> s {httpStatus = a} :: DescribeFileCachesResponse)++instance Prelude.NFData DescribeFileCachesResponse where+  rnf DescribeFileCachesResponse' {..} =+    Prelude.rnf fileCaches+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeFileSystemAliases.hs view
@@ -0,0 +1,269 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeFileSystemAliases+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the DNS aliases that are associated with the specified Amazon+-- FSx for Windows File Server file system. A history of all DNS aliases+-- that have been associated with and disassociated from the file system is+-- available in the list of AdministrativeAction provided in the+-- DescribeFileSystems operation response.+module Amazonka.FSx.DescribeFileSystemAliases+  ( -- * Creating a Request+    DescribeFileSystemAliases (..),+    newDescribeFileSystemAliases,++    -- * Request Lenses+    describeFileSystemAliases_clientRequestToken,+    describeFileSystemAliases_maxResults,+    describeFileSystemAliases_nextToken,+    describeFileSystemAliases_fileSystemId,++    -- * Destructuring the Response+    DescribeFileSystemAliasesResponse (..),+    newDescribeFileSystemAliasesResponse,++    -- * Response Lenses+    describeFileSystemAliasesResponse_aliases,+    describeFileSystemAliasesResponse_nextToken,+    describeFileSystemAliasesResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for @DescribeFileSystemAliases@ operation.+--+-- /See:/ 'newDescribeFileSystemAliases' smart constructor.+data DescribeFileSystemAliases = DescribeFileSystemAliases'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Maximum number of DNS aliases to return in the response (integer). This+    -- parameter value must be greater than 0. The number of items that Amazon+    -- FSx returns is the minimum of the @MaxResults@ parameter specified in+    -- the request and the service\'s internal maximum number of items per+    -- page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Opaque pagination token returned from a previous+    -- @DescribeFileSystemAliases@ operation (String). If a token is included+    -- in the request, the action continues the list from where the previous+    -- returning call left off.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the file system to return the associated DNS aliases for+    -- (String).+    fileSystemId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFileSystemAliases' 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:+--+-- 'clientRequestToken', 'describeFileSystemAliases_clientRequestToken' - Undocumented member.+--+-- 'maxResults', 'describeFileSystemAliases_maxResults' - Maximum number of DNS aliases to return in the response (integer). This+-- parameter value must be greater than 0. The number of items that Amazon+-- FSx returns is the minimum of the @MaxResults@ parameter specified in+-- the request and the service\'s internal maximum number of items per+-- page.+--+-- 'nextToken', 'describeFileSystemAliases_nextToken' - Opaque pagination token returned from a previous+-- @DescribeFileSystemAliases@ operation (String). If a token is included+-- in the request, the action continues the list from where the previous+-- returning call left off.+--+-- 'fileSystemId', 'describeFileSystemAliases_fileSystemId' - The ID of the file system to return the associated DNS aliases for+-- (String).+newDescribeFileSystemAliases ::+  -- | 'fileSystemId'+  Prelude.Text ->+  DescribeFileSystemAliases+newDescribeFileSystemAliases pFileSystemId_ =+  DescribeFileSystemAliases'+    { clientRequestToken =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      fileSystemId = pFileSystemId_+    }++-- | Undocumented member.+describeFileSystemAliases_clientRequestToken :: Lens.Lens' DescribeFileSystemAliases (Prelude.Maybe Prelude.Text)+describeFileSystemAliases_clientRequestToken = Lens.lens (\DescribeFileSystemAliases' {clientRequestToken} -> clientRequestToken) (\s@DescribeFileSystemAliases' {} a -> s {clientRequestToken = a} :: DescribeFileSystemAliases)++-- | Maximum number of DNS aliases to return in the response (integer). This+-- parameter value must be greater than 0. The number of items that Amazon+-- FSx returns is the minimum of the @MaxResults@ parameter specified in+-- the request and the service\'s internal maximum number of items per+-- page.+describeFileSystemAliases_maxResults :: Lens.Lens' DescribeFileSystemAliases (Prelude.Maybe Prelude.Natural)+describeFileSystemAliases_maxResults = Lens.lens (\DescribeFileSystemAliases' {maxResults} -> maxResults) (\s@DescribeFileSystemAliases' {} a -> s {maxResults = a} :: DescribeFileSystemAliases)++-- | Opaque pagination token returned from a previous+-- @DescribeFileSystemAliases@ operation (String). If a token is included+-- in the request, the action continues the list from where the previous+-- returning call left off.+describeFileSystemAliases_nextToken :: Lens.Lens' DescribeFileSystemAliases (Prelude.Maybe Prelude.Text)+describeFileSystemAliases_nextToken = Lens.lens (\DescribeFileSystemAliases' {nextToken} -> nextToken) (\s@DescribeFileSystemAliases' {} a -> s {nextToken = a} :: DescribeFileSystemAliases)++-- | The ID of the file system to return the associated DNS aliases for+-- (String).+describeFileSystemAliases_fileSystemId :: Lens.Lens' DescribeFileSystemAliases Prelude.Text+describeFileSystemAliases_fileSystemId = Lens.lens (\DescribeFileSystemAliases' {fileSystemId} -> fileSystemId) (\s@DescribeFileSystemAliases' {} a -> s {fileSystemId = a} :: DescribeFileSystemAliases)++instance Core.AWSRequest DescribeFileSystemAliases where+  type+    AWSResponse DescribeFileSystemAliases =+      DescribeFileSystemAliasesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeFileSystemAliasesResponse'+            Prelude.<$> (x Data..?> "Aliases" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeFileSystemAliases where+  hashWithSalt _salt DescribeFileSystemAliases' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` fileSystemId++instance Prelude.NFData DescribeFileSystemAliases where+  rnf DescribeFileSystemAliases' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf fileSystemId++instance Data.ToHeaders DescribeFileSystemAliases where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeFileSystemAliases" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeFileSystemAliases where+  toJSON DescribeFileSystemAliases' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("FileSystemId" Data..= fileSystemId)+          ]+      )++instance Data.ToPath DescribeFileSystemAliases where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeFileSystemAliases where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for @DescribeFileSystemAliases@ operation.+--+-- /See:/ 'newDescribeFileSystemAliasesResponse' smart constructor.+data DescribeFileSystemAliasesResponse = DescribeFileSystemAliasesResponse'+  { -- | An array of one or more DNS aliases currently associated with the+    -- specified file system.+    aliases :: Prelude.Maybe [Alias],+    -- | Present if there are more DNS aliases than returned in the response+    -- (String). You can use the @NextToken@ value in a later request to fetch+    -- additional descriptions.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFileSystemAliasesResponse' 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:+--+-- 'aliases', 'describeFileSystemAliasesResponse_aliases' - An array of one or more DNS aliases currently associated with the+-- specified file system.+--+-- 'nextToken', 'describeFileSystemAliasesResponse_nextToken' - Present if there are more DNS aliases than returned in the response+-- (String). You can use the @NextToken@ value in a later request to fetch+-- additional descriptions.+--+-- 'httpStatus', 'describeFileSystemAliasesResponse_httpStatus' - The response's http status code.+newDescribeFileSystemAliasesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeFileSystemAliasesResponse+newDescribeFileSystemAliasesResponse pHttpStatus_ =+  DescribeFileSystemAliasesResponse'+    { aliases =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of one or more DNS aliases currently associated with the+-- specified file system.+describeFileSystemAliasesResponse_aliases :: Lens.Lens' DescribeFileSystemAliasesResponse (Prelude.Maybe [Alias])+describeFileSystemAliasesResponse_aliases = Lens.lens (\DescribeFileSystemAliasesResponse' {aliases} -> aliases) (\s@DescribeFileSystemAliasesResponse' {} a -> s {aliases = a} :: DescribeFileSystemAliasesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Present if there are more DNS aliases than returned in the response+-- (String). You can use the @NextToken@ value in a later request to fetch+-- additional descriptions.+describeFileSystemAliasesResponse_nextToken :: Lens.Lens' DescribeFileSystemAliasesResponse (Prelude.Maybe Prelude.Text)+describeFileSystemAliasesResponse_nextToken = Lens.lens (\DescribeFileSystemAliasesResponse' {nextToken} -> nextToken) (\s@DescribeFileSystemAliasesResponse' {} a -> s {nextToken = a} :: DescribeFileSystemAliasesResponse)++-- | The response's http status code.+describeFileSystemAliasesResponse_httpStatus :: Lens.Lens' DescribeFileSystemAliasesResponse Prelude.Int+describeFileSystemAliasesResponse_httpStatus = Lens.lens (\DescribeFileSystemAliasesResponse' {httpStatus} -> httpStatus) (\s@DescribeFileSystemAliasesResponse' {} a -> s {httpStatus = a} :: DescribeFileSystemAliasesResponse)++instance+  Prelude.NFData+    DescribeFileSystemAliasesResponse+  where+  rnf DescribeFileSystemAliasesResponse' {..} =+    Prelude.rnf aliases+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeFileSystems.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeFileSystems+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the description of specific Amazon FSx file systems, if a+-- @FileSystemIds@ value is provided for that file system. Otherwise, it+-- returns descriptions of all file systems owned by your Amazon Web+-- Services account in the Amazon Web Services Region of the endpoint that+-- you\'re calling.+--+-- When retrieving all file system descriptions, you can optionally specify+-- the @MaxResults@ parameter to limit the number of descriptions in a+-- response. If more file system descriptions remain, Amazon FSx returns a+-- @NextToken@ value in the response. In this case, send a later request+-- with the @NextToken@ request parameter set to the value of @NextToken@+-- from the last response.+--+-- This operation is used in an iterative process to retrieve a list of+-- your file system descriptions. @DescribeFileSystems@ is called first+-- without a @NextToken@value. Then the operation continues to be called+-- with the @NextToken@ parameter set to the value of the last @NextToken@+-- value until a response has no @NextToken@.+--+-- When using this operation, keep the following in mind:+--+-- -   The implementation might return fewer than @MaxResults@ file system+--     descriptions while still including a @NextToken@ value.+--+-- -   The order of file systems returned in the response of one+--     @DescribeFileSystems@ call and the order of file systems returned+--     across the responses of a multicall iteration is unspecified.+--+-- This operation returns paginated results.+module Amazonka.FSx.DescribeFileSystems+  ( -- * Creating a Request+    DescribeFileSystems (..),+    newDescribeFileSystems,++    -- * Request Lenses+    describeFileSystems_fileSystemIds,+    describeFileSystems_maxResults,+    describeFileSystems_nextToken,++    -- * Destructuring the Response+    DescribeFileSystemsResponse (..),+    newDescribeFileSystemsResponse,++    -- * Response Lenses+    describeFileSystemsResponse_fileSystems,+    describeFileSystemsResponse_nextToken,+    describeFileSystemsResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for @DescribeFileSystems@ operation.+--+-- /See:/ 'newDescribeFileSystems' smart constructor.+data DescribeFileSystems = DescribeFileSystems'+  { -- | IDs of the file systems whose descriptions you want to retrieve+    -- (String).+    fileSystemIds :: Prelude.Maybe [Prelude.Text],+    -- | Maximum number of file systems to return in the response (integer). This+    -- parameter value must be greater than 0. The number of items that Amazon+    -- FSx returns is the minimum of the @MaxResults@ parameter specified in+    -- the request and the service\'s internal maximum number of items per+    -- page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Opaque pagination token returned from a previous @DescribeFileSystems@+    -- operation (String). If a token present, the operation continues the list+    -- from where the returning call left off.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFileSystems' 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:+--+-- 'fileSystemIds', 'describeFileSystems_fileSystemIds' - IDs of the file systems whose descriptions you want to retrieve+-- (String).+--+-- 'maxResults', 'describeFileSystems_maxResults' - Maximum number of file systems to return in the response (integer). This+-- parameter value must be greater than 0. The number of items that Amazon+-- FSx returns is the minimum of the @MaxResults@ parameter specified in+-- the request and the service\'s internal maximum number of items per+-- page.+--+-- 'nextToken', 'describeFileSystems_nextToken' - Opaque pagination token returned from a previous @DescribeFileSystems@+-- operation (String). If a token present, the operation continues the list+-- from where the returning call left off.+newDescribeFileSystems ::+  DescribeFileSystems+newDescribeFileSystems =+  DescribeFileSystems'+    { fileSystemIds =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | IDs of the file systems whose descriptions you want to retrieve+-- (String).+describeFileSystems_fileSystemIds :: Lens.Lens' DescribeFileSystems (Prelude.Maybe [Prelude.Text])+describeFileSystems_fileSystemIds = Lens.lens (\DescribeFileSystems' {fileSystemIds} -> fileSystemIds) (\s@DescribeFileSystems' {} a -> s {fileSystemIds = a} :: DescribeFileSystems) Prelude.. Lens.mapping Lens.coerced++-- | Maximum number of file systems to return in the response (integer). This+-- parameter value must be greater than 0. The number of items that Amazon+-- FSx returns is the minimum of the @MaxResults@ parameter specified in+-- the request and the service\'s internal maximum number of items per+-- page.+describeFileSystems_maxResults :: Lens.Lens' DescribeFileSystems (Prelude.Maybe Prelude.Natural)+describeFileSystems_maxResults = Lens.lens (\DescribeFileSystems' {maxResults} -> maxResults) (\s@DescribeFileSystems' {} a -> s {maxResults = a} :: DescribeFileSystems)++-- | Opaque pagination token returned from a previous @DescribeFileSystems@+-- operation (String). If a token present, the operation continues the list+-- from where the returning call left off.+describeFileSystems_nextToken :: Lens.Lens' DescribeFileSystems (Prelude.Maybe Prelude.Text)+describeFileSystems_nextToken = Lens.lens (\DescribeFileSystems' {nextToken} -> nextToken) (\s@DescribeFileSystems' {} a -> s {nextToken = a} :: DescribeFileSystems)++instance Core.AWSPager DescribeFileSystems where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeFileSystemsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeFileSystemsResponse_fileSystems+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeFileSystems_nextToken+          Lens..~ rs+          Lens.^? describeFileSystemsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeFileSystems where+  type+    AWSResponse DescribeFileSystems =+      DescribeFileSystemsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeFileSystemsResponse'+            Prelude.<$> (x Data..?> "FileSystems" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeFileSystems where+  hashWithSalt _salt DescribeFileSystems' {..} =+    _salt+      `Prelude.hashWithSalt` fileSystemIds+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeFileSystems where+  rnf DescribeFileSystems' {..} =+    Prelude.rnf fileSystemIds+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeFileSystems where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeFileSystems" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeFileSystems where+  toJSON DescribeFileSystems' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FileSystemIds" Data..=) Prelude.<$> fileSystemIds,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeFileSystems where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeFileSystems where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for @DescribeFileSystems@ operation.+--+-- /See:/ 'newDescribeFileSystemsResponse' smart constructor.+data DescribeFileSystemsResponse = DescribeFileSystemsResponse'+  { -- | An array of file system descriptions.+    fileSystems :: Prelude.Maybe [FileSystem],+    -- | Present if there are more file systems than returned in the response+    -- (String). You can use the @NextToken@ value in the later request to+    -- fetch the descriptions.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFileSystemsResponse' 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:+--+-- 'fileSystems', 'describeFileSystemsResponse_fileSystems' - An array of file system descriptions.+--+-- 'nextToken', 'describeFileSystemsResponse_nextToken' - Present if there are more file systems than returned in the response+-- (String). You can use the @NextToken@ value in the later request to+-- fetch the descriptions.+--+-- 'httpStatus', 'describeFileSystemsResponse_httpStatus' - The response's http status code.+newDescribeFileSystemsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeFileSystemsResponse+newDescribeFileSystemsResponse pHttpStatus_ =+  DescribeFileSystemsResponse'+    { fileSystems =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of file system descriptions.+describeFileSystemsResponse_fileSystems :: Lens.Lens' DescribeFileSystemsResponse (Prelude.Maybe [FileSystem])+describeFileSystemsResponse_fileSystems = Lens.lens (\DescribeFileSystemsResponse' {fileSystems} -> fileSystems) (\s@DescribeFileSystemsResponse' {} a -> s {fileSystems = a} :: DescribeFileSystemsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Present if there are more file systems than returned in the response+-- (String). You can use the @NextToken@ value in the later request to+-- fetch the descriptions.+describeFileSystemsResponse_nextToken :: Lens.Lens' DescribeFileSystemsResponse (Prelude.Maybe Prelude.Text)+describeFileSystemsResponse_nextToken = Lens.lens (\DescribeFileSystemsResponse' {nextToken} -> nextToken) (\s@DescribeFileSystemsResponse' {} a -> s {nextToken = a} :: DescribeFileSystemsResponse)++-- | The response's http status code.+describeFileSystemsResponse_httpStatus :: Lens.Lens' DescribeFileSystemsResponse Prelude.Int+describeFileSystemsResponse_httpStatus = Lens.lens (\DescribeFileSystemsResponse' {httpStatus} -> httpStatus) (\s@DescribeFileSystemsResponse' {} a -> s {httpStatus = a} :: DescribeFileSystemsResponse)++instance Prelude.NFData DescribeFileSystemsResponse where+  rnf DescribeFileSystemsResponse' {..} =+    Prelude.rnf fileSystems+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeSnapshots.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeSnapshots+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the description of specific Amazon FSx for OpenZFS snapshots, if+-- a @SnapshotIds@ value is provided. Otherwise, this operation returns all+-- snapshots owned by your Amazon Web Services account in the Amazon Web+-- Services Region of the endpoint that you\'re calling.+--+-- When retrieving all snapshots, you can optionally specify the+-- @MaxResults@ parameter to limit the number of snapshots in a response.+-- If more backups remain, Amazon FSx returns a @NextToken@ value in the+-- response. In this case, send a later request with the @NextToken@+-- request parameter set to the value of @NextToken@ from the last+-- response.+--+-- Use this operation in an iterative process to retrieve a list of your+-- snapshots. @DescribeSnapshots@ is called first without a @NextToken@+-- value. Then the operation continues to be called with the @NextToken@+-- parameter set to the value of the last @NextToken@ value until a+-- response has no @NextToken@ value.+--+-- When using this operation, keep the following in mind:+--+-- -   The operation might return fewer than the @MaxResults@ value of+--     snapshot descriptions while still including a @NextToken@ value.+--+-- -   The order of snapshots returned in the response of one+--     @DescribeSnapshots@ call and the order of backups returned across+--     the responses of a multi-call iteration is unspecified.+module Amazonka.FSx.DescribeSnapshots+  ( -- * Creating a Request+    DescribeSnapshots (..),+    newDescribeSnapshots,++    -- * Request Lenses+    describeSnapshots_filters,+    describeSnapshots_maxResults,+    describeSnapshots_nextToken,+    describeSnapshots_snapshotIds,++    -- * Destructuring the Response+    DescribeSnapshotsResponse (..),+    newDescribeSnapshotsResponse,++    -- * Response Lenses+    describeSnapshotsResponse_nextToken,+    describeSnapshotsResponse_snapshots,+    describeSnapshotsResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSnapshots' smart constructor.+data DescribeSnapshots = DescribeSnapshots'+  { -- | The filters structure. The supported names are @file-system-id@ or+    -- @volume-id@.+    filters :: Prelude.Maybe [SnapshotFilter],+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The IDs of the snapshots that you want to retrieve. This parameter value+    -- overrides any filters. If any IDs aren\'t found, a @SnapshotNotFound@+    -- error occurs.+    snapshotIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSnapshots' 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:+--+-- 'filters', 'describeSnapshots_filters' - The filters structure. The supported names are @file-system-id@ or+-- @volume-id@.+--+-- 'maxResults', 'describeSnapshots_maxResults' - Undocumented member.+--+-- 'nextToken', 'describeSnapshots_nextToken' - Undocumented member.+--+-- 'snapshotIds', 'describeSnapshots_snapshotIds' - The IDs of the snapshots that you want to retrieve. This parameter value+-- overrides any filters. If any IDs aren\'t found, a @SnapshotNotFound@+-- error occurs.+newDescribeSnapshots ::+  DescribeSnapshots+newDescribeSnapshots =+  DescribeSnapshots'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      snapshotIds = Prelude.Nothing+    }++-- | The filters structure. The supported names are @file-system-id@ or+-- @volume-id@.+describeSnapshots_filters :: Lens.Lens' DescribeSnapshots (Prelude.Maybe [SnapshotFilter])+describeSnapshots_filters = Lens.lens (\DescribeSnapshots' {filters} -> filters) (\s@DescribeSnapshots' {} a -> s {filters = a} :: DescribeSnapshots) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeSnapshots_maxResults :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Natural)+describeSnapshots_maxResults = Lens.lens (\DescribeSnapshots' {maxResults} -> maxResults) (\s@DescribeSnapshots' {} a -> s {maxResults = a} :: DescribeSnapshots)++-- | Undocumented member.+describeSnapshots_nextToken :: Lens.Lens' DescribeSnapshots (Prelude.Maybe Prelude.Text)+describeSnapshots_nextToken = Lens.lens (\DescribeSnapshots' {nextToken} -> nextToken) (\s@DescribeSnapshots' {} a -> s {nextToken = a} :: DescribeSnapshots)++-- | The IDs of the snapshots that you want to retrieve. This parameter value+-- overrides any filters. If any IDs aren\'t found, a @SnapshotNotFound@+-- error occurs.+describeSnapshots_snapshotIds :: Lens.Lens' DescribeSnapshots (Prelude.Maybe [Prelude.Text])+describeSnapshots_snapshotIds = Lens.lens (\DescribeSnapshots' {snapshotIds} -> snapshotIds) (\s@DescribeSnapshots' {} a -> s {snapshotIds = a} :: DescribeSnapshots) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest DescribeSnapshots where+  type+    AWSResponse DescribeSnapshots =+      DescribeSnapshotsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSnapshotsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Snapshots" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSnapshots where+  hashWithSalt _salt DescribeSnapshots' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` snapshotIds++instance Prelude.NFData DescribeSnapshots where+  rnf DescribeSnapshots' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf snapshotIds++instance Data.ToHeaders DescribeSnapshots where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeSnapshots" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSnapshots where+  toJSON DescribeSnapshots' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("SnapshotIds" Data..=) Prelude.<$> snapshotIds+          ]+      )++instance Data.ToPath DescribeSnapshots where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeSnapshots where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSnapshotsResponse' smart constructor.+data DescribeSnapshotsResponse = DescribeSnapshotsResponse'+  { nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of snapshots.+    snapshots :: Prelude.Maybe [Snapshot],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSnapshotsResponse' 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:+--+-- 'nextToken', 'describeSnapshotsResponse_nextToken' - Undocumented member.+--+-- 'snapshots', 'describeSnapshotsResponse_snapshots' - An array of snapshots.+--+-- 'httpStatus', 'describeSnapshotsResponse_httpStatus' - The response's http status code.+newDescribeSnapshotsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSnapshotsResponse+newDescribeSnapshotsResponse pHttpStatus_ =+  DescribeSnapshotsResponse'+    { nextToken =+        Prelude.Nothing,+      snapshots = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+describeSnapshotsResponse_nextToken :: Lens.Lens' DescribeSnapshotsResponse (Prelude.Maybe Prelude.Text)+describeSnapshotsResponse_nextToken = Lens.lens (\DescribeSnapshotsResponse' {nextToken} -> nextToken) (\s@DescribeSnapshotsResponse' {} a -> s {nextToken = a} :: DescribeSnapshotsResponse)++-- | An array of snapshots.+describeSnapshotsResponse_snapshots :: Lens.Lens' DescribeSnapshotsResponse (Prelude.Maybe [Snapshot])+describeSnapshotsResponse_snapshots = Lens.lens (\DescribeSnapshotsResponse' {snapshots} -> snapshots) (\s@DescribeSnapshotsResponse' {} a -> s {snapshots = a} :: DescribeSnapshotsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeSnapshotsResponse_httpStatus :: Lens.Lens' DescribeSnapshotsResponse Prelude.Int+describeSnapshotsResponse_httpStatus = Lens.lens (\DescribeSnapshotsResponse' {httpStatus} -> httpStatus) (\s@DescribeSnapshotsResponse' {} a -> s {httpStatus = a} :: DescribeSnapshotsResponse)++instance Prelude.NFData DescribeSnapshotsResponse where+  rnf DescribeSnapshotsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf snapshots+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeStorageVirtualMachines.hs view
@@ -0,0 +1,271 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeStorageVirtualMachines+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes one or more Amazon FSx for NetApp ONTAP storage virtual+-- machines (SVMs).+--+-- This operation returns paginated results.+module Amazonka.FSx.DescribeStorageVirtualMachines+  ( -- * Creating a Request+    DescribeStorageVirtualMachines (..),+    newDescribeStorageVirtualMachines,++    -- * Request Lenses+    describeStorageVirtualMachines_filters,+    describeStorageVirtualMachines_maxResults,+    describeStorageVirtualMachines_nextToken,+    describeStorageVirtualMachines_storageVirtualMachineIds,++    -- * Destructuring the Response+    DescribeStorageVirtualMachinesResponse (..),+    newDescribeStorageVirtualMachinesResponse,++    -- * Response Lenses+    describeStorageVirtualMachinesResponse_nextToken,+    describeStorageVirtualMachinesResponse_storageVirtualMachines,+    describeStorageVirtualMachinesResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeStorageVirtualMachines' smart constructor.+data DescribeStorageVirtualMachines = DescribeStorageVirtualMachines'+  { -- | Enter a filter name:value pair to view a select set of SVMs.+    filters :: Prelude.Maybe [StorageVirtualMachineFilter],+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Enter the ID of one or more SVMs that you want to view.+    storageVirtualMachineIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeStorageVirtualMachines' 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:+--+-- 'filters', 'describeStorageVirtualMachines_filters' - Enter a filter name:value pair to view a select set of SVMs.+--+-- 'maxResults', 'describeStorageVirtualMachines_maxResults' - Undocumented member.+--+-- 'nextToken', 'describeStorageVirtualMachines_nextToken' - Undocumented member.+--+-- 'storageVirtualMachineIds', 'describeStorageVirtualMachines_storageVirtualMachineIds' - Enter the ID of one or more SVMs that you want to view.+newDescribeStorageVirtualMachines ::+  DescribeStorageVirtualMachines+newDescribeStorageVirtualMachines =+  DescribeStorageVirtualMachines'+    { filters =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      storageVirtualMachineIds = Prelude.Nothing+    }++-- | Enter a filter name:value pair to view a select set of SVMs.+describeStorageVirtualMachines_filters :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe [StorageVirtualMachineFilter])+describeStorageVirtualMachines_filters = Lens.lens (\DescribeStorageVirtualMachines' {filters} -> filters) (\s@DescribeStorageVirtualMachines' {} a -> s {filters = a} :: DescribeStorageVirtualMachines) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeStorageVirtualMachines_maxResults :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe Prelude.Natural)+describeStorageVirtualMachines_maxResults = Lens.lens (\DescribeStorageVirtualMachines' {maxResults} -> maxResults) (\s@DescribeStorageVirtualMachines' {} a -> s {maxResults = a} :: DescribeStorageVirtualMachines)++-- | Undocumented member.+describeStorageVirtualMachines_nextToken :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe Prelude.Text)+describeStorageVirtualMachines_nextToken = Lens.lens (\DescribeStorageVirtualMachines' {nextToken} -> nextToken) (\s@DescribeStorageVirtualMachines' {} a -> s {nextToken = a} :: DescribeStorageVirtualMachines)++-- | Enter the ID of one or more SVMs that you want to view.+describeStorageVirtualMachines_storageVirtualMachineIds :: Lens.Lens' DescribeStorageVirtualMachines (Prelude.Maybe [Prelude.Text])+describeStorageVirtualMachines_storageVirtualMachineIds = Lens.lens (\DescribeStorageVirtualMachines' {storageVirtualMachineIds} -> storageVirtualMachineIds) (\s@DescribeStorageVirtualMachines' {} a -> s {storageVirtualMachineIds = a} :: DescribeStorageVirtualMachines) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager DescribeStorageVirtualMachines where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeStorageVirtualMachinesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeStorageVirtualMachinesResponse_storageVirtualMachines+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeStorageVirtualMachines_nextToken+          Lens..~ rs+          Lens.^? describeStorageVirtualMachinesResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    DescribeStorageVirtualMachines+  where+  type+    AWSResponse DescribeStorageVirtualMachines =+      DescribeStorageVirtualMachinesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeStorageVirtualMachinesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "StorageVirtualMachines"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeStorageVirtualMachines+  where+  hashWithSalt+    _salt+    DescribeStorageVirtualMachines' {..} =+      _salt+        `Prelude.hashWithSalt` filters+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` storageVirtualMachineIds++instance+  Prelude.NFData+    DescribeStorageVirtualMachines+  where+  rnf DescribeStorageVirtualMachines' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf storageVirtualMachineIds++instance+  Data.ToHeaders+    DescribeStorageVirtualMachines+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeStorageVirtualMachines" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeStorageVirtualMachines where+  toJSON DescribeStorageVirtualMachines' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("StorageVirtualMachineIds" Data..=)+              Prelude.<$> storageVirtualMachineIds+          ]+      )++instance Data.ToPath DescribeStorageVirtualMachines where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeStorageVirtualMachines where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeStorageVirtualMachinesResponse' smart constructor.+data DescribeStorageVirtualMachinesResponse = DescribeStorageVirtualMachinesResponse'+  { nextToken :: Prelude.Maybe Prelude.Text,+    -- | Returned after a successful @DescribeStorageVirtualMachines@ operation,+    -- describing each SVM.+    storageVirtualMachines :: Prelude.Maybe [StorageVirtualMachine],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeStorageVirtualMachinesResponse' 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:+--+-- 'nextToken', 'describeStorageVirtualMachinesResponse_nextToken' - Undocumented member.+--+-- 'storageVirtualMachines', 'describeStorageVirtualMachinesResponse_storageVirtualMachines' - Returned after a successful @DescribeStorageVirtualMachines@ operation,+-- describing each SVM.+--+-- 'httpStatus', 'describeStorageVirtualMachinesResponse_httpStatus' - The response's http status code.+newDescribeStorageVirtualMachinesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeStorageVirtualMachinesResponse+newDescribeStorageVirtualMachinesResponse+  pHttpStatus_ =+    DescribeStorageVirtualMachinesResponse'+      { nextToken =+          Prelude.Nothing,+        storageVirtualMachines =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Undocumented member.+describeStorageVirtualMachinesResponse_nextToken :: Lens.Lens' DescribeStorageVirtualMachinesResponse (Prelude.Maybe Prelude.Text)+describeStorageVirtualMachinesResponse_nextToken = Lens.lens (\DescribeStorageVirtualMachinesResponse' {nextToken} -> nextToken) (\s@DescribeStorageVirtualMachinesResponse' {} a -> s {nextToken = a} :: DescribeStorageVirtualMachinesResponse)++-- | Returned after a successful @DescribeStorageVirtualMachines@ operation,+-- describing each SVM.+describeStorageVirtualMachinesResponse_storageVirtualMachines :: Lens.Lens' DescribeStorageVirtualMachinesResponse (Prelude.Maybe [StorageVirtualMachine])+describeStorageVirtualMachinesResponse_storageVirtualMachines = Lens.lens (\DescribeStorageVirtualMachinesResponse' {storageVirtualMachines} -> storageVirtualMachines) (\s@DescribeStorageVirtualMachinesResponse' {} a -> s {storageVirtualMachines = a} :: DescribeStorageVirtualMachinesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeStorageVirtualMachinesResponse_httpStatus :: Lens.Lens' DescribeStorageVirtualMachinesResponse Prelude.Int+describeStorageVirtualMachinesResponse_httpStatus = Lens.lens (\DescribeStorageVirtualMachinesResponse' {httpStatus} -> httpStatus) (\s@DescribeStorageVirtualMachinesResponse' {} a -> s {httpStatus = a} :: DescribeStorageVirtualMachinesResponse)++instance+  Prelude.NFData+    DescribeStorageVirtualMachinesResponse+  where+  rnf DescribeStorageVirtualMachinesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf storageVirtualMachines+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DescribeVolumes.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DescribeVolumes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes one or more Amazon FSx for NetApp ONTAP or Amazon FSx for+-- OpenZFS volumes.+--+-- This operation returns paginated results.+module Amazonka.FSx.DescribeVolumes+  ( -- * Creating a Request+    DescribeVolumes (..),+    newDescribeVolumes,++    -- * Request Lenses+    describeVolumes_filters,+    describeVolumes_maxResults,+    describeVolumes_nextToken,+    describeVolumes_volumeIds,++    -- * Destructuring the Response+    DescribeVolumesResponse (..),+    newDescribeVolumesResponse,++    -- * Response Lenses+    describeVolumesResponse_nextToken,+    describeVolumesResponse_volumes,+    describeVolumesResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeVolumes' smart constructor.+data DescribeVolumes = DescribeVolumes'+  { -- | Enter a filter @Name@ and @Values@ pair to view a select set of volumes.+    filters :: Prelude.Maybe [VolumeFilter],+    maxResults :: Prelude.Maybe Prelude.Natural,+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The IDs of the volumes whose descriptions you want to retrieve.+    volumeIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVolumes' 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:+--+-- 'filters', 'describeVolumes_filters' - Enter a filter @Name@ and @Values@ pair to view a select set of volumes.+--+-- 'maxResults', 'describeVolumes_maxResults' - Undocumented member.+--+-- 'nextToken', 'describeVolumes_nextToken' - Undocumented member.+--+-- 'volumeIds', 'describeVolumes_volumeIds' - The IDs of the volumes whose descriptions you want to retrieve.+newDescribeVolumes ::+  DescribeVolumes+newDescribeVolumes =+  DescribeVolumes'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      volumeIds = Prelude.Nothing+    }++-- | Enter a filter @Name@ and @Values@ pair to view a select set of volumes.+describeVolumes_filters :: Lens.Lens' DescribeVolumes (Prelude.Maybe [VolumeFilter])+describeVolumes_filters = Lens.lens (\DescribeVolumes' {filters} -> filters) (\s@DescribeVolumes' {} a -> s {filters = a} :: DescribeVolumes) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeVolumes_maxResults :: Lens.Lens' DescribeVolumes (Prelude.Maybe Prelude.Natural)+describeVolumes_maxResults = Lens.lens (\DescribeVolumes' {maxResults} -> maxResults) (\s@DescribeVolumes' {} a -> s {maxResults = a} :: DescribeVolumes)++-- | Undocumented member.+describeVolumes_nextToken :: Lens.Lens' DescribeVolumes (Prelude.Maybe Prelude.Text)+describeVolumes_nextToken = Lens.lens (\DescribeVolumes' {nextToken} -> nextToken) (\s@DescribeVolumes' {} a -> s {nextToken = a} :: DescribeVolumes)++-- | The IDs of the volumes whose descriptions you want to retrieve.+describeVolumes_volumeIds :: Lens.Lens' DescribeVolumes (Prelude.Maybe [Prelude.Text])+describeVolumes_volumeIds = Lens.lens (\DescribeVolumes' {volumeIds} -> volumeIds) (\s@DescribeVolumes' {} a -> s {volumeIds = a} :: DescribeVolumes) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager DescribeVolumes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeVolumesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeVolumesResponse_volumes+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeVolumes_nextToken+          Lens..~ rs+          Lens.^? describeVolumesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeVolumes where+  type+    AWSResponse DescribeVolumes =+      DescribeVolumesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeVolumesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Volumes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeVolumes where+  hashWithSalt _salt DescribeVolumes' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` volumeIds++instance Prelude.NFData DescribeVolumes where+  rnf DescribeVolumes' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf volumeIds++instance Data.ToHeaders DescribeVolumes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DescribeVolumes" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeVolumes where+  toJSON DescribeVolumes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("VolumeIds" Data..=) Prelude.<$> volumeIds+          ]+      )++instance Data.ToPath DescribeVolumes where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeVolumes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeVolumesResponse' smart constructor.+data DescribeVolumesResponse = DescribeVolumesResponse'+  { nextToken :: Prelude.Maybe Prelude.Text,+    -- | Returned after a successful @DescribeVolumes@ operation, describing each+    -- volume.+    volumes :: Prelude.Maybe [Volume],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVolumesResponse' 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:+--+-- 'nextToken', 'describeVolumesResponse_nextToken' - Undocumented member.+--+-- 'volumes', 'describeVolumesResponse_volumes' - Returned after a successful @DescribeVolumes@ operation, describing each+-- volume.+--+-- 'httpStatus', 'describeVolumesResponse_httpStatus' - The response's http status code.+newDescribeVolumesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeVolumesResponse+newDescribeVolumesResponse pHttpStatus_ =+  DescribeVolumesResponse'+    { nextToken =+        Prelude.Nothing,+      volumes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+describeVolumesResponse_nextToken :: Lens.Lens' DescribeVolumesResponse (Prelude.Maybe Prelude.Text)+describeVolumesResponse_nextToken = Lens.lens (\DescribeVolumesResponse' {nextToken} -> nextToken) (\s@DescribeVolumesResponse' {} a -> s {nextToken = a} :: DescribeVolumesResponse)++-- | Returned after a successful @DescribeVolumes@ operation, describing each+-- volume.+describeVolumesResponse_volumes :: Lens.Lens' DescribeVolumesResponse (Prelude.Maybe [Volume])+describeVolumesResponse_volumes = Lens.lens (\DescribeVolumesResponse' {volumes} -> volumes) (\s@DescribeVolumesResponse' {} a -> s {volumes = a} :: DescribeVolumesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeVolumesResponse_httpStatus :: Lens.Lens' DescribeVolumesResponse Prelude.Int+describeVolumesResponse_httpStatus = Lens.lens (\DescribeVolumesResponse' {httpStatus} -> httpStatus) (\s@DescribeVolumesResponse' {} a -> s {httpStatus = a} :: DescribeVolumesResponse)++instance Prelude.NFData DescribeVolumesResponse where+  rnf DescribeVolumesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf volumes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/DisassociateFileSystemAliases.hs view
@@ -0,0 +1,233 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.DisassociateFileSystemAliases+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use this action to disassociate, or remove, one or more Domain Name+-- Service (DNS) aliases from an Amazon FSx for Windows File Server file+-- system. If you attempt to disassociate a DNS alias that is not+-- associated with the file system, Amazon FSx responds with a 400 Bad+-- Request. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html Working with DNS Aliases>.+--+-- The system generated response showing the DNS aliases that Amazon FSx is+-- attempting to disassociate from the file system. Use the API operation+-- to monitor the status of the aliases Amazon FSx is disassociating with+-- the file system.+module Amazonka.FSx.DisassociateFileSystemAliases+  ( -- * Creating a Request+    DisassociateFileSystemAliases (..),+    newDisassociateFileSystemAliases,++    -- * Request Lenses+    disassociateFileSystemAliases_clientRequestToken,+    disassociateFileSystemAliases_fileSystemId,+    disassociateFileSystemAliases_aliases,++    -- * Destructuring the Response+    DisassociateFileSystemAliasesResponse (..),+    newDisassociateFileSystemAliasesResponse,++    -- * Response Lenses+    disassociateFileSystemAliasesResponse_aliases,+    disassociateFileSystemAliasesResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object of DNS aliases to disassociate from an Amazon FSx for+-- Windows File Server file system.+--+-- /See:/ 'newDisassociateFileSystemAliases' smart constructor.+data DisassociateFileSystemAliases = DisassociateFileSystemAliases'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies the file system from which to disassociate the DNS aliases.+    fileSystemId :: Prelude.Text,+    -- | An array of one or more DNS alias names to disassociate, or remove, from+    -- the file system.+    aliases :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateFileSystemAliases' 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:+--+-- 'clientRequestToken', 'disassociateFileSystemAliases_clientRequestToken' - Undocumented member.+--+-- 'fileSystemId', 'disassociateFileSystemAliases_fileSystemId' - Specifies the file system from which to disassociate the DNS aliases.+--+-- 'aliases', 'disassociateFileSystemAliases_aliases' - An array of one or more DNS alias names to disassociate, or remove, from+-- the file system.+newDisassociateFileSystemAliases ::+  -- | 'fileSystemId'+  Prelude.Text ->+  DisassociateFileSystemAliases+newDisassociateFileSystemAliases pFileSystemId_ =+  DisassociateFileSystemAliases'+    { clientRequestToken =+        Prelude.Nothing,+      fileSystemId = pFileSystemId_,+      aliases = Prelude.mempty+    }++-- | Undocumented member.+disassociateFileSystemAliases_clientRequestToken :: Lens.Lens' DisassociateFileSystemAliases (Prelude.Maybe Prelude.Text)+disassociateFileSystemAliases_clientRequestToken = Lens.lens (\DisassociateFileSystemAliases' {clientRequestToken} -> clientRequestToken) (\s@DisassociateFileSystemAliases' {} a -> s {clientRequestToken = a} :: DisassociateFileSystemAliases)++-- | Specifies the file system from which to disassociate the DNS aliases.+disassociateFileSystemAliases_fileSystemId :: Lens.Lens' DisassociateFileSystemAliases Prelude.Text+disassociateFileSystemAliases_fileSystemId = Lens.lens (\DisassociateFileSystemAliases' {fileSystemId} -> fileSystemId) (\s@DisassociateFileSystemAliases' {} a -> s {fileSystemId = a} :: DisassociateFileSystemAliases)++-- | An array of one or more DNS alias names to disassociate, or remove, from+-- the file system.+disassociateFileSystemAliases_aliases :: Lens.Lens' DisassociateFileSystemAliases [Prelude.Text]+disassociateFileSystemAliases_aliases = Lens.lens (\DisassociateFileSystemAliases' {aliases} -> aliases) (\s@DisassociateFileSystemAliases' {} a -> s {aliases = a} :: DisassociateFileSystemAliases) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    DisassociateFileSystemAliases+  where+  type+    AWSResponse DisassociateFileSystemAliases =+      DisassociateFileSystemAliasesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisassociateFileSystemAliasesResponse'+            Prelude.<$> (x Data..?> "Aliases" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DisassociateFileSystemAliases+  where+  hashWithSalt _salt DisassociateFileSystemAliases' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` aliases++instance Prelude.NFData DisassociateFileSystemAliases where+  rnf DisassociateFileSystemAliases' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf aliases++instance Data.ToHeaders DisassociateFileSystemAliases where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.DisassociateFileSystemAliases" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateFileSystemAliases where+  toJSON DisassociateFileSystemAliases' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("FileSystemId" Data..= fileSystemId),+            Prelude.Just ("Aliases" Data..= aliases)+          ]+      )++instance Data.ToPath DisassociateFileSystemAliases where+  toPath = Prelude.const "/"++instance Data.ToQuery DisassociateFileSystemAliases where+  toQuery = Prelude.const Prelude.mempty++-- | The system generated response showing the DNS aliases that Amazon FSx is+-- attempting to disassociate from the file system. Use the API operation+-- to monitor the status of the aliases Amazon FSx is removing from the+-- file system.+--+-- /See:/ 'newDisassociateFileSystemAliasesResponse' smart constructor.+data DisassociateFileSystemAliasesResponse = DisassociateFileSystemAliasesResponse'+  { -- | An array of one or more DNS aliases that Amazon FSx is attempting to+    -- disassociate from the file system.+    aliases :: Prelude.Maybe [Alias],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateFileSystemAliasesResponse' 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:+--+-- 'aliases', 'disassociateFileSystemAliasesResponse_aliases' - An array of one or more DNS aliases that Amazon FSx is attempting to+-- disassociate from the file system.+--+-- 'httpStatus', 'disassociateFileSystemAliasesResponse_httpStatus' - The response's http status code.+newDisassociateFileSystemAliasesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateFileSystemAliasesResponse+newDisassociateFileSystemAliasesResponse pHttpStatus_ =+  DisassociateFileSystemAliasesResponse'+    { aliases =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of one or more DNS aliases that Amazon FSx is attempting to+-- disassociate from the file system.+disassociateFileSystemAliasesResponse_aliases :: Lens.Lens' DisassociateFileSystemAliasesResponse (Prelude.Maybe [Alias])+disassociateFileSystemAliasesResponse_aliases = Lens.lens (\DisassociateFileSystemAliasesResponse' {aliases} -> aliases) (\s@DisassociateFileSystemAliasesResponse' {} a -> s {aliases = a} :: DisassociateFileSystemAliasesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+disassociateFileSystemAliasesResponse_httpStatus :: Lens.Lens' DisassociateFileSystemAliasesResponse Prelude.Int+disassociateFileSystemAliasesResponse_httpStatus = Lens.lens (\DisassociateFileSystemAliasesResponse' {httpStatus} -> httpStatus) (\s@DisassociateFileSystemAliasesResponse' {} a -> s {httpStatus = a} :: DisassociateFileSystemAliasesResponse)++instance+  Prelude.NFData+    DisassociateFileSystemAliasesResponse+  where+  rnf DisassociateFileSystemAliasesResponse' {..} =+    Prelude.rnf aliases+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/Lens.hs view
@@ -0,0 +1,1158 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Lens+-- 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.Lens+  ( -- * Operations++    -- ** AssociateFileSystemAliases+    associateFileSystemAliases_clientRequestToken,+    associateFileSystemAliases_fileSystemId,+    associateFileSystemAliases_aliases,+    associateFileSystemAliasesResponse_aliases,+    associateFileSystemAliasesResponse_httpStatus,++    -- ** CancelDataRepositoryTask+    cancelDataRepositoryTask_taskId,+    cancelDataRepositoryTaskResponse_lifecycle,+    cancelDataRepositoryTaskResponse_taskId,+    cancelDataRepositoryTaskResponse_httpStatus,++    -- ** CopyBackup+    copyBackup_clientRequestToken,+    copyBackup_copyTags,+    copyBackup_kmsKeyId,+    copyBackup_sourceRegion,+    copyBackup_tags,+    copyBackup_sourceBackupId,+    copyBackupResponse_backup,+    copyBackupResponse_httpStatus,++    -- ** CreateBackup+    createBackup_clientRequestToken,+    createBackup_fileSystemId,+    createBackup_tags,+    createBackup_volumeId,+    createBackupResponse_backup,+    createBackupResponse_httpStatus,++    -- ** CreateDataRepositoryAssociation+    createDataRepositoryAssociation_batchImportMetaDataOnCreate,+    createDataRepositoryAssociation_clientRequestToken,+    createDataRepositoryAssociation_fileSystemPath,+    createDataRepositoryAssociation_importedFileChunkSize,+    createDataRepositoryAssociation_s3,+    createDataRepositoryAssociation_tags,+    createDataRepositoryAssociation_fileSystemId,+    createDataRepositoryAssociation_dataRepositoryPath,+    createDataRepositoryAssociationResponse_association,+    createDataRepositoryAssociationResponse_httpStatus,++    -- ** CreateDataRepositoryTask+    createDataRepositoryTask_capacityToRelease,+    createDataRepositoryTask_clientRequestToken,+    createDataRepositoryTask_paths,+    createDataRepositoryTask_tags,+    createDataRepositoryTask_type,+    createDataRepositoryTask_fileSystemId,+    createDataRepositoryTask_report,+    createDataRepositoryTaskResponse_dataRepositoryTask,+    createDataRepositoryTaskResponse_httpStatus,++    -- ** CreateFileCache+    createFileCache_clientRequestToken,+    createFileCache_copyTagsToDataRepositoryAssociations,+    createFileCache_dataRepositoryAssociations,+    createFileCache_kmsKeyId,+    createFileCache_lustreConfiguration,+    createFileCache_securityGroupIds,+    createFileCache_tags,+    createFileCache_fileCacheType,+    createFileCache_fileCacheTypeVersion,+    createFileCache_storageCapacity,+    createFileCache_subnetIds,+    createFileCacheResponse_fileCache,+    createFileCacheResponse_httpStatus,++    -- ** CreateFileSystem+    createFileSystem_clientRequestToken,+    createFileSystem_fileSystemTypeVersion,+    createFileSystem_kmsKeyId,+    createFileSystem_lustreConfiguration,+    createFileSystem_ontapConfiguration,+    createFileSystem_openZFSConfiguration,+    createFileSystem_securityGroupIds,+    createFileSystem_storageType,+    createFileSystem_tags,+    createFileSystem_windowsConfiguration,+    createFileSystem_fileSystemType,+    createFileSystem_storageCapacity,+    createFileSystem_subnetIds,+    createFileSystemResponse_fileSystem,+    createFileSystemResponse_httpStatus,++    -- ** CreateFileSystemFromBackup+    createFileSystemFromBackup_clientRequestToken,+    createFileSystemFromBackup_fileSystemTypeVersion,+    createFileSystemFromBackup_kmsKeyId,+    createFileSystemFromBackup_lustreConfiguration,+    createFileSystemFromBackup_openZFSConfiguration,+    createFileSystemFromBackup_securityGroupIds,+    createFileSystemFromBackup_storageCapacity,+    createFileSystemFromBackup_storageType,+    createFileSystemFromBackup_tags,+    createFileSystemFromBackup_windowsConfiguration,+    createFileSystemFromBackup_backupId,+    createFileSystemFromBackup_subnetIds,+    createFileSystemFromBackupResponse_fileSystem,+    createFileSystemFromBackupResponse_httpStatus,++    -- ** CreateSnapshot+    createSnapshot_clientRequestToken,+    createSnapshot_tags,+    createSnapshot_name,+    createSnapshot_volumeId,+    createSnapshotResponse_snapshot,+    createSnapshotResponse_httpStatus,++    -- ** CreateStorageVirtualMachine+    createStorageVirtualMachine_activeDirectoryConfiguration,+    createStorageVirtualMachine_clientRequestToken,+    createStorageVirtualMachine_rootVolumeSecurityStyle,+    createStorageVirtualMachine_svmAdminPassword,+    createStorageVirtualMachine_tags,+    createStorageVirtualMachine_fileSystemId,+    createStorageVirtualMachine_name,+    createStorageVirtualMachineResponse_storageVirtualMachine,+    createStorageVirtualMachineResponse_httpStatus,++    -- ** CreateVolume+    createVolume_clientRequestToken,+    createVolume_ontapConfiguration,+    createVolume_openZFSConfiguration,+    createVolume_tags,+    createVolume_volumeType,+    createVolume_name,+    createVolumeResponse_volume,+    createVolumeResponse_httpStatus,++    -- ** CreateVolumeFromBackup+    createVolumeFromBackup_clientRequestToken,+    createVolumeFromBackup_ontapConfiguration,+    createVolumeFromBackup_tags,+    createVolumeFromBackup_backupId,+    createVolumeFromBackup_name,+    createVolumeFromBackupResponse_volume,+    createVolumeFromBackupResponse_httpStatus,++    -- ** DeleteBackup+    deleteBackup_clientRequestToken,+    deleteBackup_backupId,+    deleteBackupResponse_backupId,+    deleteBackupResponse_lifecycle,+    deleteBackupResponse_httpStatus,++    -- ** DeleteDataRepositoryAssociation+    deleteDataRepositoryAssociation_clientRequestToken,+    deleteDataRepositoryAssociation_deleteDataInFileSystem,+    deleteDataRepositoryAssociation_associationId,+    deleteDataRepositoryAssociationResponse_associationId,+    deleteDataRepositoryAssociationResponse_deleteDataInFileSystem,+    deleteDataRepositoryAssociationResponse_lifecycle,+    deleteDataRepositoryAssociationResponse_httpStatus,++    -- ** DeleteFileCache+    deleteFileCache_clientRequestToken,+    deleteFileCache_fileCacheId,+    deleteFileCacheResponse_fileCacheId,+    deleteFileCacheResponse_lifecycle,+    deleteFileCacheResponse_httpStatus,++    -- ** DeleteFileSystem+    deleteFileSystem_clientRequestToken,+    deleteFileSystem_lustreConfiguration,+    deleteFileSystem_openZFSConfiguration,+    deleteFileSystem_windowsConfiguration,+    deleteFileSystem_fileSystemId,+    deleteFileSystemResponse_fileSystemId,+    deleteFileSystemResponse_lifecycle,+    deleteFileSystemResponse_lustreResponse,+    deleteFileSystemResponse_openZFSResponse,+    deleteFileSystemResponse_windowsResponse,+    deleteFileSystemResponse_httpStatus,++    -- ** DeleteSnapshot+    deleteSnapshot_clientRequestToken,+    deleteSnapshot_snapshotId,+    deleteSnapshotResponse_lifecycle,+    deleteSnapshotResponse_snapshotId,+    deleteSnapshotResponse_httpStatus,++    -- ** DeleteStorageVirtualMachine+    deleteStorageVirtualMachine_clientRequestToken,+    deleteStorageVirtualMachine_storageVirtualMachineId,+    deleteStorageVirtualMachineResponse_lifecycle,+    deleteStorageVirtualMachineResponse_storageVirtualMachineId,+    deleteStorageVirtualMachineResponse_httpStatus,++    -- ** DeleteVolume+    deleteVolume_clientRequestToken,+    deleteVolume_ontapConfiguration,+    deleteVolume_openZFSConfiguration,+    deleteVolume_volumeId,+    deleteVolumeResponse_lifecycle,+    deleteVolumeResponse_ontapResponse,+    deleteVolumeResponse_volumeId,+    deleteVolumeResponse_httpStatus,++    -- ** DescribeBackups+    describeBackups_backupIds,+    describeBackups_filters,+    describeBackups_maxResults,+    describeBackups_nextToken,+    describeBackupsResponse_backups,+    describeBackupsResponse_nextToken,+    describeBackupsResponse_httpStatus,++    -- ** DescribeDataRepositoryAssociations+    describeDataRepositoryAssociations_associationIds,+    describeDataRepositoryAssociations_filters,+    describeDataRepositoryAssociations_maxResults,+    describeDataRepositoryAssociations_nextToken,+    describeDataRepositoryAssociationsResponse_associations,+    describeDataRepositoryAssociationsResponse_nextToken,+    describeDataRepositoryAssociationsResponse_httpStatus,++    -- ** DescribeDataRepositoryTasks+    describeDataRepositoryTasks_filters,+    describeDataRepositoryTasks_maxResults,+    describeDataRepositoryTasks_nextToken,+    describeDataRepositoryTasks_taskIds,+    describeDataRepositoryTasksResponse_dataRepositoryTasks,+    describeDataRepositoryTasksResponse_nextToken,+    describeDataRepositoryTasksResponse_httpStatus,++    -- ** DescribeFileCaches+    describeFileCaches_fileCacheIds,+    describeFileCaches_maxResults,+    describeFileCaches_nextToken,+    describeFileCachesResponse_fileCaches,+    describeFileCachesResponse_nextToken,+    describeFileCachesResponse_httpStatus,++    -- ** DescribeFileSystemAliases+    describeFileSystemAliases_clientRequestToken,+    describeFileSystemAliases_maxResults,+    describeFileSystemAliases_nextToken,+    describeFileSystemAliases_fileSystemId,+    describeFileSystemAliasesResponse_aliases,+    describeFileSystemAliasesResponse_nextToken,+    describeFileSystemAliasesResponse_httpStatus,++    -- ** DescribeFileSystems+    describeFileSystems_fileSystemIds,+    describeFileSystems_maxResults,+    describeFileSystems_nextToken,+    describeFileSystemsResponse_fileSystems,+    describeFileSystemsResponse_nextToken,+    describeFileSystemsResponse_httpStatus,++    -- ** DescribeSnapshots+    describeSnapshots_filters,+    describeSnapshots_maxResults,+    describeSnapshots_nextToken,+    describeSnapshots_snapshotIds,+    describeSnapshotsResponse_nextToken,+    describeSnapshotsResponse_snapshots,+    describeSnapshotsResponse_httpStatus,++    -- ** DescribeStorageVirtualMachines+    describeStorageVirtualMachines_filters,+    describeStorageVirtualMachines_maxResults,+    describeStorageVirtualMachines_nextToken,+    describeStorageVirtualMachines_storageVirtualMachineIds,+    describeStorageVirtualMachinesResponse_nextToken,+    describeStorageVirtualMachinesResponse_storageVirtualMachines,+    describeStorageVirtualMachinesResponse_httpStatus,++    -- ** DescribeVolumes+    describeVolumes_filters,+    describeVolumes_maxResults,+    describeVolumes_nextToken,+    describeVolumes_volumeIds,+    describeVolumesResponse_nextToken,+    describeVolumesResponse_volumes,+    describeVolumesResponse_httpStatus,++    -- ** DisassociateFileSystemAliases+    disassociateFileSystemAliases_clientRequestToken,+    disassociateFileSystemAliases_fileSystemId,+    disassociateFileSystemAliases_aliases,+    disassociateFileSystemAliasesResponse_aliases,+    disassociateFileSystemAliasesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_maxResults,+    listTagsForResource_nextToken,+    listTagsForResource_resourceARN,+    listTagsForResourceResponse_nextToken,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ReleaseFileSystemNfsV3Locks+    releaseFileSystemNfsV3Locks_clientRequestToken,+    releaseFileSystemNfsV3Locks_fileSystemId,+    releaseFileSystemNfsV3LocksResponse_fileSystem,+    releaseFileSystemNfsV3LocksResponse_httpStatus,++    -- ** RestoreVolumeFromSnapshot+    restoreVolumeFromSnapshot_clientRequestToken,+    restoreVolumeFromSnapshot_options,+    restoreVolumeFromSnapshot_volumeId,+    restoreVolumeFromSnapshot_snapshotId,+    restoreVolumeFromSnapshotResponse_administrativeActions,+    restoreVolumeFromSnapshotResponse_lifecycle,+    restoreVolumeFromSnapshotResponse_volumeId,+    restoreVolumeFromSnapshotResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceARN,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceARN,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateDataRepositoryAssociation+    updateDataRepositoryAssociation_clientRequestToken,+    updateDataRepositoryAssociation_importedFileChunkSize,+    updateDataRepositoryAssociation_s3,+    updateDataRepositoryAssociation_associationId,+    updateDataRepositoryAssociationResponse_association,+    updateDataRepositoryAssociationResponse_httpStatus,++    -- ** UpdateFileCache+    updateFileCache_clientRequestToken,+    updateFileCache_lustreConfiguration,+    updateFileCache_fileCacheId,+    updateFileCacheResponse_fileCache,+    updateFileCacheResponse_httpStatus,++    -- ** UpdateFileSystem+    updateFileSystem_clientRequestToken,+    updateFileSystem_lustreConfiguration,+    updateFileSystem_ontapConfiguration,+    updateFileSystem_openZFSConfiguration,+    updateFileSystem_storageCapacity,+    updateFileSystem_windowsConfiguration,+    updateFileSystem_fileSystemId,+    updateFileSystemResponse_fileSystem,+    updateFileSystemResponse_httpStatus,++    -- ** UpdateSnapshot+    updateSnapshot_clientRequestToken,+    updateSnapshot_name,+    updateSnapshot_snapshotId,+    updateSnapshotResponse_snapshot,+    updateSnapshotResponse_httpStatus,++    -- ** UpdateStorageVirtualMachine+    updateStorageVirtualMachine_activeDirectoryConfiguration,+    updateStorageVirtualMachine_clientRequestToken,+    updateStorageVirtualMachine_svmAdminPassword,+    updateStorageVirtualMachine_storageVirtualMachineId,+    updateStorageVirtualMachineResponse_storageVirtualMachine,+    updateStorageVirtualMachineResponse_httpStatus,++    -- ** UpdateVolume+    updateVolume_clientRequestToken,+    updateVolume_name,+    updateVolume_ontapConfiguration,+    updateVolume_openZFSConfiguration,+    updateVolume_volumeId,+    updateVolumeResponse_volume,+    updateVolumeResponse_httpStatus,++    -- * Types++    -- ** ActiveDirectoryBackupAttributes+    activeDirectoryBackupAttributes_activeDirectoryId,+    activeDirectoryBackupAttributes_domainName,+    activeDirectoryBackupAttributes_resourceARN,++    -- ** AdministrativeAction+    administrativeAction_administrativeActionType,+    administrativeAction_failureDetails,+    administrativeAction_progressPercent,+    administrativeAction_requestTime,+    administrativeAction_status,+    administrativeAction_targetFileSystemValues,+    administrativeAction_targetSnapshotValues,+    administrativeAction_targetVolumeValues,++    -- ** AdministrativeActionFailureDetails+    administrativeActionFailureDetails_message,++    -- ** Alias+    alias_lifecycle,+    alias_name,++    -- ** AutoExportPolicy+    autoExportPolicy_events,++    -- ** AutoImportPolicy+    autoImportPolicy_events,++    -- ** Backup+    backup_directoryInformation,+    backup_failureDetails,+    backup_kmsKeyId,+    backup_ownerId,+    backup_progressPercent,+    backup_resourceARN,+    backup_resourceType,+    backup_sourceBackupId,+    backup_sourceBackupRegion,+    backup_tags,+    backup_volume,+    backup_backupId,+    backup_lifecycle,+    backup_type,+    backup_creationTime,+    backup_fileSystem,++    -- ** BackupFailureDetails+    backupFailureDetails_message,++    -- ** CompletionReport+    completionReport_format,+    completionReport_path,+    completionReport_scope,+    completionReport_enabled,++    -- ** CreateFileCacheLustreConfiguration+    createFileCacheLustreConfiguration_weeklyMaintenanceStartTime,+    createFileCacheLustreConfiguration_perUnitStorageThroughput,+    createFileCacheLustreConfiguration_deploymentType,+    createFileCacheLustreConfiguration_metadataConfiguration,++    -- ** CreateFileSystemLustreConfiguration+    createFileSystemLustreConfiguration_autoImportPolicy,+    createFileSystemLustreConfiguration_automaticBackupRetentionDays,+    createFileSystemLustreConfiguration_copyTagsToBackups,+    createFileSystemLustreConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemLustreConfiguration_dataCompressionType,+    createFileSystemLustreConfiguration_deploymentType,+    createFileSystemLustreConfiguration_driveCacheType,+    createFileSystemLustreConfiguration_exportPath,+    createFileSystemLustreConfiguration_importPath,+    createFileSystemLustreConfiguration_importedFileChunkSize,+    createFileSystemLustreConfiguration_logConfiguration,+    createFileSystemLustreConfiguration_perUnitStorageThroughput,+    createFileSystemLustreConfiguration_rootSquashConfiguration,+    createFileSystemLustreConfiguration_weeklyMaintenanceStartTime,++    -- ** CreateFileSystemOntapConfiguration+    createFileSystemOntapConfiguration_automaticBackupRetentionDays,+    createFileSystemOntapConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemOntapConfiguration_diskIopsConfiguration,+    createFileSystemOntapConfiguration_endpointIpAddressRange,+    createFileSystemOntapConfiguration_fsxAdminPassword,+    createFileSystemOntapConfiguration_preferredSubnetId,+    createFileSystemOntapConfiguration_routeTableIds,+    createFileSystemOntapConfiguration_weeklyMaintenanceStartTime,+    createFileSystemOntapConfiguration_deploymentType,+    createFileSystemOntapConfiguration_throughputCapacity,++    -- ** CreateFileSystemOpenZFSConfiguration+    createFileSystemOpenZFSConfiguration_automaticBackupRetentionDays,+    createFileSystemOpenZFSConfiguration_copyTagsToBackups,+    createFileSystemOpenZFSConfiguration_copyTagsToVolumes,+    createFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemOpenZFSConfiguration_diskIopsConfiguration,+    createFileSystemOpenZFSConfiguration_rootVolumeConfiguration,+    createFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime,+    createFileSystemOpenZFSConfiguration_deploymentType,+    createFileSystemOpenZFSConfiguration_throughputCapacity,++    -- ** CreateFileSystemWindowsConfiguration+    createFileSystemWindowsConfiguration_activeDirectoryId,+    createFileSystemWindowsConfiguration_aliases,+    createFileSystemWindowsConfiguration_auditLogConfiguration,+    createFileSystemWindowsConfiguration_automaticBackupRetentionDays,+    createFileSystemWindowsConfiguration_copyTagsToBackups,+    createFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemWindowsConfiguration_deploymentType,+    createFileSystemWindowsConfiguration_preferredSubnetId,+    createFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration,+    createFileSystemWindowsConfiguration_weeklyMaintenanceStartTime,+    createFileSystemWindowsConfiguration_throughputCapacity,++    -- ** CreateOntapVolumeConfiguration+    createOntapVolumeConfiguration_copyTagsToBackups,+    createOntapVolumeConfiguration_junctionPath,+    createOntapVolumeConfiguration_ontapVolumeType,+    createOntapVolumeConfiguration_securityStyle,+    createOntapVolumeConfiguration_snapshotPolicy,+    createOntapVolumeConfiguration_storageEfficiencyEnabled,+    createOntapVolumeConfiguration_tieringPolicy,+    createOntapVolumeConfiguration_sizeInMegabytes,+    createOntapVolumeConfiguration_storageVirtualMachineId,++    -- ** CreateOpenZFSOriginSnapshotConfiguration+    createOpenZFSOriginSnapshotConfiguration_snapshotARN,+    createOpenZFSOriginSnapshotConfiguration_copyStrategy,++    -- ** CreateOpenZFSVolumeConfiguration+    createOpenZFSVolumeConfiguration_copyTagsToSnapshots,+    createOpenZFSVolumeConfiguration_dataCompressionType,+    createOpenZFSVolumeConfiguration_nfsExports,+    createOpenZFSVolumeConfiguration_originSnapshot,+    createOpenZFSVolumeConfiguration_readOnly,+    createOpenZFSVolumeConfiguration_recordSizeKiB,+    createOpenZFSVolumeConfiguration_storageCapacityQuotaGiB,+    createOpenZFSVolumeConfiguration_storageCapacityReservationGiB,+    createOpenZFSVolumeConfiguration_userAndGroupQuotas,+    createOpenZFSVolumeConfiguration_parentVolumeId,++    -- ** CreateSvmActiveDirectoryConfiguration+    createSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration,+    createSvmActiveDirectoryConfiguration_netBiosName,++    -- ** DataRepositoryAssociation+    dataRepositoryAssociation_associationId,+    dataRepositoryAssociation_batchImportMetaDataOnCreate,+    dataRepositoryAssociation_creationTime,+    dataRepositoryAssociation_dataRepositoryPath,+    dataRepositoryAssociation_dataRepositorySubdirectories,+    dataRepositoryAssociation_failureDetails,+    dataRepositoryAssociation_fileCacheId,+    dataRepositoryAssociation_fileCachePath,+    dataRepositoryAssociation_fileSystemId,+    dataRepositoryAssociation_fileSystemPath,+    dataRepositoryAssociation_importedFileChunkSize,+    dataRepositoryAssociation_lifecycle,+    dataRepositoryAssociation_nfs,+    dataRepositoryAssociation_resourceARN,+    dataRepositoryAssociation_s3,+    dataRepositoryAssociation_tags,++    -- ** DataRepositoryConfiguration+    dataRepositoryConfiguration_autoImportPolicy,+    dataRepositoryConfiguration_exportPath,+    dataRepositoryConfiguration_failureDetails,+    dataRepositoryConfiguration_importPath,+    dataRepositoryConfiguration_importedFileChunkSize,+    dataRepositoryConfiguration_lifecycle,++    -- ** DataRepositoryFailureDetails+    dataRepositoryFailureDetails_message,++    -- ** DataRepositoryTask+    dataRepositoryTask_capacityToRelease,+    dataRepositoryTask_endTime,+    dataRepositoryTask_failureDetails,+    dataRepositoryTask_fileCacheId,+    dataRepositoryTask_fileSystemId,+    dataRepositoryTask_paths,+    dataRepositoryTask_report,+    dataRepositoryTask_resourceARN,+    dataRepositoryTask_startTime,+    dataRepositoryTask_status,+    dataRepositoryTask_tags,+    dataRepositoryTask_taskId,+    dataRepositoryTask_lifecycle,+    dataRepositoryTask_type,+    dataRepositoryTask_creationTime,++    -- ** DataRepositoryTaskFailureDetails+    dataRepositoryTaskFailureDetails_message,++    -- ** DataRepositoryTaskFilter+    dataRepositoryTaskFilter_name,+    dataRepositoryTaskFilter_values,++    -- ** DataRepositoryTaskStatus+    dataRepositoryTaskStatus_failedCount,+    dataRepositoryTaskStatus_lastUpdatedTime,+    dataRepositoryTaskStatus_releasedCapacity,+    dataRepositoryTaskStatus_succeededCount,+    dataRepositoryTaskStatus_totalCount,++    -- ** DeleteFileSystemLustreConfiguration+    deleteFileSystemLustreConfiguration_finalBackupTags,+    deleteFileSystemLustreConfiguration_skipFinalBackup,++    -- ** DeleteFileSystemLustreResponse+    deleteFileSystemLustreResponse_finalBackupId,+    deleteFileSystemLustreResponse_finalBackupTags,++    -- ** DeleteFileSystemOpenZFSConfiguration+    deleteFileSystemOpenZFSConfiguration_finalBackupTags,+    deleteFileSystemOpenZFSConfiguration_options,+    deleteFileSystemOpenZFSConfiguration_skipFinalBackup,++    -- ** DeleteFileSystemOpenZFSResponse+    deleteFileSystemOpenZFSResponse_finalBackupId,+    deleteFileSystemOpenZFSResponse_finalBackupTags,++    -- ** DeleteFileSystemWindowsConfiguration+    deleteFileSystemWindowsConfiguration_finalBackupTags,+    deleteFileSystemWindowsConfiguration_skipFinalBackup,++    -- ** DeleteFileSystemWindowsResponse+    deleteFileSystemWindowsResponse_finalBackupId,+    deleteFileSystemWindowsResponse_finalBackupTags,++    -- ** DeleteVolumeOntapConfiguration+    deleteVolumeOntapConfiguration_finalBackupTags,+    deleteVolumeOntapConfiguration_skipFinalBackup,++    -- ** DeleteVolumeOntapResponse+    deleteVolumeOntapResponse_finalBackupId,+    deleteVolumeOntapResponse_finalBackupTags,++    -- ** DeleteVolumeOpenZFSConfiguration+    deleteVolumeOpenZFSConfiguration_options,++    -- ** DiskIopsConfiguration+    diskIopsConfiguration_iops,+    diskIopsConfiguration_mode,++    -- ** FileCache+    fileCache_creationTime,+    fileCache_dNSName,+    fileCache_dataRepositoryAssociationIds,+    fileCache_failureDetails,+    fileCache_fileCacheId,+    fileCache_fileCacheType,+    fileCache_fileCacheTypeVersion,+    fileCache_kmsKeyId,+    fileCache_lifecycle,+    fileCache_lustreConfiguration,+    fileCache_networkInterfaceIds,+    fileCache_ownerId,+    fileCache_resourceARN,+    fileCache_storageCapacity,+    fileCache_subnetIds,+    fileCache_vpcId,++    -- ** FileCacheCreating+    fileCacheCreating_copyTagsToDataRepositoryAssociations,+    fileCacheCreating_creationTime,+    fileCacheCreating_dNSName,+    fileCacheCreating_dataRepositoryAssociationIds,+    fileCacheCreating_failureDetails,+    fileCacheCreating_fileCacheId,+    fileCacheCreating_fileCacheType,+    fileCacheCreating_fileCacheTypeVersion,+    fileCacheCreating_kmsKeyId,+    fileCacheCreating_lifecycle,+    fileCacheCreating_lustreConfiguration,+    fileCacheCreating_networkInterfaceIds,+    fileCacheCreating_ownerId,+    fileCacheCreating_resourceARN,+    fileCacheCreating_storageCapacity,+    fileCacheCreating_subnetIds,+    fileCacheCreating_tags,+    fileCacheCreating_vpcId,++    -- ** FileCacheDataRepositoryAssociation+    fileCacheDataRepositoryAssociation_dataRepositorySubdirectories,+    fileCacheDataRepositoryAssociation_nfs,+    fileCacheDataRepositoryAssociation_fileCachePath,+    fileCacheDataRepositoryAssociation_dataRepositoryPath,++    -- ** FileCacheFailureDetails+    fileCacheFailureDetails_message,++    -- ** FileCacheLustreConfiguration+    fileCacheLustreConfiguration_deploymentType,+    fileCacheLustreConfiguration_logConfiguration,+    fileCacheLustreConfiguration_metadataConfiguration,+    fileCacheLustreConfiguration_mountName,+    fileCacheLustreConfiguration_perUnitStorageThroughput,+    fileCacheLustreConfiguration_weeklyMaintenanceStartTime,++    -- ** FileCacheLustreMetadataConfiguration+    fileCacheLustreMetadataConfiguration_storageCapacity,++    -- ** FileCacheNFSConfiguration+    fileCacheNFSConfiguration_dnsIps,+    fileCacheNFSConfiguration_version,++    -- ** FileSystem+    fileSystem_administrativeActions,+    fileSystem_creationTime,+    fileSystem_dNSName,+    fileSystem_failureDetails,+    fileSystem_fileSystemId,+    fileSystem_fileSystemType,+    fileSystem_fileSystemTypeVersion,+    fileSystem_kmsKeyId,+    fileSystem_lifecycle,+    fileSystem_lustreConfiguration,+    fileSystem_networkInterfaceIds,+    fileSystem_ontapConfiguration,+    fileSystem_openZFSConfiguration,+    fileSystem_ownerId,+    fileSystem_resourceARN,+    fileSystem_storageCapacity,+    fileSystem_storageType,+    fileSystem_subnetIds,+    fileSystem_tags,+    fileSystem_vpcId,+    fileSystem_windowsConfiguration,++    -- ** FileSystemEndpoint+    fileSystemEndpoint_dNSName,+    fileSystemEndpoint_ipAddresses,++    -- ** FileSystemEndpoints+    fileSystemEndpoints_intercluster,+    fileSystemEndpoints_management,++    -- ** FileSystemFailureDetails+    fileSystemFailureDetails_message,++    -- ** Filter+    filter_name,+    filter_values,++    -- ** LifecycleTransitionReason+    lifecycleTransitionReason_message,++    -- ** LustreFileSystemConfiguration+    lustreFileSystemConfiguration_automaticBackupRetentionDays,+    lustreFileSystemConfiguration_copyTagsToBackups,+    lustreFileSystemConfiguration_dailyAutomaticBackupStartTime,+    lustreFileSystemConfiguration_dataCompressionType,+    lustreFileSystemConfiguration_dataRepositoryConfiguration,+    lustreFileSystemConfiguration_deploymentType,+    lustreFileSystemConfiguration_driveCacheType,+    lustreFileSystemConfiguration_logConfiguration,+    lustreFileSystemConfiguration_mountName,+    lustreFileSystemConfiguration_perUnitStorageThroughput,+    lustreFileSystemConfiguration_rootSquashConfiguration,+    lustreFileSystemConfiguration_weeklyMaintenanceStartTime,++    -- ** LustreLogConfiguration+    lustreLogConfiguration_destination,+    lustreLogConfiguration_level,++    -- ** LustreLogCreateConfiguration+    lustreLogCreateConfiguration_destination,+    lustreLogCreateConfiguration_level,++    -- ** LustreRootSquashConfiguration+    lustreRootSquashConfiguration_noSquashNids,+    lustreRootSquashConfiguration_rootSquash,++    -- ** NFSDataRepositoryConfiguration+    nFSDataRepositoryConfiguration_autoExportPolicy,+    nFSDataRepositoryConfiguration_dnsIps,+    nFSDataRepositoryConfiguration_version,++    -- ** OntapFileSystemConfiguration+    ontapFileSystemConfiguration_automaticBackupRetentionDays,+    ontapFileSystemConfiguration_dailyAutomaticBackupStartTime,+    ontapFileSystemConfiguration_deploymentType,+    ontapFileSystemConfiguration_diskIopsConfiguration,+    ontapFileSystemConfiguration_endpointIpAddressRange,+    ontapFileSystemConfiguration_endpoints,+    ontapFileSystemConfiguration_preferredSubnetId,+    ontapFileSystemConfiguration_routeTableIds,+    ontapFileSystemConfiguration_throughputCapacity,+    ontapFileSystemConfiguration_weeklyMaintenanceStartTime,++    -- ** OntapVolumeConfiguration+    ontapVolumeConfiguration_copyTagsToBackups,+    ontapVolumeConfiguration_flexCacheEndpointType,+    ontapVolumeConfiguration_junctionPath,+    ontapVolumeConfiguration_ontapVolumeType,+    ontapVolumeConfiguration_securityStyle,+    ontapVolumeConfiguration_sizeInMegabytes,+    ontapVolumeConfiguration_snapshotPolicy,+    ontapVolumeConfiguration_storageEfficiencyEnabled,+    ontapVolumeConfiguration_storageVirtualMachineId,+    ontapVolumeConfiguration_storageVirtualMachineRoot,+    ontapVolumeConfiguration_tieringPolicy,+    ontapVolumeConfiguration_uuid,++    -- ** OpenZFSClientConfiguration+    openZFSClientConfiguration_clients,+    openZFSClientConfiguration_options,++    -- ** OpenZFSCreateRootVolumeConfiguration+    openZFSCreateRootVolumeConfiguration_copyTagsToSnapshots,+    openZFSCreateRootVolumeConfiguration_dataCompressionType,+    openZFSCreateRootVolumeConfiguration_nfsExports,+    openZFSCreateRootVolumeConfiguration_readOnly,+    openZFSCreateRootVolumeConfiguration_recordSizeKiB,+    openZFSCreateRootVolumeConfiguration_userAndGroupQuotas,++    -- ** OpenZFSFileSystemConfiguration+    openZFSFileSystemConfiguration_automaticBackupRetentionDays,+    openZFSFileSystemConfiguration_copyTagsToBackups,+    openZFSFileSystemConfiguration_copyTagsToVolumes,+    openZFSFileSystemConfiguration_dailyAutomaticBackupStartTime,+    openZFSFileSystemConfiguration_deploymentType,+    openZFSFileSystemConfiguration_diskIopsConfiguration,+    openZFSFileSystemConfiguration_rootVolumeId,+    openZFSFileSystemConfiguration_throughputCapacity,+    openZFSFileSystemConfiguration_weeklyMaintenanceStartTime,++    -- ** OpenZFSNfsExport+    openZFSNfsExport_clientConfigurations,++    -- ** OpenZFSOriginSnapshotConfiguration+    openZFSOriginSnapshotConfiguration_copyStrategy,+    openZFSOriginSnapshotConfiguration_snapshotARN,++    -- ** OpenZFSUserOrGroupQuota+    openZFSUserOrGroupQuota_type,+    openZFSUserOrGroupQuota_id,+    openZFSUserOrGroupQuota_storageCapacityQuotaGiB,++    -- ** OpenZFSVolumeConfiguration+    openZFSVolumeConfiguration_copyTagsToSnapshots,+    openZFSVolumeConfiguration_dataCompressionType,+    openZFSVolumeConfiguration_deleteClonedVolumes,+    openZFSVolumeConfiguration_deleteIntermediateSnaphots,+    openZFSVolumeConfiguration_nfsExports,+    openZFSVolumeConfiguration_originSnapshot,+    openZFSVolumeConfiguration_parentVolumeId,+    openZFSVolumeConfiguration_readOnly,+    openZFSVolumeConfiguration_recordSizeKiB,+    openZFSVolumeConfiguration_restoreToSnapshot,+    openZFSVolumeConfiguration_storageCapacityQuotaGiB,+    openZFSVolumeConfiguration_storageCapacityReservationGiB,+    openZFSVolumeConfiguration_userAndGroupQuotas,+    openZFSVolumeConfiguration_volumePath,++    -- ** S3DataRepositoryConfiguration+    s3DataRepositoryConfiguration_autoExportPolicy,+    s3DataRepositoryConfiguration_autoImportPolicy,++    -- ** SelfManagedActiveDirectoryAttributes+    selfManagedActiveDirectoryAttributes_dnsIps,+    selfManagedActiveDirectoryAttributes_domainName,+    selfManagedActiveDirectoryAttributes_fileSystemAdministratorsGroup,+    selfManagedActiveDirectoryAttributes_organizationalUnitDistinguishedName,+    selfManagedActiveDirectoryAttributes_userName,++    -- ** SelfManagedActiveDirectoryConfiguration+    selfManagedActiveDirectoryConfiguration_fileSystemAdministratorsGroup,+    selfManagedActiveDirectoryConfiguration_organizationalUnitDistinguishedName,+    selfManagedActiveDirectoryConfiguration_domainName,+    selfManagedActiveDirectoryConfiguration_userName,+    selfManagedActiveDirectoryConfiguration_password,+    selfManagedActiveDirectoryConfiguration_dnsIps,++    -- ** SelfManagedActiveDirectoryConfigurationUpdates+    selfManagedActiveDirectoryConfigurationUpdates_dnsIps,+    selfManagedActiveDirectoryConfigurationUpdates_password,+    selfManagedActiveDirectoryConfigurationUpdates_userName,++    -- ** Snapshot+    snapshot_administrativeActions,+    snapshot_creationTime,+    snapshot_lifecycle,+    snapshot_lifecycleTransitionReason,+    snapshot_name,+    snapshot_resourceARN,+    snapshot_snapshotId,+    snapshot_tags,+    snapshot_volumeId,++    -- ** SnapshotFilter+    snapshotFilter_name,+    snapshotFilter_values,++    -- ** StorageVirtualMachine+    storageVirtualMachine_activeDirectoryConfiguration,+    storageVirtualMachine_creationTime,+    storageVirtualMachine_endpoints,+    storageVirtualMachine_fileSystemId,+    storageVirtualMachine_lifecycle,+    storageVirtualMachine_lifecycleTransitionReason,+    storageVirtualMachine_name,+    storageVirtualMachine_resourceARN,+    storageVirtualMachine_rootVolumeSecurityStyle,+    storageVirtualMachine_storageVirtualMachineId,+    storageVirtualMachine_subtype,+    storageVirtualMachine_tags,+    storageVirtualMachine_uuid,++    -- ** StorageVirtualMachineFilter+    storageVirtualMachineFilter_name,+    storageVirtualMachineFilter_values,++    -- ** SvmActiveDirectoryConfiguration+    svmActiveDirectoryConfiguration_netBiosName,+    svmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration,++    -- ** SvmEndpoint+    svmEndpoint_dNSName,+    svmEndpoint_ipAddresses,++    -- ** SvmEndpoints+    svmEndpoints_iscsi,+    svmEndpoints_management,+    svmEndpoints_nfs,+    svmEndpoints_smb,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** TieringPolicy+    tieringPolicy_coolingPeriod,+    tieringPolicy_name,++    -- ** UpdateFileCacheLustreConfiguration+    updateFileCacheLustreConfiguration_weeklyMaintenanceStartTime,++    -- ** UpdateFileSystemLustreConfiguration+    updateFileSystemLustreConfiguration_autoImportPolicy,+    updateFileSystemLustreConfiguration_automaticBackupRetentionDays,+    updateFileSystemLustreConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemLustreConfiguration_dataCompressionType,+    updateFileSystemLustreConfiguration_logConfiguration,+    updateFileSystemLustreConfiguration_rootSquashConfiguration,+    updateFileSystemLustreConfiguration_weeklyMaintenanceStartTime,++    -- ** UpdateFileSystemOntapConfiguration+    updateFileSystemOntapConfiguration_addRouteTableIds,+    updateFileSystemOntapConfiguration_automaticBackupRetentionDays,+    updateFileSystemOntapConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemOntapConfiguration_diskIopsConfiguration,+    updateFileSystemOntapConfiguration_fsxAdminPassword,+    updateFileSystemOntapConfiguration_removeRouteTableIds,+    updateFileSystemOntapConfiguration_throughputCapacity,+    updateFileSystemOntapConfiguration_weeklyMaintenanceStartTime,++    -- ** UpdateFileSystemOpenZFSConfiguration+    updateFileSystemOpenZFSConfiguration_automaticBackupRetentionDays,+    updateFileSystemOpenZFSConfiguration_copyTagsToBackups,+    updateFileSystemOpenZFSConfiguration_copyTagsToVolumes,+    updateFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemOpenZFSConfiguration_diskIopsConfiguration,+    updateFileSystemOpenZFSConfiguration_throughputCapacity,+    updateFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime,++    -- ** UpdateFileSystemWindowsConfiguration+    updateFileSystemWindowsConfiguration_auditLogConfiguration,+    updateFileSystemWindowsConfiguration_automaticBackupRetentionDays,+    updateFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration,+    updateFileSystemWindowsConfiguration_throughputCapacity,+    updateFileSystemWindowsConfiguration_weeklyMaintenanceStartTime,++    -- ** UpdateOntapVolumeConfiguration+    updateOntapVolumeConfiguration_copyTagsToBackups,+    updateOntapVolumeConfiguration_junctionPath,+    updateOntapVolumeConfiguration_securityStyle,+    updateOntapVolumeConfiguration_sizeInMegabytes,+    updateOntapVolumeConfiguration_snapshotPolicy,+    updateOntapVolumeConfiguration_storageEfficiencyEnabled,+    updateOntapVolumeConfiguration_tieringPolicy,++    -- ** UpdateOpenZFSVolumeConfiguration+    updateOpenZFSVolumeConfiguration_dataCompressionType,+    updateOpenZFSVolumeConfiguration_nfsExports,+    updateOpenZFSVolumeConfiguration_readOnly,+    updateOpenZFSVolumeConfiguration_recordSizeKiB,+    updateOpenZFSVolumeConfiguration_storageCapacityQuotaGiB,+    updateOpenZFSVolumeConfiguration_storageCapacityReservationGiB,+    updateOpenZFSVolumeConfiguration_userAndGroupQuotas,++    -- ** UpdateSvmActiveDirectoryConfiguration+    updateSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration,++    -- ** Volume+    volume_administrativeActions,+    volume_creationTime,+    volume_fileSystemId,+    volume_lifecycle,+    volume_lifecycleTransitionReason,+    volume_name,+    volume_ontapConfiguration,+    volume_openZFSConfiguration,+    volume_resourceARN,+    volume_tags,+    volume_volumeId,+    volume_volumeType,++    -- ** VolumeFilter+    volumeFilter_name,+    volumeFilter_values,++    -- ** WindowsAuditLogConfiguration+    windowsAuditLogConfiguration_auditLogDestination,+    windowsAuditLogConfiguration_fileAccessAuditLogLevel,+    windowsAuditLogConfiguration_fileShareAccessAuditLogLevel,++    -- ** WindowsAuditLogCreateConfiguration+    windowsAuditLogCreateConfiguration_auditLogDestination,+    windowsAuditLogCreateConfiguration_fileAccessAuditLogLevel,+    windowsAuditLogCreateConfiguration_fileShareAccessAuditLogLevel,++    -- ** WindowsFileSystemConfiguration+    windowsFileSystemConfiguration_activeDirectoryId,+    windowsFileSystemConfiguration_aliases,+    windowsFileSystemConfiguration_auditLogConfiguration,+    windowsFileSystemConfiguration_automaticBackupRetentionDays,+    windowsFileSystemConfiguration_copyTagsToBackups,+    windowsFileSystemConfiguration_dailyAutomaticBackupStartTime,+    windowsFileSystemConfiguration_deploymentType,+    windowsFileSystemConfiguration_maintenanceOperationsInProgress,+    windowsFileSystemConfiguration_preferredFileServerIp,+    windowsFileSystemConfiguration_preferredSubnetId,+    windowsFileSystemConfiguration_remoteAdministrationEndpoint,+    windowsFileSystemConfiguration_selfManagedActiveDirectoryConfiguration,+    windowsFileSystemConfiguration_throughputCapacity,+    windowsFileSystemConfiguration_weeklyMaintenanceStartTime,+  )+where++import Amazonka.FSx.AssociateFileSystemAliases+import Amazonka.FSx.CancelDataRepositoryTask+import Amazonka.FSx.CopyBackup+import Amazonka.FSx.CreateBackup+import Amazonka.FSx.CreateDataRepositoryAssociation+import Amazonka.FSx.CreateDataRepositoryTask+import Amazonka.FSx.CreateFileCache+import Amazonka.FSx.CreateFileSystem+import Amazonka.FSx.CreateFileSystemFromBackup+import Amazonka.FSx.CreateSnapshot+import Amazonka.FSx.CreateStorageVirtualMachine+import Amazonka.FSx.CreateVolume+import Amazonka.FSx.CreateVolumeFromBackup+import Amazonka.FSx.DeleteBackup+import Amazonka.FSx.DeleteDataRepositoryAssociation+import Amazonka.FSx.DeleteFileCache+import Amazonka.FSx.DeleteFileSystem+import Amazonka.FSx.DeleteSnapshot+import Amazonka.FSx.DeleteStorageVirtualMachine+import Amazonka.FSx.DeleteVolume+import Amazonka.FSx.DescribeBackups+import Amazonka.FSx.DescribeDataRepositoryAssociations+import Amazonka.FSx.DescribeDataRepositoryTasks+import Amazonka.FSx.DescribeFileCaches+import Amazonka.FSx.DescribeFileSystemAliases+import Amazonka.FSx.DescribeFileSystems+import Amazonka.FSx.DescribeSnapshots+import Amazonka.FSx.DescribeStorageVirtualMachines+import Amazonka.FSx.DescribeVolumes+import Amazonka.FSx.DisassociateFileSystemAliases+import Amazonka.FSx.ListTagsForResource+import Amazonka.FSx.ReleaseFileSystemNfsV3Locks+import Amazonka.FSx.RestoreVolumeFromSnapshot+import Amazonka.FSx.TagResource+import Amazonka.FSx.Types.ActiveDirectoryBackupAttributes+import Amazonka.FSx.Types.AdministrativeAction+import Amazonka.FSx.Types.AdministrativeActionFailureDetails+import Amazonka.FSx.Types.Alias+import Amazonka.FSx.Types.AutoExportPolicy+import Amazonka.FSx.Types.AutoImportPolicy+import Amazonka.FSx.Types.Backup+import Amazonka.FSx.Types.BackupFailureDetails+import Amazonka.FSx.Types.CompletionReport+import Amazonka.FSx.Types.CreateFileCacheLustreConfiguration+import Amazonka.FSx.Types.CreateFileSystemLustreConfiguration+import Amazonka.FSx.Types.CreateFileSystemOntapConfiguration+import Amazonka.FSx.Types.CreateFileSystemOpenZFSConfiguration+import Amazonka.FSx.Types.CreateFileSystemWindowsConfiguration+import Amazonka.FSx.Types.CreateOntapVolumeConfiguration+import Amazonka.FSx.Types.CreateOpenZFSOriginSnapshotConfiguration+import Amazonka.FSx.Types.CreateOpenZFSVolumeConfiguration+import Amazonka.FSx.Types.CreateSvmActiveDirectoryConfiguration+import Amazonka.FSx.Types.DataRepositoryAssociation+import Amazonka.FSx.Types.DataRepositoryConfiguration+import Amazonka.FSx.Types.DataRepositoryFailureDetails+import Amazonka.FSx.Types.DataRepositoryTask+import Amazonka.FSx.Types.DataRepositoryTaskFailureDetails+import Amazonka.FSx.Types.DataRepositoryTaskFilter+import Amazonka.FSx.Types.DataRepositoryTaskStatus+import Amazonka.FSx.Types.DeleteFileSystemLustreConfiguration+import Amazonka.FSx.Types.DeleteFileSystemLustreResponse+import Amazonka.FSx.Types.DeleteFileSystemOpenZFSConfiguration+import Amazonka.FSx.Types.DeleteFileSystemOpenZFSResponse+import Amazonka.FSx.Types.DeleteFileSystemWindowsConfiguration+import Amazonka.FSx.Types.DeleteFileSystemWindowsResponse+import Amazonka.FSx.Types.DeleteVolumeOntapConfiguration+import Amazonka.FSx.Types.DeleteVolumeOntapResponse+import Amazonka.FSx.Types.DeleteVolumeOpenZFSConfiguration+import Amazonka.FSx.Types.DiskIopsConfiguration+import Amazonka.FSx.Types.FileCache+import Amazonka.FSx.Types.FileCacheCreating+import Amazonka.FSx.Types.FileCacheDataRepositoryAssociation+import Amazonka.FSx.Types.FileCacheFailureDetails+import Amazonka.FSx.Types.FileCacheLustreConfiguration+import Amazonka.FSx.Types.FileCacheLustreMetadataConfiguration+import Amazonka.FSx.Types.FileCacheNFSConfiguration+import Amazonka.FSx.Types.FileSystem+import Amazonka.FSx.Types.FileSystemEndpoint+import Amazonka.FSx.Types.FileSystemEndpoints+import Amazonka.FSx.Types.FileSystemFailureDetails+import Amazonka.FSx.Types.Filter+import Amazonka.FSx.Types.LifecycleTransitionReason+import Amazonka.FSx.Types.LustreFileSystemConfiguration+import Amazonka.FSx.Types.LustreLogConfiguration+import Amazonka.FSx.Types.LustreLogCreateConfiguration+import Amazonka.FSx.Types.LustreRootSquashConfiguration+import Amazonka.FSx.Types.NFSDataRepositoryConfiguration+import Amazonka.FSx.Types.OntapFileSystemConfiguration+import Amazonka.FSx.Types.OntapVolumeConfiguration+import Amazonka.FSx.Types.OpenZFSClientConfiguration+import Amazonka.FSx.Types.OpenZFSCreateRootVolumeConfiguration+import Amazonka.FSx.Types.OpenZFSFileSystemConfiguration+import Amazonka.FSx.Types.OpenZFSNfsExport+import Amazonka.FSx.Types.OpenZFSOriginSnapshotConfiguration+import Amazonka.FSx.Types.OpenZFSUserOrGroupQuota+import Amazonka.FSx.Types.OpenZFSVolumeConfiguration+import Amazonka.FSx.Types.S3DataRepositoryConfiguration+import Amazonka.FSx.Types.SelfManagedActiveDirectoryAttributes+import Amazonka.FSx.Types.SelfManagedActiveDirectoryConfiguration+import Amazonka.FSx.Types.SelfManagedActiveDirectoryConfigurationUpdates+import Amazonka.FSx.Types.Snapshot+import Amazonka.FSx.Types.SnapshotFilter+import Amazonka.FSx.Types.StorageVirtualMachine+import Amazonka.FSx.Types.StorageVirtualMachineFilter+import Amazonka.FSx.Types.SvmActiveDirectoryConfiguration+import Amazonka.FSx.Types.SvmEndpoint+import Amazonka.FSx.Types.SvmEndpoints+import Amazonka.FSx.Types.Tag+import Amazonka.FSx.Types.TieringPolicy+import Amazonka.FSx.Types.UpdateFileCacheLustreConfiguration+import Amazonka.FSx.Types.UpdateFileSystemLustreConfiguration+import Amazonka.FSx.Types.UpdateFileSystemOntapConfiguration+import Amazonka.FSx.Types.UpdateFileSystemOpenZFSConfiguration+import Amazonka.FSx.Types.UpdateFileSystemWindowsConfiguration+import Amazonka.FSx.Types.UpdateOntapVolumeConfiguration+import Amazonka.FSx.Types.UpdateOpenZFSVolumeConfiguration+import Amazonka.FSx.Types.UpdateSvmActiveDirectoryConfiguration+import Amazonka.FSx.Types.Volume+import Amazonka.FSx.Types.VolumeFilter+import Amazonka.FSx.Types.WindowsAuditLogConfiguration+import Amazonka.FSx.Types.WindowsAuditLogCreateConfiguration+import Amazonka.FSx.Types.WindowsFileSystemConfiguration+import Amazonka.FSx.UntagResource+import Amazonka.FSx.UpdateDataRepositoryAssociation+import Amazonka.FSx.UpdateFileCache+import Amazonka.FSx.UpdateFileSystem+import Amazonka.FSx.UpdateSnapshot+import Amazonka.FSx.UpdateStorageVirtualMachine+import Amazonka.FSx.UpdateVolume
+ gen/Amazonka/FSx/ListTagsForResource.hs view
@@ -0,0 +1,285 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists tags for Amazon FSx resources.+--+-- When retrieving all tags, you can optionally specify the @MaxResults@+-- parameter to limit the number of tags in a response. If more tags+-- remain, Amazon FSx returns a @NextToken@ value in the response. In this+-- case, send a later request with the @NextToken@ request parameter set to+-- the value of @NextToken@ from the last response.+--+-- This action is used in an iterative process to retrieve a list of your+-- tags. @ListTagsForResource@ is called first without a @NextToken@value.+-- Then the action continues to be called with the @NextToken@ parameter+-- set to the value of the last @NextToken@ value until a response has no+-- @NextToken@.+--+-- When using this action, keep the following in mind:+--+-- -   The implementation might return fewer than @MaxResults@ file system+--     descriptions while still including a @NextToken@ value.+--+-- -   The order of tags returned in the response of one+--     @ListTagsForResource@ call and the order of tags returned across the+--     responses of a multi-call iteration is unspecified.+--+-- This operation returns paginated results.+module Amazonka.FSx.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_maxResults,+    listTagsForResource_nextToken,+    listTagsForResource_resourceARN,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_nextToken,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for @ListTagsForResource@ operation.+--+-- /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | Maximum number of tags to return in the response (integer). This+    -- parameter value must be greater than 0. The number of items that Amazon+    -- FSx returns is the minimum of the @MaxResults@ parameter specified in+    -- the request and the service\'s internal maximum number of items per+    -- page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Opaque pagination token returned from a previous @ListTagsForResource@+    -- operation (String). If a token present, the action continues the list+    -- from where the returning call left off.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the Amazon FSx resource that will have its tags listed.+    resourceARN :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' 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:+--+-- 'maxResults', 'listTagsForResource_maxResults' - Maximum number of tags to return in the response (integer). This+-- parameter value must be greater than 0. The number of items that Amazon+-- FSx returns is the minimum of the @MaxResults@ parameter specified in+-- the request and the service\'s internal maximum number of items per+-- page.+--+-- 'nextToken', 'listTagsForResource_nextToken' - Opaque pagination token returned from a previous @ListTagsForResource@+-- operation (String). If a token present, the action continues the list+-- from where the returning call left off.+--+-- 'resourceARN', 'listTagsForResource_resourceARN' - The ARN of the Amazon FSx resource that will have its tags listed.+newListTagsForResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceARN_ =+  ListTagsForResource'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resourceARN = pResourceARN_+    }++-- | Maximum number of tags to return in the response (integer). This+-- parameter value must be greater than 0. The number of items that Amazon+-- FSx returns is the minimum of the @MaxResults@ parameter specified in+-- the request and the service\'s internal maximum number of items per+-- page.+listTagsForResource_maxResults :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Natural)+listTagsForResource_maxResults = Lens.lens (\ListTagsForResource' {maxResults} -> maxResults) (\s@ListTagsForResource' {} a -> s {maxResults = a} :: ListTagsForResource)++-- | Opaque pagination token returned from a previous @ListTagsForResource@+-- operation (String). If a token present, the action continues the list+-- from where the returning call left off.+listTagsForResource_nextToken :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Text)+listTagsForResource_nextToken = Lens.lens (\ListTagsForResource' {nextToken} -> nextToken) (\s@ListTagsForResource' {} a -> s {nextToken = a} :: ListTagsForResource)++-- | The ARN of the Amazon FSx resource that will have its tags listed.+listTagsForResource_resourceARN :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceARN = Lens.lens (\ListTagsForResource' {resourceARN} -> resourceARN) (\s@ListTagsForResource' {} a -> s {resourceARN = a} :: ListTagsForResource)++instance Core.AWSPager ListTagsForResource where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listTagsForResourceResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listTagsForResourceResponse_tags+            Prelude.. Lens._Just+            Prelude.. Lens.to Prelude.toList+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listTagsForResource_nextToken+          Lens..~ rs+          Lens.^? listTagsForResourceResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Tags")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resourceARN++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceARN++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.ListTagsForResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("ResourceARN" Data..= resourceARN)+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for @ListTagsForResource@ operation.+--+-- /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | This is present if there are more tags than returned in the response+    -- (String). You can use the @NextToken@ value in the later request to+    -- fetch the tags.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of tags on the resource.+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' 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:+--+-- 'nextToken', 'listTagsForResourceResponse_nextToken' - This is present if there are more tags than returned in the response+-- (String). You can use the @NextToken@ value in the later request to+-- fetch the tags.+--+-- 'tags', 'listTagsForResourceResponse_tags' - A list of tags on the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { nextToken =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | This is present if there are more tags than returned in the response+-- (String). You can use the @NextToken@ value in the later request to+-- fetch the tags.+listTagsForResourceResponse_nextToken :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe Prelude.Text)+listTagsForResourceResponse_nextToken = Lens.lens (\ListTagsForResourceResponse' {nextToken} -> nextToken) (\s@ListTagsForResourceResponse' {} a -> s {nextToken = a} :: ListTagsForResourceResponse)++-- | A list of tags on the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.NonEmpty Tag))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/ReleaseFileSystemNfsV3Locks.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.ReleaseFileSystemNfsV3Locks+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Releases the file system lock from an Amazon FSx for OpenZFS file+-- system.+module Amazonka.FSx.ReleaseFileSystemNfsV3Locks+  ( -- * Creating a Request+    ReleaseFileSystemNfsV3Locks (..),+    newReleaseFileSystemNfsV3Locks,++    -- * Request Lenses+    releaseFileSystemNfsV3Locks_clientRequestToken,+    releaseFileSystemNfsV3Locks_fileSystemId,++    -- * Destructuring the Response+    ReleaseFileSystemNfsV3LocksResponse (..),+    newReleaseFileSystemNfsV3LocksResponse,++    -- * Response Lenses+    releaseFileSystemNfsV3LocksResponse_fileSystem,+    releaseFileSystemNfsV3LocksResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newReleaseFileSystemNfsV3Locks' smart constructor.+data ReleaseFileSystemNfsV3Locks = ReleaseFileSystemNfsV3Locks'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    fileSystemId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReleaseFileSystemNfsV3Locks' 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:+--+-- 'clientRequestToken', 'releaseFileSystemNfsV3Locks_clientRequestToken' - Undocumented member.+--+-- 'fileSystemId', 'releaseFileSystemNfsV3Locks_fileSystemId' - Undocumented member.+newReleaseFileSystemNfsV3Locks ::+  -- | 'fileSystemId'+  Prelude.Text ->+  ReleaseFileSystemNfsV3Locks+newReleaseFileSystemNfsV3Locks pFileSystemId_ =+  ReleaseFileSystemNfsV3Locks'+    { clientRequestToken =+        Prelude.Nothing,+      fileSystemId = pFileSystemId_+    }++-- | Undocumented member.+releaseFileSystemNfsV3Locks_clientRequestToken :: Lens.Lens' ReleaseFileSystemNfsV3Locks (Prelude.Maybe Prelude.Text)+releaseFileSystemNfsV3Locks_clientRequestToken = Lens.lens (\ReleaseFileSystemNfsV3Locks' {clientRequestToken} -> clientRequestToken) (\s@ReleaseFileSystemNfsV3Locks' {} a -> s {clientRequestToken = a} :: ReleaseFileSystemNfsV3Locks)++-- | Undocumented member.+releaseFileSystemNfsV3Locks_fileSystemId :: Lens.Lens' ReleaseFileSystemNfsV3Locks Prelude.Text+releaseFileSystemNfsV3Locks_fileSystemId = Lens.lens (\ReleaseFileSystemNfsV3Locks' {fileSystemId} -> fileSystemId) (\s@ReleaseFileSystemNfsV3Locks' {} a -> s {fileSystemId = a} :: ReleaseFileSystemNfsV3Locks)++instance Core.AWSRequest ReleaseFileSystemNfsV3Locks where+  type+    AWSResponse ReleaseFileSystemNfsV3Locks =+      ReleaseFileSystemNfsV3LocksResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ReleaseFileSystemNfsV3LocksResponse'+            Prelude.<$> (x Data..?> "FileSystem")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ReleaseFileSystemNfsV3Locks where+  hashWithSalt _salt ReleaseFileSystemNfsV3Locks' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` fileSystemId++instance Prelude.NFData ReleaseFileSystemNfsV3Locks where+  rnf ReleaseFileSystemNfsV3Locks' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf fileSystemId++instance Data.ToHeaders ReleaseFileSystemNfsV3Locks where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.ReleaseFileSystemNfsV3Locks" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ReleaseFileSystemNfsV3Locks where+  toJSON ReleaseFileSystemNfsV3Locks' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("FileSystemId" Data..= fileSystemId)+          ]+      )++instance Data.ToPath ReleaseFileSystemNfsV3Locks where+  toPath = Prelude.const "/"++instance Data.ToQuery ReleaseFileSystemNfsV3Locks where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newReleaseFileSystemNfsV3LocksResponse' smart constructor.+data ReleaseFileSystemNfsV3LocksResponse = ReleaseFileSystemNfsV3LocksResponse'+  { fileSystem :: Prelude.Maybe FileSystem,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReleaseFileSystemNfsV3LocksResponse' 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:+--+-- 'fileSystem', 'releaseFileSystemNfsV3LocksResponse_fileSystem' - Undocumented member.+--+-- 'httpStatus', 'releaseFileSystemNfsV3LocksResponse_httpStatus' - The response's http status code.+newReleaseFileSystemNfsV3LocksResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ReleaseFileSystemNfsV3LocksResponse+newReleaseFileSystemNfsV3LocksResponse pHttpStatus_ =+  ReleaseFileSystemNfsV3LocksResponse'+    { fileSystem =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+releaseFileSystemNfsV3LocksResponse_fileSystem :: Lens.Lens' ReleaseFileSystemNfsV3LocksResponse (Prelude.Maybe FileSystem)+releaseFileSystemNfsV3LocksResponse_fileSystem = Lens.lens (\ReleaseFileSystemNfsV3LocksResponse' {fileSystem} -> fileSystem) (\s@ReleaseFileSystemNfsV3LocksResponse' {} a -> s {fileSystem = a} :: ReleaseFileSystemNfsV3LocksResponse)++-- | The response's http status code.+releaseFileSystemNfsV3LocksResponse_httpStatus :: Lens.Lens' ReleaseFileSystemNfsV3LocksResponse Prelude.Int+releaseFileSystemNfsV3LocksResponse_httpStatus = Lens.lens (\ReleaseFileSystemNfsV3LocksResponse' {httpStatus} -> httpStatus) (\s@ReleaseFileSystemNfsV3LocksResponse' {} a -> s {httpStatus = a} :: ReleaseFileSystemNfsV3LocksResponse)++instance+  Prelude.NFData+    ReleaseFileSystemNfsV3LocksResponse+  where+  rnf ReleaseFileSystemNfsV3LocksResponse' {..} =+    Prelude.rnf fileSystem+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/RestoreVolumeFromSnapshot.hs view
@@ -0,0 +1,285 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.RestoreVolumeFromSnapshot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an Amazon FSx for OpenZFS volume to the state saved by the+-- specified snapshot.+module Amazonka.FSx.RestoreVolumeFromSnapshot+  ( -- * Creating a Request+    RestoreVolumeFromSnapshot (..),+    newRestoreVolumeFromSnapshot,++    -- * Request Lenses+    restoreVolumeFromSnapshot_clientRequestToken,+    restoreVolumeFromSnapshot_options,+    restoreVolumeFromSnapshot_volumeId,+    restoreVolumeFromSnapshot_snapshotId,++    -- * Destructuring the Response+    RestoreVolumeFromSnapshotResponse (..),+    newRestoreVolumeFromSnapshotResponse,++    -- * Response Lenses+    restoreVolumeFromSnapshotResponse_administrativeActions,+    restoreVolumeFromSnapshotResponse_lifecycle,+    restoreVolumeFromSnapshotResponse_volumeId,+    restoreVolumeFromSnapshotResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRestoreVolumeFromSnapshot' smart constructor.+data RestoreVolumeFromSnapshot = RestoreVolumeFromSnapshot'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The settings used when restoring the specified volume from snapshot.+    --+    -- -   @DELETE_INTERMEDIATE_SNAPSHOTS@ - Deletes snapshots between the+    --     current state and the specified snapshot. If there are intermediate+    --     snapshots and this option isn\'t used, @RestoreVolumeFromSnapshot@+    --     fails.+    --+    -- -   @DELETE_CLONED_VOLUMES@ - Deletes any dependent clone volumes+    --     created from intermediate snapshots. If there are any dependent+    --     clone volumes and this option isn\'t used,+    --     @RestoreVolumeFromSnapshot@ fails.+    options :: Prelude.Maybe [RestoreOpenZFSVolumeOption],+    -- | The ID of the volume that you are restoring.+    volumeId :: Prelude.Text,+    -- | The ID of the source snapshot. Specifies the snapshot that you are+    -- restoring from.+    snapshotId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestoreVolumeFromSnapshot' 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:+--+-- 'clientRequestToken', 'restoreVolumeFromSnapshot_clientRequestToken' - Undocumented member.+--+-- 'options', 'restoreVolumeFromSnapshot_options' - The settings used when restoring the specified volume from snapshot.+--+-- -   @DELETE_INTERMEDIATE_SNAPSHOTS@ - Deletes snapshots between the+--     current state and the specified snapshot. If there are intermediate+--     snapshots and this option isn\'t used, @RestoreVolumeFromSnapshot@+--     fails.+--+-- -   @DELETE_CLONED_VOLUMES@ - Deletes any dependent clone volumes+--     created from intermediate snapshots. If there are any dependent+--     clone volumes and this option isn\'t used,+--     @RestoreVolumeFromSnapshot@ fails.+--+-- 'volumeId', 'restoreVolumeFromSnapshot_volumeId' - The ID of the volume that you are restoring.+--+-- 'snapshotId', 'restoreVolumeFromSnapshot_snapshotId' - The ID of the source snapshot. Specifies the snapshot that you are+-- restoring from.+newRestoreVolumeFromSnapshot ::+  -- | 'volumeId'+  Prelude.Text ->+  -- | 'snapshotId'+  Prelude.Text ->+  RestoreVolumeFromSnapshot+newRestoreVolumeFromSnapshot pVolumeId_ pSnapshotId_ =+  RestoreVolumeFromSnapshot'+    { clientRequestToken =+        Prelude.Nothing,+      options = Prelude.Nothing,+      volumeId = pVolumeId_,+      snapshotId = pSnapshotId_+    }++-- | Undocumented member.+restoreVolumeFromSnapshot_clientRequestToken :: Lens.Lens' RestoreVolumeFromSnapshot (Prelude.Maybe Prelude.Text)+restoreVolumeFromSnapshot_clientRequestToken = Lens.lens (\RestoreVolumeFromSnapshot' {clientRequestToken} -> clientRequestToken) (\s@RestoreVolumeFromSnapshot' {} a -> s {clientRequestToken = a} :: RestoreVolumeFromSnapshot)++-- | The settings used when restoring the specified volume from snapshot.+--+-- -   @DELETE_INTERMEDIATE_SNAPSHOTS@ - Deletes snapshots between the+--     current state and the specified snapshot. If there are intermediate+--     snapshots and this option isn\'t used, @RestoreVolumeFromSnapshot@+--     fails.+--+-- -   @DELETE_CLONED_VOLUMES@ - Deletes any dependent clone volumes+--     created from intermediate snapshots. If there are any dependent+--     clone volumes and this option isn\'t used,+--     @RestoreVolumeFromSnapshot@ fails.+restoreVolumeFromSnapshot_options :: Lens.Lens' RestoreVolumeFromSnapshot (Prelude.Maybe [RestoreOpenZFSVolumeOption])+restoreVolumeFromSnapshot_options = Lens.lens (\RestoreVolumeFromSnapshot' {options} -> options) (\s@RestoreVolumeFromSnapshot' {} a -> s {options = a} :: RestoreVolumeFromSnapshot) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the volume that you are restoring.+restoreVolumeFromSnapshot_volumeId :: Lens.Lens' RestoreVolumeFromSnapshot Prelude.Text+restoreVolumeFromSnapshot_volumeId = Lens.lens (\RestoreVolumeFromSnapshot' {volumeId} -> volumeId) (\s@RestoreVolumeFromSnapshot' {} a -> s {volumeId = a} :: RestoreVolumeFromSnapshot)++-- | The ID of the source snapshot. Specifies the snapshot that you are+-- restoring from.+restoreVolumeFromSnapshot_snapshotId :: Lens.Lens' RestoreVolumeFromSnapshot Prelude.Text+restoreVolumeFromSnapshot_snapshotId = Lens.lens (\RestoreVolumeFromSnapshot' {snapshotId} -> snapshotId) (\s@RestoreVolumeFromSnapshot' {} a -> s {snapshotId = a} :: RestoreVolumeFromSnapshot)++instance Core.AWSRequest RestoreVolumeFromSnapshot where+  type+    AWSResponse RestoreVolumeFromSnapshot =+      RestoreVolumeFromSnapshotResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RestoreVolumeFromSnapshotResponse'+            Prelude.<$> ( x+                            Data..?> "AdministrativeActions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Lifecycle")+            Prelude.<*> (x Data..?> "VolumeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RestoreVolumeFromSnapshot where+  hashWithSalt _salt RestoreVolumeFromSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` volumeId+      `Prelude.hashWithSalt` snapshotId++instance Prelude.NFData RestoreVolumeFromSnapshot where+  rnf RestoreVolumeFromSnapshot' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf options+      `Prelude.seq` Prelude.rnf volumeId+      `Prelude.seq` Prelude.rnf snapshotId++instance Data.ToHeaders RestoreVolumeFromSnapshot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.RestoreVolumeFromSnapshot" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RestoreVolumeFromSnapshot where+  toJSON RestoreVolumeFromSnapshot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("Options" Data..=) Prelude.<$> options,+            Prelude.Just ("VolumeId" Data..= volumeId),+            Prelude.Just ("SnapshotId" Data..= snapshotId)+          ]+      )++instance Data.ToPath RestoreVolumeFromSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery RestoreVolumeFromSnapshot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRestoreVolumeFromSnapshotResponse' smart constructor.+data RestoreVolumeFromSnapshotResponse = RestoreVolumeFromSnapshotResponse'+  { -- | 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.+    administrativeActions :: Prelude.Maybe [AdministrativeAction],+    -- | The lifecycle state of the volume being restored.+    lifecycle :: Prelude.Maybe VolumeLifecycle,+    -- | The ID of the volume that you restored.+    volumeId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RestoreVolumeFromSnapshotResponse' 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', 'restoreVolumeFromSnapshotResponse_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.+--+-- 'lifecycle', 'restoreVolumeFromSnapshotResponse_lifecycle' - The lifecycle state of the volume being restored.+--+-- 'volumeId', 'restoreVolumeFromSnapshotResponse_volumeId' - The ID of the volume that you restored.+--+-- 'httpStatus', 'restoreVolumeFromSnapshotResponse_httpStatus' - The response's http status code.+newRestoreVolumeFromSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RestoreVolumeFromSnapshotResponse+newRestoreVolumeFromSnapshotResponse pHttpStatus_ =+  RestoreVolumeFromSnapshotResponse'+    { administrativeActions =+        Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      volumeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | 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.+restoreVolumeFromSnapshotResponse_administrativeActions :: Lens.Lens' RestoreVolumeFromSnapshotResponse (Prelude.Maybe [AdministrativeAction])+restoreVolumeFromSnapshotResponse_administrativeActions = Lens.lens (\RestoreVolumeFromSnapshotResponse' {administrativeActions} -> administrativeActions) (\s@RestoreVolumeFromSnapshotResponse' {} a -> s {administrativeActions = a} :: RestoreVolumeFromSnapshotResponse) Prelude.. Lens.mapping Lens.coerced++-- | The lifecycle state of the volume being restored.+restoreVolumeFromSnapshotResponse_lifecycle :: Lens.Lens' RestoreVolumeFromSnapshotResponse (Prelude.Maybe VolumeLifecycle)+restoreVolumeFromSnapshotResponse_lifecycle = Lens.lens (\RestoreVolumeFromSnapshotResponse' {lifecycle} -> lifecycle) (\s@RestoreVolumeFromSnapshotResponse' {} a -> s {lifecycle = a} :: RestoreVolumeFromSnapshotResponse)++-- | The ID of the volume that you restored.+restoreVolumeFromSnapshotResponse_volumeId :: Lens.Lens' RestoreVolumeFromSnapshotResponse (Prelude.Maybe Prelude.Text)+restoreVolumeFromSnapshotResponse_volumeId = Lens.lens (\RestoreVolumeFromSnapshotResponse' {volumeId} -> volumeId) (\s@RestoreVolumeFromSnapshotResponse' {} a -> s {volumeId = a} :: RestoreVolumeFromSnapshotResponse)++-- | The response's http status code.+restoreVolumeFromSnapshotResponse_httpStatus :: Lens.Lens' RestoreVolumeFromSnapshotResponse Prelude.Int+restoreVolumeFromSnapshotResponse_httpStatus = Lens.lens (\RestoreVolumeFromSnapshotResponse' {httpStatus} -> httpStatus) (\s@RestoreVolumeFromSnapshotResponse' {} a -> s {httpStatus = a} :: RestoreVolumeFromSnapshotResponse)++instance+  Prelude.NFData+    RestoreVolumeFromSnapshotResponse+  where+  rnf RestoreVolumeFromSnapshotResponse' {..} =+    Prelude.rnf administrativeActions+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf volumeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/TagResource.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Tags an Amazon FSx resource.+module Amazonka.FSx.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceARN,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for the @TagResource@ operation.+--+-- /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the Amazon FSx resource that you want+    -- to tag.+    resourceARN :: Prelude.Text,+    -- | A list of tags for the resource. If a tag with a given key already+    -- exists, the value is replaced by the one specified in this parameter.+    tags :: Prelude.NonEmpty Tag+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' 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:+--+-- 'resourceARN', 'tagResource_resourceARN' - The Amazon Resource Name (ARN) of the Amazon FSx resource that you want+-- to tag.+--+-- 'tags', 'tagResource_tags' - A list of tags for the resource. If a tag with a given key already+-- exists, the value is replaced by the one specified in this parameter.+newTagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  -- | 'tags'+  Prelude.NonEmpty Tag ->+  TagResource+newTagResource pResourceARN_ pTags_ =+  TagResource'+    { resourceARN = pResourceARN_,+      tags = Lens.coerced Lens.# pTags_+    }++-- | The Amazon Resource Name (ARN) of the Amazon FSx resource that you want+-- to tag.+tagResource_resourceARN :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceARN = Lens.lens (\TagResource' {resourceARN} -> resourceARN) (\s@TagResource' {} a -> s {resourceARN = a} :: TagResource)++-- | A list of tags for the resource. If a tag with a given key already+-- exists, the value is replaced by the one specified in this parameter.+tagResource_tags :: Lens.Lens' TagResource (Prelude.NonEmpty Tag)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.TagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("Tags" Data..= tags)+          ]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for the @TagResource@ operation.+--+-- /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' 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:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/FSx/Types.hs view
@@ -0,0 +1,1505 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types+-- 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+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _ActiveDirectoryError,+    _BackupBeingCopied,+    _BackupInProgress,+    _BackupNotFound,+    _BackupRestoring,+    _BadRequest,+    _DataRepositoryAssociationNotFound,+    _DataRepositoryTaskEnded,+    _DataRepositoryTaskExecuting,+    _DataRepositoryTaskNotFound,+    _FileCacheNotFound,+    _FileSystemNotFound,+    _IncompatibleParameterError,+    _IncompatibleRegionForMultiAZ,+    _InternalServerError,+    _InvalidDataRepositoryType,+    _InvalidDestinationKmsKey,+    _InvalidExportPath,+    _InvalidImportPath,+    _InvalidNetworkSettings,+    _InvalidPerUnitStorageThroughput,+    _InvalidRegion,+    _InvalidSourceKmsKey,+    _MissingFileCacheConfiguration,+    _MissingFileSystemConfiguration,+    _MissingVolumeConfiguration,+    _NotServiceResourceError,+    _ResourceDoesNotSupportTagging,+    _ResourceNotFound,+    _ServiceLimitExceeded,+    _SnapshotNotFound,+    _SourceBackupUnavailable,+    _StorageVirtualMachineNotFound,+    _UnsupportedOperation,+    _VolumeNotFound,++    -- * AdministrativeActionType+    AdministrativeActionType (..),++    -- * AliasLifecycle+    AliasLifecycle (..),++    -- * AutoImportPolicyType+    AutoImportPolicyType (..),++    -- * BackupLifecycle+    BackupLifecycle (..),++    -- * BackupType+    BackupType (..),++    -- * DataCompressionType+    DataCompressionType (..),++    -- * DataRepositoryLifecycle+    DataRepositoryLifecycle (..),++    -- * DataRepositoryTaskFilterName+    DataRepositoryTaskFilterName (..),++    -- * DataRepositoryTaskLifecycle+    DataRepositoryTaskLifecycle (..),++    -- * DataRepositoryTaskType+    DataRepositoryTaskType (..),++    -- * DeleteFileSystemOpenZFSOption+    DeleteFileSystemOpenZFSOption (..),++    -- * DeleteOpenZFSVolumeOption+    DeleteOpenZFSVolumeOption (..),++    -- * DiskIopsConfigurationMode+    DiskIopsConfigurationMode (..),++    -- * DriveCacheType+    DriveCacheType (..),++    -- * EventType+    EventType (..),++    -- * FileCacheLifecycle+    FileCacheLifecycle (..),++    -- * FileCacheLustreDeploymentType+    FileCacheLustreDeploymentType (..),++    -- * FileCacheType+    FileCacheType (..),++    -- * FileSystemLifecycle+    FileSystemLifecycle (..),++    -- * FileSystemMaintenanceOperation+    FileSystemMaintenanceOperation (..),++    -- * FileSystemType+    FileSystemType (..),++    -- * FilterName+    FilterName (..),++    -- * FlexCacheEndpointType+    FlexCacheEndpointType (..),++    -- * InputOntapVolumeType+    InputOntapVolumeType (..),++    -- * LustreAccessAuditLogLevel+    LustreAccessAuditLogLevel (..),++    -- * LustreDeploymentType+    LustreDeploymentType (..),++    -- * NfsVersion+    NfsVersion (..),++    -- * OntapDeploymentType+    OntapDeploymentType (..),++    -- * OntapVolumeType+    OntapVolumeType (..),++    -- * OpenZFSCopyStrategy+    OpenZFSCopyStrategy (..),++    -- * OpenZFSDataCompressionType+    OpenZFSDataCompressionType (..),++    -- * OpenZFSDeploymentType+    OpenZFSDeploymentType (..),++    -- * OpenZFSQuotaType+    OpenZFSQuotaType (..),++    -- * ReportFormat+    ReportFormat (..),++    -- * ReportScope+    ReportScope (..),++    -- * ResourceType+    ResourceType (..),++    -- * RestoreOpenZFSVolumeOption+    RestoreOpenZFSVolumeOption (..),++    -- * SecurityStyle+    SecurityStyle (..),++    -- * SnapshotFilterName+    SnapshotFilterName (..),++    -- * SnapshotLifecycle+    SnapshotLifecycle (..),++    -- * Status+    Status (..),++    -- * StorageType+    StorageType (..),++    -- * StorageVirtualMachineFilterName+    StorageVirtualMachineFilterName (..),++    -- * StorageVirtualMachineLifecycle+    StorageVirtualMachineLifecycle (..),++    -- * StorageVirtualMachineRootVolumeSecurityStyle+    StorageVirtualMachineRootVolumeSecurityStyle (..),++    -- * StorageVirtualMachineSubtype+    StorageVirtualMachineSubtype (..),++    -- * TieringPolicyName+    TieringPolicyName (..),++    -- * VolumeFilterName+    VolumeFilterName (..),++    -- * VolumeLifecycle+    VolumeLifecycle (..),++    -- * VolumeType+    VolumeType (..),++    -- * WindowsAccessAuditLogLevel+    WindowsAccessAuditLogLevel (..),++    -- * WindowsDeploymentType+    WindowsDeploymentType (..),++    -- * ActiveDirectoryBackupAttributes+    ActiveDirectoryBackupAttributes (..),+    newActiveDirectoryBackupAttributes,+    activeDirectoryBackupAttributes_activeDirectoryId,+    activeDirectoryBackupAttributes_domainName,+    activeDirectoryBackupAttributes_resourceARN,++    -- * AdministrativeAction+    AdministrativeAction (..),+    newAdministrativeAction,+    administrativeAction_administrativeActionType,+    administrativeAction_failureDetails,+    administrativeAction_progressPercent,+    administrativeAction_requestTime,+    administrativeAction_status,+    administrativeAction_targetFileSystemValues,+    administrativeAction_targetSnapshotValues,+    administrativeAction_targetVolumeValues,++    -- * AdministrativeActionFailureDetails+    AdministrativeActionFailureDetails (..),+    newAdministrativeActionFailureDetails,+    administrativeActionFailureDetails_message,++    -- * Alias+    Alias (..),+    newAlias,+    alias_lifecycle,+    alias_name,++    -- * AutoExportPolicy+    AutoExportPolicy (..),+    newAutoExportPolicy,+    autoExportPolicy_events,++    -- * AutoImportPolicy+    AutoImportPolicy (..),+    newAutoImportPolicy,+    autoImportPolicy_events,++    -- * Backup+    Backup (..),+    newBackup,+    backup_directoryInformation,+    backup_failureDetails,+    backup_kmsKeyId,+    backup_ownerId,+    backup_progressPercent,+    backup_resourceARN,+    backup_resourceType,+    backup_sourceBackupId,+    backup_sourceBackupRegion,+    backup_tags,+    backup_volume,+    backup_backupId,+    backup_lifecycle,+    backup_type,+    backup_creationTime,+    backup_fileSystem,++    -- * BackupFailureDetails+    BackupFailureDetails (..),+    newBackupFailureDetails,+    backupFailureDetails_message,++    -- * CompletionReport+    CompletionReport (..),+    newCompletionReport,+    completionReport_format,+    completionReport_path,+    completionReport_scope,+    completionReport_enabled,++    -- * CreateFileCacheLustreConfiguration+    CreateFileCacheLustreConfiguration (..),+    newCreateFileCacheLustreConfiguration,+    createFileCacheLustreConfiguration_weeklyMaintenanceStartTime,+    createFileCacheLustreConfiguration_perUnitStorageThroughput,+    createFileCacheLustreConfiguration_deploymentType,+    createFileCacheLustreConfiguration_metadataConfiguration,++    -- * CreateFileSystemLustreConfiguration+    CreateFileSystemLustreConfiguration (..),+    newCreateFileSystemLustreConfiguration,+    createFileSystemLustreConfiguration_autoImportPolicy,+    createFileSystemLustreConfiguration_automaticBackupRetentionDays,+    createFileSystemLustreConfiguration_copyTagsToBackups,+    createFileSystemLustreConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemLustreConfiguration_dataCompressionType,+    createFileSystemLustreConfiguration_deploymentType,+    createFileSystemLustreConfiguration_driveCacheType,+    createFileSystemLustreConfiguration_exportPath,+    createFileSystemLustreConfiguration_importPath,+    createFileSystemLustreConfiguration_importedFileChunkSize,+    createFileSystemLustreConfiguration_logConfiguration,+    createFileSystemLustreConfiguration_perUnitStorageThroughput,+    createFileSystemLustreConfiguration_rootSquashConfiguration,+    createFileSystemLustreConfiguration_weeklyMaintenanceStartTime,++    -- * CreateFileSystemOntapConfiguration+    CreateFileSystemOntapConfiguration (..),+    newCreateFileSystemOntapConfiguration,+    createFileSystemOntapConfiguration_automaticBackupRetentionDays,+    createFileSystemOntapConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemOntapConfiguration_diskIopsConfiguration,+    createFileSystemOntapConfiguration_endpointIpAddressRange,+    createFileSystemOntapConfiguration_fsxAdminPassword,+    createFileSystemOntapConfiguration_preferredSubnetId,+    createFileSystemOntapConfiguration_routeTableIds,+    createFileSystemOntapConfiguration_weeklyMaintenanceStartTime,+    createFileSystemOntapConfiguration_deploymentType,+    createFileSystemOntapConfiguration_throughputCapacity,++    -- * CreateFileSystemOpenZFSConfiguration+    CreateFileSystemOpenZFSConfiguration (..),+    newCreateFileSystemOpenZFSConfiguration,+    createFileSystemOpenZFSConfiguration_automaticBackupRetentionDays,+    createFileSystemOpenZFSConfiguration_copyTagsToBackups,+    createFileSystemOpenZFSConfiguration_copyTagsToVolumes,+    createFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemOpenZFSConfiguration_diskIopsConfiguration,+    createFileSystemOpenZFSConfiguration_rootVolumeConfiguration,+    createFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime,+    createFileSystemOpenZFSConfiguration_deploymentType,+    createFileSystemOpenZFSConfiguration_throughputCapacity,++    -- * CreateFileSystemWindowsConfiguration+    CreateFileSystemWindowsConfiguration (..),+    newCreateFileSystemWindowsConfiguration,+    createFileSystemWindowsConfiguration_activeDirectoryId,+    createFileSystemWindowsConfiguration_aliases,+    createFileSystemWindowsConfiguration_auditLogConfiguration,+    createFileSystemWindowsConfiguration_automaticBackupRetentionDays,+    createFileSystemWindowsConfiguration_copyTagsToBackups,+    createFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime,+    createFileSystemWindowsConfiguration_deploymentType,+    createFileSystemWindowsConfiguration_preferredSubnetId,+    createFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration,+    createFileSystemWindowsConfiguration_weeklyMaintenanceStartTime,+    createFileSystemWindowsConfiguration_throughputCapacity,++    -- * CreateOntapVolumeConfiguration+    CreateOntapVolumeConfiguration (..),+    newCreateOntapVolumeConfiguration,+    createOntapVolumeConfiguration_copyTagsToBackups,+    createOntapVolumeConfiguration_junctionPath,+    createOntapVolumeConfiguration_ontapVolumeType,+    createOntapVolumeConfiguration_securityStyle,+    createOntapVolumeConfiguration_snapshotPolicy,+    createOntapVolumeConfiguration_storageEfficiencyEnabled,+    createOntapVolumeConfiguration_tieringPolicy,+    createOntapVolumeConfiguration_sizeInMegabytes,+    createOntapVolumeConfiguration_storageVirtualMachineId,++    -- * CreateOpenZFSOriginSnapshotConfiguration+    CreateOpenZFSOriginSnapshotConfiguration (..),+    newCreateOpenZFSOriginSnapshotConfiguration,+    createOpenZFSOriginSnapshotConfiguration_snapshotARN,+    createOpenZFSOriginSnapshotConfiguration_copyStrategy,++    -- * CreateOpenZFSVolumeConfiguration+    CreateOpenZFSVolumeConfiguration (..),+    newCreateOpenZFSVolumeConfiguration,+    createOpenZFSVolumeConfiguration_copyTagsToSnapshots,+    createOpenZFSVolumeConfiguration_dataCompressionType,+    createOpenZFSVolumeConfiguration_nfsExports,+    createOpenZFSVolumeConfiguration_originSnapshot,+    createOpenZFSVolumeConfiguration_readOnly,+    createOpenZFSVolumeConfiguration_recordSizeKiB,+    createOpenZFSVolumeConfiguration_storageCapacityQuotaGiB,+    createOpenZFSVolumeConfiguration_storageCapacityReservationGiB,+    createOpenZFSVolumeConfiguration_userAndGroupQuotas,+    createOpenZFSVolumeConfiguration_parentVolumeId,++    -- * CreateSvmActiveDirectoryConfiguration+    CreateSvmActiveDirectoryConfiguration (..),+    newCreateSvmActiveDirectoryConfiguration,+    createSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration,+    createSvmActiveDirectoryConfiguration_netBiosName,++    -- * DataRepositoryAssociation+    DataRepositoryAssociation (..),+    newDataRepositoryAssociation,+    dataRepositoryAssociation_associationId,+    dataRepositoryAssociation_batchImportMetaDataOnCreate,+    dataRepositoryAssociation_creationTime,+    dataRepositoryAssociation_dataRepositoryPath,+    dataRepositoryAssociation_dataRepositorySubdirectories,+    dataRepositoryAssociation_failureDetails,+    dataRepositoryAssociation_fileCacheId,+    dataRepositoryAssociation_fileCachePath,+    dataRepositoryAssociation_fileSystemId,+    dataRepositoryAssociation_fileSystemPath,+    dataRepositoryAssociation_importedFileChunkSize,+    dataRepositoryAssociation_lifecycle,+    dataRepositoryAssociation_nfs,+    dataRepositoryAssociation_resourceARN,+    dataRepositoryAssociation_s3,+    dataRepositoryAssociation_tags,++    -- * DataRepositoryConfiguration+    DataRepositoryConfiguration (..),+    newDataRepositoryConfiguration,+    dataRepositoryConfiguration_autoImportPolicy,+    dataRepositoryConfiguration_exportPath,+    dataRepositoryConfiguration_failureDetails,+    dataRepositoryConfiguration_importPath,+    dataRepositoryConfiguration_importedFileChunkSize,+    dataRepositoryConfiguration_lifecycle,++    -- * DataRepositoryFailureDetails+    DataRepositoryFailureDetails (..),+    newDataRepositoryFailureDetails,+    dataRepositoryFailureDetails_message,++    -- * DataRepositoryTask+    DataRepositoryTask (..),+    newDataRepositoryTask,+    dataRepositoryTask_capacityToRelease,+    dataRepositoryTask_endTime,+    dataRepositoryTask_failureDetails,+    dataRepositoryTask_fileCacheId,+    dataRepositoryTask_fileSystemId,+    dataRepositoryTask_paths,+    dataRepositoryTask_report,+    dataRepositoryTask_resourceARN,+    dataRepositoryTask_startTime,+    dataRepositoryTask_status,+    dataRepositoryTask_tags,+    dataRepositoryTask_taskId,+    dataRepositoryTask_lifecycle,+    dataRepositoryTask_type,+    dataRepositoryTask_creationTime,++    -- * DataRepositoryTaskFailureDetails+    DataRepositoryTaskFailureDetails (..),+    newDataRepositoryTaskFailureDetails,+    dataRepositoryTaskFailureDetails_message,++    -- * DataRepositoryTaskFilter+    DataRepositoryTaskFilter (..),+    newDataRepositoryTaskFilter,+    dataRepositoryTaskFilter_name,+    dataRepositoryTaskFilter_values,++    -- * DataRepositoryTaskStatus+    DataRepositoryTaskStatus (..),+    newDataRepositoryTaskStatus,+    dataRepositoryTaskStatus_failedCount,+    dataRepositoryTaskStatus_lastUpdatedTime,+    dataRepositoryTaskStatus_releasedCapacity,+    dataRepositoryTaskStatus_succeededCount,+    dataRepositoryTaskStatus_totalCount,++    -- * DeleteFileSystemLustreConfiguration+    DeleteFileSystemLustreConfiguration (..),+    newDeleteFileSystemLustreConfiguration,+    deleteFileSystemLustreConfiguration_finalBackupTags,+    deleteFileSystemLustreConfiguration_skipFinalBackup,++    -- * DeleteFileSystemLustreResponse+    DeleteFileSystemLustreResponse (..),+    newDeleteFileSystemLustreResponse,+    deleteFileSystemLustreResponse_finalBackupId,+    deleteFileSystemLustreResponse_finalBackupTags,++    -- * DeleteFileSystemOpenZFSConfiguration+    DeleteFileSystemOpenZFSConfiguration (..),+    newDeleteFileSystemOpenZFSConfiguration,+    deleteFileSystemOpenZFSConfiguration_finalBackupTags,+    deleteFileSystemOpenZFSConfiguration_options,+    deleteFileSystemOpenZFSConfiguration_skipFinalBackup,++    -- * DeleteFileSystemOpenZFSResponse+    DeleteFileSystemOpenZFSResponse (..),+    newDeleteFileSystemOpenZFSResponse,+    deleteFileSystemOpenZFSResponse_finalBackupId,+    deleteFileSystemOpenZFSResponse_finalBackupTags,++    -- * DeleteFileSystemWindowsConfiguration+    DeleteFileSystemWindowsConfiguration (..),+    newDeleteFileSystemWindowsConfiguration,+    deleteFileSystemWindowsConfiguration_finalBackupTags,+    deleteFileSystemWindowsConfiguration_skipFinalBackup,++    -- * DeleteFileSystemWindowsResponse+    DeleteFileSystemWindowsResponse (..),+    newDeleteFileSystemWindowsResponse,+    deleteFileSystemWindowsResponse_finalBackupId,+    deleteFileSystemWindowsResponse_finalBackupTags,++    -- * DeleteVolumeOntapConfiguration+    DeleteVolumeOntapConfiguration (..),+    newDeleteVolumeOntapConfiguration,+    deleteVolumeOntapConfiguration_finalBackupTags,+    deleteVolumeOntapConfiguration_skipFinalBackup,++    -- * DeleteVolumeOntapResponse+    DeleteVolumeOntapResponse (..),+    newDeleteVolumeOntapResponse,+    deleteVolumeOntapResponse_finalBackupId,+    deleteVolumeOntapResponse_finalBackupTags,++    -- * DeleteVolumeOpenZFSConfiguration+    DeleteVolumeOpenZFSConfiguration (..),+    newDeleteVolumeOpenZFSConfiguration,+    deleteVolumeOpenZFSConfiguration_options,++    -- * DiskIopsConfiguration+    DiskIopsConfiguration (..),+    newDiskIopsConfiguration,+    diskIopsConfiguration_iops,+    diskIopsConfiguration_mode,++    -- * FileCache+    FileCache (..),+    newFileCache,+    fileCache_creationTime,+    fileCache_dNSName,+    fileCache_dataRepositoryAssociationIds,+    fileCache_failureDetails,+    fileCache_fileCacheId,+    fileCache_fileCacheType,+    fileCache_fileCacheTypeVersion,+    fileCache_kmsKeyId,+    fileCache_lifecycle,+    fileCache_lustreConfiguration,+    fileCache_networkInterfaceIds,+    fileCache_ownerId,+    fileCache_resourceARN,+    fileCache_storageCapacity,+    fileCache_subnetIds,+    fileCache_vpcId,++    -- * FileCacheCreating+    FileCacheCreating (..),+    newFileCacheCreating,+    fileCacheCreating_copyTagsToDataRepositoryAssociations,+    fileCacheCreating_creationTime,+    fileCacheCreating_dNSName,+    fileCacheCreating_dataRepositoryAssociationIds,+    fileCacheCreating_failureDetails,+    fileCacheCreating_fileCacheId,+    fileCacheCreating_fileCacheType,+    fileCacheCreating_fileCacheTypeVersion,+    fileCacheCreating_kmsKeyId,+    fileCacheCreating_lifecycle,+    fileCacheCreating_lustreConfiguration,+    fileCacheCreating_networkInterfaceIds,+    fileCacheCreating_ownerId,+    fileCacheCreating_resourceARN,+    fileCacheCreating_storageCapacity,+    fileCacheCreating_subnetIds,+    fileCacheCreating_tags,+    fileCacheCreating_vpcId,++    -- * FileCacheDataRepositoryAssociation+    FileCacheDataRepositoryAssociation (..),+    newFileCacheDataRepositoryAssociation,+    fileCacheDataRepositoryAssociation_dataRepositorySubdirectories,+    fileCacheDataRepositoryAssociation_nfs,+    fileCacheDataRepositoryAssociation_fileCachePath,+    fileCacheDataRepositoryAssociation_dataRepositoryPath,++    -- * FileCacheFailureDetails+    FileCacheFailureDetails (..),+    newFileCacheFailureDetails,+    fileCacheFailureDetails_message,++    -- * FileCacheLustreConfiguration+    FileCacheLustreConfiguration (..),+    newFileCacheLustreConfiguration,+    fileCacheLustreConfiguration_deploymentType,+    fileCacheLustreConfiguration_logConfiguration,+    fileCacheLustreConfiguration_metadataConfiguration,+    fileCacheLustreConfiguration_mountName,+    fileCacheLustreConfiguration_perUnitStorageThroughput,+    fileCacheLustreConfiguration_weeklyMaintenanceStartTime,++    -- * FileCacheLustreMetadataConfiguration+    FileCacheLustreMetadataConfiguration (..),+    newFileCacheLustreMetadataConfiguration,+    fileCacheLustreMetadataConfiguration_storageCapacity,++    -- * FileCacheNFSConfiguration+    FileCacheNFSConfiguration (..),+    newFileCacheNFSConfiguration,+    fileCacheNFSConfiguration_dnsIps,+    fileCacheNFSConfiguration_version,++    -- * FileSystem+    FileSystem (..),+    newFileSystem,+    fileSystem_administrativeActions,+    fileSystem_creationTime,+    fileSystem_dNSName,+    fileSystem_failureDetails,+    fileSystem_fileSystemId,+    fileSystem_fileSystemType,+    fileSystem_fileSystemTypeVersion,+    fileSystem_kmsKeyId,+    fileSystem_lifecycle,+    fileSystem_lustreConfiguration,+    fileSystem_networkInterfaceIds,+    fileSystem_ontapConfiguration,+    fileSystem_openZFSConfiguration,+    fileSystem_ownerId,+    fileSystem_resourceARN,+    fileSystem_storageCapacity,+    fileSystem_storageType,+    fileSystem_subnetIds,+    fileSystem_tags,+    fileSystem_vpcId,+    fileSystem_windowsConfiguration,++    -- * FileSystemEndpoint+    FileSystemEndpoint (..),+    newFileSystemEndpoint,+    fileSystemEndpoint_dNSName,+    fileSystemEndpoint_ipAddresses,++    -- * FileSystemEndpoints+    FileSystemEndpoints (..),+    newFileSystemEndpoints,+    fileSystemEndpoints_intercluster,+    fileSystemEndpoints_management,++    -- * FileSystemFailureDetails+    FileSystemFailureDetails (..),+    newFileSystemFailureDetails,+    fileSystemFailureDetails_message,++    -- * Filter+    Filter (..),+    newFilter,+    filter_name,+    filter_values,++    -- * LifecycleTransitionReason+    LifecycleTransitionReason (..),+    newLifecycleTransitionReason,+    lifecycleTransitionReason_message,++    -- * LustreFileSystemConfiguration+    LustreFileSystemConfiguration (..),+    newLustreFileSystemConfiguration,+    lustreFileSystemConfiguration_automaticBackupRetentionDays,+    lustreFileSystemConfiguration_copyTagsToBackups,+    lustreFileSystemConfiguration_dailyAutomaticBackupStartTime,+    lustreFileSystemConfiguration_dataCompressionType,+    lustreFileSystemConfiguration_dataRepositoryConfiguration,+    lustreFileSystemConfiguration_deploymentType,+    lustreFileSystemConfiguration_driveCacheType,+    lustreFileSystemConfiguration_logConfiguration,+    lustreFileSystemConfiguration_mountName,+    lustreFileSystemConfiguration_perUnitStorageThroughput,+    lustreFileSystemConfiguration_rootSquashConfiguration,+    lustreFileSystemConfiguration_weeklyMaintenanceStartTime,++    -- * LustreLogConfiguration+    LustreLogConfiguration (..),+    newLustreLogConfiguration,+    lustreLogConfiguration_destination,+    lustreLogConfiguration_level,++    -- * LustreLogCreateConfiguration+    LustreLogCreateConfiguration (..),+    newLustreLogCreateConfiguration,+    lustreLogCreateConfiguration_destination,+    lustreLogCreateConfiguration_level,++    -- * LustreRootSquashConfiguration+    LustreRootSquashConfiguration (..),+    newLustreRootSquashConfiguration,+    lustreRootSquashConfiguration_noSquashNids,+    lustreRootSquashConfiguration_rootSquash,++    -- * NFSDataRepositoryConfiguration+    NFSDataRepositoryConfiguration (..),+    newNFSDataRepositoryConfiguration,+    nFSDataRepositoryConfiguration_autoExportPolicy,+    nFSDataRepositoryConfiguration_dnsIps,+    nFSDataRepositoryConfiguration_version,++    -- * OntapFileSystemConfiguration+    OntapFileSystemConfiguration (..),+    newOntapFileSystemConfiguration,+    ontapFileSystemConfiguration_automaticBackupRetentionDays,+    ontapFileSystemConfiguration_dailyAutomaticBackupStartTime,+    ontapFileSystemConfiguration_deploymentType,+    ontapFileSystemConfiguration_diskIopsConfiguration,+    ontapFileSystemConfiguration_endpointIpAddressRange,+    ontapFileSystemConfiguration_endpoints,+    ontapFileSystemConfiguration_preferredSubnetId,+    ontapFileSystemConfiguration_routeTableIds,+    ontapFileSystemConfiguration_throughputCapacity,+    ontapFileSystemConfiguration_weeklyMaintenanceStartTime,++    -- * OntapVolumeConfiguration+    OntapVolumeConfiguration (..),+    newOntapVolumeConfiguration,+    ontapVolumeConfiguration_copyTagsToBackups,+    ontapVolumeConfiguration_flexCacheEndpointType,+    ontapVolumeConfiguration_junctionPath,+    ontapVolumeConfiguration_ontapVolumeType,+    ontapVolumeConfiguration_securityStyle,+    ontapVolumeConfiguration_sizeInMegabytes,+    ontapVolumeConfiguration_snapshotPolicy,+    ontapVolumeConfiguration_storageEfficiencyEnabled,+    ontapVolumeConfiguration_storageVirtualMachineId,+    ontapVolumeConfiguration_storageVirtualMachineRoot,+    ontapVolumeConfiguration_tieringPolicy,+    ontapVolumeConfiguration_uuid,++    -- * OpenZFSClientConfiguration+    OpenZFSClientConfiguration (..),+    newOpenZFSClientConfiguration,+    openZFSClientConfiguration_clients,+    openZFSClientConfiguration_options,++    -- * OpenZFSCreateRootVolumeConfiguration+    OpenZFSCreateRootVolumeConfiguration (..),+    newOpenZFSCreateRootVolumeConfiguration,+    openZFSCreateRootVolumeConfiguration_copyTagsToSnapshots,+    openZFSCreateRootVolumeConfiguration_dataCompressionType,+    openZFSCreateRootVolumeConfiguration_nfsExports,+    openZFSCreateRootVolumeConfiguration_readOnly,+    openZFSCreateRootVolumeConfiguration_recordSizeKiB,+    openZFSCreateRootVolumeConfiguration_userAndGroupQuotas,++    -- * OpenZFSFileSystemConfiguration+    OpenZFSFileSystemConfiguration (..),+    newOpenZFSFileSystemConfiguration,+    openZFSFileSystemConfiguration_automaticBackupRetentionDays,+    openZFSFileSystemConfiguration_copyTagsToBackups,+    openZFSFileSystemConfiguration_copyTagsToVolumes,+    openZFSFileSystemConfiguration_dailyAutomaticBackupStartTime,+    openZFSFileSystemConfiguration_deploymentType,+    openZFSFileSystemConfiguration_diskIopsConfiguration,+    openZFSFileSystemConfiguration_rootVolumeId,+    openZFSFileSystemConfiguration_throughputCapacity,+    openZFSFileSystemConfiguration_weeklyMaintenanceStartTime,++    -- * OpenZFSNfsExport+    OpenZFSNfsExport (..),+    newOpenZFSNfsExport,+    openZFSNfsExport_clientConfigurations,++    -- * OpenZFSOriginSnapshotConfiguration+    OpenZFSOriginSnapshotConfiguration (..),+    newOpenZFSOriginSnapshotConfiguration,+    openZFSOriginSnapshotConfiguration_copyStrategy,+    openZFSOriginSnapshotConfiguration_snapshotARN,++    -- * OpenZFSUserOrGroupQuota+    OpenZFSUserOrGroupQuota (..),+    newOpenZFSUserOrGroupQuota,+    openZFSUserOrGroupQuota_type,+    openZFSUserOrGroupQuota_id,+    openZFSUserOrGroupQuota_storageCapacityQuotaGiB,++    -- * OpenZFSVolumeConfiguration+    OpenZFSVolumeConfiguration (..),+    newOpenZFSVolumeConfiguration,+    openZFSVolumeConfiguration_copyTagsToSnapshots,+    openZFSVolumeConfiguration_dataCompressionType,+    openZFSVolumeConfiguration_deleteClonedVolumes,+    openZFSVolumeConfiguration_deleteIntermediateSnaphots,+    openZFSVolumeConfiguration_nfsExports,+    openZFSVolumeConfiguration_originSnapshot,+    openZFSVolumeConfiguration_parentVolumeId,+    openZFSVolumeConfiguration_readOnly,+    openZFSVolumeConfiguration_recordSizeKiB,+    openZFSVolumeConfiguration_restoreToSnapshot,+    openZFSVolumeConfiguration_storageCapacityQuotaGiB,+    openZFSVolumeConfiguration_storageCapacityReservationGiB,+    openZFSVolumeConfiguration_userAndGroupQuotas,+    openZFSVolumeConfiguration_volumePath,++    -- * S3DataRepositoryConfiguration+    S3DataRepositoryConfiguration (..),+    newS3DataRepositoryConfiguration,+    s3DataRepositoryConfiguration_autoExportPolicy,+    s3DataRepositoryConfiguration_autoImportPolicy,++    -- * SelfManagedActiveDirectoryAttributes+    SelfManagedActiveDirectoryAttributes (..),+    newSelfManagedActiveDirectoryAttributes,+    selfManagedActiveDirectoryAttributes_dnsIps,+    selfManagedActiveDirectoryAttributes_domainName,+    selfManagedActiveDirectoryAttributes_fileSystemAdministratorsGroup,+    selfManagedActiveDirectoryAttributes_organizationalUnitDistinguishedName,+    selfManagedActiveDirectoryAttributes_userName,++    -- * SelfManagedActiveDirectoryConfiguration+    SelfManagedActiveDirectoryConfiguration (..),+    newSelfManagedActiveDirectoryConfiguration,+    selfManagedActiveDirectoryConfiguration_fileSystemAdministratorsGroup,+    selfManagedActiveDirectoryConfiguration_organizationalUnitDistinguishedName,+    selfManagedActiveDirectoryConfiguration_domainName,+    selfManagedActiveDirectoryConfiguration_userName,+    selfManagedActiveDirectoryConfiguration_password,+    selfManagedActiveDirectoryConfiguration_dnsIps,++    -- * SelfManagedActiveDirectoryConfigurationUpdates+    SelfManagedActiveDirectoryConfigurationUpdates (..),+    newSelfManagedActiveDirectoryConfigurationUpdates,+    selfManagedActiveDirectoryConfigurationUpdates_dnsIps,+    selfManagedActiveDirectoryConfigurationUpdates_password,+    selfManagedActiveDirectoryConfigurationUpdates_userName,++    -- * Snapshot+    Snapshot (..),+    newSnapshot,+    snapshot_administrativeActions,+    snapshot_creationTime,+    snapshot_lifecycle,+    snapshot_lifecycleTransitionReason,+    snapshot_name,+    snapshot_resourceARN,+    snapshot_snapshotId,+    snapshot_tags,+    snapshot_volumeId,++    -- * SnapshotFilter+    SnapshotFilter (..),+    newSnapshotFilter,+    snapshotFilter_name,+    snapshotFilter_values,++    -- * StorageVirtualMachine+    StorageVirtualMachine (..),+    newStorageVirtualMachine,+    storageVirtualMachine_activeDirectoryConfiguration,+    storageVirtualMachine_creationTime,+    storageVirtualMachine_endpoints,+    storageVirtualMachine_fileSystemId,+    storageVirtualMachine_lifecycle,+    storageVirtualMachine_lifecycleTransitionReason,+    storageVirtualMachine_name,+    storageVirtualMachine_resourceARN,+    storageVirtualMachine_rootVolumeSecurityStyle,+    storageVirtualMachine_storageVirtualMachineId,+    storageVirtualMachine_subtype,+    storageVirtualMachine_tags,+    storageVirtualMachine_uuid,++    -- * StorageVirtualMachineFilter+    StorageVirtualMachineFilter (..),+    newStorageVirtualMachineFilter,+    storageVirtualMachineFilter_name,+    storageVirtualMachineFilter_values,++    -- * SvmActiveDirectoryConfiguration+    SvmActiveDirectoryConfiguration (..),+    newSvmActiveDirectoryConfiguration,+    svmActiveDirectoryConfiguration_netBiosName,+    svmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration,++    -- * SvmEndpoint+    SvmEndpoint (..),+    newSvmEndpoint,+    svmEndpoint_dNSName,+    svmEndpoint_ipAddresses,++    -- * SvmEndpoints+    SvmEndpoints (..),+    newSvmEndpoints,+    svmEndpoints_iscsi,+    svmEndpoints_management,+    svmEndpoints_nfs,+    svmEndpoints_smb,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * TieringPolicy+    TieringPolicy (..),+    newTieringPolicy,+    tieringPolicy_coolingPeriod,+    tieringPolicy_name,++    -- * UpdateFileCacheLustreConfiguration+    UpdateFileCacheLustreConfiguration (..),+    newUpdateFileCacheLustreConfiguration,+    updateFileCacheLustreConfiguration_weeklyMaintenanceStartTime,++    -- * UpdateFileSystemLustreConfiguration+    UpdateFileSystemLustreConfiguration (..),+    newUpdateFileSystemLustreConfiguration,+    updateFileSystemLustreConfiguration_autoImportPolicy,+    updateFileSystemLustreConfiguration_automaticBackupRetentionDays,+    updateFileSystemLustreConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemLustreConfiguration_dataCompressionType,+    updateFileSystemLustreConfiguration_logConfiguration,+    updateFileSystemLustreConfiguration_rootSquashConfiguration,+    updateFileSystemLustreConfiguration_weeklyMaintenanceStartTime,++    -- * UpdateFileSystemOntapConfiguration+    UpdateFileSystemOntapConfiguration (..),+    newUpdateFileSystemOntapConfiguration,+    updateFileSystemOntapConfiguration_addRouteTableIds,+    updateFileSystemOntapConfiguration_automaticBackupRetentionDays,+    updateFileSystemOntapConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemOntapConfiguration_diskIopsConfiguration,+    updateFileSystemOntapConfiguration_fsxAdminPassword,+    updateFileSystemOntapConfiguration_removeRouteTableIds,+    updateFileSystemOntapConfiguration_throughputCapacity,+    updateFileSystemOntapConfiguration_weeklyMaintenanceStartTime,++    -- * UpdateFileSystemOpenZFSConfiguration+    UpdateFileSystemOpenZFSConfiguration (..),+    newUpdateFileSystemOpenZFSConfiguration,+    updateFileSystemOpenZFSConfiguration_automaticBackupRetentionDays,+    updateFileSystemOpenZFSConfiguration_copyTagsToBackups,+    updateFileSystemOpenZFSConfiguration_copyTagsToVolumes,+    updateFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemOpenZFSConfiguration_diskIopsConfiguration,+    updateFileSystemOpenZFSConfiguration_throughputCapacity,+    updateFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime,++    -- * UpdateFileSystemWindowsConfiguration+    UpdateFileSystemWindowsConfiguration (..),+    newUpdateFileSystemWindowsConfiguration,+    updateFileSystemWindowsConfiguration_auditLogConfiguration,+    updateFileSystemWindowsConfiguration_automaticBackupRetentionDays,+    updateFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime,+    updateFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration,+    updateFileSystemWindowsConfiguration_throughputCapacity,+    updateFileSystemWindowsConfiguration_weeklyMaintenanceStartTime,++    -- * UpdateOntapVolumeConfiguration+    UpdateOntapVolumeConfiguration (..),+    newUpdateOntapVolumeConfiguration,+    updateOntapVolumeConfiguration_copyTagsToBackups,+    updateOntapVolumeConfiguration_junctionPath,+    updateOntapVolumeConfiguration_securityStyle,+    updateOntapVolumeConfiguration_sizeInMegabytes,+    updateOntapVolumeConfiguration_snapshotPolicy,+    updateOntapVolumeConfiguration_storageEfficiencyEnabled,+    updateOntapVolumeConfiguration_tieringPolicy,++    -- * UpdateOpenZFSVolumeConfiguration+    UpdateOpenZFSVolumeConfiguration (..),+    newUpdateOpenZFSVolumeConfiguration,+    updateOpenZFSVolumeConfiguration_dataCompressionType,+    updateOpenZFSVolumeConfiguration_nfsExports,+    updateOpenZFSVolumeConfiguration_readOnly,+    updateOpenZFSVolumeConfiguration_recordSizeKiB,+    updateOpenZFSVolumeConfiguration_storageCapacityQuotaGiB,+    updateOpenZFSVolumeConfiguration_storageCapacityReservationGiB,+    updateOpenZFSVolumeConfiguration_userAndGroupQuotas,++    -- * UpdateSvmActiveDirectoryConfiguration+    UpdateSvmActiveDirectoryConfiguration (..),+    newUpdateSvmActiveDirectoryConfiguration,+    updateSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration,++    -- * Volume+    Volume (..),+    newVolume,+    volume_administrativeActions,+    volume_creationTime,+    volume_fileSystemId,+    volume_lifecycle,+    volume_lifecycleTransitionReason,+    volume_name,+    volume_ontapConfiguration,+    volume_openZFSConfiguration,+    volume_resourceARN,+    volume_tags,+    volume_volumeId,+    volume_volumeType,++    -- * VolumeFilter+    VolumeFilter (..),+    newVolumeFilter,+    volumeFilter_name,+    volumeFilter_values,++    -- * WindowsAuditLogConfiguration+    WindowsAuditLogConfiguration (..),+    newWindowsAuditLogConfiguration,+    windowsAuditLogConfiguration_auditLogDestination,+    windowsAuditLogConfiguration_fileAccessAuditLogLevel,+    windowsAuditLogConfiguration_fileShareAccessAuditLogLevel,++    -- * WindowsAuditLogCreateConfiguration+    WindowsAuditLogCreateConfiguration (..),+    newWindowsAuditLogCreateConfiguration,+    windowsAuditLogCreateConfiguration_auditLogDestination,+    windowsAuditLogCreateConfiguration_fileAccessAuditLogLevel,+    windowsAuditLogCreateConfiguration_fileShareAccessAuditLogLevel,++    -- * WindowsFileSystemConfiguration+    WindowsFileSystemConfiguration (..),+    newWindowsFileSystemConfiguration,+    windowsFileSystemConfiguration_activeDirectoryId,+    windowsFileSystemConfiguration_aliases,+    windowsFileSystemConfiguration_auditLogConfiguration,+    windowsFileSystemConfiguration_automaticBackupRetentionDays,+    windowsFileSystemConfiguration_copyTagsToBackups,+    windowsFileSystemConfiguration_dailyAutomaticBackupStartTime,+    windowsFileSystemConfiguration_deploymentType,+    windowsFileSystemConfiguration_maintenanceOperationsInProgress,+    windowsFileSystemConfiguration_preferredFileServerIp,+    windowsFileSystemConfiguration_preferredSubnetId,+    windowsFileSystemConfiguration_remoteAdministrationEndpoint,+    windowsFileSystemConfiguration_selfManagedActiveDirectoryConfiguration,+    windowsFileSystemConfiguration_throughputCapacity,+    windowsFileSystemConfiguration_weeklyMaintenanceStartTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.FSx.Types.ActiveDirectoryBackupAttributes+import Amazonka.FSx.Types.AdministrativeAction+import Amazonka.FSx.Types.AdministrativeActionFailureDetails+import Amazonka.FSx.Types.AdministrativeActionType+import Amazonka.FSx.Types.Alias+import Amazonka.FSx.Types.AliasLifecycle+import Amazonka.FSx.Types.AutoExportPolicy+import Amazonka.FSx.Types.AutoImportPolicy+import Amazonka.FSx.Types.AutoImportPolicyType+import Amazonka.FSx.Types.Backup+import Amazonka.FSx.Types.BackupFailureDetails+import Amazonka.FSx.Types.BackupLifecycle+import Amazonka.FSx.Types.BackupType+import Amazonka.FSx.Types.CompletionReport+import Amazonka.FSx.Types.CreateFileCacheLustreConfiguration+import Amazonka.FSx.Types.CreateFileSystemLustreConfiguration+import Amazonka.FSx.Types.CreateFileSystemOntapConfiguration+import Amazonka.FSx.Types.CreateFileSystemOpenZFSConfiguration+import Amazonka.FSx.Types.CreateFileSystemWindowsConfiguration+import Amazonka.FSx.Types.CreateOntapVolumeConfiguration+import Amazonka.FSx.Types.CreateOpenZFSOriginSnapshotConfiguration+import Amazonka.FSx.Types.CreateOpenZFSVolumeConfiguration+import Amazonka.FSx.Types.CreateSvmActiveDirectoryConfiguration+import Amazonka.FSx.Types.DataCompressionType+import Amazonka.FSx.Types.DataRepositoryAssociation+import Amazonka.FSx.Types.DataRepositoryConfiguration+import Amazonka.FSx.Types.DataRepositoryFailureDetails+import Amazonka.FSx.Types.DataRepositoryLifecycle+import Amazonka.FSx.Types.DataRepositoryTask+import Amazonka.FSx.Types.DataRepositoryTaskFailureDetails+import Amazonka.FSx.Types.DataRepositoryTaskFilter+import Amazonka.FSx.Types.DataRepositoryTaskFilterName+import Amazonka.FSx.Types.DataRepositoryTaskLifecycle+import Amazonka.FSx.Types.DataRepositoryTaskStatus+import Amazonka.FSx.Types.DataRepositoryTaskType+import Amazonka.FSx.Types.DeleteFileSystemLustreConfiguration+import Amazonka.FSx.Types.DeleteFileSystemLustreResponse+import Amazonka.FSx.Types.DeleteFileSystemOpenZFSConfiguration+import Amazonka.FSx.Types.DeleteFileSystemOpenZFSOption+import Amazonka.FSx.Types.DeleteFileSystemOpenZFSResponse+import Amazonka.FSx.Types.DeleteFileSystemWindowsConfiguration+import Amazonka.FSx.Types.DeleteFileSystemWindowsResponse+import Amazonka.FSx.Types.DeleteOpenZFSVolumeOption+import Amazonka.FSx.Types.DeleteVolumeOntapConfiguration+import Amazonka.FSx.Types.DeleteVolumeOntapResponse+import Amazonka.FSx.Types.DeleteVolumeOpenZFSConfiguration+import Amazonka.FSx.Types.DiskIopsConfiguration+import Amazonka.FSx.Types.DiskIopsConfigurationMode+import Amazonka.FSx.Types.DriveCacheType+import Amazonka.FSx.Types.EventType+import Amazonka.FSx.Types.FileCache+import Amazonka.FSx.Types.FileCacheCreating+import Amazonka.FSx.Types.FileCacheDataRepositoryAssociation+import Amazonka.FSx.Types.FileCacheFailureDetails+import Amazonka.FSx.Types.FileCacheLifecycle+import Amazonka.FSx.Types.FileCacheLustreConfiguration+import Amazonka.FSx.Types.FileCacheLustreDeploymentType+import Amazonka.FSx.Types.FileCacheLustreMetadataConfiguration+import Amazonka.FSx.Types.FileCacheNFSConfiguration+import Amazonka.FSx.Types.FileCacheType+import Amazonka.FSx.Types.FileSystem+import Amazonka.FSx.Types.FileSystemEndpoint+import Amazonka.FSx.Types.FileSystemEndpoints+import Amazonka.FSx.Types.FileSystemFailureDetails+import Amazonka.FSx.Types.FileSystemLifecycle+import Amazonka.FSx.Types.FileSystemMaintenanceOperation+import Amazonka.FSx.Types.FileSystemType+import Amazonka.FSx.Types.Filter+import Amazonka.FSx.Types.FilterName+import Amazonka.FSx.Types.FlexCacheEndpointType+import Amazonka.FSx.Types.InputOntapVolumeType+import Amazonka.FSx.Types.LifecycleTransitionReason+import Amazonka.FSx.Types.LustreAccessAuditLogLevel+import Amazonka.FSx.Types.LustreDeploymentType+import Amazonka.FSx.Types.LustreFileSystemConfiguration+import Amazonka.FSx.Types.LustreLogConfiguration+import Amazonka.FSx.Types.LustreLogCreateConfiguration+import Amazonka.FSx.Types.LustreRootSquashConfiguration+import Amazonka.FSx.Types.NFSDataRepositoryConfiguration+import Amazonka.FSx.Types.NfsVersion+import Amazonka.FSx.Types.OntapDeploymentType+import Amazonka.FSx.Types.OntapFileSystemConfiguration+import Amazonka.FSx.Types.OntapVolumeConfiguration+import Amazonka.FSx.Types.OntapVolumeType+import Amazonka.FSx.Types.OpenZFSClientConfiguration+import Amazonka.FSx.Types.OpenZFSCopyStrategy+import Amazonka.FSx.Types.OpenZFSCreateRootVolumeConfiguration+import Amazonka.FSx.Types.OpenZFSDataCompressionType+import Amazonka.FSx.Types.OpenZFSDeploymentType+import Amazonka.FSx.Types.OpenZFSFileSystemConfiguration+import Amazonka.FSx.Types.OpenZFSNfsExport+import Amazonka.FSx.Types.OpenZFSOriginSnapshotConfiguration+import Amazonka.FSx.Types.OpenZFSQuotaType+import Amazonka.FSx.Types.OpenZFSUserOrGroupQuota+import Amazonka.FSx.Types.OpenZFSVolumeConfiguration+import Amazonka.FSx.Types.ReportFormat+import Amazonka.FSx.Types.ReportScope+import Amazonka.FSx.Types.ResourceType+import Amazonka.FSx.Types.RestoreOpenZFSVolumeOption+import Amazonka.FSx.Types.S3DataRepositoryConfiguration+import Amazonka.FSx.Types.SecurityStyle+import Amazonka.FSx.Types.SelfManagedActiveDirectoryAttributes+import Amazonka.FSx.Types.SelfManagedActiveDirectoryConfiguration+import Amazonka.FSx.Types.SelfManagedActiveDirectoryConfigurationUpdates+import Amazonka.FSx.Types.Snapshot+import Amazonka.FSx.Types.SnapshotFilter+import Amazonka.FSx.Types.SnapshotFilterName+import Amazonka.FSx.Types.SnapshotLifecycle+import Amazonka.FSx.Types.Status+import Amazonka.FSx.Types.StorageType+import Amazonka.FSx.Types.StorageVirtualMachine+import Amazonka.FSx.Types.StorageVirtualMachineFilter+import Amazonka.FSx.Types.StorageVirtualMachineFilterName+import Amazonka.FSx.Types.StorageVirtualMachineLifecycle+import Amazonka.FSx.Types.StorageVirtualMachineRootVolumeSecurityStyle+import Amazonka.FSx.Types.StorageVirtualMachineSubtype+import Amazonka.FSx.Types.SvmActiveDirectoryConfiguration+import Amazonka.FSx.Types.SvmEndpoint+import Amazonka.FSx.Types.SvmEndpoints+import Amazonka.FSx.Types.Tag+import Amazonka.FSx.Types.TieringPolicy+import Amazonka.FSx.Types.TieringPolicyName+import Amazonka.FSx.Types.UpdateFileCacheLustreConfiguration+import Amazonka.FSx.Types.UpdateFileSystemLustreConfiguration+import Amazonka.FSx.Types.UpdateFileSystemOntapConfiguration+import Amazonka.FSx.Types.UpdateFileSystemOpenZFSConfiguration+import Amazonka.FSx.Types.UpdateFileSystemWindowsConfiguration+import Amazonka.FSx.Types.UpdateOntapVolumeConfiguration+import Amazonka.FSx.Types.UpdateOpenZFSVolumeConfiguration+import Amazonka.FSx.Types.UpdateSvmActiveDirectoryConfiguration+import Amazonka.FSx.Types.Volume+import Amazonka.FSx.Types.VolumeFilter+import Amazonka.FSx.Types.VolumeFilterName+import Amazonka.FSx.Types.VolumeLifecycle+import Amazonka.FSx.Types.VolumeType+import Amazonka.FSx.Types.WindowsAccessAuditLogLevel+import Amazonka.FSx.Types.WindowsAuditLogConfiguration+import Amazonka.FSx.Types.WindowsAuditLogCreateConfiguration+import Amazonka.FSx.Types.WindowsDeploymentType+import Amazonka.FSx.Types.WindowsFileSystemConfiguration+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-03-01@ of the Amazon FSx SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "FSx",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "fsx",+      Core.signingName = "fsx",+      Core.version = "2018-03-01",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "FSx",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | An Active Directory error.+_ActiveDirectoryError :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ActiveDirectoryError =+  Core._MatchServiceError+    defaultService+    "ActiveDirectoryError"++-- | You can\'t delete a backup while it\'s being copied.+_BackupBeingCopied :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BackupBeingCopied =+  Core._MatchServiceError+    defaultService+    "BackupBeingCopied"++-- | Another backup is already under way. Wait for completion before+-- initiating additional backups of this file system.+_BackupInProgress :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BackupInProgress =+  Core._MatchServiceError+    defaultService+    "BackupInProgress"++-- | No Amazon FSx backups were found based upon the supplied parameters.+_BackupNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BackupNotFound =+  Core._MatchServiceError+    defaultService+    "BackupNotFound"++-- | You can\'t delete a backup while it\'s being used to restore a file+-- system.+_BackupRestoring :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BackupRestoring =+  Core._MatchServiceError+    defaultService+    "BackupRestoring"++-- | A generic error indicating a failure with a client request.+_BadRequest :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequest =+  Core._MatchServiceError defaultService "BadRequest"++-- | No data repository associations were found based upon the supplied+-- parameters.+_DataRepositoryAssociationNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DataRepositoryAssociationNotFound =+  Core._MatchServiceError+    defaultService+    "DataRepositoryAssociationNotFound"++-- | The data repository task could not be canceled because the task has+-- already ended.+_DataRepositoryTaskEnded :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DataRepositoryTaskEnded =+  Core._MatchServiceError+    defaultService+    "DataRepositoryTaskEnded"++-- | An existing data repository task is currently executing on the file+-- system. Wait until the existing task has completed, then create the new+-- task.+_DataRepositoryTaskExecuting :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DataRepositoryTaskExecuting =+  Core._MatchServiceError+    defaultService+    "DataRepositoryTaskExecuting"++-- | The data repository task or tasks you specified could not be found.+_DataRepositoryTaskNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DataRepositoryTaskNotFound =+  Core._MatchServiceError+    defaultService+    "DataRepositoryTaskNotFound"++-- | No caches were found based upon supplied parameters.+_FileCacheNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_FileCacheNotFound =+  Core._MatchServiceError+    defaultService+    "FileCacheNotFound"++-- | No Amazon FSx file systems were found based upon supplied parameters.+_FileSystemNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_FileSystemNotFound =+  Core._MatchServiceError+    defaultService+    "FileSystemNotFound"++-- | The error returned when a second request is received with the same+-- client request token but different parameters settings. A client request+-- token should always uniquely identify a single request.+_IncompatibleParameterError :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_IncompatibleParameterError =+  Core._MatchServiceError+    defaultService+    "IncompatibleParameterError"++-- | Amazon FSx doesn\'t support Multi-AZ Windows File Server copy backup in+-- the destination Region, so the copied backup can\'t be restored.+_IncompatibleRegionForMultiAZ :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_IncompatibleRegionForMultiAZ =+  Core._MatchServiceError+    defaultService+    "IncompatibleRegionForMultiAZ"++-- | A generic error indicating a server-side failure.+_InternalServerError :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerError =+  Core._MatchServiceError+    defaultService+    "InternalServerError"++-- | You have filtered the response to a data repository type that is not+-- supported.+_InvalidDataRepositoryType :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDataRepositoryType =+  Core._MatchServiceError+    defaultService+    "InvalidDataRepositoryType"++-- | The Key Management Service (KMS) key of the destination backup is not+-- valid.+_InvalidDestinationKmsKey :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidDestinationKmsKey =+  Core._MatchServiceError+    defaultService+    "InvalidDestinationKmsKey"++-- | The path provided for data repository export isn\'t valid.+_InvalidExportPath :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidExportPath =+  Core._MatchServiceError+    defaultService+    "InvalidExportPath"++-- | The path provided for data repository import isn\'t valid.+_InvalidImportPath :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidImportPath =+  Core._MatchServiceError+    defaultService+    "InvalidImportPath"++-- | One or more network settings specified in the request are invalid.+_InvalidNetworkSettings :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidNetworkSettings =+  Core._MatchServiceError+    defaultService+    "InvalidNetworkSettings"++-- | An invalid value for @PerUnitStorageThroughput@ was provided. Please+-- create your file system again, using a valid value.+_InvalidPerUnitStorageThroughput :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidPerUnitStorageThroughput =+  Core._MatchServiceError+    defaultService+    "InvalidPerUnitStorageThroughput"++-- | The Region provided for @SourceRegion@ is not valid or is in a different+-- Amazon Web Services partition.+_InvalidRegion :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRegion =+  Core._MatchServiceError+    defaultService+    "InvalidRegion"++-- | The Key Management Service (KMS) key of the source backup is not valid.+_InvalidSourceKmsKey :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidSourceKmsKey =+  Core._MatchServiceError+    defaultService+    "InvalidSourceKmsKey"++-- | A cache configuration is required for this operation.+_MissingFileCacheConfiguration :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_MissingFileCacheConfiguration =+  Core._MatchServiceError+    defaultService+    "MissingFileCacheConfiguration"++-- | A file system configuration is required for this operation.+_MissingFileSystemConfiguration :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_MissingFileSystemConfiguration =+  Core._MatchServiceError+    defaultService+    "MissingFileSystemConfiguration"++-- | A volume configuration is required for this operation.+_MissingVolumeConfiguration :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_MissingVolumeConfiguration =+  Core._MatchServiceError+    defaultService+    "MissingVolumeConfiguration"++-- | The resource specified for the tagging operation is not a resource type+-- owned by Amazon FSx. Use the API of the relevant service to perform the+-- operation.+_NotServiceResourceError :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotServiceResourceError =+  Core._MatchServiceError+    defaultService+    "NotServiceResourceError"++-- | The resource specified does not support tagging.+_ResourceDoesNotSupportTagging :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceDoesNotSupportTagging =+  Core._MatchServiceError+    defaultService+    "ResourceDoesNotSupportTagging"++-- | The resource specified by the Amazon Resource Name (ARN) can\'t be+-- found.+_ResourceNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFound =+  Core._MatchServiceError+    defaultService+    "ResourceNotFound"++-- | An error indicating that a particular service limit was exceeded. You+-- can increase some service limits by contacting Amazon Web Services+-- Support.+_ServiceLimitExceeded :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceLimitExceeded =+  Core._MatchServiceError+    defaultService+    "ServiceLimitExceeded"++-- | No Amazon FSx snapshots were found based on the supplied parameters.+_SnapshotNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SnapshotNotFound =+  Core._MatchServiceError+    defaultService+    "SnapshotNotFound"++-- | The request was rejected because the lifecycle status of the source+-- backup isn\'t @AVAILABLE@.+_SourceBackupUnavailable :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SourceBackupUnavailable =+  Core._MatchServiceError+    defaultService+    "SourceBackupUnavailable"++-- | No FSx for ONTAP SVMs were found based upon the supplied parameters.+_StorageVirtualMachineNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_StorageVirtualMachineNotFound =+  Core._MatchServiceError+    defaultService+    "StorageVirtualMachineNotFound"++-- | The requested operation is not supported for this resource or API.+_UnsupportedOperation :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnsupportedOperation =+  Core._MatchServiceError+    defaultService+    "UnsupportedOperation"++-- | No Amazon FSx volumes were found based upon the supplied parameters.+_VolumeNotFound :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_VolumeNotFound =+  Core._MatchServiceError+    defaultService+    "VolumeNotFound"
+ gen/Amazonka/FSx/Types/ActiveDirectoryBackupAttributes.hs view
@@ -0,0 +1,114 @@+{-# 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.ActiveDirectoryBackupAttributes+-- 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.ActiveDirectoryBackupAttributes 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++-- | The Microsoft Active Directory attributes of the Amazon FSx for Windows+-- File Server file system.+--+-- /See:/ 'newActiveDirectoryBackupAttributes' smart constructor.+data ActiveDirectoryBackupAttributes = ActiveDirectoryBackupAttributes'+  { -- | The ID of the Amazon Web Services Managed Microsoft Active Directory+    -- instance to which the file system is joined.+    activeDirectoryId :: Prelude.Maybe Prelude.Text,+    -- | The fully qualified domain name of the self-managed Active Directory+    -- directory.+    domainName :: Prelude.Maybe Prelude.Text,+    resourceARN :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActiveDirectoryBackupAttributes' 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:+--+-- 'activeDirectoryId', 'activeDirectoryBackupAttributes_activeDirectoryId' - The ID of the Amazon Web Services Managed Microsoft Active Directory+-- instance to which the file system is joined.+--+-- 'domainName', 'activeDirectoryBackupAttributes_domainName' - The fully qualified domain name of the self-managed Active Directory+-- directory.+--+-- 'resourceARN', 'activeDirectoryBackupAttributes_resourceARN' - Undocumented member.+newActiveDirectoryBackupAttributes ::+  ActiveDirectoryBackupAttributes+newActiveDirectoryBackupAttributes =+  ActiveDirectoryBackupAttributes'+    { activeDirectoryId =+        Prelude.Nothing,+      domainName = Prelude.Nothing,+      resourceARN = Prelude.Nothing+    }++-- | The ID of the Amazon Web Services Managed Microsoft Active Directory+-- instance to which the file system is joined.+activeDirectoryBackupAttributes_activeDirectoryId :: Lens.Lens' ActiveDirectoryBackupAttributes (Prelude.Maybe Prelude.Text)+activeDirectoryBackupAttributes_activeDirectoryId = Lens.lens (\ActiveDirectoryBackupAttributes' {activeDirectoryId} -> activeDirectoryId) (\s@ActiveDirectoryBackupAttributes' {} a -> s {activeDirectoryId = a} :: ActiveDirectoryBackupAttributes)++-- | The fully qualified domain name of the self-managed Active Directory+-- directory.+activeDirectoryBackupAttributes_domainName :: Lens.Lens' ActiveDirectoryBackupAttributes (Prelude.Maybe Prelude.Text)+activeDirectoryBackupAttributes_domainName = Lens.lens (\ActiveDirectoryBackupAttributes' {domainName} -> domainName) (\s@ActiveDirectoryBackupAttributes' {} a -> s {domainName = a} :: ActiveDirectoryBackupAttributes)++-- | Undocumented member.+activeDirectoryBackupAttributes_resourceARN :: Lens.Lens' ActiveDirectoryBackupAttributes (Prelude.Maybe Prelude.Text)+activeDirectoryBackupAttributes_resourceARN = Lens.lens (\ActiveDirectoryBackupAttributes' {resourceARN} -> resourceARN) (\s@ActiveDirectoryBackupAttributes' {} a -> s {resourceARN = a} :: ActiveDirectoryBackupAttributes)++instance+  Data.FromJSON+    ActiveDirectoryBackupAttributes+  where+  parseJSON =+    Data.withObject+      "ActiveDirectoryBackupAttributes"+      ( \x ->+          ActiveDirectoryBackupAttributes'+            Prelude.<$> (x Data..:? "ActiveDirectoryId")+            Prelude.<*> (x Data..:? "DomainName")+            Prelude.<*> (x Data..:? "ResourceARN")+      )++instance+  Prelude.Hashable+    ActiveDirectoryBackupAttributes+  where+  hashWithSalt+    _salt+    ActiveDirectoryBackupAttributes' {..} =+      _salt+        `Prelude.hashWithSalt` activeDirectoryId+        `Prelude.hashWithSalt` domainName+        `Prelude.hashWithSalt` resourceARN++instance+  Prelude.NFData+    ActiveDirectoryBackupAttributes+  where+  rnf ActiveDirectoryBackupAttributes' {..} =+    Prelude.rnf activeDirectoryId+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf resourceARN
+ gen/Amazonka/FSx/Types/AdministrativeAction.hs view
@@ -0,0 +1,217 @@+{-# 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.AdministrativeAction+-- 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.AdministrativeAction 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.AdministrativeActionFailureDetails+import Amazonka.FSx.Types.AdministrativeActionType+import {-# SOURCE #-} Amazonka.FSx.Types.FileSystem+import {-# SOURCE #-} Amazonka.FSx.Types.Snapshot+import Amazonka.FSx.Types.Status+import {-# SOURCE #-} Amazonka.FSx.Types.Volume+import qualified Amazonka.Prelude as Prelude++-- | Describes a specific Amazon FSx administrative action for the current+-- Windows, Lustre, or OpenZFS file system.+--+-- /See:/ 'newAdministrativeAction' smart constructor.+data AdministrativeAction = AdministrativeAction'+  { administrativeActionType :: Prelude.Maybe AdministrativeActionType,+    failureDetails :: Prelude.Maybe AdministrativeActionFailureDetails,+    -- | The percentage-complete status of a @STORAGE_OPTIMIZATION@+    -- administrative action. Does not apply to any other administrative action+    -- type.+    progressPercent :: Prelude.Maybe Prelude.Natural,+    -- | The time that the administrative action request was received.+    requestTime :: Prelude.Maybe Data.POSIX,+    -- | Describes the status of the administrative action, as follows:+    --+    -- -   @FAILED@ - Amazon FSx failed to process the administrative action+    --     successfully.+    --+    -- -   @IN_PROGRESS@ - Amazon FSx is processing the administrative action.+    --+    -- -   @PENDING@ - Amazon FSx is waiting to process the administrative+    --     action.+    --+    -- -   @COMPLETED@ - Amazon FSx has finished processing the administrative+    --     task.+    --+    -- -   @UPDATED_OPTIMIZING@ - For a storage-capacity increase update,+    --     Amazon FSx has updated the file system with the new storage+    --     capacity, and is now performing the storage-optimization process.+    status :: Prelude.Maybe Status,+    -- | Describes the target value for the administration action, provided in+    -- the @UpdateFileSystem@ operation. Returned for @FILE_SYSTEM_UPDATE@+    -- administrative actions.+    targetFileSystemValues :: Prelude.Maybe FileSystem,+    targetSnapshotValues :: Prelude.Maybe Snapshot,+    targetVolumeValues :: Prelude.Maybe Volume+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdministrativeAction' 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:+--+-- 'administrativeActionType', 'administrativeAction_administrativeActionType' - Undocumented member.+--+-- 'failureDetails', 'administrativeAction_failureDetails' - Undocumented member.+--+-- 'progressPercent', 'administrativeAction_progressPercent' - The percentage-complete status of a @STORAGE_OPTIMIZATION@+-- administrative action. Does not apply to any other administrative action+-- type.+--+-- 'requestTime', 'administrativeAction_requestTime' - The time that the administrative action request was received.+--+-- 'status', 'administrativeAction_status' - Describes the status of the administrative action, as follows:+--+-- -   @FAILED@ - Amazon FSx failed to process the administrative action+--     successfully.+--+-- -   @IN_PROGRESS@ - Amazon FSx is processing the administrative action.+--+-- -   @PENDING@ - Amazon FSx is waiting to process the administrative+--     action.+--+-- -   @COMPLETED@ - Amazon FSx has finished processing the administrative+--     task.+--+-- -   @UPDATED_OPTIMIZING@ - For a storage-capacity increase update,+--     Amazon FSx has updated the file system with the new storage+--     capacity, and is now performing the storage-optimization process.+--+-- 'targetFileSystemValues', 'administrativeAction_targetFileSystemValues' - Describes the target value for the administration action, provided in+-- the @UpdateFileSystem@ operation. Returned for @FILE_SYSTEM_UPDATE@+-- administrative actions.+--+-- 'targetSnapshotValues', 'administrativeAction_targetSnapshotValues' - Undocumented member.+--+-- 'targetVolumeValues', 'administrativeAction_targetVolumeValues' - Undocumented member.+newAdministrativeAction ::+  AdministrativeAction+newAdministrativeAction =+  AdministrativeAction'+    { administrativeActionType =+        Prelude.Nothing,+      failureDetails = Prelude.Nothing,+      progressPercent = Prelude.Nothing,+      requestTime = Prelude.Nothing,+      status = Prelude.Nothing,+      targetFileSystemValues = Prelude.Nothing,+      targetSnapshotValues = Prelude.Nothing,+      targetVolumeValues = Prelude.Nothing+    }++-- | Undocumented member.+administrativeAction_administrativeActionType :: Lens.Lens' AdministrativeAction (Prelude.Maybe AdministrativeActionType)+administrativeAction_administrativeActionType = Lens.lens (\AdministrativeAction' {administrativeActionType} -> administrativeActionType) (\s@AdministrativeAction' {} a -> s {administrativeActionType = a} :: AdministrativeAction)++-- | Undocumented member.+administrativeAction_failureDetails :: Lens.Lens' AdministrativeAction (Prelude.Maybe AdministrativeActionFailureDetails)+administrativeAction_failureDetails = Lens.lens (\AdministrativeAction' {failureDetails} -> failureDetails) (\s@AdministrativeAction' {} a -> s {failureDetails = a} :: AdministrativeAction)++-- | The percentage-complete status of a @STORAGE_OPTIMIZATION@+-- administrative action. Does not apply to any other administrative action+-- type.+administrativeAction_progressPercent :: Lens.Lens' AdministrativeAction (Prelude.Maybe Prelude.Natural)+administrativeAction_progressPercent = Lens.lens (\AdministrativeAction' {progressPercent} -> progressPercent) (\s@AdministrativeAction' {} a -> s {progressPercent = a} :: AdministrativeAction)++-- | The time that the administrative action request was received.+administrativeAction_requestTime :: Lens.Lens' AdministrativeAction (Prelude.Maybe Prelude.UTCTime)+administrativeAction_requestTime = Lens.lens (\AdministrativeAction' {requestTime} -> requestTime) (\s@AdministrativeAction' {} a -> s {requestTime = a} :: AdministrativeAction) Prelude.. Lens.mapping Data._Time++-- | Describes the status of the administrative action, as follows:+--+-- -   @FAILED@ - Amazon FSx failed to process the administrative action+--     successfully.+--+-- -   @IN_PROGRESS@ - Amazon FSx is processing the administrative action.+--+-- -   @PENDING@ - Amazon FSx is waiting to process the administrative+--     action.+--+-- -   @COMPLETED@ - Amazon FSx has finished processing the administrative+--     task.+--+-- -   @UPDATED_OPTIMIZING@ - For a storage-capacity increase update,+--     Amazon FSx has updated the file system with the new storage+--     capacity, and is now performing the storage-optimization process.+administrativeAction_status :: Lens.Lens' AdministrativeAction (Prelude.Maybe Status)+administrativeAction_status = Lens.lens (\AdministrativeAction' {status} -> status) (\s@AdministrativeAction' {} a -> s {status = a} :: AdministrativeAction)++-- | Describes the target value for the administration action, provided in+-- the @UpdateFileSystem@ operation. Returned for @FILE_SYSTEM_UPDATE@+-- administrative actions.+administrativeAction_targetFileSystemValues :: Lens.Lens' AdministrativeAction (Prelude.Maybe FileSystem)+administrativeAction_targetFileSystemValues = Lens.lens (\AdministrativeAction' {targetFileSystemValues} -> targetFileSystemValues) (\s@AdministrativeAction' {} a -> s {targetFileSystemValues = a} :: AdministrativeAction)++-- | Undocumented member.+administrativeAction_targetSnapshotValues :: Lens.Lens' AdministrativeAction (Prelude.Maybe Snapshot)+administrativeAction_targetSnapshotValues = Lens.lens (\AdministrativeAction' {targetSnapshotValues} -> targetSnapshotValues) (\s@AdministrativeAction' {} a -> s {targetSnapshotValues = a} :: AdministrativeAction)++-- | Undocumented member.+administrativeAction_targetVolumeValues :: Lens.Lens' AdministrativeAction (Prelude.Maybe Volume)+administrativeAction_targetVolumeValues = Lens.lens (\AdministrativeAction' {targetVolumeValues} -> targetVolumeValues) (\s@AdministrativeAction' {} a -> s {targetVolumeValues = a} :: AdministrativeAction)++instance Data.FromJSON AdministrativeAction where+  parseJSON =+    Data.withObject+      "AdministrativeAction"+      ( \x ->+          AdministrativeAction'+            Prelude.<$> (x Data..:? "AdministrativeActionType")+            Prelude.<*> (x Data..:? "FailureDetails")+            Prelude.<*> (x Data..:? "ProgressPercent")+            Prelude.<*> (x Data..:? "RequestTime")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "TargetFileSystemValues")+            Prelude.<*> (x Data..:? "TargetSnapshotValues")+            Prelude.<*> (x Data..:? "TargetVolumeValues")+      )++instance Prelude.Hashable AdministrativeAction where+  hashWithSalt _salt AdministrativeAction' {..} =+    _salt+      `Prelude.hashWithSalt` administrativeActionType+      `Prelude.hashWithSalt` failureDetails+      `Prelude.hashWithSalt` progressPercent+      `Prelude.hashWithSalt` requestTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` targetFileSystemValues+      `Prelude.hashWithSalt` targetSnapshotValues+      `Prelude.hashWithSalt` targetVolumeValues++instance Prelude.NFData AdministrativeAction where+  rnf AdministrativeAction' {..} =+    Prelude.rnf administrativeActionType+      `Prelude.seq` Prelude.rnf failureDetails+      `Prelude.seq` Prelude.rnf progressPercent+      `Prelude.seq` Prelude.rnf requestTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf targetFileSystemValues+      `Prelude.seq` Prelude.rnf targetSnapshotValues+      `Prelude.seq` Prelude.rnf targetVolumeValues
+ gen/Amazonka/FSx/Types/AdministrativeAction.hs-boot view
@@ -0,0 +1,31 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.AdministrativeAction+-- 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.AdministrativeAction where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data AdministrativeAction++instance Prelude.Eq AdministrativeAction++instance Prelude.Read AdministrativeAction++instance Prelude.Show AdministrativeAction++instance Prelude.Generic AdministrativeAction++instance Data.FromJSON AdministrativeAction++instance Prelude.NFData AdministrativeAction++instance Prelude.Hashable AdministrativeAction
+ gen/Amazonka/FSx/Types/AdministrativeActionFailureDetails.hs view
@@ -0,0 +1,83 @@+{-# 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.AdministrativeActionFailureDetails+-- 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.AdministrativeActionFailureDetails 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++-- | Provides information about a failed administrative action.+--+-- /See:/ 'newAdministrativeActionFailureDetails' smart constructor.+data AdministrativeActionFailureDetails = AdministrativeActionFailureDetails'+  { -- | Error message providing details about the failed administrative action.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdministrativeActionFailureDetails' 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:+--+-- 'message', 'administrativeActionFailureDetails_message' - Error message providing details about the failed administrative action.+newAdministrativeActionFailureDetails ::+  AdministrativeActionFailureDetails+newAdministrativeActionFailureDetails =+  AdministrativeActionFailureDetails'+    { message =+        Prelude.Nothing+    }++-- | Error message providing details about the failed administrative action.+administrativeActionFailureDetails_message :: Lens.Lens' AdministrativeActionFailureDetails (Prelude.Maybe Prelude.Text)+administrativeActionFailureDetails_message = Lens.lens (\AdministrativeActionFailureDetails' {message} -> message) (\s@AdministrativeActionFailureDetails' {} a -> s {message = a} :: AdministrativeActionFailureDetails)++instance+  Data.FromJSON+    AdministrativeActionFailureDetails+  where+  parseJSON =+    Data.withObject+      "AdministrativeActionFailureDetails"+      ( \x ->+          AdministrativeActionFailureDetails'+            Prelude.<$> (x Data..:? "Message")+      )++instance+  Prelude.Hashable+    AdministrativeActionFailureDetails+  where+  hashWithSalt+    _salt+    AdministrativeActionFailureDetails' {..} =+      _salt `Prelude.hashWithSalt` message++instance+  Prelude.NFData+    AdministrativeActionFailureDetails+  where+  rnf AdministrativeActionFailureDetails' {..} =+    Prelude.rnf message
+ gen/Amazonka/FSx/Types/AdministrativeActionType.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.AdministrativeActionType+-- 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.AdministrativeActionType+  ( AdministrativeActionType+      ( ..,+        AdministrativeActionType_FILE_SYSTEM_ALIAS_ASSOCIATION,+        AdministrativeActionType_FILE_SYSTEM_ALIAS_DISASSOCIATION,+        AdministrativeActionType_FILE_SYSTEM_UPDATE,+        AdministrativeActionType_RELEASE_NFS_V3_LOCKS,+        AdministrativeActionType_SNAPSHOT_UPDATE,+        AdministrativeActionType_STORAGE_OPTIMIZATION,+        AdministrativeActionType_VOLUME_RESTORE,+        AdministrativeActionType_VOLUME_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the type of administrative action, as follows:+--+-- -   @FILE_SYSTEM_UPDATE@ - A file system update administrative action+--     initiated from the Amazon FSx console, API (@UpdateFileSystem@), or+--     CLI (@update-file-system@).+--+-- -   @STORAGE_OPTIMIZATION@ - After the @FILE_SYSTEM_UPDATE@ task to+--     increase a file system\'s storage capacity has been completed+--     successfully, a @STORAGE_OPTIMIZATION@ task starts.+--+--     -   For Windows and ONTAP, storage optimization is the process of+--         migrating the file system data to newer larger disks.+--+--     -   For Lustre, storage optimization consists of rebalancing the+--         data across the existing and newly added file servers.+--+--     You can track the storage-optimization progress using the+--     @ProgressPercent@ property. When @STORAGE_OPTIMIZATION@ has been+--     completed successfully, the parent @FILE_SYSTEM_UPDATE@ action+--     status changes to @COMPLETED@. For more information, see+--     <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html Managing storage capacity>+--     in the /Amazon FSx for Windows File Server User Guide/,+--     <https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html Managing storage and throughput capacity>+--     in the /Amazon FSx for Lustre User Guide/, and+--     <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-storage-capacity.html Managing storage capacity and provisioned IOPS>+--     in the /Amazon FSx for NetApp ONTAP User Guide/.+--+-- -   @FILE_SYSTEM_ALIAS_ASSOCIATION@ - A file system update to associate+--     a new Domain Name System (DNS) alias with the file system. For more+--     information, see+--     <https://docs.aws.amazon.com/fsx/latest/APIReference/API_AssociateFileSystemAliases.html AssociateFileSystemAliases>.+--+-- -   @FILE_SYSTEM_ALIAS_DISASSOCIATION@ - A file system update to+--     disassociate a DNS alias from the file system. For more information,+--     see+--     <https://docs.aws.amazon.com/fsx/latest/APIReference/API_DisassociateFileSystemAliases.html DisassociateFileSystemAliases>.+--+-- -   @VOLUME_UPDATE@ - A volume update to an Amazon FSx for NetApp ONTAP+--     or Amazon FSx for OpenZFS volume initiated from the Amazon FSx+--     console, API (@UpdateVolume@), or CLI (@update-volume@).+--+-- -   @VOLUME_RESTORE@ - An Amazon FSx for OpenZFS volume is returned to+--     the state saved by the specified snapshot, initiated from an API+--     (@RestoreVolumeFromSnapshot@) or CLI+--     (@restore-volume-from-snapshot@).+--+-- -   @SNAPSHOT_UPDATE@ - A snapshot update to an Amazon FSx for OpenZFS+--     volume initiated from the Amazon FSx console, API+--     (@UpdateSnapshot@), or CLI (@update-snapshot@).+--+-- -   @RELEASE_NFS_V3_LOCKS@ - Tracks the release of Network File System+--     (NFS) V3 locks on an Amazon FSx for OpenZFS file system.+newtype AdministrativeActionType = AdministrativeActionType'+  { fromAdministrativeActionType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AdministrativeActionType_FILE_SYSTEM_ALIAS_ASSOCIATION :: AdministrativeActionType+pattern AdministrativeActionType_FILE_SYSTEM_ALIAS_ASSOCIATION = AdministrativeActionType' "FILE_SYSTEM_ALIAS_ASSOCIATION"++pattern AdministrativeActionType_FILE_SYSTEM_ALIAS_DISASSOCIATION :: AdministrativeActionType+pattern AdministrativeActionType_FILE_SYSTEM_ALIAS_DISASSOCIATION = AdministrativeActionType' "FILE_SYSTEM_ALIAS_DISASSOCIATION"++pattern AdministrativeActionType_FILE_SYSTEM_UPDATE :: AdministrativeActionType+pattern AdministrativeActionType_FILE_SYSTEM_UPDATE = AdministrativeActionType' "FILE_SYSTEM_UPDATE"++pattern AdministrativeActionType_RELEASE_NFS_V3_LOCKS :: AdministrativeActionType+pattern AdministrativeActionType_RELEASE_NFS_V3_LOCKS = AdministrativeActionType' "RELEASE_NFS_V3_LOCKS"++pattern AdministrativeActionType_SNAPSHOT_UPDATE :: AdministrativeActionType+pattern AdministrativeActionType_SNAPSHOT_UPDATE = AdministrativeActionType' "SNAPSHOT_UPDATE"++pattern AdministrativeActionType_STORAGE_OPTIMIZATION :: AdministrativeActionType+pattern AdministrativeActionType_STORAGE_OPTIMIZATION = AdministrativeActionType' "STORAGE_OPTIMIZATION"++pattern AdministrativeActionType_VOLUME_RESTORE :: AdministrativeActionType+pattern AdministrativeActionType_VOLUME_RESTORE = AdministrativeActionType' "VOLUME_RESTORE"++pattern AdministrativeActionType_VOLUME_UPDATE :: AdministrativeActionType+pattern AdministrativeActionType_VOLUME_UPDATE = AdministrativeActionType' "VOLUME_UPDATE"++{-# COMPLETE+  AdministrativeActionType_FILE_SYSTEM_ALIAS_ASSOCIATION,+  AdministrativeActionType_FILE_SYSTEM_ALIAS_DISASSOCIATION,+  AdministrativeActionType_FILE_SYSTEM_UPDATE,+  AdministrativeActionType_RELEASE_NFS_V3_LOCKS,+  AdministrativeActionType_SNAPSHOT_UPDATE,+  AdministrativeActionType_STORAGE_OPTIMIZATION,+  AdministrativeActionType_VOLUME_RESTORE,+  AdministrativeActionType_VOLUME_UPDATE,+  AdministrativeActionType'+  #-}
+ gen/Amazonka/FSx/Types/Alias.hs view
@@ -0,0 +1,180 @@+{-# 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.Alias+-- 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.Alias 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.AliasLifecycle+import qualified Amazonka.Prelude as Prelude++-- | A DNS alias that is associated with the file system. You can use a DNS+-- alias to access a file system using user-defined DNS names, in addition+-- to the default DNS name that Amazon FSx assigns to the file system. For+-- more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html DNS aliases>+-- in the /FSx for Windows File Server User Guide/.+--+-- /See:/ 'newAlias' smart constructor.+data Alias = Alias'+  { -- | Describes the state of the DNS alias.+    --+    -- -   AVAILABLE - The DNS alias is associated with an Amazon FSx file+    --     system.+    --+    -- -   CREATING - Amazon FSx is creating the DNS alias and associating it+    --     with the file system.+    --+    -- -   CREATE_FAILED - Amazon FSx was unable to associate the DNS alias+    --     with the file system.+    --+    -- -   DELETING - Amazon FSx is disassociating the DNS alias from the file+    --     system and deleting it.+    --+    -- -   DELETE_FAILED - Amazon FSx was unable to disassociate the DNS alias+    --     from the file system.+    lifecycle :: Prelude.Maybe AliasLifecycle,+    -- | The name of the DNS alias. The alias name has to meet the following+    -- requirements:+    --+    -- -   Formatted as a fully-qualified domain name (FQDN),+    --     @hostname.domain@, for example, @accounting.example.com@.+    --+    -- -   Can contain alphanumeric characters, the underscore (_), and the+    --     hyphen (-).+    --+    -- -   Cannot start or end with a hyphen.+    --+    -- -   Can start with a numeric.+    --+    -- For DNS names, Amazon FSx stores alphabetic characters as lowercase+    -- letters (a-z), regardless of how you specify them: as uppercase letters,+    -- lowercase letters, or the corresponding letters in escape codes.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Alias' 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:+--+-- 'lifecycle', 'alias_lifecycle' - Describes the state of the DNS alias.+--+-- -   AVAILABLE - The DNS alias is associated with an Amazon FSx file+--     system.+--+-- -   CREATING - Amazon FSx is creating the DNS alias and associating it+--     with the file system.+--+-- -   CREATE_FAILED - Amazon FSx was unable to associate the DNS alias+--     with the file system.+--+-- -   DELETING - Amazon FSx is disassociating the DNS alias from the file+--     system and deleting it.+--+-- -   DELETE_FAILED - Amazon FSx was unable to disassociate the DNS alias+--     from the file system.+--+-- 'name', 'alias_name' - The name of the DNS alias. The alias name has to meet the following+-- requirements:+--+-- -   Formatted as a fully-qualified domain name (FQDN),+--     @hostname.domain@, for example, @accounting.example.com@.+--+-- -   Can contain alphanumeric characters, the underscore (_), and the+--     hyphen (-).+--+-- -   Cannot start or end with a hyphen.+--+-- -   Can start with a numeric.+--+-- For DNS names, Amazon FSx stores alphabetic characters as lowercase+-- letters (a-z), regardless of how you specify them: as uppercase letters,+-- lowercase letters, or the corresponding letters in escape codes.+newAlias ::+  Alias+newAlias =+  Alias'+    { lifecycle = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | Describes the state of the DNS alias.+--+-- -   AVAILABLE - The DNS alias is associated with an Amazon FSx file+--     system.+--+-- -   CREATING - Amazon FSx is creating the DNS alias and associating it+--     with the file system.+--+-- -   CREATE_FAILED - Amazon FSx was unable to associate the DNS alias+--     with the file system.+--+-- -   DELETING - Amazon FSx is disassociating the DNS alias from the file+--     system and deleting it.+--+-- -   DELETE_FAILED - Amazon FSx was unable to disassociate the DNS alias+--     from the file system.+alias_lifecycle :: Lens.Lens' Alias (Prelude.Maybe AliasLifecycle)+alias_lifecycle = Lens.lens (\Alias' {lifecycle} -> lifecycle) (\s@Alias' {} a -> s {lifecycle = a} :: Alias)++-- | The name of the DNS alias. The alias name has to meet the following+-- requirements:+--+-- -   Formatted as a fully-qualified domain name (FQDN),+--     @hostname.domain@, for example, @accounting.example.com@.+--+-- -   Can contain alphanumeric characters, the underscore (_), and the+--     hyphen (-).+--+-- -   Cannot start or end with a hyphen.+--+-- -   Can start with a numeric.+--+-- For DNS names, Amazon FSx stores alphabetic characters as lowercase+-- letters (a-z), regardless of how you specify them: as uppercase letters,+-- lowercase letters, or the corresponding letters in escape codes.+alias_name :: Lens.Lens' Alias (Prelude.Maybe Prelude.Text)+alias_name = Lens.lens (\Alias' {name} -> name) (\s@Alias' {} a -> s {name = a} :: Alias)++instance Data.FromJSON Alias where+  parseJSON =+    Data.withObject+      "Alias"+      ( \x ->+          Alias'+            Prelude.<$> (x Data..:? "Lifecycle")+            Prelude.<*> (x Data..:? "Name")+      )++instance Prelude.Hashable Alias where+  hashWithSalt _salt Alias' {..} =+    _salt+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` name++instance Prelude.NFData Alias where+  rnf Alias' {..} =+    Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/FSx/Types/AliasLifecycle.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.AliasLifecycle+-- 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.AliasLifecycle+  ( AliasLifecycle+      ( ..,+        AliasLifecycle_AVAILABLE,+        AliasLifecycle_CREATE_FAILED,+        AliasLifecycle_CREATING,+        AliasLifecycle_DELETE_FAILED,+        AliasLifecycle_DELETING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AliasLifecycle = AliasLifecycle'+  { fromAliasLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AliasLifecycle_AVAILABLE :: AliasLifecycle+pattern AliasLifecycle_AVAILABLE = AliasLifecycle' "AVAILABLE"++pattern AliasLifecycle_CREATE_FAILED :: AliasLifecycle+pattern AliasLifecycle_CREATE_FAILED = AliasLifecycle' "CREATE_FAILED"++pattern AliasLifecycle_CREATING :: AliasLifecycle+pattern AliasLifecycle_CREATING = AliasLifecycle' "CREATING"++pattern AliasLifecycle_DELETE_FAILED :: AliasLifecycle+pattern AliasLifecycle_DELETE_FAILED = AliasLifecycle' "DELETE_FAILED"++pattern AliasLifecycle_DELETING :: AliasLifecycle+pattern AliasLifecycle_DELETING = AliasLifecycle' "DELETING"++{-# COMPLETE+  AliasLifecycle_AVAILABLE,+  AliasLifecycle_CREATE_FAILED,+  AliasLifecycle_CREATING,+  AliasLifecycle_DELETE_FAILED,+  AliasLifecycle_DELETING,+  AliasLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/AutoExportPolicy.hs view
@@ -0,0 +1,120 @@+{-# 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.AutoExportPolicy+-- 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.AutoExportPolicy 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.EventType+import qualified Amazonka.Prelude as Prelude++-- | Describes a data repository association\'s automatic export policy. The+-- @AutoExportPolicy@ defines the types of updated objects on the file+-- system that will be automatically exported to the data repository. As+-- you create, modify, or delete files, Amazon FSx for Lustre automatically+-- exports the defined changes asynchronously once your application+-- finishes modifying the file.+--+-- This @AutoExportPolicy@ is supported only for Amazon FSx for Lustre file+-- systems with the @Persistent_2@ deployment type.+--+-- /See:/ 'newAutoExportPolicy' smart constructor.+data AutoExportPolicy = AutoExportPolicy'+  { -- | The @AutoExportPolicy@ can have the following event values:+    --+    -- -   @NEW@ - New files and directories are automatically exported to the+    --     data repository as they are added to the file system.+    --+    -- -   @CHANGED@ - Changes to files and directories on the file system are+    --     automatically exported to the data repository.+    --+    -- -   @DELETED@ - Files and directories are automatically deleted on the+    --     data repository when they are deleted on the file system.+    --+    -- You can define any combination of event types for your+    -- @AutoExportPolicy@.+    events :: Prelude.Maybe [EventType]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoExportPolicy' 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:+--+-- 'events', 'autoExportPolicy_events' - The @AutoExportPolicy@ can have the following event values:+--+-- -   @NEW@ - New files and directories are automatically exported to the+--     data repository as they are added to the file system.+--+-- -   @CHANGED@ - Changes to files and directories on the file system are+--     automatically exported to the data repository.+--+-- -   @DELETED@ - Files and directories are automatically deleted on the+--     data repository when they are deleted on the file system.+--+-- You can define any combination of event types for your+-- @AutoExportPolicy@.+newAutoExportPolicy ::+  AutoExportPolicy+newAutoExportPolicy =+  AutoExportPolicy' {events = Prelude.Nothing}++-- | The @AutoExportPolicy@ can have the following event values:+--+-- -   @NEW@ - New files and directories are automatically exported to the+--     data repository as they are added to the file system.+--+-- -   @CHANGED@ - Changes to files and directories on the file system are+--     automatically exported to the data repository.+--+-- -   @DELETED@ - Files and directories are automatically deleted on the+--     data repository when they are deleted on the file system.+--+-- You can define any combination of event types for your+-- @AutoExportPolicy@.+autoExportPolicy_events :: Lens.Lens' AutoExportPolicy (Prelude.Maybe [EventType])+autoExportPolicy_events = Lens.lens (\AutoExportPolicy' {events} -> events) (\s@AutoExportPolicy' {} a -> s {events = a} :: AutoExportPolicy) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AutoExportPolicy where+  parseJSON =+    Data.withObject+      "AutoExportPolicy"+      ( \x ->+          AutoExportPolicy'+            Prelude.<$> (x Data..:? "Events" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AutoExportPolicy where+  hashWithSalt _salt AutoExportPolicy' {..} =+    _salt `Prelude.hashWithSalt` events++instance Prelude.NFData AutoExportPolicy where+  rnf AutoExportPolicy' {..} = Prelude.rnf events++instance Data.ToJSON AutoExportPolicy where+  toJSON AutoExportPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Events" Data..=) Prelude.<$> events]+      )
+ gen/Amazonka/FSx/Types/AutoImportPolicy.hs view
@@ -0,0 +1,124 @@+{-# 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.AutoImportPolicy+-- 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.AutoImportPolicy 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.EventType+import qualified Amazonka.Prelude as Prelude++-- | Describes the data repository association\'s automatic import policy.+-- The AutoImportPolicy defines how Amazon FSx keeps your file metadata and+-- directory listings up to date by importing changes to your Amazon FSx+-- for Lustre file system as you modify objects in a linked S3 bucket.+--+-- The @AutoImportPolicy@ is supported only for Amazon FSx for Lustre file+-- systems with the @Persistent_2@ deployment type.+--+-- /See:/ 'newAutoImportPolicy' smart constructor.+data AutoImportPolicy = AutoImportPolicy'+  { -- | The @AutoImportPolicy@ can have the following event values:+    --+    -- -   @NEW@ - Amazon FSx automatically imports metadata of files added to+    --     the linked S3 bucket that do not currently exist in the FSx file+    --     system.+    --+    -- -   @CHANGED@ - Amazon FSx automatically updates file metadata and+    --     invalidates existing file content on the file system as files change+    --     in the data repository.+    --+    -- -   @DELETED@ - Amazon FSx automatically deletes files on the file+    --     system as corresponding files are deleted in the data repository.+    --+    -- You can define any combination of event types for your+    -- @AutoImportPolicy@.+    events :: Prelude.Maybe [EventType]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoImportPolicy' 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:+--+-- 'events', 'autoImportPolicy_events' - The @AutoImportPolicy@ can have the following event values:+--+-- -   @NEW@ - Amazon FSx automatically imports metadata of files added to+--     the linked S3 bucket that do not currently exist in the FSx file+--     system.+--+-- -   @CHANGED@ - Amazon FSx automatically updates file metadata and+--     invalidates existing file content on the file system as files change+--     in the data repository.+--+-- -   @DELETED@ - Amazon FSx automatically deletes files on the file+--     system as corresponding files are deleted in the data repository.+--+-- You can define any combination of event types for your+-- @AutoImportPolicy@.+newAutoImportPolicy ::+  AutoImportPolicy+newAutoImportPolicy =+  AutoImportPolicy' {events = Prelude.Nothing}++-- | The @AutoImportPolicy@ can have the following event values:+--+-- -   @NEW@ - Amazon FSx automatically imports metadata of files added to+--     the linked S3 bucket that do not currently exist in the FSx file+--     system.+--+-- -   @CHANGED@ - Amazon FSx automatically updates file metadata and+--     invalidates existing file content on the file system as files change+--     in the data repository.+--+-- -   @DELETED@ - Amazon FSx automatically deletes files on the file+--     system as corresponding files are deleted in the data repository.+--+-- You can define any combination of event types for your+-- @AutoImportPolicy@.+autoImportPolicy_events :: Lens.Lens' AutoImportPolicy (Prelude.Maybe [EventType])+autoImportPolicy_events = Lens.lens (\AutoImportPolicy' {events} -> events) (\s@AutoImportPolicy' {} a -> s {events = a} :: AutoImportPolicy) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AutoImportPolicy where+  parseJSON =+    Data.withObject+      "AutoImportPolicy"+      ( \x ->+          AutoImportPolicy'+            Prelude.<$> (x Data..:? "Events" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable AutoImportPolicy where+  hashWithSalt _salt AutoImportPolicy' {..} =+    _salt `Prelude.hashWithSalt` events++instance Prelude.NFData AutoImportPolicy where+  rnf AutoImportPolicy' {..} = Prelude.rnf events++instance Data.ToJSON AutoImportPolicy where+  toJSON AutoImportPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Events" Data..=) Prelude.<$> events]+      )
+ gen/Amazonka/FSx/Types/AutoImportPolicyType.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.AutoImportPolicyType+-- 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.AutoImportPolicyType+  ( AutoImportPolicyType+      ( ..,+        AutoImportPolicyType_NEW,+        AutoImportPolicyType_NEW_CHANGED,+        AutoImportPolicyType_NEW_CHANGED_DELETED,+        AutoImportPolicyType_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AutoImportPolicyType = AutoImportPolicyType'+  { fromAutoImportPolicyType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AutoImportPolicyType_NEW :: AutoImportPolicyType+pattern AutoImportPolicyType_NEW = AutoImportPolicyType' "NEW"++pattern AutoImportPolicyType_NEW_CHANGED :: AutoImportPolicyType+pattern AutoImportPolicyType_NEW_CHANGED = AutoImportPolicyType' "NEW_CHANGED"++pattern AutoImportPolicyType_NEW_CHANGED_DELETED :: AutoImportPolicyType+pattern AutoImportPolicyType_NEW_CHANGED_DELETED = AutoImportPolicyType' "NEW_CHANGED_DELETED"++pattern AutoImportPolicyType_NONE :: AutoImportPolicyType+pattern AutoImportPolicyType_NONE = AutoImportPolicyType' "NONE"++{-# COMPLETE+  AutoImportPolicyType_NEW,+  AutoImportPolicyType_NEW_CHANGED,+  AutoImportPolicyType_NEW_CHANGED_DELETED,+  AutoImportPolicyType_NONE,+  AutoImportPolicyType'+  #-}
+ gen/Amazonka/FSx/Types/Backup.hs view
@@ -0,0 +1,336 @@+{-# 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.Backup+-- 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.Backup 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.ActiveDirectoryBackupAttributes+import Amazonka.FSx.Types.BackupFailureDetails+import Amazonka.FSx.Types.BackupLifecycle+import Amazonka.FSx.Types.BackupType+import Amazonka.FSx.Types.FileSystem+import Amazonka.FSx.Types.ResourceType+import Amazonka.FSx.Types.Tag+import Amazonka.FSx.Types.Volume+import qualified Amazonka.Prelude as Prelude++-- | A backup of an Amazon FSx for Windows File Server, Amazon FSx for Lustre+-- file system, Amazon FSx for NetApp ONTAP volume, or Amazon FSx for+-- OpenZFS file system.+--+-- /See:/ 'newBackup' smart constructor.+data Backup = Backup'+  { -- | The configuration of the self-managed Microsoft Active Directory+    -- directory to which the Windows File Server instance is joined.+    directoryInformation :: Prelude.Maybe ActiveDirectoryBackupAttributes,+    -- | Details explaining any failures that occurred when creating a backup.+    failureDetails :: Prelude.Maybe BackupFailureDetails,+    -- | The ID of the Key Management Service (KMS) key used to encrypt the+    -- backup of the Amazon FSx file system\'s data at rest.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    ownerId :: Prelude.Maybe Prelude.Text,+    progressPercent :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) for the backup resource.+    resourceARN :: Prelude.Maybe Prelude.Text,+    -- | Specifies the resource type that\'s backed up.+    resourceType :: Prelude.Maybe ResourceType,+    sourceBackupId :: Prelude.Maybe Prelude.Text,+    -- | The source Region of the backup. Specifies the Region from where this+    -- backup is copied.+    sourceBackupRegion :: Prelude.Maybe Prelude.Text,+    -- | The tags associated with a particular file system.+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    volume :: Prelude.Maybe Volume,+    -- | The ID of the backup.+    backupId :: Prelude.Text,+    -- | The lifecycle status of the backup.+    --+    -- -   @AVAILABLE@ - The backup is fully available.+    --+    -- -   @PENDING@ - For user-initiated backups on Lustre file systems only;+    --     Amazon FSx hasn\'t started creating the backup.+    --+    -- -   @CREATING@ - Amazon FSx is creating the backup.+    --+    -- -   @TRANSFERRING@ - For user-initiated backups on Lustre file systems+    --     only; Amazon FSx is transferring the backup to Amazon S3.+    --+    -- -   @COPYING@ - Amazon FSx is copying the backup.+    --+    -- -   @DELETED@ - Amazon FSx deleted the backup and it\'s no longer+    --     available.+    --+    -- -   @FAILED@ - Amazon FSx couldn\'t finish the backup.+    lifecycle :: BackupLifecycle,+    -- | The type of the file-system backup.+    type' :: BackupType,+    -- | The time when a particular backup was created.+    creationTime :: Data.POSIX,+    -- | The metadata of the file system associated with the backup. This+    -- metadata is persisted even if the file system is deleted.+    fileSystem :: FileSystem+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Backup' 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:+--+-- 'directoryInformation', 'backup_directoryInformation' - The configuration of the self-managed Microsoft Active Directory+-- directory to which the Windows File Server instance is joined.+--+-- 'failureDetails', 'backup_failureDetails' - Details explaining any failures that occurred when creating a backup.+--+-- 'kmsKeyId', 'backup_kmsKeyId' - The ID of the Key Management Service (KMS) key used to encrypt the+-- backup of the Amazon FSx file system\'s data at rest.+--+-- 'ownerId', 'backup_ownerId' - Undocumented member.+--+-- 'progressPercent', 'backup_progressPercent' - Undocumented member.+--+-- 'resourceARN', 'backup_resourceARN' - The Amazon Resource Name (ARN) for the backup resource.+--+-- 'resourceType', 'backup_resourceType' - Specifies the resource type that\'s backed up.+--+-- 'sourceBackupId', 'backup_sourceBackupId' - Undocumented member.+--+-- 'sourceBackupRegion', 'backup_sourceBackupRegion' - The source Region of the backup. Specifies the Region from where this+-- backup is copied.+--+-- 'tags', 'backup_tags' - The tags associated with a particular file system.+--+-- 'volume', 'backup_volume' - Undocumented member.+--+-- 'backupId', 'backup_backupId' - The ID of the backup.+--+-- 'lifecycle', 'backup_lifecycle' - The lifecycle status of the backup.+--+-- -   @AVAILABLE@ - The backup is fully available.+--+-- -   @PENDING@ - For user-initiated backups on Lustre file systems only;+--     Amazon FSx hasn\'t started creating the backup.+--+-- -   @CREATING@ - Amazon FSx is creating the backup.+--+-- -   @TRANSFERRING@ - For user-initiated backups on Lustre file systems+--     only; Amazon FSx is transferring the backup to Amazon S3.+--+-- -   @COPYING@ - Amazon FSx is copying the backup.+--+-- -   @DELETED@ - Amazon FSx deleted the backup and it\'s no longer+--     available.+--+-- -   @FAILED@ - Amazon FSx couldn\'t finish the backup.+--+-- 'type'', 'backup_type' - The type of the file-system backup.+--+-- 'creationTime', 'backup_creationTime' - The time when a particular backup was created.+--+-- 'fileSystem', 'backup_fileSystem' - The metadata of the file system associated with the backup. This+-- metadata is persisted even if the file system is deleted.+newBackup ::+  -- | 'backupId'+  Prelude.Text ->+  -- | 'lifecycle'+  BackupLifecycle ->+  -- | 'type''+  BackupType ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'fileSystem'+  FileSystem ->+  Backup+newBackup+  pBackupId_+  pLifecycle_+  pType_+  pCreationTime_+  pFileSystem_ =+    Backup'+      { directoryInformation = Prelude.Nothing,+        failureDetails = Prelude.Nothing,+        kmsKeyId = Prelude.Nothing,+        ownerId = Prelude.Nothing,+        progressPercent = Prelude.Nothing,+        resourceARN = Prelude.Nothing,+        resourceType = Prelude.Nothing,+        sourceBackupId = Prelude.Nothing,+        sourceBackupRegion = Prelude.Nothing,+        tags = Prelude.Nothing,+        volume = Prelude.Nothing,+        backupId = pBackupId_,+        lifecycle = pLifecycle_,+        type' = pType_,+        creationTime = Data._Time Lens.# pCreationTime_,+        fileSystem = pFileSystem_+      }++-- | The configuration of the self-managed Microsoft Active Directory+-- directory to which the Windows File Server instance is joined.+backup_directoryInformation :: Lens.Lens' Backup (Prelude.Maybe ActiveDirectoryBackupAttributes)+backup_directoryInformation = Lens.lens (\Backup' {directoryInformation} -> directoryInformation) (\s@Backup' {} a -> s {directoryInformation = a} :: Backup)++-- | Details explaining any failures that occurred when creating a backup.+backup_failureDetails :: Lens.Lens' Backup (Prelude.Maybe BackupFailureDetails)+backup_failureDetails = Lens.lens (\Backup' {failureDetails} -> failureDetails) (\s@Backup' {} a -> s {failureDetails = a} :: Backup)++-- | The ID of the Key Management Service (KMS) key used to encrypt the+-- backup of the Amazon FSx file system\'s data at rest.+backup_kmsKeyId :: Lens.Lens' Backup (Prelude.Maybe Prelude.Text)+backup_kmsKeyId = Lens.lens (\Backup' {kmsKeyId} -> kmsKeyId) (\s@Backup' {} a -> s {kmsKeyId = a} :: Backup)++-- | Undocumented member.+backup_ownerId :: Lens.Lens' Backup (Prelude.Maybe Prelude.Text)+backup_ownerId = Lens.lens (\Backup' {ownerId} -> ownerId) (\s@Backup' {} a -> s {ownerId = a} :: Backup)++-- | Undocumented member.+backup_progressPercent :: Lens.Lens' Backup (Prelude.Maybe Prelude.Natural)+backup_progressPercent = Lens.lens (\Backup' {progressPercent} -> progressPercent) (\s@Backup' {} a -> s {progressPercent = a} :: Backup)++-- | The Amazon Resource Name (ARN) for the backup resource.+backup_resourceARN :: Lens.Lens' Backup (Prelude.Maybe Prelude.Text)+backup_resourceARN = Lens.lens (\Backup' {resourceARN} -> resourceARN) (\s@Backup' {} a -> s {resourceARN = a} :: Backup)++-- | Specifies the resource type that\'s backed up.+backup_resourceType :: Lens.Lens' Backup (Prelude.Maybe ResourceType)+backup_resourceType = Lens.lens (\Backup' {resourceType} -> resourceType) (\s@Backup' {} a -> s {resourceType = a} :: Backup)++-- | Undocumented member.+backup_sourceBackupId :: Lens.Lens' Backup (Prelude.Maybe Prelude.Text)+backup_sourceBackupId = Lens.lens (\Backup' {sourceBackupId} -> sourceBackupId) (\s@Backup' {} a -> s {sourceBackupId = a} :: Backup)++-- | The source Region of the backup. Specifies the Region from where this+-- backup is copied.+backup_sourceBackupRegion :: Lens.Lens' Backup (Prelude.Maybe Prelude.Text)+backup_sourceBackupRegion = Lens.lens (\Backup' {sourceBackupRegion} -> sourceBackupRegion) (\s@Backup' {} a -> s {sourceBackupRegion = a} :: Backup)++-- | The tags associated with a particular file system.+backup_tags :: Lens.Lens' Backup (Prelude.Maybe (Prelude.NonEmpty Tag))+backup_tags = Lens.lens (\Backup' {tags} -> tags) (\s@Backup' {} a -> s {tags = a} :: Backup) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+backup_volume :: Lens.Lens' Backup (Prelude.Maybe Volume)+backup_volume = Lens.lens (\Backup' {volume} -> volume) (\s@Backup' {} a -> s {volume = a} :: Backup)++-- | The ID of the backup.+backup_backupId :: Lens.Lens' Backup Prelude.Text+backup_backupId = Lens.lens (\Backup' {backupId} -> backupId) (\s@Backup' {} a -> s {backupId = a} :: Backup)++-- | The lifecycle status of the backup.+--+-- -   @AVAILABLE@ - The backup is fully available.+--+-- -   @PENDING@ - For user-initiated backups on Lustre file systems only;+--     Amazon FSx hasn\'t started creating the backup.+--+-- -   @CREATING@ - Amazon FSx is creating the backup.+--+-- -   @TRANSFERRING@ - For user-initiated backups on Lustre file systems+--     only; Amazon FSx is transferring the backup to Amazon S3.+--+-- -   @COPYING@ - Amazon FSx is copying the backup.+--+-- -   @DELETED@ - Amazon FSx deleted the backup and it\'s no longer+--     available.+--+-- -   @FAILED@ - Amazon FSx couldn\'t finish the backup.+backup_lifecycle :: Lens.Lens' Backup BackupLifecycle+backup_lifecycle = Lens.lens (\Backup' {lifecycle} -> lifecycle) (\s@Backup' {} a -> s {lifecycle = a} :: Backup)++-- | The type of the file-system backup.+backup_type :: Lens.Lens' Backup BackupType+backup_type = Lens.lens (\Backup' {type'} -> type') (\s@Backup' {} a -> s {type' = a} :: Backup)++-- | The time when a particular backup was created.+backup_creationTime :: Lens.Lens' Backup Prelude.UTCTime+backup_creationTime = Lens.lens (\Backup' {creationTime} -> creationTime) (\s@Backup' {} a -> s {creationTime = a} :: Backup) Prelude.. Data._Time++-- | The metadata of the file system associated with the backup. This+-- metadata is persisted even if the file system is deleted.+backup_fileSystem :: Lens.Lens' Backup FileSystem+backup_fileSystem = Lens.lens (\Backup' {fileSystem} -> fileSystem) (\s@Backup' {} a -> s {fileSystem = a} :: Backup)++instance Data.FromJSON Backup where+  parseJSON =+    Data.withObject+      "Backup"+      ( \x ->+          Backup'+            Prelude.<$> (x Data..:? "DirectoryInformation")+            Prelude.<*> (x Data..:? "FailureDetails")+            Prelude.<*> (x Data..:? "KmsKeyId")+            Prelude.<*> (x Data..:? "OwnerId")+            Prelude.<*> (x Data..:? "ProgressPercent")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "ResourceType")+            Prelude.<*> (x Data..:? "SourceBackupId")+            Prelude.<*> (x Data..:? "SourceBackupRegion")+            Prelude.<*> (x Data..:? "Tags")+            Prelude.<*> (x Data..:? "Volume")+            Prelude.<*> (x Data..: "BackupId")+            Prelude.<*> (x Data..: "Lifecycle")+            Prelude.<*> (x Data..: "Type")+            Prelude.<*> (x Data..: "CreationTime")+            Prelude.<*> (x Data..: "FileSystem")+      )++instance Prelude.Hashable Backup where+  hashWithSalt _salt Backup' {..} =+    _salt+      `Prelude.hashWithSalt` directoryInformation+      `Prelude.hashWithSalt` failureDetails+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` ownerId+      `Prelude.hashWithSalt` progressPercent+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` sourceBackupId+      `Prelude.hashWithSalt` sourceBackupRegion+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` volume+      `Prelude.hashWithSalt` backupId+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` fileSystem++instance Prelude.NFData Backup where+  rnf Backup' {..} =+    Prelude.rnf directoryInformation+      `Prelude.seq` Prelude.rnf failureDetails+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf ownerId+      `Prelude.seq` Prelude.rnf progressPercent+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf sourceBackupId+      `Prelude.seq` Prelude.rnf sourceBackupRegion+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf volume+      `Prelude.seq` Prelude.rnf backupId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf fileSystem
+ gen/Amazonka/FSx/Types/BackupFailureDetails.hs view
@@ -0,0 +1,69 @@+{-# 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.BackupFailureDetails+-- 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.BackupFailureDetails 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++-- | If backup creation fails, this structure contains the details of that+-- failure.+--+-- /See:/ 'newBackupFailureDetails' smart constructor.+data BackupFailureDetails = BackupFailureDetails'+  { -- | A message describing the backup-creation failure.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BackupFailureDetails' 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:+--+-- 'message', 'backupFailureDetails_message' - A message describing the backup-creation failure.+newBackupFailureDetails ::+  BackupFailureDetails+newBackupFailureDetails =+  BackupFailureDetails' {message = Prelude.Nothing}++-- | A message describing the backup-creation failure.+backupFailureDetails_message :: Lens.Lens' BackupFailureDetails (Prelude.Maybe Prelude.Text)+backupFailureDetails_message = Lens.lens (\BackupFailureDetails' {message} -> message) (\s@BackupFailureDetails' {} a -> s {message = a} :: BackupFailureDetails)++instance Data.FromJSON BackupFailureDetails where+  parseJSON =+    Data.withObject+      "BackupFailureDetails"+      ( \x ->+          BackupFailureDetails'+            Prelude.<$> (x Data..:? "Message")+      )++instance Prelude.Hashable BackupFailureDetails where+  hashWithSalt _salt BackupFailureDetails' {..} =+    _salt `Prelude.hashWithSalt` message++instance Prelude.NFData BackupFailureDetails where+  rnf BackupFailureDetails' {..} = Prelude.rnf message
+ gen/Amazonka/FSx/Types/BackupLifecycle.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.BackupLifecycle+-- 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.BackupLifecycle+  ( BackupLifecycle+      ( ..,+        BackupLifecycle_AVAILABLE,+        BackupLifecycle_COPYING,+        BackupLifecycle_CREATING,+        BackupLifecycle_DELETED,+        BackupLifecycle_FAILED,+        BackupLifecycle_PENDING,+        BackupLifecycle_TRANSFERRING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The lifecycle status of the backup.+--+-- -   @AVAILABLE@ - The backup is fully available.+--+-- -   @PENDING@ - For user-initiated backups on Lustre file systems only;+--     Amazon FSx hasn\'t started creating the backup.+--+-- -   @CREATING@ - Amazon FSx is creating the new user-initiated backup.+--+-- -   @TRANSFERRING@ - For user-initiated backups on Lustre file systems+--     only; Amazon FSx is backing up the file system.+--+-- -   @COPYING@ - Amazon FSx is copying the backup.+--+-- -   @DELETED@ - Amazon FSx deleted the backup and it\'s no longer+--     available.+--+-- -   @FAILED@ - Amazon FSx couldn\'t finish the backup.+newtype BackupLifecycle = BackupLifecycle'+  { fromBackupLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BackupLifecycle_AVAILABLE :: BackupLifecycle+pattern BackupLifecycle_AVAILABLE = BackupLifecycle' "AVAILABLE"++pattern BackupLifecycle_COPYING :: BackupLifecycle+pattern BackupLifecycle_COPYING = BackupLifecycle' "COPYING"++pattern BackupLifecycle_CREATING :: BackupLifecycle+pattern BackupLifecycle_CREATING = BackupLifecycle' "CREATING"++pattern BackupLifecycle_DELETED :: BackupLifecycle+pattern BackupLifecycle_DELETED = BackupLifecycle' "DELETED"++pattern BackupLifecycle_FAILED :: BackupLifecycle+pattern BackupLifecycle_FAILED = BackupLifecycle' "FAILED"++pattern BackupLifecycle_PENDING :: BackupLifecycle+pattern BackupLifecycle_PENDING = BackupLifecycle' "PENDING"++pattern BackupLifecycle_TRANSFERRING :: BackupLifecycle+pattern BackupLifecycle_TRANSFERRING = BackupLifecycle' "TRANSFERRING"++{-# COMPLETE+  BackupLifecycle_AVAILABLE,+  BackupLifecycle_COPYING,+  BackupLifecycle_CREATING,+  BackupLifecycle_DELETED,+  BackupLifecycle_FAILED,+  BackupLifecycle_PENDING,+  BackupLifecycle_TRANSFERRING,+  BackupLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/BackupType.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.BackupType+-- 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.BackupType+  ( BackupType+      ( ..,+        BackupType_AUTOMATIC,+        BackupType_AWS_BACKUP,+        BackupType_USER_INITIATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of the backup.+newtype BackupType = BackupType'+  { fromBackupType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BackupType_AUTOMATIC :: BackupType+pattern BackupType_AUTOMATIC = BackupType' "AUTOMATIC"++pattern BackupType_AWS_BACKUP :: BackupType+pattern BackupType_AWS_BACKUP = BackupType' "AWS_BACKUP"++pattern BackupType_USER_INITIATED :: BackupType+pattern BackupType_USER_INITIATED = BackupType' "USER_INITIATED"++{-# COMPLETE+  BackupType_AUTOMATIC,+  BackupType_AWS_BACKUP,+  BackupType_USER_INITIATED,+  BackupType'+  #-}
+ gen/Amazonka/FSx/Types/CompletionReport.hs view
@@ -0,0 +1,185 @@+{-# 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.CompletionReport+-- 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.CompletionReport 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.ReportFormat+import Amazonka.FSx.Types.ReportScope+import qualified Amazonka.Prelude as Prelude++-- | Provides a report detailing the data repository task results of the+-- files processed that match the criteria specified in the report @Scope@+-- parameter. FSx delivers the report to the file system\'s linked data+-- repository in Amazon S3, using the path specified in the report @Path@+-- parameter. You can specify whether or not a report gets generated for a+-- task using the @Enabled@ parameter.+--+-- /See:/ 'newCompletionReport' smart constructor.+data CompletionReport = CompletionReport'+  { -- | Required if @Enabled@ is set to @true@. Specifies the format of the+    -- @CompletionReport@. @REPORT_CSV_20191124@ is the only format currently+    -- supported. When @Format@ is set to @REPORT_CSV_20191124@, the+    -- @CompletionReport@ is provided in CSV format, and is delivered to+    -- @{path}\/task-{id}\/failures.csv@.+    format :: Prelude.Maybe ReportFormat,+    -- | Required if @Enabled@ is set to @true@. Specifies the location of the+    -- report on the file system\'s linked S3 data repository. An absolute path+    -- that defines where the completion report will be stored in the+    -- destination location. The @Path@ you provide must be located within the+    -- file system’s ExportPath. An example @Path@ value is+    -- \"s3:\/\/myBucket\/myExportPath\/optionalPrefix\". The report provides+    -- the following information for each file in the report: FilePath,+    -- FileStatus, and ErrorCode. To learn more about a file system\'s+    -- @ExportPath@, see .+    path :: Prelude.Maybe Prelude.Text,+    -- | Required if @Enabled@ is set to @true@. Specifies the scope of the+    -- @CompletionReport@; @FAILED_FILES_ONLY@ is the only scope currently+    -- supported. When @Scope@ is set to @FAILED_FILES_ONLY@, the+    -- @CompletionReport@ only contains information about files that the data+    -- repository task failed to process.+    scope :: Prelude.Maybe ReportScope,+    -- | Set @Enabled@ to @True@ to generate a @CompletionReport@ when the task+    -- completes. If set to @true@, then you need to provide a report @Scope@,+    -- @Path@, and @Format@. Set @Enabled@ to @False@ if you do not want a+    -- @CompletionReport@ generated when the task completes.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CompletionReport' 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:+--+-- 'format', 'completionReport_format' - Required if @Enabled@ is set to @true@. Specifies the format of the+-- @CompletionReport@. @REPORT_CSV_20191124@ is the only format currently+-- supported. When @Format@ is set to @REPORT_CSV_20191124@, the+-- @CompletionReport@ is provided in CSV format, and is delivered to+-- @{path}\/task-{id}\/failures.csv@.+--+-- 'path', 'completionReport_path' - Required if @Enabled@ is set to @true@. Specifies the location of the+-- report on the file system\'s linked S3 data repository. An absolute path+-- that defines where the completion report will be stored in the+-- destination location. The @Path@ you provide must be located within the+-- file system’s ExportPath. An example @Path@ value is+-- \"s3:\/\/myBucket\/myExportPath\/optionalPrefix\". The report provides+-- the following information for each file in the report: FilePath,+-- FileStatus, and ErrorCode. To learn more about a file system\'s+-- @ExportPath@, see .+--+-- 'scope', 'completionReport_scope' - Required if @Enabled@ is set to @true@. Specifies the scope of the+-- @CompletionReport@; @FAILED_FILES_ONLY@ is the only scope currently+-- supported. When @Scope@ is set to @FAILED_FILES_ONLY@, the+-- @CompletionReport@ only contains information about files that the data+-- repository task failed to process.+--+-- 'enabled', 'completionReport_enabled' - Set @Enabled@ to @True@ to generate a @CompletionReport@ when the task+-- completes. If set to @true@, then you need to provide a report @Scope@,+-- @Path@, and @Format@. Set @Enabled@ to @False@ if you do not want a+-- @CompletionReport@ generated when the task completes.+newCompletionReport ::+  -- | 'enabled'+  Prelude.Bool ->+  CompletionReport+newCompletionReport pEnabled_ =+  CompletionReport'+    { format = Prelude.Nothing,+      path = Prelude.Nothing,+      scope = Prelude.Nothing,+      enabled = pEnabled_+    }++-- | Required if @Enabled@ is set to @true@. Specifies the format of the+-- @CompletionReport@. @REPORT_CSV_20191124@ is the only format currently+-- supported. When @Format@ is set to @REPORT_CSV_20191124@, the+-- @CompletionReport@ is provided in CSV format, and is delivered to+-- @{path}\/task-{id}\/failures.csv@.+completionReport_format :: Lens.Lens' CompletionReport (Prelude.Maybe ReportFormat)+completionReport_format = Lens.lens (\CompletionReport' {format} -> format) (\s@CompletionReport' {} a -> s {format = a} :: CompletionReport)++-- | Required if @Enabled@ is set to @true@. Specifies the location of the+-- report on the file system\'s linked S3 data repository. An absolute path+-- that defines where the completion report will be stored in the+-- destination location. The @Path@ you provide must be located within the+-- file system’s ExportPath. An example @Path@ value is+-- \"s3:\/\/myBucket\/myExportPath\/optionalPrefix\". The report provides+-- the following information for each file in the report: FilePath,+-- FileStatus, and ErrorCode. To learn more about a file system\'s+-- @ExportPath@, see .+completionReport_path :: Lens.Lens' CompletionReport (Prelude.Maybe Prelude.Text)+completionReport_path = Lens.lens (\CompletionReport' {path} -> path) (\s@CompletionReport' {} a -> s {path = a} :: CompletionReport)++-- | Required if @Enabled@ is set to @true@. Specifies the scope of the+-- @CompletionReport@; @FAILED_FILES_ONLY@ is the only scope currently+-- supported. When @Scope@ is set to @FAILED_FILES_ONLY@, the+-- @CompletionReport@ only contains information about files that the data+-- repository task failed to process.+completionReport_scope :: Lens.Lens' CompletionReport (Prelude.Maybe ReportScope)+completionReport_scope = Lens.lens (\CompletionReport' {scope} -> scope) (\s@CompletionReport' {} a -> s {scope = a} :: CompletionReport)++-- | Set @Enabled@ to @True@ to generate a @CompletionReport@ when the task+-- completes. If set to @true@, then you need to provide a report @Scope@,+-- @Path@, and @Format@. Set @Enabled@ to @False@ if you do not want a+-- @CompletionReport@ generated when the task completes.+completionReport_enabled :: Lens.Lens' CompletionReport Prelude.Bool+completionReport_enabled = Lens.lens (\CompletionReport' {enabled} -> enabled) (\s@CompletionReport' {} a -> s {enabled = a} :: CompletionReport)++instance Data.FromJSON CompletionReport where+  parseJSON =+    Data.withObject+      "CompletionReport"+      ( \x ->+          CompletionReport'+            Prelude.<$> (x Data..:? "Format")+            Prelude.<*> (x Data..:? "Path")+            Prelude.<*> (x Data..:? "Scope")+            Prelude.<*> (x Data..: "Enabled")+      )++instance Prelude.Hashable CompletionReport where+  hashWithSalt _salt CompletionReport' {..} =+    _salt+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` path+      `Prelude.hashWithSalt` scope+      `Prelude.hashWithSalt` enabled++instance Prelude.NFData CompletionReport where+  rnf CompletionReport' {..} =+    Prelude.rnf format+      `Prelude.seq` Prelude.rnf path+      `Prelude.seq` Prelude.rnf scope+      `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON CompletionReport where+  toJSON CompletionReport' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Format" Data..=) Prelude.<$> format,+            ("Path" Data..=) Prelude.<$> path,+            ("Scope" Data..=) Prelude.<$> scope,+            Prelude.Just ("Enabled" Data..= enabled)+          ]+      )
+ gen/Amazonka/FSx/Types/CreateFileCacheLustreConfiguration.hs view
@@ -0,0 +1,145 @@+{-# 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.CreateFileCacheLustreConfiguration+-- 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.CreateFileCacheLustreConfiguration 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.FileCacheLustreDeploymentType+import Amazonka.FSx.Types.FileCacheLustreMetadataConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The Amazon File Cache configuration for the cache that you are creating.+--+-- /See:/ 'newCreateFileCacheLustreConfiguration' smart constructor.+data CreateFileCacheLustreConfiguration = CreateFileCacheLustreConfiguration'+  { weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text,+    -- | Provisions the amount of read and write throughput for each 1 tebibyte+    -- (TiB) of cache storage capacity, in MB\/s\/TiB. The only supported value+    -- is @1000@.+    perUnitStorageThroughput :: Prelude.Natural,+    -- | Specifies the cache deployment type, which must be @CACHE_1@.+    deploymentType :: FileCacheLustreDeploymentType,+    -- | The configuration for a Lustre MDT (Metadata Target) storage volume.+    metadataConfiguration :: FileCacheLustreMetadataConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileCacheLustreConfiguration' 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:+--+-- 'weeklyMaintenanceStartTime', 'createFileCacheLustreConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+--+-- 'perUnitStorageThroughput', 'createFileCacheLustreConfiguration_perUnitStorageThroughput' - Provisions the amount of read and write throughput for each 1 tebibyte+-- (TiB) of cache storage capacity, in MB\/s\/TiB. The only supported value+-- is @1000@.+--+-- 'deploymentType', 'createFileCacheLustreConfiguration_deploymentType' - Specifies the cache deployment type, which must be @CACHE_1@.+--+-- 'metadataConfiguration', 'createFileCacheLustreConfiguration_metadataConfiguration' - The configuration for a Lustre MDT (Metadata Target) storage volume.+newCreateFileCacheLustreConfiguration ::+  -- | 'perUnitStorageThroughput'+  Prelude.Natural ->+  -- | 'deploymentType'+  FileCacheLustreDeploymentType ->+  -- | 'metadataConfiguration'+  FileCacheLustreMetadataConfiguration ->+  CreateFileCacheLustreConfiguration+newCreateFileCacheLustreConfiguration+  pPerUnitStorageThroughput_+  pDeploymentType_+  pMetadataConfiguration_ =+    CreateFileCacheLustreConfiguration'+      { weeklyMaintenanceStartTime =+          Prelude.Nothing,+        perUnitStorageThroughput =+          pPerUnitStorageThroughput_,+        deploymentType = pDeploymentType_,+        metadataConfiguration =+          pMetadataConfiguration_+      }++-- | Undocumented member.+createFileCacheLustreConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' CreateFileCacheLustreConfiguration (Prelude.Maybe Prelude.Text)+createFileCacheLustreConfiguration_weeklyMaintenanceStartTime = Lens.lens (\CreateFileCacheLustreConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@CreateFileCacheLustreConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: CreateFileCacheLustreConfiguration)++-- | Provisions the amount of read and write throughput for each 1 tebibyte+-- (TiB) of cache storage capacity, in MB\/s\/TiB. The only supported value+-- is @1000@.+createFileCacheLustreConfiguration_perUnitStorageThroughput :: Lens.Lens' CreateFileCacheLustreConfiguration Prelude.Natural+createFileCacheLustreConfiguration_perUnitStorageThroughput = Lens.lens (\CreateFileCacheLustreConfiguration' {perUnitStorageThroughput} -> perUnitStorageThroughput) (\s@CreateFileCacheLustreConfiguration' {} a -> s {perUnitStorageThroughput = a} :: CreateFileCacheLustreConfiguration)++-- | Specifies the cache deployment type, which must be @CACHE_1@.+createFileCacheLustreConfiguration_deploymentType :: Lens.Lens' CreateFileCacheLustreConfiguration FileCacheLustreDeploymentType+createFileCacheLustreConfiguration_deploymentType = Lens.lens (\CreateFileCacheLustreConfiguration' {deploymentType} -> deploymentType) (\s@CreateFileCacheLustreConfiguration' {} a -> s {deploymentType = a} :: CreateFileCacheLustreConfiguration)++-- | The configuration for a Lustre MDT (Metadata Target) storage volume.+createFileCacheLustreConfiguration_metadataConfiguration :: Lens.Lens' CreateFileCacheLustreConfiguration FileCacheLustreMetadataConfiguration+createFileCacheLustreConfiguration_metadataConfiguration = Lens.lens (\CreateFileCacheLustreConfiguration' {metadataConfiguration} -> metadataConfiguration) (\s@CreateFileCacheLustreConfiguration' {} a -> s {metadataConfiguration = a} :: CreateFileCacheLustreConfiguration)++instance+  Prelude.Hashable+    CreateFileCacheLustreConfiguration+  where+  hashWithSalt+    _salt+    CreateFileCacheLustreConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime+        `Prelude.hashWithSalt` perUnitStorageThroughput+        `Prelude.hashWithSalt` deploymentType+        `Prelude.hashWithSalt` metadataConfiguration++instance+  Prelude.NFData+    CreateFileCacheLustreConfiguration+  where+  rnf CreateFileCacheLustreConfiguration' {..} =+    Prelude.rnf weeklyMaintenanceStartTime+      `Prelude.seq` Prelude.rnf perUnitStorageThroughput+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf metadataConfiguration++instance+  Data.ToJSON+    CreateFileCacheLustreConfiguration+  where+  toJSON CreateFileCacheLustreConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime,+            Prelude.Just+              ( "PerUnitStorageThroughput"+                  Data..= perUnitStorageThroughput+              ),+            Prelude.Just+              ("DeploymentType" Data..= deploymentType),+            Prelude.Just+              ( "MetadataConfiguration"+                  Data..= metadataConfiguration+              )+          ]+      )
+ gen/Amazonka/FSx/Types/CreateFileSystemLustreConfiguration.hs view
@@ -0,0 +1,766 @@+{-# 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.CreateFileSystemLustreConfiguration+-- 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.CreateFileSystemLustreConfiguration 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.DriveCacheType+import Amazonka.FSx.Types.LustreDeploymentType+import Amazonka.FSx.Types.LustreLogCreateConfiguration+import Amazonka.FSx.Types.LustreRootSquashConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The Lustre configuration for the file system being created.+--+-- The following parameters are not supported for file systems with the+-- @Persistent_2@ deployment type. Instead, use+-- @CreateDataRepositoryAssociation@ to create a data repository+-- association to link your Lustre file system to a data repository.+--+-- -   @AutoImportPolicy@+--+-- -   @ExportPath@+--+-- -   @ImportedChunkSize@+--+-- -   @ImportPath@+--+-- /See:/ 'newCreateFileSystemLustreConfiguration' smart constructor.+data CreateFileSystemLustreConfiguration = CreateFileSystemLustreConfiguration'+  { -- | (Optional) Available with @Scratch@ and @Persistent_1@ deployment types.+    -- 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 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.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/older-deployment-types.html#legacy-auto-import-from-s3 Automatically import updates from your S3 bucket>.+    --+    -- This parameter is not supported for file systems with the @Persistent_2@+    -- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+    -- create a data repository association to link your Lustre file system to+    -- a data repository.+    autoImportPolicy :: Prelude.Maybe AutoImportPolicyType,+    automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | (Optional) Not available for use with file systems that are linked to a+    -- data repository. A boolean flag indicating whether tags for the file+    -- system should be copied to backups. The default value is false. If+    -- @CopyTagsToBackups@ is set to true, all file system tags are copied to+    -- all automatic and user-initiated backups when the user doesn\'t specify+    -- any backup-specific tags. If @CopyTagsToBackups@ is set to true and you+    -- specify one or more backup tags, only the specified tags are copied to+    -- backups. If you specify one or more tags when creating a user-initiated+    -- backup, no tags are copied from the file system, regardless of this+    -- value.+    --+    -- (Default = @false@)+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html Working with backups>+    -- in the /Amazon FSx for Lustre User Guide/.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | Sets the data compression configuration for the file system.+    -- @DataCompressionType@ can have the following values:+    --+    -- -   @NONE@ - (Default) Data compression is turned off when the file+    --     system is created.+    --+    -- -   @LZ4@ - Data compression is turned on with the LZ4 algorithm.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>+    -- in the /Amazon FSx for Lustre User Guide/.+    dataCompressionType :: Prelude.Maybe DataCompressionType,+    -- | (Optional) Choose @SCRATCH_1@ and @SCRATCH_2@ deployment types when you+    -- need temporary storage and shorter-term processing of data. The+    -- @SCRATCH_2@ deployment type provides in-transit encryption of data and+    -- higher burst throughput capacity than @SCRATCH_1@.+    --+    -- Choose @PERSISTENT_1@ for longer-term storage and for throughput-focused+    -- workloads that aren’t latency-sensitive. @PERSISTENT_1@ supports+    -- encryption of data in transit, and is available in all Amazon Web+    -- Services Regions in which FSx for Lustre is available.+    --+    -- Choose @PERSISTENT_2@ for longer-term storage and for latency-sensitive+    -- workloads that require the highest levels of IOPS\/throughput.+    -- @PERSISTENT_2@ supports SSD storage, and offers higher+    -- @PerUnitStorageThroughput@ (up to 1000 MB\/s\/TiB). @PERSISTENT_2@ is+    -- available in a limited number of Amazon Web Services Regions. For more+    -- information, and an up-to-date list of Amazon Web Services Regions in+    -- which @PERSISTENT_2@ is available, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html#lustre-deployment-types File system deployment options for FSx for Lustre>+    -- in the /Amazon FSx for Lustre User Guide/.+    --+    -- If you choose @PERSISTENT_2@, and you set @FileSystemTypeVersion@ to+    -- @2.10@, the @CreateFileSystem@ operation fails.+    --+    -- Encryption of data in transit is automatically turned on when you access+    -- @SCRATCH_2@, @PERSISTENT_1@ and @PERSISTENT_2@ file systems from Amazon+    -- EC2 instances that+    -- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-%20protection.html support automatic encryption>+    -- in the Amazon Web Services Regions where they are available. For more+    -- information about encryption in transit for FSx for Lustre file systems,+    -- see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html Encrypting data in transit>+    -- in the /Amazon FSx for Lustre User Guide/.+    --+    -- (Default = @SCRATCH_1@)+    deploymentType :: Prelude.Maybe LustreDeploymentType,+    -- | The type of drive cache used by @PERSISTENT_1@ file systems that are+    -- provisioned with HDD storage devices. This parameter is required when+    -- storage type is HDD. Set this property to @READ@ to improve the+    -- performance for frequently accessed files by caching up to 20% of the+    -- total storage capacity of the file system.+    --+    -- This parameter is required when @StorageType@ is set to @HDD@.+    driveCacheType :: Prelude.Maybe DriveCacheType,+    -- | (Optional) Available with @Scratch@ and @Persistent_1@ deployment types.+    -- Specifies the path in the Amazon S3 bucket where the root of your Amazon+    -- FSx file system is exported. The path must use the same Amazon S3 bucket+    -- as specified in ImportPath. You can provide an optional prefix to which+    -- new and changed data is to be exported from your Amazon FSx for Lustre+    -- file system. If an @ExportPath@ value is not provided, Amazon FSx sets a+    -- default export path,+    -- @s3:\/\/import-bucket\/FSxLustre[creation-timestamp]@. The timestamp is+    -- in UTC format, for example+    -- @s3:\/\/import-bucket\/FSxLustre20181105T222312Z@.+    --+    -- The Amazon S3 export bucket must be the same as the import bucket+    -- specified by @ImportPath@. If you specify only a bucket name, such as+    -- @s3:\/\/import-bucket@, you get a 1:1 mapping of file system objects to+    -- S3 bucket objects. This mapping means that the input data in S3 is+    -- overwritten on export. If you provide a custom prefix in the export+    -- path, such as @s3:\/\/import-bucket\/[custom-optional-prefix]@, Amazon+    -- FSx exports the contents of your file system to that export prefix in+    -- the Amazon S3 bucket.+    --+    -- This parameter is not supported for file systems with the @Persistent_2@+    -- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+    -- create a data repository association to link your Lustre file system to+    -- a data repository.+    exportPath :: Prelude.Maybe Prelude.Text,+    -- | (Optional) The path to the Amazon S3 bucket (including the optional+    -- prefix) that you\'re using as the data repository for your Amazon FSx+    -- for Lustre file system. The root of your FSx for Lustre file system will+    -- be mapped to the root of the Amazon S3 bucket you select. An example is+    -- @s3:\/\/import-bucket\/optional-prefix@. If you specify a prefix after+    -- the Amazon S3 bucket name, only object keys with that prefix are loaded+    -- into the file system.+    --+    -- This parameter is not supported for file systems with the @Persistent_2@+    -- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+    -- create a data repository association to link your Lustre file system to+    -- a data repository.+    importPath :: Prelude.Maybe Prelude.Text,+    -- | (Optional) 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.+    --+    -- This parameter is not supported for file systems with the @Persistent_2@+    -- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+    -- create a data repository association to link your Lustre file system to+    -- a data repository.+    importedFileChunkSize :: Prelude.Maybe Prelude.Natural,+    -- | The Lustre logging configuration used when creating 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,+    -- | Required with @PERSISTENT_1@ and @PERSISTENT_2@ deployment types,+    -- provisions the amount of read and write throughput for each 1 tebibyte+    -- (TiB) of file system storage capacity, in MB\/s\/TiB. File system+    -- throughput capacity is calculated by multiplying file system storage+    -- capacity (TiB) by the @PerUnitStorageThroughput@ (MB\/s\/TiB). For a+    -- 2.4-TiB file system, provisioning 50 MB\/s\/TiB of+    -- @PerUnitStorageThroughput@ yields 120 MB\/s of file system throughput.+    -- You pay for the amount of throughput that you provision.+    --+    -- Valid values:+    --+    -- -   For @PERSISTENT_1@ SSD storage: 50, 100, 200 MB\/s\/TiB.+    --+    -- -   For @PERSISTENT_1@ HDD storage: 12, 40 MB\/s\/TiB.+    --+    -- -   For @PERSISTENT_2@ SSD storage: 125, 250, 500, 1000 MB\/s\/TiB.+    perUnitStorageThroughput :: Prelude.Maybe Prelude.Natural,+    -- | The Lustre root squash configuration used when creating 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, where 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 'CreateFileSystemLustreConfiguration' 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', 'createFileSystemLustreConfiguration_autoImportPolicy' - (Optional) Available with @Scratch@ and @Persistent_1@ deployment types.+-- 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 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.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/older-deployment-types.html#legacy-auto-import-from-s3 Automatically import updates from your S3 bucket>.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+--+-- 'automaticBackupRetentionDays', 'createFileSystemLustreConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'copyTagsToBackups', 'createFileSystemLustreConfiguration_copyTagsToBackups' - (Optional) Not available for use with file systems that are linked to a+-- data repository. A boolean flag indicating whether tags for the file+-- system should be copied to backups. The default value is false. If+-- @CopyTagsToBackups@ is set to true, all file system tags are copied to+-- all automatic and user-initiated backups when the user doesn\'t specify+-- any backup-specific tags. If @CopyTagsToBackups@ is set to true and you+-- specify one or more backup tags, only the specified tags are copied to+-- backups. If you specify one or more tags when creating a user-initiated+-- backup, no tags are copied from the file system, regardless of this+-- value.+--+-- (Default = @false@)+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html Working with backups>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- 'dailyAutomaticBackupStartTime', 'createFileSystemLustreConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'dataCompressionType', 'createFileSystemLustreConfiguration_dataCompressionType' - Sets the data compression configuration for the file system.+-- @DataCompressionType@ can have the following values:+--+-- -   @NONE@ - (Default) Data compression is turned off when the file+--     system is created.+--+-- -   @LZ4@ - Data compression is turned on with the LZ4 algorithm.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- 'deploymentType', 'createFileSystemLustreConfiguration_deploymentType' - (Optional) Choose @SCRATCH_1@ and @SCRATCH_2@ deployment types when you+-- need temporary storage and shorter-term processing of data. The+-- @SCRATCH_2@ deployment type provides in-transit encryption of data and+-- higher burst throughput capacity than @SCRATCH_1@.+--+-- Choose @PERSISTENT_1@ for longer-term storage and for throughput-focused+-- workloads that aren’t latency-sensitive. @PERSISTENT_1@ supports+-- encryption of data in transit, and is available in all Amazon Web+-- Services Regions in which FSx for Lustre is available.+--+-- Choose @PERSISTENT_2@ for longer-term storage and for latency-sensitive+-- workloads that require the highest levels of IOPS\/throughput.+-- @PERSISTENT_2@ supports SSD storage, and offers higher+-- @PerUnitStorageThroughput@ (up to 1000 MB\/s\/TiB). @PERSISTENT_2@ is+-- available in a limited number of Amazon Web Services Regions. For more+-- information, and an up-to-date list of Amazon Web Services Regions in+-- which @PERSISTENT_2@ is available, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html#lustre-deployment-types File system deployment options for FSx for Lustre>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- If you choose @PERSISTENT_2@, and you set @FileSystemTypeVersion@ to+-- @2.10@, the @CreateFileSystem@ operation fails.+--+-- Encryption of data in transit is automatically turned on when you access+-- @SCRATCH_2@, @PERSISTENT_1@ and @PERSISTENT_2@ file systems from Amazon+-- EC2 instances that+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-%20protection.html support automatic encryption>+-- in the Amazon Web Services Regions where they are available. For more+-- information about encryption in transit for FSx for Lustre file systems,+-- see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html Encrypting data in transit>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- (Default = @SCRATCH_1@)+--+-- 'driveCacheType', 'createFileSystemLustreConfiguration_driveCacheType' - The type of drive cache used by @PERSISTENT_1@ file systems that are+-- provisioned with HDD storage devices. This parameter is required when+-- storage type is HDD. Set this property to @READ@ to improve the+-- performance for frequently accessed files by caching up to 20% of the+-- total storage capacity of the file system.+--+-- This parameter is required when @StorageType@ is set to @HDD@.+--+-- 'exportPath', 'createFileSystemLustreConfiguration_exportPath' - (Optional) Available with @Scratch@ and @Persistent_1@ deployment types.+-- Specifies the path in the Amazon S3 bucket where the root of your Amazon+-- FSx file system is exported. The path must use the same Amazon S3 bucket+-- as specified in ImportPath. You can provide an optional prefix to which+-- new and changed data is to be exported from your Amazon FSx for Lustre+-- file system. If an @ExportPath@ value is not provided, Amazon FSx sets a+-- default export path,+-- @s3:\/\/import-bucket\/FSxLustre[creation-timestamp]@. The timestamp is+-- in UTC format, for example+-- @s3:\/\/import-bucket\/FSxLustre20181105T222312Z@.+--+-- The Amazon S3 export bucket must be the same as the import bucket+-- specified by @ImportPath@. If you specify only a bucket name, such as+-- @s3:\/\/import-bucket@, you get a 1:1 mapping of file system objects to+-- S3 bucket objects. This mapping means that the input data in S3 is+-- overwritten on export. If you provide a custom prefix in the export+-- path, such as @s3:\/\/import-bucket\/[custom-optional-prefix]@, Amazon+-- FSx exports the contents of your file system to that export prefix in+-- the Amazon S3 bucket.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+--+-- 'importPath', 'createFileSystemLustreConfiguration_importPath' - (Optional) The path to the Amazon S3 bucket (including the optional+-- prefix) that you\'re using as the data repository for your Amazon FSx+-- for Lustre file system. The root of your FSx for Lustre file system will+-- be mapped to the root of the Amazon S3 bucket you select. An example is+-- @s3:\/\/import-bucket\/optional-prefix@. If you specify a prefix after+-- the Amazon S3 bucket name, only object keys with that prefix are loaded+-- into the file system.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+--+-- 'importedFileChunkSize', 'createFileSystemLustreConfiguration_importedFileChunkSize' - (Optional) 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.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+--+-- 'logConfiguration', 'createFileSystemLustreConfiguration_logConfiguration' - The Lustre logging configuration used when creating 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.+--+-- 'perUnitStorageThroughput', 'createFileSystemLustreConfiguration_perUnitStorageThroughput' - Required with @PERSISTENT_1@ and @PERSISTENT_2@ deployment types,+-- provisions the amount of read and write throughput for each 1 tebibyte+-- (TiB) of file system storage capacity, in MB\/s\/TiB. File system+-- throughput capacity is calculated by multiplying file system storage+-- capacity (TiB) by the @PerUnitStorageThroughput@ (MB\/s\/TiB). For a+-- 2.4-TiB file system, provisioning 50 MB\/s\/TiB of+-- @PerUnitStorageThroughput@ yields 120 MB\/s of file system throughput.+-- You pay for the amount of throughput that you provision.+--+-- Valid values:+--+-- -   For @PERSISTENT_1@ SSD storage: 50, 100, 200 MB\/s\/TiB.+--+-- -   For @PERSISTENT_1@ HDD storage: 12, 40 MB\/s\/TiB.+--+-- -   For @PERSISTENT_2@ SSD storage: 125, 250, 500, 1000 MB\/s\/TiB.+--+-- 'rootSquashConfiguration', 'createFileSystemLustreConfiguration_rootSquashConfiguration' - The Lustre root squash configuration used when creating 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', 'createFileSystemLustreConfiguration_weeklyMaintenanceStartTime' - (Optional) The preferred start time to perform weekly maintenance,+-- formatted d:HH:MM in the UTC time zone, where d is the weekday number,+-- from 1 through 7, beginning with Monday and ending with Sunday.+newCreateFileSystemLustreConfiguration ::+  CreateFileSystemLustreConfiguration+newCreateFileSystemLustreConfiguration =+  CreateFileSystemLustreConfiguration'+    { autoImportPolicy =+        Prelude.Nothing,+      automaticBackupRetentionDays =+        Prelude.Nothing,+      copyTagsToBackups = Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      dataCompressionType = Prelude.Nothing,+      deploymentType = Prelude.Nothing,+      driveCacheType = Prelude.Nothing,+      exportPath = Prelude.Nothing,+      importPath = Prelude.Nothing,+      importedFileChunkSize =+        Prelude.Nothing,+      logConfiguration = Prelude.Nothing,+      perUnitStorageThroughput =+        Prelude.Nothing,+      rootSquashConfiguration =+        Prelude.Nothing,+      weeklyMaintenanceStartTime =+        Prelude.Nothing+    }++-- | (Optional) Available with @Scratch@ and @Persistent_1@ deployment types.+-- 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 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.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/older-deployment-types.html#legacy-auto-import-from-s3 Automatically import updates from your S3 bucket>.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+createFileSystemLustreConfiguration_autoImportPolicy :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe AutoImportPolicyType)+createFileSystemLustreConfiguration_autoImportPolicy = Lens.lens (\CreateFileSystemLustreConfiguration' {autoImportPolicy} -> autoImportPolicy) (\s@CreateFileSystemLustreConfiguration' {} a -> s {autoImportPolicy = a} :: CreateFileSystemLustreConfiguration)++-- | Undocumented member.+createFileSystemLustreConfiguration_automaticBackupRetentionDays :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Natural)+createFileSystemLustreConfiguration_automaticBackupRetentionDays = Lens.lens (\CreateFileSystemLustreConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@CreateFileSystemLustreConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: CreateFileSystemLustreConfiguration)++-- | (Optional) Not available for use with file systems that are linked to a+-- data repository. A boolean flag indicating whether tags for the file+-- system should be copied to backups. The default value is false. If+-- @CopyTagsToBackups@ is set to true, all file system tags are copied to+-- all automatic and user-initiated backups when the user doesn\'t specify+-- any backup-specific tags. If @CopyTagsToBackups@ is set to true and you+-- specify one or more backup tags, only the specified tags are copied to+-- backups. If you specify one or more tags when creating a user-initiated+-- backup, no tags are copied from the file system, regardless of this+-- value.+--+-- (Default = @false@)+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html Working with backups>+-- in the /Amazon FSx for Lustre User Guide/.+createFileSystemLustreConfiguration_copyTagsToBackups :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Bool)+createFileSystemLustreConfiguration_copyTagsToBackups = Lens.lens (\CreateFileSystemLustreConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@CreateFileSystemLustreConfiguration' {} a -> s {copyTagsToBackups = a} :: CreateFileSystemLustreConfiguration)++-- | Undocumented member.+createFileSystemLustreConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemLustreConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\CreateFileSystemLustreConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@CreateFileSystemLustreConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: CreateFileSystemLustreConfiguration)++-- | Sets the data compression configuration for the file system.+-- @DataCompressionType@ can have the following values:+--+-- -   @NONE@ - (Default) Data compression is turned off when the file+--     system is created.+--+-- -   @LZ4@ - Data compression is turned on with the LZ4 algorithm.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>+-- in the /Amazon FSx for Lustre User Guide/.+createFileSystemLustreConfiguration_dataCompressionType :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe DataCompressionType)+createFileSystemLustreConfiguration_dataCompressionType = Lens.lens (\CreateFileSystemLustreConfiguration' {dataCompressionType} -> dataCompressionType) (\s@CreateFileSystemLustreConfiguration' {} a -> s {dataCompressionType = a} :: CreateFileSystemLustreConfiguration)++-- | (Optional) Choose @SCRATCH_1@ and @SCRATCH_2@ deployment types when you+-- need temporary storage and shorter-term processing of data. The+-- @SCRATCH_2@ deployment type provides in-transit encryption of data and+-- higher burst throughput capacity than @SCRATCH_1@.+--+-- Choose @PERSISTENT_1@ for longer-term storage and for throughput-focused+-- workloads that aren’t latency-sensitive. @PERSISTENT_1@ supports+-- encryption of data in transit, and is available in all Amazon Web+-- Services Regions in which FSx for Lustre is available.+--+-- Choose @PERSISTENT_2@ for longer-term storage and for latency-sensitive+-- workloads that require the highest levels of IOPS\/throughput.+-- @PERSISTENT_2@ supports SSD storage, and offers higher+-- @PerUnitStorageThroughput@ (up to 1000 MB\/s\/TiB). @PERSISTENT_2@ is+-- available in a limited number of Amazon Web Services Regions. For more+-- information, and an up-to-date list of Amazon Web Services Regions in+-- which @PERSISTENT_2@ is available, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-fsx-lustre.html#lustre-deployment-types File system deployment options for FSx for Lustre>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- If you choose @PERSISTENT_2@, and you set @FileSystemTypeVersion@ to+-- @2.10@, the @CreateFileSystem@ operation fails.+--+-- Encryption of data in transit is automatically turned on when you access+-- @SCRATCH_2@, @PERSISTENT_1@ and @PERSISTENT_2@ file systems from Amazon+-- EC2 instances that+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-%20protection.html support automatic encryption>+-- in the Amazon Web Services Regions where they are available. For more+-- information about encryption in transit for FSx for Lustre file systems,+-- see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-in-transit-fsxl.html Encrypting data in transit>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- (Default = @SCRATCH_1@)+createFileSystemLustreConfiguration_deploymentType :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe LustreDeploymentType)+createFileSystemLustreConfiguration_deploymentType = Lens.lens (\CreateFileSystemLustreConfiguration' {deploymentType} -> deploymentType) (\s@CreateFileSystemLustreConfiguration' {} a -> s {deploymentType = a} :: CreateFileSystemLustreConfiguration)++-- | The type of drive cache used by @PERSISTENT_1@ file systems that are+-- provisioned with HDD storage devices. This parameter is required when+-- storage type is HDD. Set this property to @READ@ to improve the+-- performance for frequently accessed files by caching up to 20% of the+-- total storage capacity of the file system.+--+-- This parameter is required when @StorageType@ is set to @HDD@.+createFileSystemLustreConfiguration_driveCacheType :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe DriveCacheType)+createFileSystemLustreConfiguration_driveCacheType = Lens.lens (\CreateFileSystemLustreConfiguration' {driveCacheType} -> driveCacheType) (\s@CreateFileSystemLustreConfiguration' {} a -> s {driveCacheType = a} :: CreateFileSystemLustreConfiguration)++-- | (Optional) Available with @Scratch@ and @Persistent_1@ deployment types.+-- Specifies the path in the Amazon S3 bucket where the root of your Amazon+-- FSx file system is exported. The path must use the same Amazon S3 bucket+-- as specified in ImportPath. You can provide an optional prefix to which+-- new and changed data is to be exported from your Amazon FSx for Lustre+-- file system. If an @ExportPath@ value is not provided, Amazon FSx sets a+-- default export path,+-- @s3:\/\/import-bucket\/FSxLustre[creation-timestamp]@. The timestamp is+-- in UTC format, for example+-- @s3:\/\/import-bucket\/FSxLustre20181105T222312Z@.+--+-- The Amazon S3 export bucket must be the same as the import bucket+-- specified by @ImportPath@. If you specify only a bucket name, such as+-- @s3:\/\/import-bucket@, you get a 1:1 mapping of file system objects to+-- S3 bucket objects. This mapping means that the input data in S3 is+-- overwritten on export. If you provide a custom prefix in the export+-- path, such as @s3:\/\/import-bucket\/[custom-optional-prefix]@, Amazon+-- FSx exports the contents of your file system to that export prefix in+-- the Amazon S3 bucket.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+createFileSystemLustreConfiguration_exportPath :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemLustreConfiguration_exportPath = Lens.lens (\CreateFileSystemLustreConfiguration' {exportPath} -> exportPath) (\s@CreateFileSystemLustreConfiguration' {} a -> s {exportPath = a} :: CreateFileSystemLustreConfiguration)++-- | (Optional) The path to the Amazon S3 bucket (including the optional+-- prefix) that you\'re using as the data repository for your Amazon FSx+-- for Lustre file system. The root of your FSx for Lustre file system will+-- be mapped to the root of the Amazon S3 bucket you select. An example is+-- @s3:\/\/import-bucket\/optional-prefix@. If you specify a prefix after+-- the Amazon S3 bucket name, only object keys with that prefix are loaded+-- into the file system.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+createFileSystemLustreConfiguration_importPath :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemLustreConfiguration_importPath = Lens.lens (\CreateFileSystemLustreConfiguration' {importPath} -> importPath) (\s@CreateFileSystemLustreConfiguration' {} a -> s {importPath = a} :: CreateFileSystemLustreConfiguration)++-- | (Optional) 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.+--+-- This parameter is not supported for file systems with the @Persistent_2@+-- deployment type. Instead, use @CreateDataRepositoryAssociation@ to+-- create a data repository association to link your Lustre file system to+-- a data repository.+createFileSystemLustreConfiguration_importedFileChunkSize :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Natural)+createFileSystemLustreConfiguration_importedFileChunkSize = Lens.lens (\CreateFileSystemLustreConfiguration' {importedFileChunkSize} -> importedFileChunkSize) (\s@CreateFileSystemLustreConfiguration' {} a -> s {importedFileChunkSize = a} :: CreateFileSystemLustreConfiguration)++-- | The Lustre logging configuration used when creating 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.+createFileSystemLustreConfiguration_logConfiguration :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe LustreLogCreateConfiguration)+createFileSystemLustreConfiguration_logConfiguration = Lens.lens (\CreateFileSystemLustreConfiguration' {logConfiguration} -> logConfiguration) (\s@CreateFileSystemLustreConfiguration' {} a -> s {logConfiguration = a} :: CreateFileSystemLustreConfiguration)++-- | Required with @PERSISTENT_1@ and @PERSISTENT_2@ deployment types,+-- provisions the amount of read and write throughput for each 1 tebibyte+-- (TiB) of file system storage capacity, in MB\/s\/TiB. File system+-- throughput capacity is calculated by multiplying file system storage+-- capacity (TiB) by the @PerUnitStorageThroughput@ (MB\/s\/TiB). For a+-- 2.4-TiB file system, provisioning 50 MB\/s\/TiB of+-- @PerUnitStorageThroughput@ yields 120 MB\/s of file system throughput.+-- You pay for the amount of throughput that you provision.+--+-- Valid values:+--+-- -   For @PERSISTENT_1@ SSD storage: 50, 100, 200 MB\/s\/TiB.+--+-- -   For @PERSISTENT_1@ HDD storage: 12, 40 MB\/s\/TiB.+--+-- -   For @PERSISTENT_2@ SSD storage: 125, 250, 500, 1000 MB\/s\/TiB.+createFileSystemLustreConfiguration_perUnitStorageThroughput :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Natural)+createFileSystemLustreConfiguration_perUnitStorageThroughput = Lens.lens (\CreateFileSystemLustreConfiguration' {perUnitStorageThroughput} -> perUnitStorageThroughput) (\s@CreateFileSystemLustreConfiguration' {} a -> s {perUnitStorageThroughput = a} :: CreateFileSystemLustreConfiguration)++-- | The Lustre root squash configuration used when creating 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.+createFileSystemLustreConfiguration_rootSquashConfiguration :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe LustreRootSquashConfiguration)+createFileSystemLustreConfiguration_rootSquashConfiguration = Lens.lens (\CreateFileSystemLustreConfiguration' {rootSquashConfiguration} -> rootSquashConfiguration) (\s@CreateFileSystemLustreConfiguration' {} a -> s {rootSquashConfiguration = a} :: CreateFileSystemLustreConfiguration)++-- | (Optional) The preferred start time to perform weekly maintenance,+-- formatted d:HH:MM in the UTC time zone, where d is the weekday number,+-- from 1 through 7, beginning with Monday and ending with Sunday.+createFileSystemLustreConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' CreateFileSystemLustreConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemLustreConfiguration_weeklyMaintenanceStartTime = Lens.lens (\CreateFileSystemLustreConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@CreateFileSystemLustreConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: CreateFileSystemLustreConfiguration)++instance+  Prelude.Hashable+    CreateFileSystemLustreConfiguration+  where+  hashWithSalt+    _salt+    CreateFileSystemLustreConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` autoImportPolicy+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` dataCompressionType+        `Prelude.hashWithSalt` deploymentType+        `Prelude.hashWithSalt` driveCacheType+        `Prelude.hashWithSalt` exportPath+        `Prelude.hashWithSalt` importPath+        `Prelude.hashWithSalt` importedFileChunkSize+        `Prelude.hashWithSalt` logConfiguration+        `Prelude.hashWithSalt` perUnitStorageThroughput+        `Prelude.hashWithSalt` rootSquashConfiguration+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance+  Prelude.NFData+    CreateFileSystemLustreConfiguration+  where+  rnf CreateFileSystemLustreConfiguration' {..} =+    Prelude.rnf autoImportPolicy+      `Prelude.seq` Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf dataCompressionType+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf driveCacheType+      `Prelude.seq` Prelude.rnf exportPath+      `Prelude.seq` Prelude.rnf importPath+      `Prelude.seq` Prelude.rnf importedFileChunkSize+      `Prelude.seq` Prelude.rnf logConfiguration+      `Prelude.seq` Prelude.rnf perUnitStorageThroughput+      `Prelude.seq` Prelude.rnf rootSquashConfiguration+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime++instance+  Data.ToJSON+    CreateFileSystemLustreConfiguration+  where+  toJSON CreateFileSystemLustreConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AutoImportPolicy" Data..=)+              Prelude.<$> autoImportPolicy,+            ("AutomaticBackupRetentionDays" Data..=)+              Prelude.<$> automaticBackupRetentionDays,+            ("CopyTagsToBackups" Data..=)+              Prelude.<$> copyTagsToBackups,+            ("DailyAutomaticBackupStartTime" Data..=)+              Prelude.<$> dailyAutomaticBackupStartTime,+            ("DataCompressionType" Data..=)+              Prelude.<$> dataCompressionType,+            ("DeploymentType" Data..=)+              Prelude.<$> deploymentType,+            ("DriveCacheType" Data..=)+              Prelude.<$> driveCacheType,+            ("ExportPath" Data..=) Prelude.<$> exportPath,+            ("ImportPath" Data..=) Prelude.<$> importPath,+            ("ImportedFileChunkSize" Data..=)+              Prelude.<$> importedFileChunkSize,+            ("LogConfiguration" Data..=)+              Prelude.<$> logConfiguration,+            ("PerUnitStorageThroughput" Data..=)+              Prelude.<$> perUnitStorageThroughput,+            ("RootSquashConfiguration" Data..=)+              Prelude.<$> rootSquashConfiguration,+            ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime+          ]+      )
+ gen/Amazonka/FSx/Types/CreateFileSystemOntapConfiguration.hs view
@@ -0,0 +1,285 @@+{-# 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.CreateFileSystemOntapConfiguration+-- 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.CreateFileSystemOntapConfiguration 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.DiskIopsConfiguration+import Amazonka.FSx.Types.OntapDeploymentType+import qualified Amazonka.Prelude as Prelude++-- | The ONTAP configuration properties of the FSx for ONTAP file system that+-- you are creating.+--+-- /See:/ 'newCreateFileSystemOntapConfiguration' smart constructor.+data CreateFileSystemOntapConfiguration = CreateFileSystemOntapConfiguration'+  { automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | The SSD IOPS configuration for the FSx for ONTAP file system.+    diskIopsConfiguration :: Prelude.Maybe DiskIopsConfiguration,+    -- | (Multi-AZ only) Specifies the IP address range in which the endpoints to+    -- access your file system will be created. By default in the Amazon FSx+    -- API, Amazon FSx selects an unused IP address range for you from the+    -- 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses+    -- the last 64 IP addresses from the VPC’s primary CIDR range to use as the+    -- endpoint IP address range for the file system. You can have overlapping+    -- endpoint IP addresses for file systems deployed in the same VPC\/route+    -- tables.+    endpointIpAddressRange :: Prelude.Maybe Prelude.Text,+    -- | The ONTAP administrative password for the @fsxadmin@ user with which you+    -- administer your file system using the NetApp ONTAP CLI and REST API.+    fsxAdminPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Required when @DeploymentType@ is set to @MULTI_AZ_1@. This specifies+    -- the subnet in which you want the preferred file server to be located.+    preferredSubnetId :: Prelude.Maybe Prelude.Text,+    -- | (Multi-AZ only) Specifies the virtual private cloud (VPC) route tables+    -- in which your file system\'s endpoints will be created. You should+    -- specify all VPC route tables associated with the subnets in which your+    -- clients are located. By default, Amazon FSx selects your VPC\'s default+    -- route table.+    routeTableIds :: Prelude.Maybe [Prelude.Text],+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text,+    -- | Specifies the FSx for ONTAP file system deployment type to use in+    -- creating the file system.+    --+    -- -   @MULTI_AZ_1@ - (Default) A high availability file system configured+    --     for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ)+    --     unavailability.+    --+    -- -   @SINGLE_AZ_1@ - A file system configured for Single-AZ redundancy.+    --+    -- For information about the use cases for Multi-AZ and Single-AZ+    -- deployments, refer to+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-AZ.html Choosing a file system deployment type>.+    deploymentType :: OntapDeploymentType,+    -- | Sets the throughput capacity for the file system that you\'re creating.+    -- Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps.+    throughputCapacity :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileSystemOntapConfiguration' 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:+--+-- 'automaticBackupRetentionDays', 'createFileSystemOntapConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'dailyAutomaticBackupStartTime', 'createFileSystemOntapConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'diskIopsConfiguration', 'createFileSystemOntapConfiguration_diskIopsConfiguration' - The SSD IOPS configuration for the FSx for ONTAP file system.+--+-- 'endpointIpAddressRange', 'createFileSystemOntapConfiguration_endpointIpAddressRange' - (Multi-AZ only) Specifies the IP address range in which the endpoints to+-- access your file system will be created. By default in the Amazon FSx+-- API, Amazon FSx selects an unused IP address range for you from the+-- 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses+-- the last 64 IP addresses from the VPC’s primary CIDR range to use as the+-- endpoint IP address range for the file system. You can have overlapping+-- endpoint IP addresses for file systems deployed in the same VPC\/route+-- tables.+--+-- 'fsxAdminPassword', 'createFileSystemOntapConfiguration_fsxAdminPassword' - The ONTAP administrative password for the @fsxadmin@ user with which you+-- administer your file system using the NetApp ONTAP CLI and REST API.+--+-- 'preferredSubnetId', 'createFileSystemOntapConfiguration_preferredSubnetId' - Required when @DeploymentType@ is set to @MULTI_AZ_1@. This specifies+-- the subnet in which you want the preferred file server to be located.+--+-- 'routeTableIds', 'createFileSystemOntapConfiguration_routeTableIds' - (Multi-AZ only) Specifies the virtual private cloud (VPC) route tables+-- in which your file system\'s endpoints will be created. You should+-- specify all VPC route tables associated with the subnets in which your+-- clients are located. By default, Amazon FSx selects your VPC\'s default+-- route table.+--+-- 'weeklyMaintenanceStartTime', 'createFileSystemOntapConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+--+-- 'deploymentType', 'createFileSystemOntapConfiguration_deploymentType' - Specifies the FSx for ONTAP file system deployment type to use in+-- creating the file system.+--+-- -   @MULTI_AZ_1@ - (Default) A high availability file system configured+--     for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ)+--     unavailability.+--+-- -   @SINGLE_AZ_1@ - A file system configured for Single-AZ redundancy.+--+-- For information about the use cases for Multi-AZ and Single-AZ+-- deployments, refer to+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-AZ.html Choosing a file system deployment type>.+--+-- 'throughputCapacity', 'createFileSystemOntapConfiguration_throughputCapacity' - Sets the throughput capacity for the file system that you\'re creating.+-- Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps.+newCreateFileSystemOntapConfiguration ::+  -- | 'deploymentType'+  OntapDeploymentType ->+  -- | 'throughputCapacity'+  Prelude.Natural ->+  CreateFileSystemOntapConfiguration+newCreateFileSystemOntapConfiguration+  pDeploymentType_+  pThroughputCapacity_ =+    CreateFileSystemOntapConfiguration'+      { automaticBackupRetentionDays =+          Prelude.Nothing,+        dailyAutomaticBackupStartTime =+          Prelude.Nothing,+        diskIopsConfiguration = Prelude.Nothing,+        endpointIpAddressRange =+          Prelude.Nothing,+        fsxAdminPassword = Prelude.Nothing,+        preferredSubnetId = Prelude.Nothing,+        routeTableIds = Prelude.Nothing,+        weeklyMaintenanceStartTime =+          Prelude.Nothing,+        deploymentType = pDeploymentType_,+        throughputCapacity =+          pThroughputCapacity_+      }++-- | Undocumented member.+createFileSystemOntapConfiguration_automaticBackupRetentionDays :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Natural)+createFileSystemOntapConfiguration_automaticBackupRetentionDays = Lens.lens (\CreateFileSystemOntapConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@CreateFileSystemOntapConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: CreateFileSystemOntapConfiguration)++-- | Undocumented member.+createFileSystemOntapConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemOntapConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\CreateFileSystemOntapConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@CreateFileSystemOntapConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: CreateFileSystemOntapConfiguration)++-- | The SSD IOPS configuration for the FSx for ONTAP file system.+createFileSystemOntapConfiguration_diskIopsConfiguration :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe DiskIopsConfiguration)+createFileSystemOntapConfiguration_diskIopsConfiguration = Lens.lens (\CreateFileSystemOntapConfiguration' {diskIopsConfiguration} -> diskIopsConfiguration) (\s@CreateFileSystemOntapConfiguration' {} a -> s {diskIopsConfiguration = a} :: CreateFileSystemOntapConfiguration)++-- | (Multi-AZ only) Specifies the IP address range in which the endpoints to+-- access your file system will be created. By default in the Amazon FSx+-- API, Amazon FSx selects an unused IP address range for you from the+-- 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses+-- the last 64 IP addresses from the VPC’s primary CIDR range to use as the+-- endpoint IP address range for the file system. You can have overlapping+-- endpoint IP addresses for file systems deployed in the same VPC\/route+-- tables.+createFileSystemOntapConfiguration_endpointIpAddressRange :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemOntapConfiguration_endpointIpAddressRange = Lens.lens (\CreateFileSystemOntapConfiguration' {endpointIpAddressRange} -> endpointIpAddressRange) (\s@CreateFileSystemOntapConfiguration' {} a -> s {endpointIpAddressRange = a} :: CreateFileSystemOntapConfiguration)++-- | The ONTAP administrative password for the @fsxadmin@ user with which you+-- administer your file system using the NetApp ONTAP CLI and REST API.+createFileSystemOntapConfiguration_fsxAdminPassword :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemOntapConfiguration_fsxAdminPassword = Lens.lens (\CreateFileSystemOntapConfiguration' {fsxAdminPassword} -> fsxAdminPassword) (\s@CreateFileSystemOntapConfiguration' {} a -> s {fsxAdminPassword = a} :: CreateFileSystemOntapConfiguration) Prelude.. Lens.mapping Data._Sensitive++-- | Required when @DeploymentType@ is set to @MULTI_AZ_1@. This specifies+-- the subnet in which you want the preferred file server to be located.+createFileSystemOntapConfiguration_preferredSubnetId :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemOntapConfiguration_preferredSubnetId = Lens.lens (\CreateFileSystemOntapConfiguration' {preferredSubnetId} -> preferredSubnetId) (\s@CreateFileSystemOntapConfiguration' {} a -> s {preferredSubnetId = a} :: CreateFileSystemOntapConfiguration)++-- | (Multi-AZ only) Specifies the virtual private cloud (VPC) route tables+-- in which your file system\'s endpoints will be created. You should+-- specify all VPC route tables associated with the subnets in which your+-- clients are located. By default, Amazon FSx selects your VPC\'s default+-- route table.+createFileSystemOntapConfiguration_routeTableIds :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe [Prelude.Text])+createFileSystemOntapConfiguration_routeTableIds = Lens.lens (\CreateFileSystemOntapConfiguration' {routeTableIds} -> routeTableIds) (\s@CreateFileSystemOntapConfiguration' {} a -> s {routeTableIds = a} :: CreateFileSystemOntapConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createFileSystemOntapConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' CreateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemOntapConfiguration_weeklyMaintenanceStartTime = Lens.lens (\CreateFileSystemOntapConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@CreateFileSystemOntapConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: CreateFileSystemOntapConfiguration)++-- | Specifies the FSx for ONTAP file system deployment type to use in+-- creating the file system.+--+-- -   @MULTI_AZ_1@ - (Default) A high availability file system configured+--     for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ)+--     unavailability.+--+-- -   @SINGLE_AZ_1@ - A file system configured for Single-AZ redundancy.+--+-- For information about the use cases for Multi-AZ and Single-AZ+-- deployments, refer to+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-AZ.html Choosing a file system deployment type>.+createFileSystemOntapConfiguration_deploymentType :: Lens.Lens' CreateFileSystemOntapConfiguration OntapDeploymentType+createFileSystemOntapConfiguration_deploymentType = Lens.lens (\CreateFileSystemOntapConfiguration' {deploymentType} -> deploymentType) (\s@CreateFileSystemOntapConfiguration' {} a -> s {deploymentType = a} :: CreateFileSystemOntapConfiguration)++-- | Sets the throughput capacity for the file system that you\'re creating.+-- Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps.+createFileSystemOntapConfiguration_throughputCapacity :: Lens.Lens' CreateFileSystemOntapConfiguration Prelude.Natural+createFileSystemOntapConfiguration_throughputCapacity = Lens.lens (\CreateFileSystemOntapConfiguration' {throughputCapacity} -> throughputCapacity) (\s@CreateFileSystemOntapConfiguration' {} a -> s {throughputCapacity = a} :: CreateFileSystemOntapConfiguration)++instance+  Prelude.Hashable+    CreateFileSystemOntapConfiguration+  where+  hashWithSalt+    _salt+    CreateFileSystemOntapConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` diskIopsConfiguration+        `Prelude.hashWithSalt` endpointIpAddressRange+        `Prelude.hashWithSalt` fsxAdminPassword+        `Prelude.hashWithSalt` preferredSubnetId+        `Prelude.hashWithSalt` routeTableIds+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime+        `Prelude.hashWithSalt` deploymentType+        `Prelude.hashWithSalt` throughputCapacity++instance+  Prelude.NFData+    CreateFileSystemOntapConfiguration+  where+  rnf CreateFileSystemOntapConfiguration' {..} =+    Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf diskIopsConfiguration+      `Prelude.seq` Prelude.rnf endpointIpAddressRange+      `Prelude.seq` Prelude.rnf fsxAdminPassword+      `Prelude.seq` Prelude.rnf preferredSubnetId+      `Prelude.seq` Prelude.rnf routeTableIds+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf throughputCapacity++instance+  Data.ToJSON+    CreateFileSystemOntapConfiguration+  where+  toJSON CreateFileSystemOntapConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AutomaticBackupRetentionDays" Data..=)+              Prelude.<$> automaticBackupRetentionDays,+            ("DailyAutomaticBackupStartTime" Data..=)+              Prelude.<$> dailyAutomaticBackupStartTime,+            ("DiskIopsConfiguration" Data..=)+              Prelude.<$> diskIopsConfiguration,+            ("EndpointIpAddressRange" Data..=)+              Prelude.<$> endpointIpAddressRange,+            ("FsxAdminPassword" Data..=)+              Prelude.<$> fsxAdminPassword,+            ("PreferredSubnetId" Data..=)+              Prelude.<$> preferredSubnetId,+            ("RouteTableIds" Data..=) Prelude.<$> routeTableIds,+            ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime,+            Prelude.Just+              ("DeploymentType" Data..= deploymentType),+            Prelude.Just+              ("ThroughputCapacity" Data..= throughputCapacity)+          ]+      )
+ gen/Amazonka/FSx/Types/CreateFileSystemOpenZFSConfiguration.hs view
@@ -0,0 +1,328 @@+{-# 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.CreateFileSystemOpenZFSConfiguration+-- 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.CreateFileSystemOpenZFSConfiguration 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.DiskIopsConfiguration+import Amazonka.FSx.Types.OpenZFSCreateRootVolumeConfiguration+import Amazonka.FSx.Types.OpenZFSDeploymentType+import qualified Amazonka.Prelude as Prelude++-- | The Amazon FSx for OpenZFS configuration properties for the file system+-- that you are creating.+--+-- /See:/ 'newCreateFileSystemOpenZFSConfiguration' smart constructor.+data CreateFileSystemOpenZFSConfiguration = CreateFileSystemOpenZFSConfiguration'+  { automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | A Boolean value indicating whether tags for the file system should be+    -- copied to backups. This value defaults to @false@. If it\'s set to+    -- @true@, all tags for the file system are copied to all automatic and+    -- user-initiated backups where the user doesn\'t specify tags. If this+    -- value is @true@, and you specify one or more tags, only the specified+    -- tags are copied to backups. If you specify one or more tags when+    -- creating a user-initiated backup, no tags are copied from the file+    -- system, regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value indicating whether tags for the file system should be+    -- copied to volumes. This value defaults to @false@. If it\'s set to+    -- @true@, all tags for the file system are copied to volumes where the+    -- user doesn\'t specify tags. If this value is @true@, and you specify one+    -- or more tags, only the specified tags are copied to volumes. If you+    -- specify one or more tags when creating the volume, no tags are copied+    -- from the file system, regardless of this value.+    copyTagsToVolumes :: Prelude.Maybe Prelude.Bool,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    diskIopsConfiguration :: Prelude.Maybe DiskIopsConfiguration,+    -- | The configuration Amazon FSx uses when creating the root value of the+    -- Amazon FSx for OpenZFS file system. All volumes are children of the root+    -- volume.+    rootVolumeConfiguration :: Prelude.Maybe OpenZFSCreateRootVolumeConfiguration,+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text,+    -- | Specifies the file system deployment type. Single AZ deployment types+    -- are configured for redundancy within a single Availability Zone in an+    -- Amazon Web Services Region . Valid values are the following:+    --+    -- -   @SINGLE_AZ_1@- (Default) Creates file systems with throughput+    --     capacities of 64 - 4,096 MB\/s. @Single_AZ_1@ is available in all+    --     Amazon Web Services Regions where Amazon FSx for OpenZFS is+    --     available, except US West (Oregon).+    --+    -- -   @SINGLE_AZ_2@- Creates file systems with throughput capacities of+    --     160 - 10,240 MB\/s using an NVMe L2ARC cache. @Single_AZ_2@ is+    --     available only in the US East (N. Virginia), US East (Ohio), US West+    --     (Oregon), and Europe (Ireland) Amazon Web Services Regions.+    --+    -- For more information, see:+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/availability-durability.html#available-aws-regions Deployment type availability>+    -- and+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#zfs-fs-performance File system performance>+    -- in the /Amazon FSx for OpenZFS User Guide/.+    deploymentType :: OpenZFSDeploymentType,+    -- | Specifies the throughput of an Amazon FSx for OpenZFS file system,+    -- measured in megabytes per second (MB\/s). Valid values depend on the+    -- DeploymentType you choose, as follows:+    --+    -- -   For @SINGLE_AZ_1@, valid values are 64, 128, 256, 512, 1024, 2048,+    --     3072, or 4096 MB\/s.+    --+    -- -   For @SINGLE_AZ_2@, valid values are 160, 320, 640, 1280, 2560, 3840,+    --     5120, 7680, or 10240 MB\/s.+    --+    -- You pay for additional throughput capacity that you provision.+    throughputCapacity :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileSystemOpenZFSConfiguration' 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:+--+-- 'automaticBackupRetentionDays', 'createFileSystemOpenZFSConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'copyTagsToBackups', 'createFileSystemOpenZFSConfiguration_copyTagsToBackups' - A Boolean value indicating whether tags for the file system should be+-- copied to backups. This value defaults to @false@. If it\'s set to+-- @true@, all tags for the file system are copied to all automatic and+-- user-initiated backups where the user doesn\'t specify tags. If this+-- value is @true@, and you specify one or more tags, only the specified+-- tags are copied to backups. If you specify one or more tags when+-- creating a user-initiated backup, no tags are copied from the file+-- system, regardless of this value.+--+-- 'copyTagsToVolumes', 'createFileSystemOpenZFSConfiguration_copyTagsToVolumes' - A Boolean value indicating whether tags for the file system should be+-- copied to volumes. This value defaults to @false@. If it\'s set to+-- @true@, all tags for the file system are copied to volumes where the+-- user doesn\'t specify tags. If this value is @true@, and you specify one+-- or more tags, only the specified tags are copied to volumes. If you+-- specify one or more tags when creating the volume, no tags are copied+-- from the file system, regardless of this value.+--+-- 'dailyAutomaticBackupStartTime', 'createFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'diskIopsConfiguration', 'createFileSystemOpenZFSConfiguration_diskIopsConfiguration' - Undocumented member.+--+-- 'rootVolumeConfiguration', 'createFileSystemOpenZFSConfiguration_rootVolumeConfiguration' - The configuration Amazon FSx uses when creating the root value of the+-- Amazon FSx for OpenZFS file system. All volumes are children of the root+-- volume.+--+-- 'weeklyMaintenanceStartTime', 'createFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+--+-- 'deploymentType', 'createFileSystemOpenZFSConfiguration_deploymentType' - Specifies the file system deployment type. Single AZ deployment types+-- are configured for redundancy within a single Availability Zone in an+-- Amazon Web Services Region . Valid values are the following:+--+-- -   @SINGLE_AZ_1@- (Default) Creates file systems with throughput+--     capacities of 64 - 4,096 MB\/s. @Single_AZ_1@ is available in all+--     Amazon Web Services Regions where Amazon FSx for OpenZFS is+--     available, except US West (Oregon).+--+-- -   @SINGLE_AZ_2@- Creates file systems with throughput capacities of+--     160 - 10,240 MB\/s using an NVMe L2ARC cache. @Single_AZ_2@ is+--     available only in the US East (N. Virginia), US East (Ohio), US West+--     (Oregon), and Europe (Ireland) Amazon Web Services Regions.+--+-- For more information, see:+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/availability-durability.html#available-aws-regions Deployment type availability>+-- and+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#zfs-fs-performance File system performance>+-- in the /Amazon FSx for OpenZFS User Guide/.+--+-- 'throughputCapacity', 'createFileSystemOpenZFSConfiguration_throughputCapacity' - Specifies the throughput of an Amazon FSx for OpenZFS file system,+-- measured in megabytes per second (MB\/s). Valid values depend on the+-- DeploymentType you choose, as follows:+--+-- -   For @SINGLE_AZ_1@, valid values are 64, 128, 256, 512, 1024, 2048,+--     3072, or 4096 MB\/s.+--+-- -   For @SINGLE_AZ_2@, valid values are 160, 320, 640, 1280, 2560, 3840,+--     5120, 7680, or 10240 MB\/s.+--+-- You pay for additional throughput capacity that you provision.+newCreateFileSystemOpenZFSConfiguration ::+  -- | 'deploymentType'+  OpenZFSDeploymentType ->+  -- | 'throughputCapacity'+  Prelude.Natural ->+  CreateFileSystemOpenZFSConfiguration+newCreateFileSystemOpenZFSConfiguration+  pDeploymentType_+  pThroughputCapacity_ =+    CreateFileSystemOpenZFSConfiguration'+      { automaticBackupRetentionDays =+          Prelude.Nothing,+        copyTagsToBackups = Prelude.Nothing,+        copyTagsToVolumes = Prelude.Nothing,+        dailyAutomaticBackupStartTime =+          Prelude.Nothing,+        diskIopsConfiguration =+          Prelude.Nothing,+        rootVolumeConfiguration =+          Prelude.Nothing,+        weeklyMaintenanceStartTime =+          Prelude.Nothing,+        deploymentType = pDeploymentType_,+        throughputCapacity =+          pThroughputCapacity_+      }++-- | Undocumented member.+createFileSystemOpenZFSConfiguration_automaticBackupRetentionDays :: Lens.Lens' CreateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Natural)+createFileSystemOpenZFSConfiguration_automaticBackupRetentionDays = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: CreateFileSystemOpenZFSConfiguration)++-- | A Boolean value indicating whether tags for the file system should be+-- copied to backups. This value defaults to @false@. If it\'s set to+-- @true@, all tags for the file system are copied to all automatic and+-- user-initiated backups where the user doesn\'t specify tags. If this+-- value is @true@, and you specify one or more tags, only the specified+-- tags are copied to backups. If you specify one or more tags when+-- creating a user-initiated backup, no tags are copied from the file+-- system, regardless of this value.+createFileSystemOpenZFSConfiguration_copyTagsToBackups :: Lens.Lens' CreateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Bool)+createFileSystemOpenZFSConfiguration_copyTagsToBackups = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {copyTagsToBackups = a} :: CreateFileSystemOpenZFSConfiguration)++-- | A Boolean value indicating whether tags for the file system should be+-- copied to volumes. This value defaults to @false@. If it\'s set to+-- @true@, all tags for the file system are copied to volumes where the+-- user doesn\'t specify tags. If this value is @true@, and you specify one+-- or more tags, only the specified tags are copied to volumes. If you+-- specify one or more tags when creating the volume, no tags are copied+-- from the file system, regardless of this value.+createFileSystemOpenZFSConfiguration_copyTagsToVolumes :: Lens.Lens' CreateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Bool)+createFileSystemOpenZFSConfiguration_copyTagsToVolumes = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {copyTagsToVolumes} -> copyTagsToVolumes) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {copyTagsToVolumes = a} :: CreateFileSystemOpenZFSConfiguration)++-- | Undocumented member.+createFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' CreateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: CreateFileSystemOpenZFSConfiguration)++-- | Undocumented member.+createFileSystemOpenZFSConfiguration_diskIopsConfiguration :: Lens.Lens' CreateFileSystemOpenZFSConfiguration (Prelude.Maybe DiskIopsConfiguration)+createFileSystemOpenZFSConfiguration_diskIopsConfiguration = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {diskIopsConfiguration} -> diskIopsConfiguration) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {diskIopsConfiguration = a} :: CreateFileSystemOpenZFSConfiguration)++-- | The configuration Amazon FSx uses when creating the root value of the+-- Amazon FSx for OpenZFS file system. All volumes are children of the root+-- volume.+createFileSystemOpenZFSConfiguration_rootVolumeConfiguration :: Lens.Lens' CreateFileSystemOpenZFSConfiguration (Prelude.Maybe OpenZFSCreateRootVolumeConfiguration)+createFileSystemOpenZFSConfiguration_rootVolumeConfiguration = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {rootVolumeConfiguration} -> rootVolumeConfiguration) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {rootVolumeConfiguration = a} :: CreateFileSystemOpenZFSConfiguration)++-- | Undocumented member.+createFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' CreateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: CreateFileSystemOpenZFSConfiguration)++-- | Specifies the file system deployment type. Single AZ deployment types+-- are configured for redundancy within a single Availability Zone in an+-- Amazon Web Services Region . Valid values are the following:+--+-- -   @SINGLE_AZ_1@- (Default) Creates file systems with throughput+--     capacities of 64 - 4,096 MB\/s. @Single_AZ_1@ is available in all+--     Amazon Web Services Regions where Amazon FSx for OpenZFS is+--     available, except US West (Oregon).+--+-- -   @SINGLE_AZ_2@- Creates file systems with throughput capacities of+--     160 - 10,240 MB\/s using an NVMe L2ARC cache. @Single_AZ_2@ is+--     available only in the US East (N. Virginia), US East (Ohio), US West+--     (Oregon), and Europe (Ireland) Amazon Web Services Regions.+--+-- For more information, see:+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/availability-durability.html#available-aws-regions Deployment type availability>+-- and+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#zfs-fs-performance File system performance>+-- in the /Amazon FSx for OpenZFS User Guide/.+createFileSystemOpenZFSConfiguration_deploymentType :: Lens.Lens' CreateFileSystemOpenZFSConfiguration OpenZFSDeploymentType+createFileSystemOpenZFSConfiguration_deploymentType = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {deploymentType} -> deploymentType) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {deploymentType = a} :: CreateFileSystemOpenZFSConfiguration)++-- | Specifies the throughput of an Amazon FSx for OpenZFS file system,+-- measured in megabytes per second (MB\/s). Valid values depend on the+-- DeploymentType you choose, as follows:+--+-- -   For @SINGLE_AZ_1@, valid values are 64, 128, 256, 512, 1024, 2048,+--     3072, or 4096 MB\/s.+--+-- -   For @SINGLE_AZ_2@, valid values are 160, 320, 640, 1280, 2560, 3840,+--     5120, 7680, or 10240 MB\/s.+--+-- You pay for additional throughput capacity that you provision.+createFileSystemOpenZFSConfiguration_throughputCapacity :: Lens.Lens' CreateFileSystemOpenZFSConfiguration Prelude.Natural+createFileSystemOpenZFSConfiguration_throughputCapacity = Lens.lens (\CreateFileSystemOpenZFSConfiguration' {throughputCapacity} -> throughputCapacity) (\s@CreateFileSystemOpenZFSConfiguration' {} a -> s {throughputCapacity = a} :: CreateFileSystemOpenZFSConfiguration)++instance+  Prelude.Hashable+    CreateFileSystemOpenZFSConfiguration+  where+  hashWithSalt+    _salt+    CreateFileSystemOpenZFSConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` copyTagsToVolumes+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` diskIopsConfiguration+        `Prelude.hashWithSalt` rootVolumeConfiguration+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime+        `Prelude.hashWithSalt` deploymentType+        `Prelude.hashWithSalt` throughputCapacity++instance+  Prelude.NFData+    CreateFileSystemOpenZFSConfiguration+  where+  rnf CreateFileSystemOpenZFSConfiguration' {..} =+    Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf copyTagsToVolumes+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf diskIopsConfiguration+      `Prelude.seq` Prelude.rnf rootVolumeConfiguration+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf throughputCapacity++instance+  Data.ToJSON+    CreateFileSystemOpenZFSConfiguration+  where+  toJSON CreateFileSystemOpenZFSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AutomaticBackupRetentionDays" Data..=)+              Prelude.<$> automaticBackupRetentionDays,+            ("CopyTagsToBackups" Data..=)+              Prelude.<$> copyTagsToBackups,+            ("CopyTagsToVolumes" Data..=)+              Prelude.<$> copyTagsToVolumes,+            ("DailyAutomaticBackupStartTime" Data..=)+              Prelude.<$> dailyAutomaticBackupStartTime,+            ("DiskIopsConfiguration" Data..=)+              Prelude.<$> diskIopsConfiguration,+            ("RootVolumeConfiguration" Data..=)+              Prelude.<$> rootVolumeConfiguration,+            ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime,+            Prelude.Just+              ("DeploymentType" Data..= deploymentType),+            Prelude.Just+              ("ThroughputCapacity" Data..= throughputCapacity)+          ]+      )
+ gen/Amazonka/FSx/Types/CreateFileSystemWindowsConfiguration.hs view
@@ -0,0 +1,438 @@+{-# 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.CreateFileSystemWindowsConfiguration+-- 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.CreateFileSystemWindowsConfiguration 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.SelfManagedActiveDirectoryConfiguration+import Amazonka.FSx.Types.WindowsAuditLogCreateConfiguration+import Amazonka.FSx.Types.WindowsDeploymentType+import qualified Amazonka.Prelude as Prelude++-- | The configuration object for the Microsoft Windows file system used in+-- @CreateFileSystem@ and @CreateFileSystemFromBackup@ operations.+--+-- /See:/ 'newCreateFileSystemWindowsConfiguration' smart constructor.+data CreateFileSystemWindowsConfiguration = CreateFileSystemWindowsConfiguration'+  { -- | The ID for an existing Amazon Web Services Managed Microsoft Active+    -- Directory (AD) instance that the file system should join when it\'s+    -- created.+    activeDirectoryId :: Prelude.Maybe Prelude.Text,+    -- | An array of one or more DNS alias names that you want to associate with+    -- the Amazon FSx file system. Aliases allow you to use existing DNS names+    -- to access the data in your Amazon FSx file system. You can associate up+    -- to 50 aliases with a file system at any time. You can associate+    -- additional DNS aliases after you create the file system using the+    -- AssociateFileSystemAliases operation. You can remove DNS aliases from+    -- the file system after it is created using the+    -- DisassociateFileSystemAliases operation. You only need to specify the+    -- alias name in the request payload.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html Working with DNS Aliases>+    -- and+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html Walkthrough 5: Using DNS aliases to access your file system>,+    -- including additional steps you must take to be able to access your file+    -- system using a DNS alias.+    --+    -- An alias name has to meet the following requirements:+    --+    -- -   Formatted as a fully-qualified domain name (FQDN),+    --     @hostname.domain@, for example, @accounting.example.com@.+    --+    -- -   Can contain alphanumeric characters, the underscore (_), and the+    --     hyphen (-).+    --+    -- -   Cannot start or end with a hyphen.+    --+    -- -   Can start with a numeric.+    --+    -- For DNS alias names, Amazon FSx stores alphabetic characters as+    -- lowercase letters (a-z), regardless of how you specify them: as+    -- uppercase letters, lowercase letters, or the corresponding letters in+    -- escape codes.+    aliases :: Prelude.Maybe [Prelude.Text],+    -- | The configuration that Amazon FSx for Windows File Server uses to audit+    -- and log user accesses of files, folders, and file shares on the Amazon+    -- FSx for Windows File Server file system.+    auditLogConfiguration :: Prelude.Maybe WindowsAuditLogCreateConfiguration,+    -- | The number of days to retain automatic backups. The default is to retain+    -- backups for 7 days. Setting this value to 0 disables the creation of+    -- automatic backups. The maximum retention period for backups is 90 days.+    automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | A boolean flag indicating whether tags for the file system should be+    -- copied to backups. This value defaults to false. If it\'s set to true,+    -- all tags for the file system are copied to all automatic and+    -- user-initiated backups where the user doesn\'t specify tags. If this+    -- value is true, and you specify one or more tags, only the specified tags+    -- are copied to backups. If you specify one or more tags when creating a+    -- user-initiated backup, no tags are copied from the file system,+    -- regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | The preferred time to take daily automatic backups, formatted HH:MM in+    -- the UTC time zone.+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | Specifies the file system deployment type, valid values are the+    -- following:+    --+    -- -   @MULTI_AZ_1@ - Deploys a high availability file system that is+    --     configured for Multi-AZ redundancy to tolerate temporary+    --     Availability Zone (AZ) unavailability. You can only deploy a+    --     Multi-AZ file system in Amazon Web Services Regions that have a+    --     minimum of three Availability Zones. Also supports HDD storage type+    --+    -- -   @SINGLE_AZ_1@ - (Default) Choose to deploy a file system that is+    --     configured for single AZ redundancy.+    --+    -- -   @SINGLE_AZ_2@ - The latest generation Single AZ file system.+    --     Specifies a file system that is configured for single AZ redundancy+    --     and supports HDD storage type.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Availability and Durability: Single-AZ and Multi-AZ File Systems>.+    deploymentType :: Prelude.Maybe WindowsDeploymentType,+    -- | Required when @DeploymentType@ is set to @MULTI_AZ_1@. This specifies+    -- the subnet in which you want the preferred file server to be located.+    -- For in-Amazon Web Services applications, we recommend that you launch+    -- your clients in the same Availability Zone (AZ) as your preferred file+    -- server to reduce cross-AZ data transfer costs and minimize latency.+    preferredSubnetId :: Prelude.Maybe Prelude.Text,+    selfManagedActiveDirectoryConfiguration :: Prelude.Maybe SelfManagedActiveDirectoryConfiguration,+    -- | The preferred start time to perform weekly maintenance, formatted+    -- d:HH:MM in the UTC time zone, where d is the weekday number, from 1+    -- through 7, beginning with Monday and ending with Sunday.+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text,+    -- | Sets the throughput capacity of an Amazon FSx file system, measured in+    -- megabytes per second (MB\/s), in 2 to the /n/th increments, between 2^3+    -- (8) and 2^11 (2048).+    throughputCapacity :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFileSystemWindowsConfiguration' 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:+--+-- 'activeDirectoryId', 'createFileSystemWindowsConfiguration_activeDirectoryId' - The ID for an existing Amazon Web Services Managed Microsoft Active+-- Directory (AD) instance that the file system should join when it\'s+-- created.+--+-- 'aliases', 'createFileSystemWindowsConfiguration_aliases' - An array of one or more DNS alias names that you want to associate with+-- the Amazon FSx file system. Aliases allow you to use existing DNS names+-- to access the data in your Amazon FSx file system. You can associate up+-- to 50 aliases with a file system at any time. You can associate+-- additional DNS aliases after you create the file system using the+-- AssociateFileSystemAliases operation. You can remove DNS aliases from+-- the file system after it is created using the+-- DisassociateFileSystemAliases operation. You only need to specify the+-- alias name in the request payload.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html Working with DNS Aliases>+-- and+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html Walkthrough 5: Using DNS aliases to access your file system>,+-- including additional steps you must take to be able to access your file+-- system using a DNS alias.+--+-- An alias name has to meet the following requirements:+--+-- -   Formatted as a fully-qualified domain name (FQDN),+--     @hostname.domain@, for example, @accounting.example.com@.+--+-- -   Can contain alphanumeric characters, the underscore (_), and the+--     hyphen (-).+--+-- -   Cannot start or end with a hyphen.+--+-- -   Can start with a numeric.+--+-- For DNS alias names, Amazon FSx stores alphabetic characters as+-- lowercase letters (a-z), regardless of how you specify them: as+-- uppercase letters, lowercase letters, or the corresponding letters in+-- escape codes.+--+-- 'auditLogConfiguration', 'createFileSystemWindowsConfiguration_auditLogConfiguration' - The configuration that Amazon FSx for Windows File Server uses to audit+-- and log user accesses of files, folders, and file shares on the Amazon+-- FSx for Windows File Server file system.+--+-- 'automaticBackupRetentionDays', 'createFileSystemWindowsConfiguration_automaticBackupRetentionDays' - The number of days to retain automatic backups. The default is to retain+-- backups for 7 days. Setting this value to 0 disables the creation of+-- automatic backups. The maximum retention period for backups is 90 days.+--+-- 'copyTagsToBackups', 'createFileSystemWindowsConfiguration_copyTagsToBackups' - A boolean flag indicating whether tags for the file system should be+-- copied to backups. This value defaults to false. If it\'s set to true,+-- all tags for the file system are copied to all automatic and+-- user-initiated backups where the user doesn\'t specify tags. If this+-- value is true, and you specify one or more tags, only the specified tags+-- are copied to backups. If you specify one or more tags when creating a+-- user-initiated backup, no tags are copied from the file system,+-- regardless of this value.+--+-- 'dailyAutomaticBackupStartTime', 'createFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime' - The preferred time to take daily automatic backups, formatted HH:MM in+-- the UTC time zone.+--+-- 'deploymentType', 'createFileSystemWindowsConfiguration_deploymentType' - Specifies the file system deployment type, valid values are the+-- following:+--+-- -   @MULTI_AZ_1@ - Deploys a high availability file system that is+--     configured for Multi-AZ redundancy to tolerate temporary+--     Availability Zone (AZ) unavailability. You can only deploy a+--     Multi-AZ file system in Amazon Web Services Regions that have a+--     minimum of three Availability Zones. Also supports HDD storage type+--+-- -   @SINGLE_AZ_1@ - (Default) Choose to deploy a file system that is+--     configured for single AZ redundancy.+--+-- -   @SINGLE_AZ_2@ - The latest generation Single AZ file system.+--     Specifies a file system that is configured for single AZ redundancy+--     and supports HDD storage type.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Availability and Durability: Single-AZ and Multi-AZ File Systems>.+--+-- 'preferredSubnetId', 'createFileSystemWindowsConfiguration_preferredSubnetId' - Required when @DeploymentType@ is set to @MULTI_AZ_1@. This specifies+-- the subnet in which you want the preferred file server to be located.+-- For in-Amazon Web Services applications, we recommend that you launch+-- your clients in the same Availability Zone (AZ) as your preferred file+-- server to reduce cross-AZ data transfer costs and minimize latency.+--+-- 'selfManagedActiveDirectoryConfiguration', 'createFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration' - Undocumented member.+--+-- 'weeklyMaintenanceStartTime', 'createFileSystemWindowsConfiguration_weeklyMaintenanceStartTime' - The preferred start time to perform weekly maintenance, formatted+-- d:HH:MM in the UTC time zone, where d is the weekday number, from 1+-- through 7, beginning with Monday and ending with Sunday.+--+-- 'throughputCapacity', 'createFileSystemWindowsConfiguration_throughputCapacity' - Sets the throughput capacity of an Amazon FSx file system, measured in+-- megabytes per second (MB\/s), in 2 to the /n/th increments, between 2^3+-- (8) and 2^11 (2048).+newCreateFileSystemWindowsConfiguration ::+  -- | 'throughputCapacity'+  Prelude.Natural ->+  CreateFileSystemWindowsConfiguration+newCreateFileSystemWindowsConfiguration+  pThroughputCapacity_ =+    CreateFileSystemWindowsConfiguration'+      { activeDirectoryId =+          Prelude.Nothing,+        aliases = Prelude.Nothing,+        auditLogConfiguration =+          Prelude.Nothing,+        automaticBackupRetentionDays =+          Prelude.Nothing,+        copyTagsToBackups = Prelude.Nothing,+        dailyAutomaticBackupStartTime =+          Prelude.Nothing,+        deploymentType = Prelude.Nothing,+        preferredSubnetId = Prelude.Nothing,+        selfManagedActiveDirectoryConfiguration =+          Prelude.Nothing,+        weeklyMaintenanceStartTime =+          Prelude.Nothing,+        throughputCapacity =+          pThroughputCapacity_+      }++-- | The ID for an existing Amazon Web Services Managed Microsoft Active+-- Directory (AD) instance that the file system should join when it\'s+-- created.+createFileSystemWindowsConfiguration_activeDirectoryId :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemWindowsConfiguration_activeDirectoryId = Lens.lens (\CreateFileSystemWindowsConfiguration' {activeDirectoryId} -> activeDirectoryId) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {activeDirectoryId = a} :: CreateFileSystemWindowsConfiguration)++-- | An array of one or more DNS alias names that you want to associate with+-- the Amazon FSx file system. Aliases allow you to use existing DNS names+-- to access the data in your Amazon FSx file system. You can associate up+-- to 50 aliases with a file system at any time. You can associate+-- additional DNS aliases after you create the file system using the+-- AssociateFileSystemAliases operation. You can remove DNS aliases from+-- the file system after it is created using the+-- DisassociateFileSystemAliases operation. You only need to specify the+-- alias name in the request payload.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html Working with DNS Aliases>+-- and+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html Walkthrough 5: Using DNS aliases to access your file system>,+-- including additional steps you must take to be able to access your file+-- system using a DNS alias.+--+-- An alias name has to meet the following requirements:+--+-- -   Formatted as a fully-qualified domain name (FQDN),+--     @hostname.domain@, for example, @accounting.example.com@.+--+-- -   Can contain alphanumeric characters, the underscore (_), and the+--     hyphen (-).+--+-- -   Cannot start or end with a hyphen.+--+-- -   Can start with a numeric.+--+-- For DNS alias names, Amazon FSx stores alphabetic characters as+-- lowercase letters (a-z), regardless of how you specify them: as+-- uppercase letters, lowercase letters, or the corresponding letters in+-- escape codes.+createFileSystemWindowsConfiguration_aliases :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe [Prelude.Text])+createFileSystemWindowsConfiguration_aliases = Lens.lens (\CreateFileSystemWindowsConfiguration' {aliases} -> aliases) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {aliases = a} :: CreateFileSystemWindowsConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The configuration that Amazon FSx for Windows File Server uses to audit+-- and log user accesses of files, folders, and file shares on the Amazon+-- FSx for Windows File Server file system.+createFileSystemWindowsConfiguration_auditLogConfiguration :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe WindowsAuditLogCreateConfiguration)+createFileSystemWindowsConfiguration_auditLogConfiguration = Lens.lens (\CreateFileSystemWindowsConfiguration' {auditLogConfiguration} -> auditLogConfiguration) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {auditLogConfiguration = a} :: CreateFileSystemWindowsConfiguration)++-- | The number of days to retain automatic backups. The default is to retain+-- backups for 7 days. Setting this value to 0 disables the creation of+-- automatic backups. The maximum retention period for backups is 90 days.+createFileSystemWindowsConfiguration_automaticBackupRetentionDays :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Natural)+createFileSystemWindowsConfiguration_automaticBackupRetentionDays = Lens.lens (\CreateFileSystemWindowsConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: CreateFileSystemWindowsConfiguration)++-- | A boolean flag indicating whether tags for the file system should be+-- copied to backups. This value defaults to false. If it\'s set to true,+-- all tags for the file system are copied to all automatic and+-- user-initiated backups where the user doesn\'t specify tags. If this+-- value is true, and you specify one or more tags, only the specified tags+-- are copied to backups. If you specify one or more tags when creating a+-- user-initiated backup, no tags are copied from the file system,+-- regardless of this value.+createFileSystemWindowsConfiguration_copyTagsToBackups :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Bool)+createFileSystemWindowsConfiguration_copyTagsToBackups = Lens.lens (\CreateFileSystemWindowsConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {copyTagsToBackups = a} :: CreateFileSystemWindowsConfiguration)++-- | The preferred time to take daily automatic backups, formatted HH:MM in+-- the UTC time zone.+createFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\CreateFileSystemWindowsConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: CreateFileSystemWindowsConfiguration)++-- | Specifies the file system deployment type, valid values are the+-- following:+--+-- -   @MULTI_AZ_1@ - Deploys a high availability file system that is+--     configured for Multi-AZ redundancy to tolerate temporary+--     Availability Zone (AZ) unavailability. You can only deploy a+--     Multi-AZ file system in Amazon Web Services Regions that have a+--     minimum of three Availability Zones. Also supports HDD storage type+--+-- -   @SINGLE_AZ_1@ - (Default) Choose to deploy a file system that is+--     configured for single AZ redundancy.+--+-- -   @SINGLE_AZ_2@ - The latest generation Single AZ file system.+--     Specifies a file system that is configured for single AZ redundancy+--     and supports HDD storage type.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Availability and Durability: Single-AZ and Multi-AZ File Systems>.+createFileSystemWindowsConfiguration_deploymentType :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe WindowsDeploymentType)+createFileSystemWindowsConfiguration_deploymentType = Lens.lens (\CreateFileSystemWindowsConfiguration' {deploymentType} -> deploymentType) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {deploymentType = a} :: CreateFileSystemWindowsConfiguration)++-- | Required when @DeploymentType@ is set to @MULTI_AZ_1@. This specifies+-- the subnet in which you want the preferred file server to be located.+-- For in-Amazon Web Services applications, we recommend that you launch+-- your clients in the same Availability Zone (AZ) as your preferred file+-- server to reduce cross-AZ data transfer costs and minimize latency.+createFileSystemWindowsConfiguration_preferredSubnetId :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemWindowsConfiguration_preferredSubnetId = Lens.lens (\CreateFileSystemWindowsConfiguration' {preferredSubnetId} -> preferredSubnetId) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {preferredSubnetId = a} :: CreateFileSystemWindowsConfiguration)++-- | Undocumented member.+createFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe SelfManagedActiveDirectoryConfiguration)+createFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration = Lens.lens (\CreateFileSystemWindowsConfiguration' {selfManagedActiveDirectoryConfiguration} -> selfManagedActiveDirectoryConfiguration) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {selfManagedActiveDirectoryConfiguration = a} :: CreateFileSystemWindowsConfiguration)++-- | The preferred start time to perform weekly maintenance, formatted+-- d:HH:MM in the UTC time zone, where d is the weekday number, from 1+-- through 7, beginning with Monday and ending with Sunday.+createFileSystemWindowsConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' CreateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Text)+createFileSystemWindowsConfiguration_weeklyMaintenanceStartTime = Lens.lens (\CreateFileSystemWindowsConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: CreateFileSystemWindowsConfiguration)++-- | Sets the throughput capacity of an Amazon FSx file system, measured in+-- megabytes per second (MB\/s), in 2 to the /n/th increments, between 2^3+-- (8) and 2^11 (2048).+createFileSystemWindowsConfiguration_throughputCapacity :: Lens.Lens' CreateFileSystemWindowsConfiguration Prelude.Natural+createFileSystemWindowsConfiguration_throughputCapacity = Lens.lens (\CreateFileSystemWindowsConfiguration' {throughputCapacity} -> throughputCapacity) (\s@CreateFileSystemWindowsConfiguration' {} a -> s {throughputCapacity = a} :: CreateFileSystemWindowsConfiguration)++instance+  Prelude.Hashable+    CreateFileSystemWindowsConfiguration+  where+  hashWithSalt+    _salt+    CreateFileSystemWindowsConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` activeDirectoryId+        `Prelude.hashWithSalt` aliases+        `Prelude.hashWithSalt` auditLogConfiguration+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` deploymentType+        `Prelude.hashWithSalt` preferredSubnetId+        `Prelude.hashWithSalt` selfManagedActiveDirectoryConfiguration+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime+        `Prelude.hashWithSalt` throughputCapacity++instance+  Prelude.NFData+    CreateFileSystemWindowsConfiguration+  where+  rnf CreateFileSystemWindowsConfiguration' {..} =+    Prelude.rnf activeDirectoryId+      `Prelude.seq` Prelude.rnf aliases+      `Prelude.seq` Prelude.rnf auditLogConfiguration+      `Prelude.seq` Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf preferredSubnetId+      `Prelude.seq` Prelude.rnf selfManagedActiveDirectoryConfiguration+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime+      `Prelude.seq` Prelude.rnf throughputCapacity++instance+  Data.ToJSON+    CreateFileSystemWindowsConfiguration+  where+  toJSON CreateFileSystemWindowsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ActiveDirectoryId" Data..=)+              Prelude.<$> activeDirectoryId,+            ("Aliases" Data..=) Prelude.<$> aliases,+            ("AuditLogConfiguration" Data..=)+              Prelude.<$> auditLogConfiguration,+            ("AutomaticBackupRetentionDays" Data..=)+              Prelude.<$> automaticBackupRetentionDays,+            ("CopyTagsToBackups" Data..=)+              Prelude.<$> copyTagsToBackups,+            ("DailyAutomaticBackupStartTime" Data..=)+              Prelude.<$> dailyAutomaticBackupStartTime,+            ("DeploymentType" Data..=)+              Prelude.<$> deploymentType,+            ("PreferredSubnetId" Data..=)+              Prelude.<$> preferredSubnetId,+            ("SelfManagedActiveDirectoryConfiguration" Data..=)+              Prelude.<$> selfManagedActiveDirectoryConfiguration,+            ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime,+            Prelude.Just+              ("ThroughputCapacity" Data..= throughputCapacity)+          ]+      )
+ gen/Amazonka/FSx/Types/CreateOntapVolumeConfiguration.hs view
@@ -0,0 +1,370 @@+{-# 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.CreateOntapVolumeConfiguration+-- 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.CreateOntapVolumeConfiguration 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.InputOntapVolumeType+import Amazonka.FSx.Types.SecurityStyle+import Amazonka.FSx.Types.TieringPolicy+import qualified Amazonka.Prelude as Prelude++-- | Specifies the configuration of the ONTAP volume that you are creating.+--+-- /See:/ 'newCreateOntapVolumeConfiguration' smart constructor.+data CreateOntapVolumeConfiguration = CreateOntapVolumeConfiguration'+  { -- | A boolean flag indicating whether tags for the volume should be copied+    -- to backups. This value defaults to false. If it\'s set to true, all tags+    -- for the volume are copied to all automatic and user-initiated backups+    -- where the user doesn\'t specify tags. If this value is true, and you+    -- specify one or more tags, only the specified tags are copied to backups.+    -- If you specify one or more tags when creating a user-initiated backup,+    -- no tags are copied from the volume, regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the location in the SVM\'s namespace where the volume is+    -- mounted. The @JunctionPath@ must have a leading forward slash, such as+    -- @\/vol3@.+    junctionPath :: Prelude.Maybe Prelude.Text,+    -- | Specifies the type of volume you are creating. Valid values are the+    -- following:+    --+    -- -   @RW@ specifies a read\/write volume. @RW@ is the default.+    --+    -- -   @DP@ specifies a data-protection volume. A @DP@ volume is read-only+    --     and can be used as the destination of a NetApp SnapMirror+    --     relationship.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-types Volume types>+    -- in the /Amazon FSx for NetApp ONTAP User Guide/.+    ontapVolumeType :: Prelude.Maybe InputOntapVolumeType,+    -- | Specifies the security style for the volume. If a volume\'s security+    -- style is not specified, it is automatically set to the root volume\'s+    -- security style. The security style determines the type of permissions+    -- that FSx for ONTAP uses to control data access. For more information,+    -- see+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html#volume-security-style Volume security style>+    -- in the /Amazon FSx for NetApp ONTAP User Guide/. Specify one of the+    -- following values:+    --+    -- -   @UNIX@ if the file system is managed by a UNIX administrator, the+    --     majority of users are NFS clients, and an application accessing the+    --     data uses a UNIX user as the service account.+    --+    -- -   @NTFS@ if the file system is managed by a Windows administrator, the+    --     majority of users are SMB clients, and an application accessing the+    --     data uses a Windows user as the service account.+    --+    -- -   @MIXED@ if the file system is managed by both UNIX and Windows+    --     administrators and users consist of both NFS and SMB clients.+    securityStyle :: Prelude.Maybe SecurityStyle,+    -- | Specifies the snapshot policy for the volume. There are three built-in+    -- snapshot policies:+    --+    -- -   @default@: This is the default policy. A maximum of six hourly+    --     snapshots taken five minutes past the hour. A maximum of two daily+    --     snapshots taken Monday through Saturday at 10 minutes after+    --     midnight. A maximum of two weekly snapshots taken every Sunday at 15+    --     minutes after midnight.+    --+    -- -   @default-1weekly@: This policy is the same as the @default@ policy+    --     except that it only retains one snapshot from the weekly schedule.+    --+    -- -   @none@: This policy does not take any snapshots. This policy can be+    --     assigned to volumes to prevent automatic snapshots from being taken.+    --+    -- You can also provide the name of a custom policy that you created with+    -- the ONTAP CLI or REST API.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+    -- in the /Amazon FSx for NetApp ONTAP User Guide/.+    snapshotPolicy :: Prelude.Maybe Prelude.Text,+    -- | Set to true to enable deduplication, compression, and compaction storage+    -- efficiency features on the volume.+    storageEfficiencyEnabled :: Prelude.Maybe Prelude.Bool,+    tieringPolicy :: Prelude.Maybe TieringPolicy,+    -- | Specifies the size of the volume, in megabytes (MB), that you are+    -- creating.+    sizeInMegabytes :: Prelude.Natural,+    -- | Specifies the ONTAP SVM in which to create the volume.+    storageVirtualMachineId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateOntapVolumeConfiguration' 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:+--+-- 'copyTagsToBackups', 'createOntapVolumeConfiguration_copyTagsToBackups' - A boolean flag indicating whether tags for the volume should be copied+-- to backups. This value defaults to false. If it\'s set to true, all tags+-- for the volume are copied to all automatic and user-initiated backups+-- where the user doesn\'t specify tags. If this value is true, and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the volume, regardless of this value.+--+-- 'junctionPath', 'createOntapVolumeConfiguration_junctionPath' - Specifies the location in the SVM\'s namespace where the volume is+-- mounted. The @JunctionPath@ must have a leading forward slash, such as+-- @\/vol3@.+--+-- 'ontapVolumeType', 'createOntapVolumeConfiguration_ontapVolumeType' - Specifies the type of volume you are creating. Valid values are the+-- following:+--+-- -   @RW@ specifies a read\/write volume. @RW@ is the default.+--+-- -   @DP@ specifies a data-protection volume. A @DP@ volume is read-only+--     and can be used as the destination of a NetApp SnapMirror+--     relationship.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-types Volume types>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+--+-- 'securityStyle', 'createOntapVolumeConfiguration_securityStyle' - Specifies the security style for the volume. If a volume\'s security+-- style is not specified, it is automatically set to the root volume\'s+-- security style. The security style determines the type of permissions+-- that FSx for ONTAP uses to control data access. For more information,+-- see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html#volume-security-style Volume security style>+-- in the /Amazon FSx for NetApp ONTAP User Guide/. Specify one of the+-- following values:+--+-- -   @UNIX@ if the file system is managed by a UNIX administrator, the+--     majority of users are NFS clients, and an application accessing the+--     data uses a UNIX user as the service account.+--+-- -   @NTFS@ if the file system is managed by a Windows administrator, the+--     majority of users are SMB clients, and an application accessing the+--     data uses a Windows user as the service account.+--+-- -   @MIXED@ if the file system is managed by both UNIX and Windows+--     administrators and users consist of both NFS and SMB clients.+--+-- 'snapshotPolicy', 'createOntapVolumeConfiguration_snapshotPolicy' - Specifies the snapshot policy for the volume. There are three built-in+-- snapshot policies:+--+-- -   @default@: This is the default policy. A maximum of six hourly+--     snapshots taken five minutes past the hour. A maximum of two daily+--     snapshots taken Monday through Saturday at 10 minutes after+--     midnight. A maximum of two weekly snapshots taken every Sunday at 15+--     minutes after midnight.+--+-- -   @default-1weekly@: This policy is the same as the @default@ policy+--     except that it only retains one snapshot from the weekly schedule.+--+-- -   @none@: This policy does not take any snapshots. This policy can be+--     assigned to volumes to prevent automatic snapshots from being taken.+--+-- You can also provide the name of a custom policy that you created with+-- the ONTAP CLI or REST API.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+--+-- 'storageEfficiencyEnabled', 'createOntapVolumeConfiguration_storageEfficiencyEnabled' - Set to true to enable deduplication, compression, and compaction storage+-- efficiency features on the volume.+--+-- 'tieringPolicy', 'createOntapVolumeConfiguration_tieringPolicy' - Undocumented member.+--+-- 'sizeInMegabytes', 'createOntapVolumeConfiguration_sizeInMegabytes' - Specifies the size of the volume, in megabytes (MB), that you are+-- creating.+--+-- 'storageVirtualMachineId', 'createOntapVolumeConfiguration_storageVirtualMachineId' - Specifies the ONTAP SVM in which to create the volume.+newCreateOntapVolumeConfiguration ::+  -- | 'sizeInMegabytes'+  Prelude.Natural ->+  -- | 'storageVirtualMachineId'+  Prelude.Text ->+  CreateOntapVolumeConfiguration+newCreateOntapVolumeConfiguration+  pSizeInMegabytes_+  pStorageVirtualMachineId_ =+    CreateOntapVolumeConfiguration'+      { copyTagsToBackups =+          Prelude.Nothing,+        junctionPath = Prelude.Nothing,+        ontapVolumeType = Prelude.Nothing,+        securityStyle = Prelude.Nothing,+        snapshotPolicy = Prelude.Nothing,+        storageEfficiencyEnabled = Prelude.Nothing,+        tieringPolicy = Prelude.Nothing,+        sizeInMegabytes = pSizeInMegabytes_,+        storageVirtualMachineId =+          pStorageVirtualMachineId_+      }++-- | A boolean flag indicating whether tags for the volume should be copied+-- to backups. This value defaults to false. If it\'s set to true, all tags+-- for the volume are copied to all automatic and user-initiated backups+-- where the user doesn\'t specify tags. If this value is true, and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the volume, regardless of this value.+createOntapVolumeConfiguration_copyTagsToBackups :: Lens.Lens' CreateOntapVolumeConfiguration (Prelude.Maybe Prelude.Bool)+createOntapVolumeConfiguration_copyTagsToBackups = Lens.lens (\CreateOntapVolumeConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@CreateOntapVolumeConfiguration' {} a -> s {copyTagsToBackups = a} :: CreateOntapVolumeConfiguration)++-- | Specifies the location in the SVM\'s namespace where the volume is+-- mounted. The @JunctionPath@ must have a leading forward slash, such as+-- @\/vol3@.+createOntapVolumeConfiguration_junctionPath :: Lens.Lens' CreateOntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+createOntapVolumeConfiguration_junctionPath = Lens.lens (\CreateOntapVolumeConfiguration' {junctionPath} -> junctionPath) (\s@CreateOntapVolumeConfiguration' {} a -> s {junctionPath = a} :: CreateOntapVolumeConfiguration)++-- | Specifies the type of volume you are creating. Valid values are the+-- following:+--+-- -   @RW@ specifies a read\/write volume. @RW@ is the default.+--+-- -   @DP@ specifies a data-protection volume. A @DP@ volume is read-only+--     and can be used as the destination of a NetApp SnapMirror+--     relationship.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-types Volume types>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+createOntapVolumeConfiguration_ontapVolumeType :: Lens.Lens' CreateOntapVolumeConfiguration (Prelude.Maybe InputOntapVolumeType)+createOntapVolumeConfiguration_ontapVolumeType = Lens.lens (\CreateOntapVolumeConfiguration' {ontapVolumeType} -> ontapVolumeType) (\s@CreateOntapVolumeConfiguration' {} a -> s {ontapVolumeType = a} :: CreateOntapVolumeConfiguration)++-- | Specifies the security style for the volume. If a volume\'s security+-- style is not specified, it is automatically set to the root volume\'s+-- security style. The security style determines the type of permissions+-- that FSx for ONTAP uses to control data access. For more information,+-- see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html#volume-security-style Volume security style>+-- in the /Amazon FSx for NetApp ONTAP User Guide/. Specify one of the+-- following values:+--+-- -   @UNIX@ if the file system is managed by a UNIX administrator, the+--     majority of users are NFS clients, and an application accessing the+--     data uses a UNIX user as the service account.+--+-- -   @NTFS@ if the file system is managed by a Windows administrator, the+--     majority of users are SMB clients, and an application accessing the+--     data uses a Windows user as the service account.+--+-- -   @MIXED@ if the file system is managed by both UNIX and Windows+--     administrators and users consist of both NFS and SMB clients.+createOntapVolumeConfiguration_securityStyle :: Lens.Lens' CreateOntapVolumeConfiguration (Prelude.Maybe SecurityStyle)+createOntapVolumeConfiguration_securityStyle = Lens.lens (\CreateOntapVolumeConfiguration' {securityStyle} -> securityStyle) (\s@CreateOntapVolumeConfiguration' {} a -> s {securityStyle = a} :: CreateOntapVolumeConfiguration)++-- | Specifies the snapshot policy for the volume. There are three built-in+-- snapshot policies:+--+-- -   @default@: This is the default policy. A maximum of six hourly+--     snapshots taken five minutes past the hour. A maximum of two daily+--     snapshots taken Monday through Saturday at 10 minutes after+--     midnight. A maximum of two weekly snapshots taken every Sunday at 15+--     minutes after midnight.+--+-- -   @default-1weekly@: This policy is the same as the @default@ policy+--     except that it only retains one snapshot from the weekly schedule.+--+-- -   @none@: This policy does not take any snapshots. This policy can be+--     assigned to volumes to prevent automatic snapshots from being taken.+--+-- You can also provide the name of a custom policy that you created with+-- the ONTAP CLI or REST API.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+createOntapVolumeConfiguration_snapshotPolicy :: Lens.Lens' CreateOntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+createOntapVolumeConfiguration_snapshotPolicy = Lens.lens (\CreateOntapVolumeConfiguration' {snapshotPolicy} -> snapshotPolicy) (\s@CreateOntapVolumeConfiguration' {} a -> s {snapshotPolicy = a} :: CreateOntapVolumeConfiguration)++-- | Set to true to enable deduplication, compression, and compaction storage+-- efficiency features on the volume.+createOntapVolumeConfiguration_storageEfficiencyEnabled :: Lens.Lens' CreateOntapVolumeConfiguration (Prelude.Maybe Prelude.Bool)+createOntapVolumeConfiguration_storageEfficiencyEnabled = Lens.lens (\CreateOntapVolumeConfiguration' {storageEfficiencyEnabled} -> storageEfficiencyEnabled) (\s@CreateOntapVolumeConfiguration' {} a -> s {storageEfficiencyEnabled = a} :: CreateOntapVolumeConfiguration)++-- | Undocumented member.+createOntapVolumeConfiguration_tieringPolicy :: Lens.Lens' CreateOntapVolumeConfiguration (Prelude.Maybe TieringPolicy)+createOntapVolumeConfiguration_tieringPolicy = Lens.lens (\CreateOntapVolumeConfiguration' {tieringPolicy} -> tieringPolicy) (\s@CreateOntapVolumeConfiguration' {} a -> s {tieringPolicy = a} :: CreateOntapVolumeConfiguration)++-- | Specifies the size of the volume, in megabytes (MB), that you are+-- creating.+createOntapVolumeConfiguration_sizeInMegabytes :: Lens.Lens' CreateOntapVolumeConfiguration Prelude.Natural+createOntapVolumeConfiguration_sizeInMegabytes = Lens.lens (\CreateOntapVolumeConfiguration' {sizeInMegabytes} -> sizeInMegabytes) (\s@CreateOntapVolumeConfiguration' {} a -> s {sizeInMegabytes = a} :: CreateOntapVolumeConfiguration)++-- | Specifies the ONTAP SVM in which to create the volume.+createOntapVolumeConfiguration_storageVirtualMachineId :: Lens.Lens' CreateOntapVolumeConfiguration Prelude.Text+createOntapVolumeConfiguration_storageVirtualMachineId = Lens.lens (\CreateOntapVolumeConfiguration' {storageVirtualMachineId} -> storageVirtualMachineId) (\s@CreateOntapVolumeConfiguration' {} a -> s {storageVirtualMachineId = a} :: CreateOntapVolumeConfiguration)++instance+  Prelude.Hashable+    CreateOntapVolumeConfiguration+  where+  hashWithSalt+    _salt+    CreateOntapVolumeConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` junctionPath+        `Prelude.hashWithSalt` ontapVolumeType+        `Prelude.hashWithSalt` securityStyle+        `Prelude.hashWithSalt` snapshotPolicy+        `Prelude.hashWithSalt` storageEfficiencyEnabled+        `Prelude.hashWithSalt` tieringPolicy+        `Prelude.hashWithSalt` sizeInMegabytes+        `Prelude.hashWithSalt` storageVirtualMachineId++instance+  Prelude.NFData+    CreateOntapVolumeConfiguration+  where+  rnf CreateOntapVolumeConfiguration' {..} =+    Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf junctionPath+      `Prelude.seq` Prelude.rnf ontapVolumeType+      `Prelude.seq` Prelude.rnf securityStyle+      `Prelude.seq` Prelude.rnf snapshotPolicy+      `Prelude.seq` Prelude.rnf storageEfficiencyEnabled+      `Prelude.seq` Prelude.rnf tieringPolicy+      `Prelude.seq` Prelude.rnf sizeInMegabytes+      `Prelude.seq` Prelude.rnf storageVirtualMachineId++instance Data.ToJSON CreateOntapVolumeConfiguration where+  toJSON CreateOntapVolumeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CopyTagsToBackups" Data..=)+              Prelude.<$> copyTagsToBackups,+            ("JunctionPath" Data..=) Prelude.<$> junctionPath,+            ("OntapVolumeType" Data..=)+              Prelude.<$> ontapVolumeType,+            ("SecurityStyle" Data..=) Prelude.<$> securityStyle,+            ("SnapshotPolicy" Data..=)+              Prelude.<$> snapshotPolicy,+            ("StorageEfficiencyEnabled" Data..=)+              Prelude.<$> storageEfficiencyEnabled,+            ("TieringPolicy" Data..=) Prelude.<$> tieringPolicy,+            Prelude.Just+              ("SizeInMegabytes" Data..= sizeInMegabytes),+            Prelude.Just+              ( "StorageVirtualMachineId"+                  Data..= storageVirtualMachineId+              )+          ]+      )
+ gen/Amazonka/FSx/Types/CreateOpenZFSOriginSnapshotConfiguration.hs view
@@ -0,0 +1,126 @@+{-# 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.CreateOpenZFSOriginSnapshotConfiguration+-- 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.CreateOpenZFSOriginSnapshotConfiguration 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.OpenZFSCopyStrategy+import qualified Amazonka.Prelude as Prelude++-- | The snapshot configuration to use when creating an OpenZFS volume from a+-- snapshot.+--+-- /See:/ 'newCreateOpenZFSOriginSnapshotConfiguration' smart constructor.+data CreateOpenZFSOriginSnapshotConfiguration = CreateOpenZFSOriginSnapshotConfiguration'+  { snapshotARN :: Prelude.Text,+    -- | The strategy used when copying data from the snapshot to the new volume.+    --+    -- -   @CLONE@ - The new volume references the data in the origin snapshot.+    --     Cloning a snapshot is faster than copying data from the snapshot to+    --     a new volume and doesn\'t consume disk throughput. However, the+    --     origin snapshot can\'t be deleted if there is a volume using its+    --     copied data.+    --+    -- -   @FULL_COPY@ - Copies all data from the snapshot to the new volume.+    copyStrategy :: OpenZFSCopyStrategy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateOpenZFSOriginSnapshotConfiguration' 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:+--+-- 'snapshotARN', 'createOpenZFSOriginSnapshotConfiguration_snapshotARN' - Undocumented member.+--+-- 'copyStrategy', 'createOpenZFSOriginSnapshotConfiguration_copyStrategy' - The strategy used when copying data from the snapshot to the new volume.+--+-- -   @CLONE@ - The new volume references the data in the origin snapshot.+--     Cloning a snapshot is faster than copying data from the snapshot to+--     a new volume and doesn\'t consume disk throughput. However, the+--     origin snapshot can\'t be deleted if there is a volume using its+--     copied data.+--+-- -   @FULL_COPY@ - Copies all data from the snapshot to the new volume.+newCreateOpenZFSOriginSnapshotConfiguration ::+  -- | 'snapshotARN'+  Prelude.Text ->+  -- | 'copyStrategy'+  OpenZFSCopyStrategy ->+  CreateOpenZFSOriginSnapshotConfiguration+newCreateOpenZFSOriginSnapshotConfiguration+  pSnapshotARN_+  pCopyStrategy_ =+    CreateOpenZFSOriginSnapshotConfiguration'+      { snapshotARN =+          pSnapshotARN_,+        copyStrategy = pCopyStrategy_+      }++-- | Undocumented member.+createOpenZFSOriginSnapshotConfiguration_snapshotARN :: Lens.Lens' CreateOpenZFSOriginSnapshotConfiguration Prelude.Text+createOpenZFSOriginSnapshotConfiguration_snapshotARN = Lens.lens (\CreateOpenZFSOriginSnapshotConfiguration' {snapshotARN} -> snapshotARN) (\s@CreateOpenZFSOriginSnapshotConfiguration' {} a -> s {snapshotARN = a} :: CreateOpenZFSOriginSnapshotConfiguration)++-- | The strategy used when copying data from the snapshot to the new volume.+--+-- -   @CLONE@ - The new volume references the data in the origin snapshot.+--     Cloning a snapshot is faster than copying data from the snapshot to+--     a new volume and doesn\'t consume disk throughput. However, the+--     origin snapshot can\'t be deleted if there is a volume using its+--     copied data.+--+-- -   @FULL_COPY@ - Copies all data from the snapshot to the new volume.+createOpenZFSOriginSnapshotConfiguration_copyStrategy :: Lens.Lens' CreateOpenZFSOriginSnapshotConfiguration OpenZFSCopyStrategy+createOpenZFSOriginSnapshotConfiguration_copyStrategy = Lens.lens (\CreateOpenZFSOriginSnapshotConfiguration' {copyStrategy} -> copyStrategy) (\s@CreateOpenZFSOriginSnapshotConfiguration' {} a -> s {copyStrategy = a} :: CreateOpenZFSOriginSnapshotConfiguration)++instance+  Prelude.Hashable+    CreateOpenZFSOriginSnapshotConfiguration+  where+  hashWithSalt+    _salt+    CreateOpenZFSOriginSnapshotConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` snapshotARN+        `Prelude.hashWithSalt` copyStrategy++instance+  Prelude.NFData+    CreateOpenZFSOriginSnapshotConfiguration+  where+  rnf CreateOpenZFSOriginSnapshotConfiguration' {..} =+    Prelude.rnf snapshotARN+      `Prelude.seq` Prelude.rnf copyStrategy++instance+  Data.ToJSON+    CreateOpenZFSOriginSnapshotConfiguration+  where+  toJSON CreateOpenZFSOriginSnapshotConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("SnapshotARN" Data..= snapshotARN),+            Prelude.Just ("CopyStrategy" Data..= copyStrategy)+          ]+      )
+ gen/Amazonka/FSx/Types/CreateOpenZFSVolumeConfiguration.hs view
@@ -0,0 +1,368 @@+{-# 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.CreateOpenZFSVolumeConfiguration+-- 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.CreateOpenZFSVolumeConfiguration 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.CreateOpenZFSOriginSnapshotConfiguration+import Amazonka.FSx.Types.OpenZFSDataCompressionType+import Amazonka.FSx.Types.OpenZFSNfsExport+import Amazonka.FSx.Types.OpenZFSUserOrGroupQuota+import qualified Amazonka.Prelude as Prelude++-- | Specifies the configuration of the Amazon FSx for OpenZFS volume that+-- you are creating.+--+-- /See:/ 'newCreateOpenZFSVolumeConfiguration' smart constructor.+data CreateOpenZFSVolumeConfiguration = CreateOpenZFSVolumeConfiguration'+  { -- | A Boolean value indicating whether tags for the volume should be copied+    -- to snapshots. This value defaults to @false@. If it\'s set to @true@,+    -- all tags for the volume are copied to snapshots where the user doesn\'t+    -- specify tags. If this value is @true@, and you specify one or more tags,+    -- only the specified tags are copied to snapshots. If you specify one or+    -- more tags when creating the snapshot, no tags are copied from the+    -- volume, regardless of this value.+    copyTagsToSnapshots :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the method used to compress the data on the volume. The+    -- compression type is @NONE@ by default.+    --+    -- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+    --     default.+    --+    -- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+    --     (ZSTD) compression algorithm. ZSTD compression provides a higher+    --     level of data compression and higher read throughput performance+    --     than LZ4 compression.+    --+    -- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+    --     algorithm. LZ4 compression provides a lower level of compression and+    --     higher write throughput performance than ZSTD compression.+    --+    -- For more information about volume compression types and the performance+    -- of your Amazon FSx for OpenZFS file system, see+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+    -- File system and volume settings in the /Amazon FSx for OpenZFS User+    -- Guide/.+    dataCompressionType :: Prelude.Maybe OpenZFSDataCompressionType,+    -- | The configuration object for mounting a Network File System (NFS) file+    -- system.+    nfsExports :: Prelude.Maybe [OpenZFSNfsExport],+    -- | The configuration object that specifies the snapshot to use as the+    -- origin of the data for the volume.+    originSnapshot :: Prelude.Maybe CreateOpenZFSOriginSnapshotConfiguration,+    -- | A Boolean value indicating whether the volume is read-only.+    readOnly :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the suggested block size for a volume in a ZFS dataset, in+    -- kibibytes (KiB). Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or+    -- 1024 KiB. The default is 128 KiB. We recommend using the default setting+    -- for the majority of use cases. Generally, workloads that write in fixed+    -- small or large record sizes may benefit from setting a custom record+    -- size, like database workloads (small record size) or media streaming+    -- workloads (large record size). For additional guidance on when to set a+    -- custom record size, see+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#record-size-performance ZFS Record size>+    -- in the /Amazon FSx for OpenZFS User Guide/.+    recordSizeKiB :: Prelude.Maybe Prelude.Natural,+    -- | Sets the maximum storage size in gibibytes (GiB) for the volume. You can+    -- specify a quota that is larger than the storage on the parent volume. A+    -- volume quota limits the amount of storage that the volume can consume to+    -- the configured amount, but does not guarantee the space will be+    -- available on the parent volume. To guarantee quota space, you must also+    -- set @StorageCapacityReservationGiB@. To /not/ specify a storage capacity+    -- quota, set this to @-1@.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties Volume properties>+    -- in the /Amazon FSx for OpenZFS User Guide/.+    storageCapacityQuotaGiB :: Prelude.Maybe Prelude.Int,+    -- | Specifies the amount of storage in gibibytes (GiB) to reserve from the+    -- parent volume. Setting @StorageCapacityReservationGiB@ guarantees that+    -- the specified amount of storage space on the parent volume will always+    -- be available for the volume. You can\'t reserve more storage than the+    -- parent volume has. To /not/ specify a storage capacity reservation, set+    -- this to @0@ or @-1@. For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties Volume properties>+    -- in the /Amazon FSx for OpenZFS User Guide/.+    storageCapacityReservationGiB :: Prelude.Maybe Prelude.Int,+    -- | An object specifying how much storage users or groups can use on the+    -- volume.+    userAndGroupQuotas :: Prelude.Maybe [OpenZFSUserOrGroupQuota],+    -- | The ID of the volume to use as the parent volume of the volume that you+    -- are creating.+    parentVolumeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateOpenZFSVolumeConfiguration' 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:+--+-- 'copyTagsToSnapshots', 'createOpenZFSVolumeConfiguration_copyTagsToSnapshots' - A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@, and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+--+-- 'dataCompressionType', 'createOpenZFSVolumeConfiguration_dataCompressionType' - Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. ZSTD compression provides a higher+--     level of data compression and higher read throughput performance+--     than LZ4 compression.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. LZ4 compression provides a lower level of compression and+--     higher write throughput performance than ZSTD compression.+--+-- For more information about volume compression types and the performance+-- of your Amazon FSx for OpenZFS file system, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+-- File system and volume settings in the /Amazon FSx for OpenZFS User+-- Guide/.+--+-- 'nfsExports', 'createOpenZFSVolumeConfiguration_nfsExports' - The configuration object for mounting a Network File System (NFS) file+-- system.+--+-- 'originSnapshot', 'createOpenZFSVolumeConfiguration_originSnapshot' - The configuration object that specifies the snapshot to use as the+-- origin of the data for the volume.+--+-- 'readOnly', 'createOpenZFSVolumeConfiguration_readOnly' - A Boolean value indicating whether the volume is read-only.+--+-- 'recordSizeKiB', 'createOpenZFSVolumeConfiguration_recordSizeKiB' - Specifies the suggested block size for a volume in a ZFS dataset, in+-- kibibytes (KiB). Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or+-- 1024 KiB. The default is 128 KiB. We recommend using the default setting+-- for the majority of use cases. Generally, workloads that write in fixed+-- small or large record sizes may benefit from setting a custom record+-- size, like database workloads (small record size) or media streaming+-- workloads (large record size). For additional guidance on when to set a+-- custom record size, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#record-size-performance ZFS Record size>+-- in the /Amazon FSx for OpenZFS User Guide/.+--+-- 'storageCapacityQuotaGiB', 'createOpenZFSVolumeConfiguration_storageCapacityQuotaGiB' - Sets the maximum storage size in gibibytes (GiB) for the volume. You can+-- specify a quota that is larger than the storage on the parent volume. A+-- volume quota limits the amount of storage that the volume can consume to+-- the configured amount, but does not guarantee the space will be+-- available on the parent volume. To guarantee quota space, you must also+-- set @StorageCapacityReservationGiB@. To /not/ specify a storage capacity+-- quota, set this to @-1@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties Volume properties>+-- in the /Amazon FSx for OpenZFS User Guide/.+--+-- 'storageCapacityReservationGiB', 'createOpenZFSVolumeConfiguration_storageCapacityReservationGiB' - Specifies the amount of storage in gibibytes (GiB) to reserve from the+-- parent volume. Setting @StorageCapacityReservationGiB@ guarantees that+-- the specified amount of storage space on the parent volume will always+-- be available for the volume. You can\'t reserve more storage than the+-- parent volume has. To /not/ specify a storage capacity reservation, set+-- this to @0@ or @-1@. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties Volume properties>+-- in the /Amazon FSx for OpenZFS User Guide/.+--+-- 'userAndGroupQuotas', 'createOpenZFSVolumeConfiguration_userAndGroupQuotas' - An object specifying how much storage users or groups can use on the+-- volume.+--+-- 'parentVolumeId', 'createOpenZFSVolumeConfiguration_parentVolumeId' - The ID of the volume to use as the parent volume of the volume that you+-- are creating.+newCreateOpenZFSVolumeConfiguration ::+  -- | 'parentVolumeId'+  Prelude.Text ->+  CreateOpenZFSVolumeConfiguration+newCreateOpenZFSVolumeConfiguration pParentVolumeId_ =+  CreateOpenZFSVolumeConfiguration'+    { copyTagsToSnapshots =+        Prelude.Nothing,+      dataCompressionType = Prelude.Nothing,+      nfsExports = Prelude.Nothing,+      originSnapshot = Prelude.Nothing,+      readOnly = Prelude.Nothing,+      recordSizeKiB = Prelude.Nothing,+      storageCapacityQuotaGiB = Prelude.Nothing,+      storageCapacityReservationGiB =+        Prelude.Nothing,+      userAndGroupQuotas = Prelude.Nothing,+      parentVolumeId = pParentVolumeId_+    }++-- | A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@, and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+createOpenZFSVolumeConfiguration_copyTagsToSnapshots :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Bool)+createOpenZFSVolumeConfiguration_copyTagsToSnapshots = Lens.lens (\CreateOpenZFSVolumeConfiguration' {copyTagsToSnapshots} -> copyTagsToSnapshots) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {copyTagsToSnapshots = a} :: CreateOpenZFSVolumeConfiguration)++-- | Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. ZSTD compression provides a higher+--     level of data compression and higher read throughput performance+--     than LZ4 compression.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. LZ4 compression provides a lower level of compression and+--     higher write throughput performance than ZSTD compression.+--+-- For more information about volume compression types and the performance+-- of your Amazon FSx for OpenZFS file system, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+-- File system and volume settings in the /Amazon FSx for OpenZFS User+-- Guide/.+createOpenZFSVolumeConfiguration_dataCompressionType :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe OpenZFSDataCompressionType)+createOpenZFSVolumeConfiguration_dataCompressionType = Lens.lens (\CreateOpenZFSVolumeConfiguration' {dataCompressionType} -> dataCompressionType) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {dataCompressionType = a} :: CreateOpenZFSVolumeConfiguration)++-- | The configuration object for mounting a Network File System (NFS) file+-- system.+createOpenZFSVolumeConfiguration_nfsExports :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe [OpenZFSNfsExport])+createOpenZFSVolumeConfiguration_nfsExports = Lens.lens (\CreateOpenZFSVolumeConfiguration' {nfsExports} -> nfsExports) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {nfsExports = a} :: CreateOpenZFSVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The configuration object that specifies the snapshot to use as the+-- origin of the data for the volume.+createOpenZFSVolumeConfiguration_originSnapshot :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe CreateOpenZFSOriginSnapshotConfiguration)+createOpenZFSVolumeConfiguration_originSnapshot = Lens.lens (\CreateOpenZFSVolumeConfiguration' {originSnapshot} -> originSnapshot) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {originSnapshot = a} :: CreateOpenZFSVolumeConfiguration)++-- | A Boolean value indicating whether the volume is read-only.+createOpenZFSVolumeConfiguration_readOnly :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Bool)+createOpenZFSVolumeConfiguration_readOnly = Lens.lens (\CreateOpenZFSVolumeConfiguration' {readOnly} -> readOnly) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {readOnly = a} :: CreateOpenZFSVolumeConfiguration)++-- | Specifies the suggested block size for a volume in a ZFS dataset, in+-- kibibytes (KiB). Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or+-- 1024 KiB. The default is 128 KiB. We recommend using the default setting+-- for the majority of use cases. Generally, workloads that write in fixed+-- small or large record sizes may benefit from setting a custom record+-- size, like database workloads (small record size) or media streaming+-- workloads (large record size). For additional guidance on when to set a+-- custom record size, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#record-size-performance ZFS Record size>+-- in the /Amazon FSx for OpenZFS User Guide/.+createOpenZFSVolumeConfiguration_recordSizeKiB :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Natural)+createOpenZFSVolumeConfiguration_recordSizeKiB = Lens.lens (\CreateOpenZFSVolumeConfiguration' {recordSizeKiB} -> recordSizeKiB) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {recordSizeKiB = a} :: CreateOpenZFSVolumeConfiguration)++-- | Sets the maximum storage size in gibibytes (GiB) for the volume. You can+-- specify a quota that is larger than the storage on the parent volume. A+-- volume quota limits the amount of storage that the volume can consume to+-- the configured amount, but does not guarantee the space will be+-- available on the parent volume. To guarantee quota space, you must also+-- set @StorageCapacityReservationGiB@. To /not/ specify a storage capacity+-- quota, set this to @-1@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties Volume properties>+-- in the /Amazon FSx for OpenZFS User Guide/.+createOpenZFSVolumeConfiguration_storageCapacityQuotaGiB :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Int)+createOpenZFSVolumeConfiguration_storageCapacityQuotaGiB = Lens.lens (\CreateOpenZFSVolumeConfiguration' {storageCapacityQuotaGiB} -> storageCapacityQuotaGiB) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {storageCapacityQuotaGiB = a} :: CreateOpenZFSVolumeConfiguration)++-- | Specifies the amount of storage in gibibytes (GiB) to reserve from the+-- parent volume. Setting @StorageCapacityReservationGiB@ guarantees that+-- the specified amount of storage space on the parent volume will always+-- be available for the volume. You can\'t reserve more storage than the+-- parent volume has. To /not/ specify a storage capacity reservation, set+-- this to @0@ or @-1@. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/managing-volumes.html#volume-properties Volume properties>+-- in the /Amazon FSx for OpenZFS User Guide/.+createOpenZFSVolumeConfiguration_storageCapacityReservationGiB :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Int)+createOpenZFSVolumeConfiguration_storageCapacityReservationGiB = Lens.lens (\CreateOpenZFSVolumeConfiguration' {storageCapacityReservationGiB} -> storageCapacityReservationGiB) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {storageCapacityReservationGiB = a} :: CreateOpenZFSVolumeConfiguration)++-- | An object specifying how much storage users or groups can use on the+-- volume.+createOpenZFSVolumeConfiguration_userAndGroupQuotas :: Lens.Lens' CreateOpenZFSVolumeConfiguration (Prelude.Maybe [OpenZFSUserOrGroupQuota])+createOpenZFSVolumeConfiguration_userAndGroupQuotas = Lens.lens (\CreateOpenZFSVolumeConfiguration' {userAndGroupQuotas} -> userAndGroupQuotas) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {userAndGroupQuotas = a} :: CreateOpenZFSVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the volume to use as the parent volume of the volume that you+-- are creating.+createOpenZFSVolumeConfiguration_parentVolumeId :: Lens.Lens' CreateOpenZFSVolumeConfiguration Prelude.Text+createOpenZFSVolumeConfiguration_parentVolumeId = Lens.lens (\CreateOpenZFSVolumeConfiguration' {parentVolumeId} -> parentVolumeId) (\s@CreateOpenZFSVolumeConfiguration' {} a -> s {parentVolumeId = a} :: CreateOpenZFSVolumeConfiguration)++instance+  Prelude.Hashable+    CreateOpenZFSVolumeConfiguration+  where+  hashWithSalt+    _salt+    CreateOpenZFSVolumeConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` copyTagsToSnapshots+        `Prelude.hashWithSalt` dataCompressionType+        `Prelude.hashWithSalt` nfsExports+        `Prelude.hashWithSalt` originSnapshot+        `Prelude.hashWithSalt` readOnly+        `Prelude.hashWithSalt` recordSizeKiB+        `Prelude.hashWithSalt` storageCapacityQuotaGiB+        `Prelude.hashWithSalt` storageCapacityReservationGiB+        `Prelude.hashWithSalt` userAndGroupQuotas+        `Prelude.hashWithSalt` parentVolumeId++instance+  Prelude.NFData+    CreateOpenZFSVolumeConfiguration+  where+  rnf CreateOpenZFSVolumeConfiguration' {..} =+    Prelude.rnf copyTagsToSnapshots+      `Prelude.seq` Prelude.rnf dataCompressionType+      `Prelude.seq` Prelude.rnf nfsExports+      `Prelude.seq` Prelude.rnf originSnapshot+      `Prelude.seq` Prelude.rnf readOnly+      `Prelude.seq` Prelude.rnf recordSizeKiB+      `Prelude.seq` Prelude.rnf storageCapacityQuotaGiB+      `Prelude.seq` Prelude.rnf storageCapacityReservationGiB+      `Prelude.seq` Prelude.rnf userAndGroupQuotas+      `Prelude.seq` Prelude.rnf parentVolumeId++instance Data.ToJSON CreateOpenZFSVolumeConfiguration where+  toJSON CreateOpenZFSVolumeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CopyTagsToSnapshots" Data..=)+              Prelude.<$> copyTagsToSnapshots,+            ("DataCompressionType" Data..=)+              Prelude.<$> dataCompressionType,+            ("NfsExports" Data..=) Prelude.<$> nfsExports,+            ("OriginSnapshot" Data..=)+              Prelude.<$> originSnapshot,+            ("ReadOnly" Data..=) Prelude.<$> readOnly,+            ("RecordSizeKiB" Data..=) Prelude.<$> recordSizeKiB,+            ("StorageCapacityQuotaGiB" Data..=)+              Prelude.<$> storageCapacityQuotaGiB,+            ("StorageCapacityReservationGiB" Data..=)+              Prelude.<$> storageCapacityReservationGiB,+            ("UserAndGroupQuotas" Data..=)+              Prelude.<$> userAndGroupQuotas,+            Prelude.Just+              ("ParentVolumeId" Data..= parentVolumeId)+          ]+      )
+ gen/Amazonka/FSx/Types/CreateSvmActiveDirectoryConfiguration.hs view
@@ -0,0 +1,104 @@+{-# 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.CreateSvmActiveDirectoryConfiguration+-- 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.CreateSvmActiveDirectoryConfiguration 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.SelfManagedActiveDirectoryConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration that Amazon FSx uses to join the ONTAP storage virtual+-- machine (SVM) to your self-managed (including on-premises) Microsoft+-- Active Directory (AD) directory.+--+-- /See:/ 'newCreateSvmActiveDirectoryConfiguration' smart constructor.+data CreateSvmActiveDirectoryConfiguration = CreateSvmActiveDirectoryConfiguration'+  { selfManagedActiveDirectoryConfiguration :: Prelude.Maybe SelfManagedActiveDirectoryConfiguration,+    -- | The NetBIOS name of the Active Directory computer object that will be+    -- created for your SVM.+    netBiosName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSvmActiveDirectoryConfiguration' 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:+--+-- 'selfManagedActiveDirectoryConfiguration', 'createSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration' - Undocumented member.+--+-- 'netBiosName', 'createSvmActiveDirectoryConfiguration_netBiosName' - The NetBIOS name of the Active Directory computer object that will be+-- created for your SVM.+newCreateSvmActiveDirectoryConfiguration ::+  -- | 'netBiosName'+  Prelude.Text ->+  CreateSvmActiveDirectoryConfiguration+newCreateSvmActiveDirectoryConfiguration+  pNetBiosName_ =+    CreateSvmActiveDirectoryConfiguration'+      { selfManagedActiveDirectoryConfiguration =+          Prelude.Nothing,+        netBiosName = pNetBiosName_+      }++-- | Undocumented member.+createSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration :: Lens.Lens' CreateSvmActiveDirectoryConfiguration (Prelude.Maybe SelfManagedActiveDirectoryConfiguration)+createSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration = Lens.lens (\CreateSvmActiveDirectoryConfiguration' {selfManagedActiveDirectoryConfiguration} -> selfManagedActiveDirectoryConfiguration) (\s@CreateSvmActiveDirectoryConfiguration' {} a -> s {selfManagedActiveDirectoryConfiguration = a} :: CreateSvmActiveDirectoryConfiguration)++-- | The NetBIOS name of the Active Directory computer object that will be+-- created for your SVM.+createSvmActiveDirectoryConfiguration_netBiosName :: Lens.Lens' CreateSvmActiveDirectoryConfiguration Prelude.Text+createSvmActiveDirectoryConfiguration_netBiosName = Lens.lens (\CreateSvmActiveDirectoryConfiguration' {netBiosName} -> netBiosName) (\s@CreateSvmActiveDirectoryConfiguration' {} a -> s {netBiosName = a} :: CreateSvmActiveDirectoryConfiguration)++instance+  Prelude.Hashable+    CreateSvmActiveDirectoryConfiguration+  where+  hashWithSalt+    _salt+    CreateSvmActiveDirectoryConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` selfManagedActiveDirectoryConfiguration+        `Prelude.hashWithSalt` netBiosName++instance+  Prelude.NFData+    CreateSvmActiveDirectoryConfiguration+  where+  rnf CreateSvmActiveDirectoryConfiguration' {..} =+    Prelude.rnf selfManagedActiveDirectoryConfiguration+      `Prelude.seq` Prelude.rnf netBiosName++instance+  Data.ToJSON+    CreateSvmActiveDirectoryConfiguration+  where+  toJSON CreateSvmActiveDirectoryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SelfManagedActiveDirectoryConfiguration" Data..=)+              Prelude.<$> selfManagedActiveDirectoryConfiguration,+            Prelude.Just ("NetBiosName" Data..= netBiosName)+          ]+      )
+ gen/Amazonka/FSx/Types/DataCompressionType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DataCompressionType+-- 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.DataCompressionType+  ( DataCompressionType+      ( ..,+        DataCompressionType_LZ4,+        DataCompressionType_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataCompressionType = DataCompressionType'+  { fromDataCompressionType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DataCompressionType_LZ4 :: DataCompressionType+pattern DataCompressionType_LZ4 = DataCompressionType' "LZ4"++pattern DataCompressionType_NONE :: DataCompressionType+pattern DataCompressionType_NONE = DataCompressionType' "NONE"++{-# COMPLETE+  DataCompressionType_LZ4,+  DataCompressionType_NONE,+  DataCompressionType'+  #-}
+ gen/Amazonka/FSx/Types/DataRepositoryAssociation.hs view
@@ -0,0 +1,561 @@+{-# 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.DataRepositoryAssociation+-- 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.DataRepositoryAssociation 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.DataRepositoryFailureDetails+import Amazonka.FSx.Types.DataRepositoryLifecycle+import Amazonka.FSx.Types.NFSDataRepositoryConfiguration+import Amazonka.FSx.Types.S3DataRepositoryConfiguration+import Amazonka.FSx.Types.Tag+import qualified Amazonka.Prelude as Prelude++-- | The configuration of a data repository association that links an Amazon+-- FSx for Lustre file system to an Amazon S3 bucket or an Amazon File+-- Cache resource to an Amazon S3 bucket or an NFS file system. The data+-- repository association configuration object is returned in the response+-- of the following operations:+--+-- -   @CreateDataRepositoryAssociation@+--+-- -   @UpdateDataRepositoryAssociation@+--+-- -   @DescribeDataRepositoryAssociations@+--+-- Data repository associations are supported only for an Amazon FSx for+-- Lustre file system with the @Persistent_2@ deployment type and for an+-- Amazon File Cache resource.+--+-- /See:/ 'newDataRepositoryAssociation' smart constructor.+data DataRepositoryAssociation = DataRepositoryAssociation'+  { -- | The system-generated, unique ID of the data repository association.+    associationId :: Prelude.Maybe Prelude.Text,+    -- | A boolean flag indicating whether an import data repository task to+    -- import metadata should run after the data repository association is+    -- created. The task runs if this flag is set to @true@.+    --+    -- @BatchImportMetaDataOnCreate@ is not supported for data repositories+    -- linked to an Amazon File Cache resource.+    batchImportMetaDataOnCreate :: Prelude.Maybe Prelude.Bool,+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The path to the data repository that will be linked to the cache or file+    -- system.+    --+    -- -   For Amazon File Cache, the path can be an NFS data repository that+    --     will be linked to the cache. The path can be in one of two formats:+    --+    --     -   If you are not using the @DataRepositorySubdirectories@+    --         parameter, the path is to an NFS Export directory (or one of its+    --         subdirectories) in the format+    --         @nsf:\/\/nfs-domain-name\/exportpath@. You can therefore link a+    --         single NFS Export to a single data repository association.+    --+    --     -   If you are using the @DataRepositorySubdirectories@ parameter,+    --         the path is the domain name of the NFS file system in the format+    --         @nfs:\/\/filer-domain-name@, which indicates the root of the+    --         subdirectories specified with the @DataRepositorySubdirectories@+    --         parameter.+    --+    -- -   For Amazon File Cache, the path can be an S3 bucket or prefix in the+    --     format @s3:\/\/myBucket\/myPrefix\/@.+    --+    -- -   For Amazon FSx for Lustre, the path can be an S3 bucket or prefix in+    --     the format @s3:\/\/myBucket\/myPrefix\/@.+    dataRepositoryPath :: Prelude.Maybe Prelude.Text,+    -- | For Amazon File Cache, a list of NFS Exports that will be linked with an+    -- NFS data repository association. All the subdirectories must be on a+    -- single NFS file system. The Export paths are in the format+    -- @\/exportpath1@. To use this parameter, you must configure+    -- @DataRepositoryPath@ as the domain name of the NFS file system. The NFS+    -- file system domain name in effect is the root of the subdirectories.+    -- Note that @DataRepositorySubdirectories@ is not supported for S3 data+    -- repositories.+    dataRepositorySubdirectories :: Prelude.Maybe [Prelude.Text],+    failureDetails :: Prelude.Maybe DataRepositoryFailureDetails,+    -- | The globally unique ID of the Amazon File Cache resource.+    fileCacheId :: Prelude.Maybe Prelude.Text,+    -- | A path on the Amazon File Cache that points to a high-level directory+    -- (such as @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that+    -- will be mapped 1-1 with @DataRepositoryPath@. The leading forward slash+    -- in the path is required. Two data repository associations cannot have+    -- overlapping cache paths. For example, if a data repository is associated+    -- with cache path @\/ns1\/@, then you cannot link another data repository+    -- with cache path @\/ns1\/ns2@.+    --+    -- This path specifies the directory in your cache where files will be+    -- exported from. This cache directory can be linked to only one data+    -- repository (S3 or NFS) and no other data repository can be linked to the+    -- directory.+    --+    -- The cache path can only be set to root (\/) on an NFS DRA when+    -- @DataRepositorySubdirectories@ is specified. If you specify root (\/) as+    -- the cache path, you can create only one DRA on the cache.+    --+    -- The cache path cannot be set to root (\/) for an S3 DRA.+    fileCachePath :: Prelude.Maybe Prelude.Text,+    fileSystemId :: Prelude.Maybe Prelude.Text,+    -- | A path on the Amazon FSx for Lustre file system that points to a+    -- high-level directory (such as @\/ns1\/@) or subdirectory (such as+    -- @\/ns1\/subdir\/@) that will be mapped 1-1 with @DataRepositoryPath@.+    -- The leading forward slash in the name is required. Two data repository+    -- associations cannot have overlapping file system paths. For example, if+    -- a data repository is associated with file system path @\/ns1\/@, then+    -- you cannot link another data repository with file system path+    -- @\/ns1\/ns2@.+    --+    -- This path specifies where in your file system files will be exported+    -- from or imported to. This file system directory can be linked to only+    -- one Amazon S3 bucket, and no other S3 bucket can be linked to the+    -- directory.+    --+    -- If you specify only a forward slash (@\/@) as the file system path, you+    -- can link only one data repository to the file system. You can only+    -- specify \"\/\" as the file system path for the first data repository+    -- associated with a file system.+    fileSystemPath :: 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 or cache.+    --+    -- 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.+    importedFileChunkSize :: Prelude.Maybe Prelude.Natural,+    -- | Describes the state of a data repository association. The lifecycle can+    -- have the following values:+    --+    -- -   @CREATING@ - The data repository association between the file system+    --     or cache and the data repository is being created. The data+    --     repository is unavailable.+    --+    -- -   @AVAILABLE@ - The data repository association is available for use.+    --+    -- -   @MISCONFIGURED@ - The data repository association is misconfigured.+    --     Until the configuration is corrected, automatic import and automatic+    --     export will not work (only for Amazon FSx for Lustre).+    --+    -- -   @UPDATING@ - The data repository association is undergoing a+    --     customer initiated update that might affect its availability.+    --+    -- -   @DELETING@ - The data repository association is undergoing a+    --     customer initiated deletion.+    --+    -- -   @FAILED@ - The data repository association is in a terminal state+    --     that cannot be recovered.+    lifecycle :: Prelude.Maybe DataRepositoryLifecycle,+    -- | The configuration for an NFS data repository linked to an Amazon File+    -- Cache resource with a data repository association.+    nfs :: Prelude.Maybe NFSDataRepositoryConfiguration,+    resourceARN :: Prelude.Maybe Prelude.Text,+    -- | The configuration for an Amazon S3 data repository linked to an Amazon+    -- FSx for Lustre file system with a data repository association.+    s3 :: Prelude.Maybe S3DataRepositoryConfiguration,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataRepositoryAssociation' 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:+--+-- 'associationId', 'dataRepositoryAssociation_associationId' - The system-generated, unique ID of the data repository association.+--+-- 'batchImportMetaDataOnCreate', 'dataRepositoryAssociation_batchImportMetaDataOnCreate' - A boolean flag indicating whether an import data repository task to+-- import metadata should run after the data repository association is+-- created. The task runs if this flag is set to @true@.+--+-- @BatchImportMetaDataOnCreate@ is not supported for data repositories+-- linked to an Amazon File Cache resource.+--+-- 'creationTime', 'dataRepositoryAssociation_creationTime' - Undocumented member.+--+-- 'dataRepositoryPath', 'dataRepositoryAssociation_dataRepositoryPath' - The path to the data repository that will be linked to the cache or file+-- system.+--+-- -   For Amazon File Cache, the path can be an NFS data repository that+--     will be linked to the cache. The path can be in one of two formats:+--+--     -   If you are not using the @DataRepositorySubdirectories@+--         parameter, the path is to an NFS Export directory (or one of its+--         subdirectories) in the format+--         @nsf:\/\/nfs-domain-name\/exportpath@. You can therefore link a+--         single NFS Export to a single data repository association.+--+--     -   If you are using the @DataRepositorySubdirectories@ parameter,+--         the path is the domain name of the NFS file system in the format+--         @nfs:\/\/filer-domain-name@, which indicates the root of the+--         subdirectories specified with the @DataRepositorySubdirectories@+--         parameter.+--+-- -   For Amazon File Cache, the path can be an S3 bucket or prefix in the+--     format @s3:\/\/myBucket\/myPrefix\/@.+--+-- -   For Amazon FSx for Lustre, the path can be an S3 bucket or prefix in+--     the format @s3:\/\/myBucket\/myPrefix\/@.+--+-- 'dataRepositorySubdirectories', 'dataRepositoryAssociation_dataRepositorySubdirectories' - For Amazon File Cache, a list of NFS Exports that will be linked with an+-- NFS data repository association. All the subdirectories must be on a+-- single NFS file system. The Export paths are in the format+-- @\/exportpath1@. To use this parameter, you must configure+-- @DataRepositoryPath@ as the domain name of the NFS file system. The NFS+-- file system domain name in effect is the root of the subdirectories.+-- Note that @DataRepositorySubdirectories@ is not supported for S3 data+-- repositories.+--+-- 'failureDetails', 'dataRepositoryAssociation_failureDetails' - Undocumented member.+--+-- 'fileCacheId', 'dataRepositoryAssociation_fileCacheId' - The globally unique ID of the Amazon File Cache resource.+--+-- 'fileCachePath', 'dataRepositoryAssociation_fileCachePath' - A path on the Amazon File Cache that points to a high-level directory+-- (such as @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that+-- will be mapped 1-1 with @DataRepositoryPath@. The leading forward slash+-- in the path is required. Two data repository associations cannot have+-- overlapping cache paths. For example, if a data repository is associated+-- with cache path @\/ns1\/@, then you cannot link another data repository+-- with cache path @\/ns1\/ns2@.+--+-- This path specifies the directory in your cache where files will be+-- exported from. This cache directory can be linked to only one data+-- repository (S3 or NFS) and no other data repository can be linked to the+-- directory.+--+-- The cache path can only be set to root (\/) on an NFS DRA when+-- @DataRepositorySubdirectories@ is specified. If you specify root (\/) as+-- the cache path, you can create only one DRA on the cache.+--+-- The cache path cannot be set to root (\/) for an S3 DRA.+--+-- 'fileSystemId', 'dataRepositoryAssociation_fileSystemId' - Undocumented member.+--+-- 'fileSystemPath', 'dataRepositoryAssociation_fileSystemPath' - A path on the Amazon FSx for Lustre file system that points to a+-- high-level directory (such as @\/ns1\/@) or subdirectory (such as+-- @\/ns1\/subdir\/@) that will be mapped 1-1 with @DataRepositoryPath@.+-- The leading forward slash in the name is required. Two data repository+-- associations cannot have overlapping file system paths. For example, if+-- a data repository is associated with file system path @\/ns1\/@, then+-- you cannot link another data repository with file system path+-- @\/ns1\/ns2@.+--+-- This path specifies where in your file system files will be exported+-- from or imported to. This file system directory can be linked to only+-- one Amazon S3 bucket, and no other S3 bucket can be linked to the+-- directory.+--+-- If you specify only a forward slash (@\/@) as the file system path, you+-- can link only one data repository to the file system. You can only+-- specify \"\/\" as the file system path for the first data repository+-- associated with a file system.+--+-- 'importedFileChunkSize', 'dataRepositoryAssociation_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 or cache.+--+-- 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', 'dataRepositoryAssociation_lifecycle' - Describes the state of a data repository association. The lifecycle can+-- have the following values:+--+-- -   @CREATING@ - The data repository association between the file system+--     or cache and the data repository is being created. The data+--     repository is unavailable.+--+-- -   @AVAILABLE@ - The data repository association is available for use.+--+-- -   @MISCONFIGURED@ - The data repository association is misconfigured.+--     Until the configuration is corrected, automatic import and automatic+--     export will not work (only for Amazon FSx for Lustre).+--+-- -   @UPDATING@ - The data repository association is undergoing a+--     customer initiated update that might affect its availability.+--+-- -   @DELETING@ - The data repository association is undergoing a+--     customer initiated deletion.+--+-- -   @FAILED@ - The data repository association is in a terminal state+--     that cannot be recovered.+--+-- 'nfs', 'dataRepositoryAssociation_nfs' - The configuration for an NFS data repository linked to an Amazon File+-- Cache resource with a data repository association.+--+-- 'resourceARN', 'dataRepositoryAssociation_resourceARN' - Undocumented member.+--+-- 's3', 'dataRepositoryAssociation_s3' - The configuration for an Amazon S3 data repository linked to an Amazon+-- FSx for Lustre file system with a data repository association.+--+-- 'tags', 'dataRepositoryAssociation_tags' - Undocumented member.+newDataRepositoryAssociation ::+  DataRepositoryAssociation+newDataRepositoryAssociation =+  DataRepositoryAssociation'+    { associationId =+        Prelude.Nothing,+      batchImportMetaDataOnCreate = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      dataRepositoryPath = Prelude.Nothing,+      dataRepositorySubdirectories = Prelude.Nothing,+      failureDetails = Prelude.Nothing,+      fileCacheId = Prelude.Nothing,+      fileCachePath = Prelude.Nothing,+      fileSystemId = Prelude.Nothing,+      fileSystemPath = Prelude.Nothing,+      importedFileChunkSize = Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      nfs = Prelude.Nothing,+      resourceARN = Prelude.Nothing,+      s3 = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The system-generated, unique ID of the data repository association.+dataRepositoryAssociation_associationId :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Text)+dataRepositoryAssociation_associationId = Lens.lens (\DataRepositoryAssociation' {associationId} -> associationId) (\s@DataRepositoryAssociation' {} a -> s {associationId = a} :: DataRepositoryAssociation)++-- | A boolean flag indicating whether an import data repository task to+-- import metadata should run after the data repository association is+-- created. The task runs if this flag is set to @true@.+--+-- @BatchImportMetaDataOnCreate@ is not supported for data repositories+-- linked to an Amazon File Cache resource.+dataRepositoryAssociation_batchImportMetaDataOnCreate :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Bool)+dataRepositoryAssociation_batchImportMetaDataOnCreate = Lens.lens (\DataRepositoryAssociation' {batchImportMetaDataOnCreate} -> batchImportMetaDataOnCreate) (\s@DataRepositoryAssociation' {} a -> s {batchImportMetaDataOnCreate = a} :: DataRepositoryAssociation)++-- | Undocumented member.+dataRepositoryAssociation_creationTime :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.UTCTime)+dataRepositoryAssociation_creationTime = Lens.lens (\DataRepositoryAssociation' {creationTime} -> creationTime) (\s@DataRepositoryAssociation' {} a -> s {creationTime = a} :: DataRepositoryAssociation) Prelude.. Lens.mapping Data._Time++-- | The path to the data repository that will be linked to the cache or file+-- system.+--+-- -   For Amazon File Cache, the path can be an NFS data repository that+--     will be linked to the cache. The path can be in one of two formats:+--+--     -   If you are not using the @DataRepositorySubdirectories@+--         parameter, the path is to an NFS Export directory (or one of its+--         subdirectories) in the format+--         @nsf:\/\/nfs-domain-name\/exportpath@. You can therefore link a+--         single NFS Export to a single data repository association.+--+--     -   If you are using the @DataRepositorySubdirectories@ parameter,+--         the path is the domain name of the NFS file system in the format+--         @nfs:\/\/filer-domain-name@, which indicates the root of the+--         subdirectories specified with the @DataRepositorySubdirectories@+--         parameter.+--+-- -   For Amazon File Cache, the path can be an S3 bucket or prefix in the+--     format @s3:\/\/myBucket\/myPrefix\/@.+--+-- -   For Amazon FSx for Lustre, the path can be an S3 bucket or prefix in+--     the format @s3:\/\/myBucket\/myPrefix\/@.+dataRepositoryAssociation_dataRepositoryPath :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Text)+dataRepositoryAssociation_dataRepositoryPath = Lens.lens (\DataRepositoryAssociation' {dataRepositoryPath} -> dataRepositoryPath) (\s@DataRepositoryAssociation' {} a -> s {dataRepositoryPath = a} :: DataRepositoryAssociation)++-- | For Amazon File Cache, a list of NFS Exports that will be linked with an+-- NFS data repository association. All the subdirectories must be on a+-- single NFS file system. The Export paths are in the format+-- @\/exportpath1@. To use this parameter, you must configure+-- @DataRepositoryPath@ as the domain name of the NFS file system. The NFS+-- file system domain name in effect is the root of the subdirectories.+-- Note that @DataRepositorySubdirectories@ is not supported for S3 data+-- repositories.+dataRepositoryAssociation_dataRepositorySubdirectories :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe [Prelude.Text])+dataRepositoryAssociation_dataRepositorySubdirectories = Lens.lens (\DataRepositoryAssociation' {dataRepositorySubdirectories} -> dataRepositorySubdirectories) (\s@DataRepositoryAssociation' {} a -> s {dataRepositorySubdirectories = a} :: DataRepositoryAssociation) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+dataRepositoryAssociation_failureDetails :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe DataRepositoryFailureDetails)+dataRepositoryAssociation_failureDetails = Lens.lens (\DataRepositoryAssociation' {failureDetails} -> failureDetails) (\s@DataRepositoryAssociation' {} a -> s {failureDetails = a} :: DataRepositoryAssociation)++-- | The globally unique ID of the Amazon File Cache resource.+dataRepositoryAssociation_fileCacheId :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Text)+dataRepositoryAssociation_fileCacheId = Lens.lens (\DataRepositoryAssociation' {fileCacheId} -> fileCacheId) (\s@DataRepositoryAssociation' {} a -> s {fileCacheId = a} :: DataRepositoryAssociation)++-- | A path on the Amazon File Cache that points to a high-level directory+-- (such as @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that+-- will be mapped 1-1 with @DataRepositoryPath@. The leading forward slash+-- in the path is required. Two data repository associations cannot have+-- overlapping cache paths. For example, if a data repository is associated+-- with cache path @\/ns1\/@, then you cannot link another data repository+-- with cache path @\/ns1\/ns2@.+--+-- This path specifies the directory in your cache where files will be+-- exported from. This cache directory can be linked to only one data+-- repository (S3 or NFS) and no other data repository can be linked to the+-- directory.+--+-- The cache path can only be set to root (\/) on an NFS DRA when+-- @DataRepositorySubdirectories@ is specified. If you specify root (\/) as+-- the cache path, you can create only one DRA on the cache.+--+-- The cache path cannot be set to root (\/) for an S3 DRA.+dataRepositoryAssociation_fileCachePath :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Text)+dataRepositoryAssociation_fileCachePath = Lens.lens (\DataRepositoryAssociation' {fileCachePath} -> fileCachePath) (\s@DataRepositoryAssociation' {} a -> s {fileCachePath = a} :: DataRepositoryAssociation)++-- | Undocumented member.+dataRepositoryAssociation_fileSystemId :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Text)+dataRepositoryAssociation_fileSystemId = Lens.lens (\DataRepositoryAssociation' {fileSystemId} -> fileSystemId) (\s@DataRepositoryAssociation' {} a -> s {fileSystemId = a} :: DataRepositoryAssociation)++-- | A path on the Amazon FSx for Lustre file system that points to a+-- high-level directory (such as @\/ns1\/@) or subdirectory (such as+-- @\/ns1\/subdir\/@) that will be mapped 1-1 with @DataRepositoryPath@.+-- The leading forward slash in the name is required. Two data repository+-- associations cannot have overlapping file system paths. For example, if+-- a data repository is associated with file system path @\/ns1\/@, then+-- you cannot link another data repository with file system path+-- @\/ns1\/ns2@.+--+-- This path specifies where in your file system files will be exported+-- from or imported to. This file system directory can be linked to only+-- one Amazon S3 bucket, and no other S3 bucket can be linked to the+-- directory.+--+-- If you specify only a forward slash (@\/@) as the file system path, you+-- can link only one data repository to the file system. You can only+-- specify \"\/\" as the file system path for the first data repository+-- associated with a file system.+dataRepositoryAssociation_fileSystemPath :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Text)+dataRepositoryAssociation_fileSystemPath = Lens.lens (\DataRepositoryAssociation' {fileSystemPath} -> fileSystemPath) (\s@DataRepositoryAssociation' {} a -> s {fileSystemPath = a} :: DataRepositoryAssociation)++-- | 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 or cache.+--+-- 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.+dataRepositoryAssociation_importedFileChunkSize :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Natural)+dataRepositoryAssociation_importedFileChunkSize = Lens.lens (\DataRepositoryAssociation' {importedFileChunkSize} -> importedFileChunkSize) (\s@DataRepositoryAssociation' {} a -> s {importedFileChunkSize = a} :: DataRepositoryAssociation)++-- | Describes the state of a data repository association. The lifecycle can+-- have the following values:+--+-- -   @CREATING@ - The data repository association between the file system+--     or cache and the data repository is being created. The data+--     repository is unavailable.+--+-- -   @AVAILABLE@ - The data repository association is available for use.+--+-- -   @MISCONFIGURED@ - The data repository association is misconfigured.+--     Until the configuration is corrected, automatic import and automatic+--     export will not work (only for Amazon FSx for Lustre).+--+-- -   @UPDATING@ - The data repository association is undergoing a+--     customer initiated update that might affect its availability.+--+-- -   @DELETING@ - The data repository association is undergoing a+--     customer initiated deletion.+--+-- -   @FAILED@ - The data repository association is in a terminal state+--     that cannot be recovered.+dataRepositoryAssociation_lifecycle :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe DataRepositoryLifecycle)+dataRepositoryAssociation_lifecycle = Lens.lens (\DataRepositoryAssociation' {lifecycle} -> lifecycle) (\s@DataRepositoryAssociation' {} a -> s {lifecycle = a} :: DataRepositoryAssociation)++-- | The configuration for an NFS data repository linked to an Amazon File+-- Cache resource with a data repository association.+dataRepositoryAssociation_nfs :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe NFSDataRepositoryConfiguration)+dataRepositoryAssociation_nfs = Lens.lens (\DataRepositoryAssociation' {nfs} -> nfs) (\s@DataRepositoryAssociation' {} a -> s {nfs = a} :: DataRepositoryAssociation)++-- | Undocumented member.+dataRepositoryAssociation_resourceARN :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe Prelude.Text)+dataRepositoryAssociation_resourceARN = Lens.lens (\DataRepositoryAssociation' {resourceARN} -> resourceARN) (\s@DataRepositoryAssociation' {} a -> s {resourceARN = a} :: DataRepositoryAssociation)++-- | The configuration for an Amazon S3 data repository linked to an Amazon+-- FSx for Lustre file system with a data repository association.+dataRepositoryAssociation_s3 :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe S3DataRepositoryConfiguration)+dataRepositoryAssociation_s3 = Lens.lens (\DataRepositoryAssociation' {s3} -> s3) (\s@DataRepositoryAssociation' {} a -> s {s3 = a} :: DataRepositoryAssociation)++-- | Undocumented member.+dataRepositoryAssociation_tags :: Lens.Lens' DataRepositoryAssociation (Prelude.Maybe (Prelude.NonEmpty Tag))+dataRepositoryAssociation_tags = Lens.lens (\DataRepositoryAssociation' {tags} -> tags) (\s@DataRepositoryAssociation' {} a -> s {tags = a} :: DataRepositoryAssociation) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DataRepositoryAssociation where+  parseJSON =+    Data.withObject+      "DataRepositoryAssociation"+      ( \x ->+          DataRepositoryAssociation'+            Prelude.<$> (x Data..:? "AssociationId")+            Prelude.<*> (x Data..:? "BatchImportMetaDataOnCreate")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "DataRepositoryPath")+            Prelude.<*> ( x+                            Data..:? "DataRepositorySubdirectories"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FailureDetails")+            Prelude.<*> (x Data..:? "FileCacheId")+            Prelude.<*> (x Data..:? "FileCachePath")+            Prelude.<*> (x Data..:? "FileSystemId")+            Prelude.<*> (x Data..:? "FileSystemPath")+            Prelude.<*> (x Data..:? "ImportedFileChunkSize")+            Prelude.<*> (x Data..:? "Lifecycle")+            Prelude.<*> (x Data..:? "NFS")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "S3")+            Prelude.<*> (x Data..:? "Tags")+      )++instance Prelude.Hashable DataRepositoryAssociation where+  hashWithSalt _salt DataRepositoryAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` associationId+      `Prelude.hashWithSalt` batchImportMetaDataOnCreate+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` dataRepositoryPath+      `Prelude.hashWithSalt` dataRepositorySubdirectories+      `Prelude.hashWithSalt` failureDetails+      `Prelude.hashWithSalt` fileCacheId+      `Prelude.hashWithSalt` fileCachePath+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` fileSystemPath+      `Prelude.hashWithSalt` importedFileChunkSize+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` nfs+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` s3+      `Prelude.hashWithSalt` tags++instance Prelude.NFData DataRepositoryAssociation where+  rnf DataRepositoryAssociation' {..} =+    Prelude.rnf associationId+      `Prelude.seq` Prelude.rnf batchImportMetaDataOnCreate+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf dataRepositoryPath+      `Prelude.seq` Prelude.rnf dataRepositorySubdirectories+      `Prelude.seq` Prelude.rnf failureDetails+      `Prelude.seq` Prelude.rnf fileCacheId+      `Prelude.seq` Prelude.rnf fileCachePath+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf fileSystemPath+      `Prelude.seq` Prelude.rnf importedFileChunkSize+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf nfs+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf s3+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/FSx/Types/DataRepositoryConfiguration.hs view
@@ -0,0 +1,301 @@+{-# 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.+    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.+    exportPath :: Prelude.Maybe Prelude.Text,+    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.+    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.+    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.+    lifecycle :: Prelude.Maybe DataRepositoryLifecycle+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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'+    { autoImportPolicy =+        Prelude.Nothing,+      exportPath = Prelude.Nothing,+      failureDetails = Prelude.Nothing,+      importPath = Prelude.Nothing,+      importedFileChunkSize = Prelude.Nothing,+      lifecycle = 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.lens (\DataRepositoryConfiguration' {autoImportPolicy} -> autoImportPolicy) (\s@DataRepositoryConfiguration' {} a -> s {autoImportPolicy = 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.lens (\DataRepositoryConfiguration' {exportPath} -> exportPath) (\s@DataRepositoryConfiguration' {} a -> s {exportPath = a} :: DataRepositoryConfiguration)++-- | Undocumented member.+dataRepositoryConfiguration_failureDetails :: Lens.Lens' DataRepositoryConfiguration (Prelude.Maybe DataRepositoryFailureDetails)+dataRepositoryConfiguration_failureDetails = Lens.lens (\DataRepositoryConfiguration' {failureDetails} -> failureDetails) (\s@DataRepositoryConfiguration' {} a -> s {failureDetails = 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.lens (\DataRepositoryConfiguration' {importPath} -> importPath) (\s@DataRepositoryConfiguration' {} a -> s {importPath = 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.lens (\DataRepositoryConfiguration' {importedFileChunkSize} -> importedFileChunkSize) (\s@DataRepositoryConfiguration' {} a -> s {importedFileChunkSize = 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.lens (\DataRepositoryConfiguration' {lifecycle} -> lifecycle) (\s@DataRepositoryConfiguration' {} a -> s {lifecycle = a} :: DataRepositoryConfiguration)++instance Data.FromJSON DataRepositoryConfiguration where+  parseJSON =+    Data.withObject+      "DataRepositoryConfiguration"+      ( \x ->+          DataRepositoryConfiguration'+            Prelude.<$> (x Data..:? "AutoImportPolicy")+            Prelude.<*> (x Data..:? "ExportPath")+            Prelude.<*> (x Data..:? "FailureDetails")+            Prelude.<*> (x Data..:? "ImportPath")+            Prelude.<*> (x Data..:? "ImportedFileChunkSize")+            Prelude.<*> (x Data..:? "Lifecycle")+      )++instance Prelude.Hashable DataRepositoryConfiguration where+  hashWithSalt _salt DataRepositoryConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` autoImportPolicy+      `Prelude.hashWithSalt` exportPath+      `Prelude.hashWithSalt` failureDetails+      `Prelude.hashWithSalt` importPath+      `Prelude.hashWithSalt` importedFileChunkSize+      `Prelude.hashWithSalt` lifecycle++instance Prelude.NFData DataRepositoryConfiguration where+  rnf DataRepositoryConfiguration' {..} =+    Prelude.rnf autoImportPolicy+      `Prelude.seq` Prelude.rnf exportPath+      `Prelude.seq` Prelude.rnf failureDetails+      `Prelude.seq` Prelude.rnf importPath+      `Prelude.seq` Prelude.rnf importedFileChunkSize+      `Prelude.seq` Prelude.rnf lifecycle
+ gen/Amazonka/FSx/Types/DataRepositoryFailureDetails.hs view
@@ -0,0 +1,75 @@+{-# 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.DataRepositoryFailureDetails+-- 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.DataRepositoryFailureDetails 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++-- | Provides detailed information about the data repository if its+-- @Lifecycle@ is set to @MISCONFIGURED@ or @FAILED@.+--+-- /See:/ 'newDataRepositoryFailureDetails' smart constructor.+data DataRepositoryFailureDetails = DataRepositoryFailureDetails'+  { message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataRepositoryFailureDetails' 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:+--+-- 'message', 'dataRepositoryFailureDetails_message' - Undocumented member.+newDataRepositoryFailureDetails ::+  DataRepositoryFailureDetails+newDataRepositoryFailureDetails =+  DataRepositoryFailureDetails'+    { message =+        Prelude.Nothing+    }++-- | Undocumented member.+dataRepositoryFailureDetails_message :: Lens.Lens' DataRepositoryFailureDetails (Prelude.Maybe Prelude.Text)+dataRepositoryFailureDetails_message = Lens.lens (\DataRepositoryFailureDetails' {message} -> message) (\s@DataRepositoryFailureDetails' {} a -> s {message = a} :: DataRepositoryFailureDetails)++instance Data.FromJSON DataRepositoryFailureDetails where+  parseJSON =+    Data.withObject+      "DataRepositoryFailureDetails"+      ( \x ->+          DataRepositoryFailureDetails'+            Prelude.<$> (x Data..:? "Message")+      )++instance+  Prelude.Hashable+    DataRepositoryFailureDetails+  where+  hashWithSalt _salt DataRepositoryFailureDetails' {..} =+    _salt `Prelude.hashWithSalt` message++instance Prelude.NFData DataRepositoryFailureDetails where+  rnf DataRepositoryFailureDetails' {..} =+    Prelude.rnf message
+ gen/Amazonka/FSx/Types/DataRepositoryLifecycle.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DataRepositoryLifecycle+-- 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.DataRepositoryLifecycle+  ( DataRepositoryLifecycle+      ( ..,+        DataRepositoryLifecycle_AVAILABLE,+        DataRepositoryLifecycle_CREATING,+        DataRepositoryLifecycle_DELETING,+        DataRepositoryLifecycle_FAILED,+        DataRepositoryLifecycle_MISCONFIGURED,+        DataRepositoryLifecycle_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataRepositoryLifecycle = DataRepositoryLifecycle'+  { fromDataRepositoryLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DataRepositoryLifecycle_AVAILABLE :: DataRepositoryLifecycle+pattern DataRepositoryLifecycle_AVAILABLE = DataRepositoryLifecycle' "AVAILABLE"++pattern DataRepositoryLifecycle_CREATING :: DataRepositoryLifecycle+pattern DataRepositoryLifecycle_CREATING = DataRepositoryLifecycle' "CREATING"++pattern DataRepositoryLifecycle_DELETING :: DataRepositoryLifecycle+pattern DataRepositoryLifecycle_DELETING = DataRepositoryLifecycle' "DELETING"++pattern DataRepositoryLifecycle_FAILED :: DataRepositoryLifecycle+pattern DataRepositoryLifecycle_FAILED = DataRepositoryLifecycle' "FAILED"++pattern DataRepositoryLifecycle_MISCONFIGURED :: DataRepositoryLifecycle+pattern DataRepositoryLifecycle_MISCONFIGURED = DataRepositoryLifecycle' "MISCONFIGURED"++pattern DataRepositoryLifecycle_UPDATING :: DataRepositoryLifecycle+pattern DataRepositoryLifecycle_UPDATING = DataRepositoryLifecycle' "UPDATING"++{-# COMPLETE+  DataRepositoryLifecycle_AVAILABLE,+  DataRepositoryLifecycle_CREATING,+  DataRepositoryLifecycle_DELETING,+  DataRepositoryLifecycle_FAILED,+  DataRepositoryLifecycle_MISCONFIGURED,+  DataRepositoryLifecycle_UPDATING,+  DataRepositoryLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/DataRepositoryTask.hs view
@@ -0,0 +1,378 @@+{-# 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.DataRepositoryTask+-- 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.DataRepositoryTask 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.CompletionReport+import Amazonka.FSx.Types.DataRepositoryTaskFailureDetails+import Amazonka.FSx.Types.DataRepositoryTaskLifecycle+import Amazonka.FSx.Types.DataRepositoryTaskStatus+import Amazonka.FSx.Types.DataRepositoryTaskType+import Amazonka.FSx.Types.Tag+import qualified Amazonka.Prelude as Prelude++-- | A description of the data repository task. You use data repository tasks+-- to perform bulk transfer operations between an Amazon FSx for Lustre+-- file system and a linked data repository. An Amazon File Cache resource+-- uses a task to automatically release files from the cache.+--+-- /See:/ 'newDataRepositoryTask' smart constructor.+data DataRepositoryTask = DataRepositoryTask'+  { -- | Specifies the amount of data to release, in GiB, by an Amazon File Cache+    -- AUTO_RELEASE_DATA task that automatically releases files from the cache.+    capacityToRelease :: Prelude.Maybe Prelude.Natural,+    -- | The time the system completed processing the task, populated after the+    -- task is complete.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | Failure message describing why the task failed, it is populated only+    -- when @Lifecycle@ is set to @FAILED@.+    failureDetails :: Prelude.Maybe DataRepositoryTaskFailureDetails,+    -- | The system-generated, unique ID of the cache.+    fileCacheId :: Prelude.Maybe Prelude.Text,+    -- | The globally unique ID of the file system.+    fileSystemId :: Prelude.Maybe Prelude.Text,+    -- | An array of paths that specify the data for the data repository task to+    -- process. For example, in an EXPORT_TO_REPOSITORY task, the paths specify+    -- which data to export to the linked data repository.+    --+    -- (Default) If @Paths@ is not specified, Amazon FSx uses the file system+    -- root directory.+    paths :: Prelude.Maybe [Prelude.Text],+    report :: Prelude.Maybe CompletionReport,+    resourceARN :: Prelude.Maybe Prelude.Text,+    -- | The time the system began processing the task.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | Provides the status of the number of files that the task has processed+    -- successfully and failed to process.+    status :: Prelude.Maybe DataRepositoryTaskStatus,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The system-generated, unique 17-digit ID of the data repository task.+    taskId :: Prelude.Text,+    -- | The lifecycle status of the data repository task, as follows:+    --+    -- -   @PENDING@ - The task has not started.+    --+    -- -   @EXECUTING@ - The task is in process.+    --+    -- -   @FAILED@ - The task was not able to be completed. For example, there+    --     may be files the task failed to process. The+    --     DataRepositoryTaskFailureDetails property provides more information+    --     about task failures.+    --+    -- -   @SUCCEEDED@ - The task has completed successfully.+    --+    -- -   @CANCELED@ - The task was canceled and it did not complete.+    --+    -- -   @CANCELING@ - The task is in process of being canceled.+    --+    -- You cannot delete an FSx for Lustre file system if there are data+    -- repository tasks for the file system in the @PENDING@ or @EXECUTING@+    -- states. Please retry when the data repository task is finished (with a+    -- status of @CANCELED@, @SUCCEEDED@, or @FAILED@). You can use the+    -- DescribeDataRepositoryTask action to monitor the task status. Contact+    -- the FSx team if you need to delete your file system immediately.+    lifecycle :: DataRepositoryTaskLifecycle,+    -- | The type of data repository task.+    --+    -- -   @EXPORT_TO_REPOSITORY@ tasks export from your Amazon FSx for Lustre+    --     file system to a linked data repository.+    --+    -- -   @IMPORT_METADATA_FROM_REPOSITORY@ tasks import metadata changes from+    --     a linked S3 bucket to your Amazon FSx for Lustre file system.+    --+    -- -   @AUTO_RELEASE_DATA@ tasks automatically release files from an Amazon+    --     File Cache resource.+    type' :: DataRepositoryTaskType,+    creationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataRepositoryTask' 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:+--+-- 'capacityToRelease', 'dataRepositoryTask_capacityToRelease' - Specifies the amount of data to release, in GiB, by an Amazon File Cache+-- AUTO_RELEASE_DATA task that automatically releases files from the cache.+--+-- 'endTime', 'dataRepositoryTask_endTime' - The time the system completed processing the task, populated after the+-- task is complete.+--+-- 'failureDetails', 'dataRepositoryTask_failureDetails' - Failure message describing why the task failed, it is populated only+-- when @Lifecycle@ is set to @FAILED@.+--+-- 'fileCacheId', 'dataRepositoryTask_fileCacheId' - The system-generated, unique ID of the cache.+--+-- 'fileSystemId', 'dataRepositoryTask_fileSystemId' - The globally unique ID of the file system.+--+-- 'paths', 'dataRepositoryTask_paths' - An array of paths that specify the data for the data repository task to+-- process. For example, in an EXPORT_TO_REPOSITORY task, the paths specify+-- which data to export to the linked data repository.+--+-- (Default) If @Paths@ is not specified, Amazon FSx uses the file system+-- root directory.+--+-- 'report', 'dataRepositoryTask_report' - Undocumented member.+--+-- 'resourceARN', 'dataRepositoryTask_resourceARN' - Undocumented member.+--+-- 'startTime', 'dataRepositoryTask_startTime' - The time the system began processing the task.+--+-- 'status', 'dataRepositoryTask_status' - Provides the status of the number of files that the task has processed+-- successfully and failed to process.+--+-- 'tags', 'dataRepositoryTask_tags' - Undocumented member.+--+-- 'taskId', 'dataRepositoryTask_taskId' - The system-generated, unique 17-digit ID of the data repository task.+--+-- 'lifecycle', 'dataRepositoryTask_lifecycle' - The lifecycle status of the data repository task, as follows:+--+-- -   @PENDING@ - The task has not started.+--+-- -   @EXECUTING@ - The task is in process.+--+-- -   @FAILED@ - The task was not able to be completed. For example, there+--     may be files the task failed to process. The+--     DataRepositoryTaskFailureDetails property provides more information+--     about task failures.+--+-- -   @SUCCEEDED@ - The task has completed successfully.+--+-- -   @CANCELED@ - The task was canceled and it did not complete.+--+-- -   @CANCELING@ - The task is in process of being canceled.+--+-- You cannot delete an FSx for Lustre file system if there are data+-- repository tasks for the file system in the @PENDING@ or @EXECUTING@+-- states. Please retry when the data repository task is finished (with a+-- status of @CANCELED@, @SUCCEEDED@, or @FAILED@). You can use the+-- DescribeDataRepositoryTask action to monitor the task status. Contact+-- the FSx team if you need to delete your file system immediately.+--+-- 'type'', 'dataRepositoryTask_type' - The type of data repository task.+--+-- -   @EXPORT_TO_REPOSITORY@ tasks export from your Amazon FSx for Lustre+--     file system to a linked data repository.+--+-- -   @IMPORT_METADATA_FROM_REPOSITORY@ tasks import metadata changes from+--     a linked S3 bucket to your Amazon FSx for Lustre file system.+--+-- -   @AUTO_RELEASE_DATA@ tasks automatically release files from an Amazon+--     File Cache resource.+--+-- 'creationTime', 'dataRepositoryTask_creationTime' - Undocumented member.+newDataRepositoryTask ::+  -- | 'taskId'+  Prelude.Text ->+  -- | 'lifecycle'+  DataRepositoryTaskLifecycle ->+  -- | 'type''+  DataRepositoryTaskType ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  DataRepositoryTask+newDataRepositoryTask+  pTaskId_+  pLifecycle_+  pType_+  pCreationTime_ =+    DataRepositoryTask'+      { capacityToRelease =+          Prelude.Nothing,+        endTime = Prelude.Nothing,+        failureDetails = Prelude.Nothing,+        fileCacheId = Prelude.Nothing,+        fileSystemId = Prelude.Nothing,+        paths = Prelude.Nothing,+        report = Prelude.Nothing,+        resourceARN = Prelude.Nothing,+        startTime = Prelude.Nothing,+        status = Prelude.Nothing,+        tags = Prelude.Nothing,+        taskId = pTaskId_,+        lifecycle = pLifecycle_,+        type' = pType_,+        creationTime = Data._Time Lens.# pCreationTime_+      }++-- | Specifies the amount of data to release, in GiB, by an Amazon File Cache+-- AUTO_RELEASE_DATA task that automatically releases files from the cache.+dataRepositoryTask_capacityToRelease :: Lens.Lens' DataRepositoryTask (Prelude.Maybe Prelude.Natural)+dataRepositoryTask_capacityToRelease = Lens.lens (\DataRepositoryTask' {capacityToRelease} -> capacityToRelease) (\s@DataRepositoryTask' {} a -> s {capacityToRelease = a} :: DataRepositoryTask)++-- | The time the system completed processing the task, populated after the+-- task is complete.+dataRepositoryTask_endTime :: Lens.Lens' DataRepositoryTask (Prelude.Maybe Prelude.UTCTime)+dataRepositoryTask_endTime = Lens.lens (\DataRepositoryTask' {endTime} -> endTime) (\s@DataRepositoryTask' {} a -> s {endTime = a} :: DataRepositoryTask) Prelude.. Lens.mapping Data._Time++-- | Failure message describing why the task failed, it is populated only+-- when @Lifecycle@ is set to @FAILED@.+dataRepositoryTask_failureDetails :: Lens.Lens' DataRepositoryTask (Prelude.Maybe DataRepositoryTaskFailureDetails)+dataRepositoryTask_failureDetails = Lens.lens (\DataRepositoryTask' {failureDetails} -> failureDetails) (\s@DataRepositoryTask' {} a -> s {failureDetails = a} :: DataRepositoryTask)++-- | The system-generated, unique ID of the cache.+dataRepositoryTask_fileCacheId :: Lens.Lens' DataRepositoryTask (Prelude.Maybe Prelude.Text)+dataRepositoryTask_fileCacheId = Lens.lens (\DataRepositoryTask' {fileCacheId} -> fileCacheId) (\s@DataRepositoryTask' {} a -> s {fileCacheId = a} :: DataRepositoryTask)++-- | The globally unique ID of the file system.+dataRepositoryTask_fileSystemId :: Lens.Lens' DataRepositoryTask (Prelude.Maybe Prelude.Text)+dataRepositoryTask_fileSystemId = Lens.lens (\DataRepositoryTask' {fileSystemId} -> fileSystemId) (\s@DataRepositoryTask' {} a -> s {fileSystemId = a} :: DataRepositoryTask)++-- | An array of paths that specify the data for the data repository task to+-- process. For example, in an EXPORT_TO_REPOSITORY task, the paths specify+-- which data to export to the linked data repository.+--+-- (Default) If @Paths@ is not specified, Amazon FSx uses the file system+-- root directory.+dataRepositoryTask_paths :: Lens.Lens' DataRepositoryTask (Prelude.Maybe [Prelude.Text])+dataRepositoryTask_paths = Lens.lens (\DataRepositoryTask' {paths} -> paths) (\s@DataRepositoryTask' {} a -> s {paths = a} :: DataRepositoryTask) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+dataRepositoryTask_report :: Lens.Lens' DataRepositoryTask (Prelude.Maybe CompletionReport)+dataRepositoryTask_report = Lens.lens (\DataRepositoryTask' {report} -> report) (\s@DataRepositoryTask' {} a -> s {report = a} :: DataRepositoryTask)++-- | Undocumented member.+dataRepositoryTask_resourceARN :: Lens.Lens' DataRepositoryTask (Prelude.Maybe Prelude.Text)+dataRepositoryTask_resourceARN = Lens.lens (\DataRepositoryTask' {resourceARN} -> resourceARN) (\s@DataRepositoryTask' {} a -> s {resourceARN = a} :: DataRepositoryTask)++-- | The time the system began processing the task.+dataRepositoryTask_startTime :: Lens.Lens' DataRepositoryTask (Prelude.Maybe Prelude.UTCTime)+dataRepositoryTask_startTime = Lens.lens (\DataRepositoryTask' {startTime} -> startTime) (\s@DataRepositoryTask' {} a -> s {startTime = a} :: DataRepositoryTask) Prelude.. Lens.mapping Data._Time++-- | Provides the status of the number of files that the task has processed+-- successfully and failed to process.+dataRepositoryTask_status :: Lens.Lens' DataRepositoryTask (Prelude.Maybe DataRepositoryTaskStatus)+dataRepositoryTask_status = Lens.lens (\DataRepositoryTask' {status} -> status) (\s@DataRepositoryTask' {} a -> s {status = a} :: DataRepositoryTask)++-- | Undocumented member.+dataRepositoryTask_tags :: Lens.Lens' DataRepositoryTask (Prelude.Maybe (Prelude.NonEmpty Tag))+dataRepositoryTask_tags = Lens.lens (\DataRepositoryTask' {tags} -> tags) (\s@DataRepositoryTask' {} a -> s {tags = a} :: DataRepositoryTask) Prelude.. Lens.mapping Lens.coerced++-- | The system-generated, unique 17-digit ID of the data repository task.+dataRepositoryTask_taskId :: Lens.Lens' DataRepositoryTask Prelude.Text+dataRepositoryTask_taskId = Lens.lens (\DataRepositoryTask' {taskId} -> taskId) (\s@DataRepositoryTask' {} a -> s {taskId = a} :: DataRepositoryTask)++-- | The lifecycle status of the data repository task, as follows:+--+-- -   @PENDING@ - The task has not started.+--+-- -   @EXECUTING@ - The task is in process.+--+-- -   @FAILED@ - The task was not able to be completed. For example, there+--     may be files the task failed to process. The+--     DataRepositoryTaskFailureDetails property provides more information+--     about task failures.+--+-- -   @SUCCEEDED@ - The task has completed successfully.+--+-- -   @CANCELED@ - The task was canceled and it did not complete.+--+-- -   @CANCELING@ - The task is in process of being canceled.+--+-- You cannot delete an FSx for Lustre file system if there are data+-- repository tasks for the file system in the @PENDING@ or @EXECUTING@+-- states. Please retry when the data repository task is finished (with a+-- status of @CANCELED@, @SUCCEEDED@, or @FAILED@). You can use the+-- DescribeDataRepositoryTask action to monitor the task status. Contact+-- the FSx team if you need to delete your file system immediately.+dataRepositoryTask_lifecycle :: Lens.Lens' DataRepositoryTask DataRepositoryTaskLifecycle+dataRepositoryTask_lifecycle = Lens.lens (\DataRepositoryTask' {lifecycle} -> lifecycle) (\s@DataRepositoryTask' {} a -> s {lifecycle = a} :: DataRepositoryTask)++-- | The type of data repository task.+--+-- -   @EXPORT_TO_REPOSITORY@ tasks export from your Amazon FSx for Lustre+--     file system to a linked data repository.+--+-- -   @IMPORT_METADATA_FROM_REPOSITORY@ tasks import metadata changes from+--     a linked S3 bucket to your Amazon FSx for Lustre file system.+--+-- -   @AUTO_RELEASE_DATA@ tasks automatically release files from an Amazon+--     File Cache resource.+dataRepositoryTask_type :: Lens.Lens' DataRepositoryTask DataRepositoryTaskType+dataRepositoryTask_type = Lens.lens (\DataRepositoryTask' {type'} -> type') (\s@DataRepositoryTask' {} a -> s {type' = a} :: DataRepositoryTask)++-- | Undocumented member.+dataRepositoryTask_creationTime :: Lens.Lens' DataRepositoryTask Prelude.UTCTime+dataRepositoryTask_creationTime = Lens.lens (\DataRepositoryTask' {creationTime} -> creationTime) (\s@DataRepositoryTask' {} a -> s {creationTime = a} :: DataRepositoryTask) Prelude.. Data._Time++instance Data.FromJSON DataRepositoryTask where+  parseJSON =+    Data.withObject+      "DataRepositoryTask"+      ( \x ->+          DataRepositoryTask'+            Prelude.<$> (x Data..:? "CapacityToRelease")+            Prelude.<*> (x Data..:? "EndTime")+            Prelude.<*> (x Data..:? "FailureDetails")+            Prelude.<*> (x Data..:? "FileCacheId")+            Prelude.<*> (x Data..:? "FileSystemId")+            Prelude.<*> (x Data..:? "Paths" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Report")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "StartTime")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Tags")+            Prelude.<*> (x Data..: "TaskId")+            Prelude.<*> (x Data..: "Lifecycle")+            Prelude.<*> (x Data..: "Type")+            Prelude.<*> (x Data..: "CreationTime")+      )++instance Prelude.Hashable DataRepositoryTask where+  hashWithSalt _salt DataRepositoryTask' {..} =+    _salt+      `Prelude.hashWithSalt` capacityToRelease+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` failureDetails+      `Prelude.hashWithSalt` fileCacheId+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` paths+      `Prelude.hashWithSalt` report+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` taskId+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` creationTime++instance Prelude.NFData DataRepositoryTask where+  rnf DataRepositoryTask' {..} =+    Prelude.rnf capacityToRelease+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf failureDetails+      `Prelude.seq` Prelude.rnf fileCacheId+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf paths+      `Prelude.seq` Prelude.rnf report+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf taskId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf creationTime
+ gen/Amazonka/FSx/Types/DataRepositoryTaskFailureDetails.hs view
@@ -0,0 +1,83 @@+{-# 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.DataRepositoryTaskFailureDetails+-- 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.DataRepositoryTaskFailureDetails 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++-- | Provides information about why a data repository task failed. Only+-- populated when the task @Lifecycle@ is set to @FAILED@.+--+-- /See:/ 'newDataRepositoryTaskFailureDetails' smart constructor.+data DataRepositoryTaskFailureDetails = DataRepositoryTaskFailureDetails'+  { message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataRepositoryTaskFailureDetails' 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:+--+-- 'message', 'dataRepositoryTaskFailureDetails_message' - Undocumented member.+newDataRepositoryTaskFailureDetails ::+  DataRepositoryTaskFailureDetails+newDataRepositoryTaskFailureDetails =+  DataRepositoryTaskFailureDetails'+    { message =+        Prelude.Nothing+    }++-- | Undocumented member.+dataRepositoryTaskFailureDetails_message :: Lens.Lens' DataRepositoryTaskFailureDetails (Prelude.Maybe Prelude.Text)+dataRepositoryTaskFailureDetails_message = Lens.lens (\DataRepositoryTaskFailureDetails' {message} -> message) (\s@DataRepositoryTaskFailureDetails' {} a -> s {message = a} :: DataRepositoryTaskFailureDetails)++instance+  Data.FromJSON+    DataRepositoryTaskFailureDetails+  where+  parseJSON =+    Data.withObject+      "DataRepositoryTaskFailureDetails"+      ( \x ->+          DataRepositoryTaskFailureDetails'+            Prelude.<$> (x Data..:? "Message")+      )++instance+  Prelude.Hashable+    DataRepositoryTaskFailureDetails+  where+  hashWithSalt+    _salt+    DataRepositoryTaskFailureDetails' {..} =+      _salt `Prelude.hashWithSalt` message++instance+  Prelude.NFData+    DataRepositoryTaskFailureDetails+  where+  rnf DataRepositoryTaskFailureDetails' {..} =+    Prelude.rnf message
+ gen/Amazonka/FSx/Types/DataRepositoryTaskFilter.hs view
@@ -0,0 +1,114 @@+{-# 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.DataRepositoryTaskFilter+-- 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.DataRepositoryTaskFilter 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.DataRepositoryTaskFilterName+import qualified Amazonka.Prelude as Prelude++-- | (Optional) An array of filter objects you can use to filter the response+-- of data repository tasks you will see in the the response. You can+-- filter the tasks returned in the response by one or more file system+-- IDs, task lifecycles, and by task type. A filter object consists of a+-- filter @Name@, and one or more @Values@ for the filter.+--+-- /See:/ 'newDataRepositoryTaskFilter' smart constructor.+data DataRepositoryTaskFilter = DataRepositoryTaskFilter'+  { -- | Name of the task property to use in filtering the tasks returned in the+    -- response.+    --+    -- -   Use @file-system-id@ to retrieve data repository tasks for specific+    --     file systems.+    --+    -- -   Use @task-lifecycle@ to retrieve data repository tasks with one or+    --     more specific lifecycle states, as follows: CANCELED, EXECUTING,+    --     FAILED, PENDING, and SUCCEEDED.+    name :: Prelude.Maybe DataRepositoryTaskFilterName,+    -- | Use Values to include the specific file system IDs and task lifecycle+    -- states for the filters you are using.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataRepositoryTaskFilter' 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:+--+-- 'name', 'dataRepositoryTaskFilter_name' - Name of the task property to use in filtering the tasks returned in the+-- response.+--+-- -   Use @file-system-id@ to retrieve data repository tasks for specific+--     file systems.+--+-- -   Use @task-lifecycle@ to retrieve data repository tasks with one or+--     more specific lifecycle states, as follows: CANCELED, EXECUTING,+--     FAILED, PENDING, and SUCCEEDED.+--+-- 'values', 'dataRepositoryTaskFilter_values' - Use Values to include the specific file system IDs and task lifecycle+-- states for the filters you are using.+newDataRepositoryTaskFilter ::+  DataRepositoryTaskFilter+newDataRepositoryTaskFilter =+  DataRepositoryTaskFilter'+    { name = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | Name of the task property to use in filtering the tasks returned in the+-- response.+--+-- -   Use @file-system-id@ to retrieve data repository tasks for specific+--     file systems.+--+-- -   Use @task-lifecycle@ to retrieve data repository tasks with one or+--     more specific lifecycle states, as follows: CANCELED, EXECUTING,+--     FAILED, PENDING, and SUCCEEDED.+dataRepositoryTaskFilter_name :: Lens.Lens' DataRepositoryTaskFilter (Prelude.Maybe DataRepositoryTaskFilterName)+dataRepositoryTaskFilter_name = Lens.lens (\DataRepositoryTaskFilter' {name} -> name) (\s@DataRepositoryTaskFilter' {} a -> s {name = a} :: DataRepositoryTaskFilter)++-- | Use Values to include the specific file system IDs and task lifecycle+-- states for the filters you are using.+dataRepositoryTaskFilter_values :: Lens.Lens' DataRepositoryTaskFilter (Prelude.Maybe [Prelude.Text])+dataRepositoryTaskFilter_values = Lens.lens (\DataRepositoryTaskFilter' {values} -> values) (\s@DataRepositoryTaskFilter' {} a -> s {values = a} :: DataRepositoryTaskFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable DataRepositoryTaskFilter where+  hashWithSalt _salt DataRepositoryTaskFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData DataRepositoryTaskFilter where+  rnf DataRepositoryTaskFilter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON DataRepositoryTaskFilter where+  toJSON DataRepositoryTaskFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/FSx/Types/DataRepositoryTaskFilterName.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DataRepositoryTaskFilterName+-- 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.DataRepositoryTaskFilterName+  ( DataRepositoryTaskFilterName+      ( ..,+        DataRepositoryTaskFilterName_Data_repository_association_id,+        DataRepositoryTaskFilterName_File_cache_id,+        DataRepositoryTaskFilterName_File_system_id,+        DataRepositoryTaskFilterName_Task_lifecycle+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataRepositoryTaskFilterName = DataRepositoryTaskFilterName'+  { fromDataRepositoryTaskFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DataRepositoryTaskFilterName_Data_repository_association_id :: DataRepositoryTaskFilterName+pattern DataRepositoryTaskFilterName_Data_repository_association_id = DataRepositoryTaskFilterName' "data-repository-association-id"++pattern DataRepositoryTaskFilterName_File_cache_id :: DataRepositoryTaskFilterName+pattern DataRepositoryTaskFilterName_File_cache_id = DataRepositoryTaskFilterName' "file-cache-id"++pattern DataRepositoryTaskFilterName_File_system_id :: DataRepositoryTaskFilterName+pattern DataRepositoryTaskFilterName_File_system_id = DataRepositoryTaskFilterName' "file-system-id"++pattern DataRepositoryTaskFilterName_Task_lifecycle :: DataRepositoryTaskFilterName+pattern DataRepositoryTaskFilterName_Task_lifecycle = DataRepositoryTaskFilterName' "task-lifecycle"++{-# COMPLETE+  DataRepositoryTaskFilterName_Data_repository_association_id,+  DataRepositoryTaskFilterName_File_cache_id,+  DataRepositoryTaskFilterName_File_system_id,+  DataRepositoryTaskFilterName_Task_lifecycle,+  DataRepositoryTaskFilterName'+  #-}
+ gen/Amazonka/FSx/Types/DataRepositoryTaskLifecycle.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DataRepositoryTaskLifecycle+-- 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.DataRepositoryTaskLifecycle+  ( DataRepositoryTaskLifecycle+      ( ..,+        DataRepositoryTaskLifecycle_CANCELED,+        DataRepositoryTaskLifecycle_CANCELING,+        DataRepositoryTaskLifecycle_EXECUTING,+        DataRepositoryTaskLifecycle_FAILED,+        DataRepositoryTaskLifecycle_PENDING,+        DataRepositoryTaskLifecycle_SUCCEEDED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataRepositoryTaskLifecycle = DataRepositoryTaskLifecycle'+  { fromDataRepositoryTaskLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DataRepositoryTaskLifecycle_CANCELED :: DataRepositoryTaskLifecycle+pattern DataRepositoryTaskLifecycle_CANCELED = DataRepositoryTaskLifecycle' "CANCELED"++pattern DataRepositoryTaskLifecycle_CANCELING :: DataRepositoryTaskLifecycle+pattern DataRepositoryTaskLifecycle_CANCELING = DataRepositoryTaskLifecycle' "CANCELING"++pattern DataRepositoryTaskLifecycle_EXECUTING :: DataRepositoryTaskLifecycle+pattern DataRepositoryTaskLifecycle_EXECUTING = DataRepositoryTaskLifecycle' "EXECUTING"++pattern DataRepositoryTaskLifecycle_FAILED :: DataRepositoryTaskLifecycle+pattern DataRepositoryTaskLifecycle_FAILED = DataRepositoryTaskLifecycle' "FAILED"++pattern DataRepositoryTaskLifecycle_PENDING :: DataRepositoryTaskLifecycle+pattern DataRepositoryTaskLifecycle_PENDING = DataRepositoryTaskLifecycle' "PENDING"++pattern DataRepositoryTaskLifecycle_SUCCEEDED :: DataRepositoryTaskLifecycle+pattern DataRepositoryTaskLifecycle_SUCCEEDED = DataRepositoryTaskLifecycle' "SUCCEEDED"++{-# COMPLETE+  DataRepositoryTaskLifecycle_CANCELED,+  DataRepositoryTaskLifecycle_CANCELING,+  DataRepositoryTaskLifecycle_EXECUTING,+  DataRepositoryTaskLifecycle_FAILED,+  DataRepositoryTaskLifecycle_PENDING,+  DataRepositoryTaskLifecycle_SUCCEEDED,+  DataRepositoryTaskLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/DataRepositoryTaskStatus.hs view
@@ -0,0 +1,138 @@+{-# 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.DataRepositoryTaskStatus+-- 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.DataRepositoryTaskStatus 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++-- | Provides the task status showing a running total of the total number of+-- files to be processed, the number successfully processed, and the number+-- of files the task failed to process.+--+-- /See:/ 'newDataRepositoryTaskStatus' smart constructor.+data DataRepositoryTaskStatus = DataRepositoryTaskStatus'+  { -- | A running total of the number of files that the task failed to process.+    failedCount :: Prelude.Maybe Prelude.Integer,+    -- | The time at which the task status was last updated.+    lastUpdatedTime :: Prelude.Maybe Data.POSIX,+    -- | The total amount of data, in GiB, released by an Amazon File Cache+    -- AUTO_RELEASE_DATA task that automatically releases files from the cache.+    releasedCapacity :: Prelude.Maybe Prelude.Integer,+    -- | A running total of the number of files that the task has successfully+    -- processed.+    succeededCount :: Prelude.Maybe Prelude.Integer,+    -- | The total number of files that the task will process. While a task is+    -- executing, the sum of @SucceededCount@ plus @FailedCount@ may not equal+    -- @TotalCount@. When the task is complete, @TotalCount@ equals the sum of+    -- @SucceededCount@ plus @FailedCount@.+    totalCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataRepositoryTaskStatus' 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:+--+-- 'failedCount', 'dataRepositoryTaskStatus_failedCount' - A running total of the number of files that the task failed to process.+--+-- 'lastUpdatedTime', 'dataRepositoryTaskStatus_lastUpdatedTime' - The time at which the task status was last updated.+--+-- 'releasedCapacity', 'dataRepositoryTaskStatus_releasedCapacity' - The total amount of data, in GiB, released by an Amazon File Cache+-- AUTO_RELEASE_DATA task that automatically releases files from the cache.+--+-- 'succeededCount', 'dataRepositoryTaskStatus_succeededCount' - A running total of the number of files that the task has successfully+-- processed.+--+-- 'totalCount', 'dataRepositoryTaskStatus_totalCount' - The total number of files that the task will process. While a task is+-- executing, the sum of @SucceededCount@ plus @FailedCount@ may not equal+-- @TotalCount@. When the task is complete, @TotalCount@ equals the sum of+-- @SucceededCount@ plus @FailedCount@.+newDataRepositoryTaskStatus ::+  DataRepositoryTaskStatus+newDataRepositoryTaskStatus =+  DataRepositoryTaskStatus'+    { failedCount =+        Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      releasedCapacity = Prelude.Nothing,+      succeededCount = Prelude.Nothing,+      totalCount = Prelude.Nothing+    }++-- | A running total of the number of files that the task failed to process.+dataRepositoryTaskStatus_failedCount :: Lens.Lens' DataRepositoryTaskStatus (Prelude.Maybe Prelude.Integer)+dataRepositoryTaskStatus_failedCount = Lens.lens (\DataRepositoryTaskStatus' {failedCount} -> failedCount) (\s@DataRepositoryTaskStatus' {} a -> s {failedCount = a} :: DataRepositoryTaskStatus)++-- | The time at which the task status was last updated.+dataRepositoryTaskStatus_lastUpdatedTime :: Lens.Lens' DataRepositoryTaskStatus (Prelude.Maybe Prelude.UTCTime)+dataRepositoryTaskStatus_lastUpdatedTime = Lens.lens (\DataRepositoryTaskStatus' {lastUpdatedTime} -> lastUpdatedTime) (\s@DataRepositoryTaskStatus' {} a -> s {lastUpdatedTime = a} :: DataRepositoryTaskStatus) Prelude.. Lens.mapping Data._Time++-- | The total amount of data, in GiB, released by an Amazon File Cache+-- AUTO_RELEASE_DATA task that automatically releases files from the cache.+dataRepositoryTaskStatus_releasedCapacity :: Lens.Lens' DataRepositoryTaskStatus (Prelude.Maybe Prelude.Integer)+dataRepositoryTaskStatus_releasedCapacity = Lens.lens (\DataRepositoryTaskStatus' {releasedCapacity} -> releasedCapacity) (\s@DataRepositoryTaskStatus' {} a -> s {releasedCapacity = a} :: DataRepositoryTaskStatus)++-- | A running total of the number of files that the task has successfully+-- processed.+dataRepositoryTaskStatus_succeededCount :: Lens.Lens' DataRepositoryTaskStatus (Prelude.Maybe Prelude.Integer)+dataRepositoryTaskStatus_succeededCount = Lens.lens (\DataRepositoryTaskStatus' {succeededCount} -> succeededCount) (\s@DataRepositoryTaskStatus' {} a -> s {succeededCount = a} :: DataRepositoryTaskStatus)++-- | The total number of files that the task will process. While a task is+-- executing, the sum of @SucceededCount@ plus @FailedCount@ may not equal+-- @TotalCount@. When the task is complete, @TotalCount@ equals the sum of+-- @SucceededCount@ plus @FailedCount@.+dataRepositoryTaskStatus_totalCount :: Lens.Lens' DataRepositoryTaskStatus (Prelude.Maybe Prelude.Integer)+dataRepositoryTaskStatus_totalCount = Lens.lens (\DataRepositoryTaskStatus' {totalCount} -> totalCount) (\s@DataRepositoryTaskStatus' {} a -> s {totalCount = a} :: DataRepositoryTaskStatus)++instance Data.FromJSON DataRepositoryTaskStatus where+  parseJSON =+    Data.withObject+      "DataRepositoryTaskStatus"+      ( \x ->+          DataRepositoryTaskStatus'+            Prelude.<$> (x Data..:? "FailedCount")+            Prelude.<*> (x Data..:? "LastUpdatedTime")+            Prelude.<*> (x Data..:? "ReleasedCapacity")+            Prelude.<*> (x Data..:? "SucceededCount")+            Prelude.<*> (x Data..:? "TotalCount")+      )++instance Prelude.Hashable DataRepositoryTaskStatus where+  hashWithSalt _salt DataRepositoryTaskStatus' {..} =+    _salt+      `Prelude.hashWithSalt` failedCount+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` releasedCapacity+      `Prelude.hashWithSalt` succeededCount+      `Prelude.hashWithSalt` totalCount++instance Prelude.NFData DataRepositoryTaskStatus where+  rnf DataRepositoryTaskStatus' {..} =+    Prelude.rnf failedCount+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf releasedCapacity+      `Prelude.seq` Prelude.rnf succeededCount+      `Prelude.seq` Prelude.rnf totalCount
+ gen/Amazonka/FSx/Types/DataRepositoryTaskType.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DataRepositoryTaskType+-- 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.DataRepositoryTaskType+  ( DataRepositoryTaskType+      ( ..,+        DataRepositoryTaskType_AUTO_RELEASE_DATA,+        DataRepositoryTaskType_EXPORT_TO_REPOSITORY,+        DataRepositoryTaskType_IMPORT_METADATA_FROM_REPOSITORY,+        DataRepositoryTaskType_RELEASE_DATA_FROM_FILESYSTEM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataRepositoryTaskType = DataRepositoryTaskType'+  { fromDataRepositoryTaskType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DataRepositoryTaskType_AUTO_RELEASE_DATA :: DataRepositoryTaskType+pattern DataRepositoryTaskType_AUTO_RELEASE_DATA = DataRepositoryTaskType' "AUTO_RELEASE_DATA"++pattern DataRepositoryTaskType_EXPORT_TO_REPOSITORY :: DataRepositoryTaskType+pattern DataRepositoryTaskType_EXPORT_TO_REPOSITORY = DataRepositoryTaskType' "EXPORT_TO_REPOSITORY"++pattern DataRepositoryTaskType_IMPORT_METADATA_FROM_REPOSITORY :: DataRepositoryTaskType+pattern DataRepositoryTaskType_IMPORT_METADATA_FROM_REPOSITORY = DataRepositoryTaskType' "IMPORT_METADATA_FROM_REPOSITORY"++pattern DataRepositoryTaskType_RELEASE_DATA_FROM_FILESYSTEM :: DataRepositoryTaskType+pattern DataRepositoryTaskType_RELEASE_DATA_FROM_FILESYSTEM = DataRepositoryTaskType' "RELEASE_DATA_FROM_FILESYSTEM"++{-# COMPLETE+  DataRepositoryTaskType_AUTO_RELEASE_DATA,+  DataRepositoryTaskType_EXPORT_TO_REPOSITORY,+  DataRepositoryTaskType_IMPORT_METADATA_FROM_REPOSITORY,+  DataRepositoryTaskType_RELEASE_DATA_FROM_FILESYSTEM,+  DataRepositoryTaskType'+  #-}
+ gen/Amazonka/FSx/Types/DeleteFileSystemLustreConfiguration.hs view
@@ -0,0 +1,132 @@+{-# 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.DeleteFileSystemLustreConfiguration+-- 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.DeleteFileSystemLustreConfiguration 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.Tag+import qualified Amazonka.Prelude as Prelude++-- | The configuration object for the Amazon FSx for Lustre file system being+-- deleted in the @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystemLustreConfiguration' smart constructor.+data DeleteFileSystemLustreConfiguration = DeleteFileSystemLustreConfiguration'+  { -- | Use if @SkipFinalBackup@ is set to @false@, and you want to apply an+    -- array of tags to the final backup. If you have set the file system+    -- property @CopyTagsToBackups@ to true, and you specify one or more+    -- @FinalBackupTags@ when deleting a file system, Amazon FSx will not copy+    -- any existing file system tags to the backup.+    finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | Set @SkipFinalBackup@ to false if you want to take a final backup of the+    -- file system you are deleting. By default, Amazon FSx will not take a+    -- final backup on your behalf when the @DeleteFileSystem@ operation is+    -- invoked. (Default = true)+    --+    -- The @fsx:CreateBackup@ permission is required if you set+    -- @SkipFinalBackup@ to @false@ in order to delete the file system and take+    -- a final backup.+    skipFinalBackup :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystemLustreConfiguration' 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:+--+-- 'finalBackupTags', 'deleteFileSystemLustreConfiguration_finalBackupTags' - Use if @SkipFinalBackup@ is set to @false@, and you want to apply an+-- array of tags to the final backup. If you have set the file system+-- property @CopyTagsToBackups@ to true, and you specify one or more+-- @FinalBackupTags@ when deleting a file system, Amazon FSx will not copy+-- any existing file system tags to the backup.+--+-- 'skipFinalBackup', 'deleteFileSystemLustreConfiguration_skipFinalBackup' - Set @SkipFinalBackup@ to false if you want to take a final backup of the+-- file system you are deleting. By default, Amazon FSx will not take a+-- final backup on your behalf when the @DeleteFileSystem@ operation is+-- invoked. (Default = true)+--+-- The @fsx:CreateBackup@ permission is required if you set+-- @SkipFinalBackup@ to @false@ in order to delete the file system and take+-- a final backup.+newDeleteFileSystemLustreConfiguration ::+  DeleteFileSystemLustreConfiguration+newDeleteFileSystemLustreConfiguration =+  DeleteFileSystemLustreConfiguration'+    { finalBackupTags =+        Prelude.Nothing,+      skipFinalBackup = Prelude.Nothing+    }++-- | Use if @SkipFinalBackup@ is set to @false@, and you want to apply an+-- array of tags to the final backup. If you have set the file system+-- property @CopyTagsToBackups@ to true, and you specify one or more+-- @FinalBackupTags@ when deleting a file system, Amazon FSx will not copy+-- any existing file system tags to the backup.+deleteFileSystemLustreConfiguration_finalBackupTags :: Lens.Lens' DeleteFileSystemLustreConfiguration (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteFileSystemLustreConfiguration_finalBackupTags = Lens.lens (\DeleteFileSystemLustreConfiguration' {finalBackupTags} -> finalBackupTags) (\s@DeleteFileSystemLustreConfiguration' {} a -> s {finalBackupTags = a} :: DeleteFileSystemLustreConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Set @SkipFinalBackup@ to false if you want to take a final backup of the+-- file system you are deleting. By default, Amazon FSx will not take a+-- final backup on your behalf when the @DeleteFileSystem@ operation is+-- invoked. (Default = true)+--+-- The @fsx:CreateBackup@ permission is required if you set+-- @SkipFinalBackup@ to @false@ in order to delete the file system and take+-- a final backup.+deleteFileSystemLustreConfiguration_skipFinalBackup :: Lens.Lens' DeleteFileSystemLustreConfiguration (Prelude.Maybe Prelude.Bool)+deleteFileSystemLustreConfiguration_skipFinalBackup = Lens.lens (\DeleteFileSystemLustreConfiguration' {skipFinalBackup} -> skipFinalBackup) (\s@DeleteFileSystemLustreConfiguration' {} a -> s {skipFinalBackup = a} :: DeleteFileSystemLustreConfiguration)++instance+  Prelude.Hashable+    DeleteFileSystemLustreConfiguration+  where+  hashWithSalt+    _salt+    DeleteFileSystemLustreConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` finalBackupTags+        `Prelude.hashWithSalt` skipFinalBackup++instance+  Prelude.NFData+    DeleteFileSystemLustreConfiguration+  where+  rnf DeleteFileSystemLustreConfiguration' {..} =+    Prelude.rnf finalBackupTags+      `Prelude.seq` Prelude.rnf skipFinalBackup++instance+  Data.ToJSON+    DeleteFileSystemLustreConfiguration+  where+  toJSON DeleteFileSystemLustreConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FinalBackupTags" Data..=)+              Prelude.<$> finalBackupTags,+            ("SkipFinalBackup" Data..=)+              Prelude.<$> skipFinalBackup+          ]+      )
+ gen/Amazonka/FSx/Types/DeleteFileSystemLustreResponse.hs view
@@ -0,0 +1,95 @@+{-# 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.DeleteFileSystemLustreResponse+-- 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.DeleteFileSystemLustreResponse 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.Tag+import qualified Amazonka.Prelude as Prelude++-- | The response object for the Amazon FSx for Lustre file system being+-- deleted in the @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystemLustreResponse' smart constructor.+data DeleteFileSystemLustreResponse = DeleteFileSystemLustreResponse'+  { -- | The ID of the final backup for this file system.+    finalBackupId :: Prelude.Maybe Prelude.Text,+    -- | The set of tags applied to the final backup.+    finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystemLustreResponse' 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:+--+-- 'finalBackupId', 'deleteFileSystemLustreResponse_finalBackupId' - The ID of the final backup for this file system.+--+-- 'finalBackupTags', 'deleteFileSystemLustreResponse_finalBackupTags' - The set of tags applied to the final backup.+newDeleteFileSystemLustreResponse ::+  DeleteFileSystemLustreResponse+newDeleteFileSystemLustreResponse =+  DeleteFileSystemLustreResponse'+    { finalBackupId =+        Prelude.Nothing,+      finalBackupTags = Prelude.Nothing+    }++-- | The ID of the final backup for this file system.+deleteFileSystemLustreResponse_finalBackupId :: Lens.Lens' DeleteFileSystemLustreResponse (Prelude.Maybe Prelude.Text)+deleteFileSystemLustreResponse_finalBackupId = Lens.lens (\DeleteFileSystemLustreResponse' {finalBackupId} -> finalBackupId) (\s@DeleteFileSystemLustreResponse' {} a -> s {finalBackupId = a} :: DeleteFileSystemLustreResponse)++-- | The set of tags applied to the final backup.+deleteFileSystemLustreResponse_finalBackupTags :: Lens.Lens' DeleteFileSystemLustreResponse (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteFileSystemLustreResponse_finalBackupTags = Lens.lens (\DeleteFileSystemLustreResponse' {finalBackupTags} -> finalBackupTags) (\s@DeleteFileSystemLustreResponse' {} a -> s {finalBackupTags = a} :: DeleteFileSystemLustreResponse) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DeleteFileSystemLustreResponse where+  parseJSON =+    Data.withObject+      "DeleteFileSystemLustreResponse"+      ( \x ->+          DeleteFileSystemLustreResponse'+            Prelude.<$> (x Data..:? "FinalBackupId")+            Prelude.<*> (x Data..:? "FinalBackupTags")+      )++instance+  Prelude.Hashable+    DeleteFileSystemLustreResponse+  where+  hashWithSalt+    _salt+    DeleteFileSystemLustreResponse' {..} =+      _salt+        `Prelude.hashWithSalt` finalBackupId+        `Prelude.hashWithSalt` finalBackupTags++instance+  Prelude.NFData+    DeleteFileSystemLustreResponse+  where+  rnf DeleteFileSystemLustreResponse' {..} =+    Prelude.rnf finalBackupId+      `Prelude.seq` Prelude.rnf finalBackupTags
+ gen/Amazonka/FSx/Types/DeleteFileSystemOpenZFSConfiguration.hs view
@@ -0,0 +1,133 @@+{-# 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.DeleteFileSystemOpenZFSConfiguration+-- 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.DeleteFileSystemOpenZFSConfiguration 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.DeleteFileSystemOpenZFSOption+import Amazonka.FSx.Types.Tag+import qualified Amazonka.Prelude as Prelude++-- | The configuration object for the Amazon FSx for OpenZFS file system used+-- in the @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystemOpenZFSConfiguration' smart constructor.+data DeleteFileSystemOpenZFSConfiguration = DeleteFileSystemOpenZFSConfiguration'+  { -- | A list of tags to apply to the file system\'s final backup.+    finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | To delete a file system if there are child volumes present below the+    -- root volume, use the string @DELETE_CHILD_VOLUMES_AND_SNAPSHOTS@. If+    -- your file system has child volumes and you don\'t use this option, the+    -- delete request will fail.+    options :: Prelude.Maybe [DeleteFileSystemOpenZFSOption],+    -- | By default, Amazon FSx for OpenZFS takes a final backup on your behalf+    -- when the @DeleteFileSystem@ operation is invoked. Doing this helps+    -- protect you from data loss, and we highly recommend taking the final+    -- backup. If you want to skip taking a final backup, set this value to+    -- @true@.+    skipFinalBackup :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystemOpenZFSConfiguration' 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:+--+-- 'finalBackupTags', 'deleteFileSystemOpenZFSConfiguration_finalBackupTags' - A list of tags to apply to the file system\'s final backup.+--+-- 'options', 'deleteFileSystemOpenZFSConfiguration_options' - To delete a file system if there are child volumes present below the+-- root volume, use the string @DELETE_CHILD_VOLUMES_AND_SNAPSHOTS@. If+-- your file system has child volumes and you don\'t use this option, the+-- delete request will fail.+--+-- 'skipFinalBackup', 'deleteFileSystemOpenZFSConfiguration_skipFinalBackup' - By default, Amazon FSx for OpenZFS takes a final backup on your behalf+-- when the @DeleteFileSystem@ operation is invoked. Doing this helps+-- protect you from data loss, and we highly recommend taking the final+-- backup. If you want to skip taking a final backup, set this value to+-- @true@.+newDeleteFileSystemOpenZFSConfiguration ::+  DeleteFileSystemOpenZFSConfiguration+newDeleteFileSystemOpenZFSConfiguration =+  DeleteFileSystemOpenZFSConfiguration'+    { finalBackupTags =+        Prelude.Nothing,+      options = Prelude.Nothing,+      skipFinalBackup = Prelude.Nothing+    }++-- | A list of tags to apply to the file system\'s final backup.+deleteFileSystemOpenZFSConfiguration_finalBackupTags :: Lens.Lens' DeleteFileSystemOpenZFSConfiguration (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteFileSystemOpenZFSConfiguration_finalBackupTags = Lens.lens (\DeleteFileSystemOpenZFSConfiguration' {finalBackupTags} -> finalBackupTags) (\s@DeleteFileSystemOpenZFSConfiguration' {} a -> s {finalBackupTags = a} :: DeleteFileSystemOpenZFSConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | To delete a file system if there are child volumes present below the+-- root volume, use the string @DELETE_CHILD_VOLUMES_AND_SNAPSHOTS@. If+-- your file system has child volumes and you don\'t use this option, the+-- delete request will fail.+deleteFileSystemOpenZFSConfiguration_options :: Lens.Lens' DeleteFileSystemOpenZFSConfiguration (Prelude.Maybe [DeleteFileSystemOpenZFSOption])+deleteFileSystemOpenZFSConfiguration_options = Lens.lens (\DeleteFileSystemOpenZFSConfiguration' {options} -> options) (\s@DeleteFileSystemOpenZFSConfiguration' {} a -> s {options = a} :: DeleteFileSystemOpenZFSConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | By default, Amazon FSx for OpenZFS takes a final backup on your behalf+-- when the @DeleteFileSystem@ operation is invoked. Doing this helps+-- protect you from data loss, and we highly recommend taking the final+-- backup. If you want to skip taking a final backup, set this value to+-- @true@.+deleteFileSystemOpenZFSConfiguration_skipFinalBackup :: Lens.Lens' DeleteFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Bool)+deleteFileSystemOpenZFSConfiguration_skipFinalBackup = Lens.lens (\DeleteFileSystemOpenZFSConfiguration' {skipFinalBackup} -> skipFinalBackup) (\s@DeleteFileSystemOpenZFSConfiguration' {} a -> s {skipFinalBackup = a} :: DeleteFileSystemOpenZFSConfiguration)++instance+  Prelude.Hashable+    DeleteFileSystemOpenZFSConfiguration+  where+  hashWithSalt+    _salt+    DeleteFileSystemOpenZFSConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` finalBackupTags+        `Prelude.hashWithSalt` options+        `Prelude.hashWithSalt` skipFinalBackup++instance+  Prelude.NFData+    DeleteFileSystemOpenZFSConfiguration+  where+  rnf DeleteFileSystemOpenZFSConfiguration' {..} =+    Prelude.rnf finalBackupTags+      `Prelude.seq` Prelude.rnf options+      `Prelude.seq` Prelude.rnf skipFinalBackup++instance+  Data.ToJSON+    DeleteFileSystemOpenZFSConfiguration+  where+  toJSON DeleteFileSystemOpenZFSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FinalBackupTags" Data..=)+              Prelude.<$> finalBackupTags,+            ("Options" Data..=) Prelude.<$> options,+            ("SkipFinalBackup" Data..=)+              Prelude.<$> skipFinalBackup+          ]+      )
+ gen/Amazonka/FSx/Types/DeleteFileSystemOpenZFSOption.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DeleteFileSystemOpenZFSOption+-- 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.DeleteFileSystemOpenZFSOption+  ( DeleteFileSystemOpenZFSOption+      ( ..,+        DeleteFileSystemOpenZFSOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeleteFileSystemOpenZFSOption = DeleteFileSystemOpenZFSOption'+  { fromDeleteFileSystemOpenZFSOption ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DeleteFileSystemOpenZFSOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS :: DeleteFileSystemOpenZFSOption+pattern DeleteFileSystemOpenZFSOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS = DeleteFileSystemOpenZFSOption' "DELETE_CHILD_VOLUMES_AND_SNAPSHOTS"++{-# COMPLETE+  DeleteFileSystemOpenZFSOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS,+  DeleteFileSystemOpenZFSOption'+  #-}
+ gen/Amazonka/FSx/Types/DeleteFileSystemOpenZFSResponse.hs view
@@ -0,0 +1,96 @@+{-# 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.DeleteFileSystemOpenZFSResponse+-- 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.DeleteFileSystemOpenZFSResponse 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.Tag+import qualified Amazonka.Prelude as Prelude++-- | The response object for the Amazon FSx for OpenZFS file system that\'s+-- being deleted in the @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystemOpenZFSResponse' smart constructor.+data DeleteFileSystemOpenZFSResponse = DeleteFileSystemOpenZFSResponse'+  { finalBackupId :: Prelude.Maybe Prelude.Text,+    finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystemOpenZFSResponse' 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:+--+-- 'finalBackupId', 'deleteFileSystemOpenZFSResponse_finalBackupId' - Undocumented member.+--+-- 'finalBackupTags', 'deleteFileSystemOpenZFSResponse_finalBackupTags' - Undocumented member.+newDeleteFileSystemOpenZFSResponse ::+  DeleteFileSystemOpenZFSResponse+newDeleteFileSystemOpenZFSResponse =+  DeleteFileSystemOpenZFSResponse'+    { finalBackupId =+        Prelude.Nothing,+      finalBackupTags = Prelude.Nothing+    }++-- | Undocumented member.+deleteFileSystemOpenZFSResponse_finalBackupId :: Lens.Lens' DeleteFileSystemOpenZFSResponse (Prelude.Maybe Prelude.Text)+deleteFileSystemOpenZFSResponse_finalBackupId = Lens.lens (\DeleteFileSystemOpenZFSResponse' {finalBackupId} -> finalBackupId) (\s@DeleteFileSystemOpenZFSResponse' {} a -> s {finalBackupId = a} :: DeleteFileSystemOpenZFSResponse)++-- | Undocumented member.+deleteFileSystemOpenZFSResponse_finalBackupTags :: Lens.Lens' DeleteFileSystemOpenZFSResponse (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteFileSystemOpenZFSResponse_finalBackupTags = Lens.lens (\DeleteFileSystemOpenZFSResponse' {finalBackupTags} -> finalBackupTags) (\s@DeleteFileSystemOpenZFSResponse' {} a -> s {finalBackupTags = a} :: DeleteFileSystemOpenZFSResponse) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    DeleteFileSystemOpenZFSResponse+  where+  parseJSON =+    Data.withObject+      "DeleteFileSystemOpenZFSResponse"+      ( \x ->+          DeleteFileSystemOpenZFSResponse'+            Prelude.<$> (x Data..:? "FinalBackupId")+            Prelude.<*> (x Data..:? "FinalBackupTags")+      )++instance+  Prelude.Hashable+    DeleteFileSystemOpenZFSResponse+  where+  hashWithSalt+    _salt+    DeleteFileSystemOpenZFSResponse' {..} =+      _salt+        `Prelude.hashWithSalt` finalBackupId+        `Prelude.hashWithSalt` finalBackupTags++instance+  Prelude.NFData+    DeleteFileSystemOpenZFSResponse+  where+  rnf DeleteFileSystemOpenZFSResponse' {..} =+    Prelude.rnf finalBackupId+      `Prelude.seq` Prelude.rnf finalBackupTags
+ gen/Amazonka/FSx/Types/DeleteFileSystemWindowsConfiguration.hs view
@@ -0,0 +1,108 @@+{-# 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.DeleteFileSystemWindowsConfiguration+-- 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.DeleteFileSystemWindowsConfiguration 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.Tag+import qualified Amazonka.Prelude as Prelude++-- | The configuration object for the Microsoft Windows file system used in+-- the @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystemWindowsConfiguration' smart constructor.+data DeleteFileSystemWindowsConfiguration = DeleteFileSystemWindowsConfiguration'+  { -- | A set of tags for your final backup.+    finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | By default, Amazon FSx for Windows takes a final backup on your behalf+    -- when the @DeleteFileSystem@ operation is invoked. Doing this helps+    -- protect you from data loss, and we highly recommend taking the final+    -- backup. If you want to skip this backup, use this flag to do so.+    skipFinalBackup :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystemWindowsConfiguration' 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:+--+-- 'finalBackupTags', 'deleteFileSystemWindowsConfiguration_finalBackupTags' - A set of tags for your final backup.+--+-- 'skipFinalBackup', 'deleteFileSystemWindowsConfiguration_skipFinalBackup' - By default, Amazon FSx for Windows takes a final backup on your behalf+-- when the @DeleteFileSystem@ operation is invoked. Doing this helps+-- protect you from data loss, and we highly recommend taking the final+-- backup. If you want to skip this backup, use this flag to do so.+newDeleteFileSystemWindowsConfiguration ::+  DeleteFileSystemWindowsConfiguration+newDeleteFileSystemWindowsConfiguration =+  DeleteFileSystemWindowsConfiguration'+    { finalBackupTags =+        Prelude.Nothing,+      skipFinalBackup = Prelude.Nothing+    }++-- | A set of tags for your final backup.+deleteFileSystemWindowsConfiguration_finalBackupTags :: Lens.Lens' DeleteFileSystemWindowsConfiguration (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteFileSystemWindowsConfiguration_finalBackupTags = Lens.lens (\DeleteFileSystemWindowsConfiguration' {finalBackupTags} -> finalBackupTags) (\s@DeleteFileSystemWindowsConfiguration' {} a -> s {finalBackupTags = a} :: DeleteFileSystemWindowsConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | By default, Amazon FSx for Windows takes a final backup on your behalf+-- when the @DeleteFileSystem@ operation is invoked. Doing this helps+-- protect you from data loss, and we highly recommend taking the final+-- backup. If you want to skip this backup, use this flag to do so.+deleteFileSystemWindowsConfiguration_skipFinalBackup :: Lens.Lens' DeleteFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Bool)+deleteFileSystemWindowsConfiguration_skipFinalBackup = Lens.lens (\DeleteFileSystemWindowsConfiguration' {skipFinalBackup} -> skipFinalBackup) (\s@DeleteFileSystemWindowsConfiguration' {} a -> s {skipFinalBackup = a} :: DeleteFileSystemWindowsConfiguration)++instance+  Prelude.Hashable+    DeleteFileSystemWindowsConfiguration+  where+  hashWithSalt+    _salt+    DeleteFileSystemWindowsConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` finalBackupTags+        `Prelude.hashWithSalt` skipFinalBackup++instance+  Prelude.NFData+    DeleteFileSystemWindowsConfiguration+  where+  rnf DeleteFileSystemWindowsConfiguration' {..} =+    Prelude.rnf finalBackupTags+      `Prelude.seq` Prelude.rnf skipFinalBackup++instance+  Data.ToJSON+    DeleteFileSystemWindowsConfiguration+  where+  toJSON DeleteFileSystemWindowsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FinalBackupTags" Data..=)+              Prelude.<$> finalBackupTags,+            ("SkipFinalBackup" Data..=)+              Prelude.<$> skipFinalBackup+          ]+      )
+ gen/Amazonka/FSx/Types/DeleteFileSystemWindowsResponse.hs view
@@ -0,0 +1,98 @@+{-# 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.DeleteFileSystemWindowsResponse+-- 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.DeleteFileSystemWindowsResponse 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.Tag+import qualified Amazonka.Prelude as Prelude++-- | The response object for the Microsoft Windows file system used in the+-- @DeleteFileSystem@ operation.+--+-- /See:/ 'newDeleteFileSystemWindowsResponse' smart constructor.+data DeleteFileSystemWindowsResponse = DeleteFileSystemWindowsResponse'+  { -- | The ID of the final backup for this file system.+    finalBackupId :: Prelude.Maybe Prelude.Text,+    -- | The set of tags applied to the final backup.+    finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFileSystemWindowsResponse' 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:+--+-- 'finalBackupId', 'deleteFileSystemWindowsResponse_finalBackupId' - The ID of the final backup for this file system.+--+-- 'finalBackupTags', 'deleteFileSystemWindowsResponse_finalBackupTags' - The set of tags applied to the final backup.+newDeleteFileSystemWindowsResponse ::+  DeleteFileSystemWindowsResponse+newDeleteFileSystemWindowsResponse =+  DeleteFileSystemWindowsResponse'+    { finalBackupId =+        Prelude.Nothing,+      finalBackupTags = Prelude.Nothing+    }++-- | The ID of the final backup for this file system.+deleteFileSystemWindowsResponse_finalBackupId :: Lens.Lens' DeleteFileSystemWindowsResponse (Prelude.Maybe Prelude.Text)+deleteFileSystemWindowsResponse_finalBackupId = Lens.lens (\DeleteFileSystemWindowsResponse' {finalBackupId} -> finalBackupId) (\s@DeleteFileSystemWindowsResponse' {} a -> s {finalBackupId = a} :: DeleteFileSystemWindowsResponse)++-- | The set of tags applied to the final backup.+deleteFileSystemWindowsResponse_finalBackupTags :: Lens.Lens' DeleteFileSystemWindowsResponse (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteFileSystemWindowsResponse_finalBackupTags = Lens.lens (\DeleteFileSystemWindowsResponse' {finalBackupTags} -> finalBackupTags) (\s@DeleteFileSystemWindowsResponse' {} a -> s {finalBackupTags = a} :: DeleteFileSystemWindowsResponse) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    DeleteFileSystemWindowsResponse+  where+  parseJSON =+    Data.withObject+      "DeleteFileSystemWindowsResponse"+      ( \x ->+          DeleteFileSystemWindowsResponse'+            Prelude.<$> (x Data..:? "FinalBackupId")+            Prelude.<*> (x Data..:? "FinalBackupTags")+      )++instance+  Prelude.Hashable+    DeleteFileSystemWindowsResponse+  where+  hashWithSalt+    _salt+    DeleteFileSystemWindowsResponse' {..} =+      _salt+        `Prelude.hashWithSalt` finalBackupId+        `Prelude.hashWithSalt` finalBackupTags++instance+  Prelude.NFData+    DeleteFileSystemWindowsResponse+  where+  rnf DeleteFileSystemWindowsResponse' {..} =+    Prelude.rnf finalBackupId+      `Prelude.seq` Prelude.rnf finalBackupTags
+ gen/Amazonka/FSx/Types/DeleteOpenZFSVolumeOption.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DeleteOpenZFSVolumeOption+-- 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.DeleteOpenZFSVolumeOption+  ( DeleteOpenZFSVolumeOption+      ( ..,+        DeleteOpenZFSVolumeOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DeleteOpenZFSVolumeOption = DeleteOpenZFSVolumeOption'+  { fromDeleteOpenZFSVolumeOption ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DeleteOpenZFSVolumeOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS :: DeleteOpenZFSVolumeOption+pattern DeleteOpenZFSVolumeOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS = DeleteOpenZFSVolumeOption' "DELETE_CHILD_VOLUMES_AND_SNAPSHOTS"++{-# COMPLETE+  DeleteOpenZFSVolumeOption_DELETE_CHILD_VOLUMES_AND_SNAPSHOTS,+  DeleteOpenZFSVolumeOption'+  #-}
+ gen/Amazonka/FSx/Types/DeleteVolumeOntapConfiguration.hs view
@@ -0,0 +1,98 @@+{-# 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.DeleteVolumeOntapConfiguration+-- 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.DeleteVolumeOntapConfiguration 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.Tag+import qualified Amazonka.Prelude as Prelude++-- | Use to specify skipping a final backup, or to add tags to a final+-- backup.+--+-- /See:/ 'newDeleteVolumeOntapConfiguration' smart constructor.+data DeleteVolumeOntapConfiguration = DeleteVolumeOntapConfiguration'+  { finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | Set to true if you want to skip taking a final backup of the volume you+    -- are deleting.+    skipFinalBackup :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVolumeOntapConfiguration' 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:+--+-- 'finalBackupTags', 'deleteVolumeOntapConfiguration_finalBackupTags' - Undocumented member.+--+-- 'skipFinalBackup', 'deleteVolumeOntapConfiguration_skipFinalBackup' - Set to true if you want to skip taking a final backup of the volume you+-- are deleting.+newDeleteVolumeOntapConfiguration ::+  DeleteVolumeOntapConfiguration+newDeleteVolumeOntapConfiguration =+  DeleteVolumeOntapConfiguration'+    { finalBackupTags =+        Prelude.Nothing,+      skipFinalBackup = Prelude.Nothing+    }++-- | Undocumented member.+deleteVolumeOntapConfiguration_finalBackupTags :: Lens.Lens' DeleteVolumeOntapConfiguration (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteVolumeOntapConfiguration_finalBackupTags = Lens.lens (\DeleteVolumeOntapConfiguration' {finalBackupTags} -> finalBackupTags) (\s@DeleteVolumeOntapConfiguration' {} a -> s {finalBackupTags = a} :: DeleteVolumeOntapConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Set to true if you want to skip taking a final backup of the volume you+-- are deleting.+deleteVolumeOntapConfiguration_skipFinalBackup :: Lens.Lens' DeleteVolumeOntapConfiguration (Prelude.Maybe Prelude.Bool)+deleteVolumeOntapConfiguration_skipFinalBackup = Lens.lens (\DeleteVolumeOntapConfiguration' {skipFinalBackup} -> skipFinalBackup) (\s@DeleteVolumeOntapConfiguration' {} a -> s {skipFinalBackup = a} :: DeleteVolumeOntapConfiguration)++instance+  Prelude.Hashable+    DeleteVolumeOntapConfiguration+  where+  hashWithSalt+    _salt+    DeleteVolumeOntapConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` finalBackupTags+        `Prelude.hashWithSalt` skipFinalBackup++instance+  Prelude.NFData+    DeleteVolumeOntapConfiguration+  where+  rnf DeleteVolumeOntapConfiguration' {..} =+    Prelude.rnf finalBackupTags+      `Prelude.seq` Prelude.rnf skipFinalBackup++instance Data.ToJSON DeleteVolumeOntapConfiguration where+  toJSON DeleteVolumeOntapConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FinalBackupTags" Data..=)+              Prelude.<$> finalBackupTags,+            ("SkipFinalBackup" Data..=)+              Prelude.<$> skipFinalBackup+          ]+      )
+ gen/Amazonka/FSx/Types/DeleteVolumeOntapResponse.hs view
@@ -0,0 +1,85 @@+{-# 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.DeleteVolumeOntapResponse+-- 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.DeleteVolumeOntapResponse 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.Tag+import qualified Amazonka.Prelude as Prelude++-- | The response object for the Amazon FSx for NetApp ONTAP volume being+-- deleted in the @DeleteVolume@ operation.+--+-- /See:/ 'newDeleteVolumeOntapResponse' smart constructor.+data DeleteVolumeOntapResponse = DeleteVolumeOntapResponse'+  { finalBackupId :: Prelude.Maybe Prelude.Text,+    finalBackupTags :: Prelude.Maybe (Prelude.NonEmpty Tag)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVolumeOntapResponse' 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:+--+-- 'finalBackupId', 'deleteVolumeOntapResponse_finalBackupId' - Undocumented member.+--+-- 'finalBackupTags', 'deleteVolumeOntapResponse_finalBackupTags' - Undocumented member.+newDeleteVolumeOntapResponse ::+  DeleteVolumeOntapResponse+newDeleteVolumeOntapResponse =+  DeleteVolumeOntapResponse'+    { finalBackupId =+        Prelude.Nothing,+      finalBackupTags = Prelude.Nothing+    }++-- | Undocumented member.+deleteVolumeOntapResponse_finalBackupId :: Lens.Lens' DeleteVolumeOntapResponse (Prelude.Maybe Prelude.Text)+deleteVolumeOntapResponse_finalBackupId = Lens.lens (\DeleteVolumeOntapResponse' {finalBackupId} -> finalBackupId) (\s@DeleteVolumeOntapResponse' {} a -> s {finalBackupId = a} :: DeleteVolumeOntapResponse)++-- | Undocumented member.+deleteVolumeOntapResponse_finalBackupTags :: Lens.Lens' DeleteVolumeOntapResponse (Prelude.Maybe (Prelude.NonEmpty Tag))+deleteVolumeOntapResponse_finalBackupTags = Lens.lens (\DeleteVolumeOntapResponse' {finalBackupTags} -> finalBackupTags) (\s@DeleteVolumeOntapResponse' {} a -> s {finalBackupTags = a} :: DeleteVolumeOntapResponse) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DeleteVolumeOntapResponse where+  parseJSON =+    Data.withObject+      "DeleteVolumeOntapResponse"+      ( \x ->+          DeleteVolumeOntapResponse'+            Prelude.<$> (x Data..:? "FinalBackupId")+            Prelude.<*> (x Data..:? "FinalBackupTags")+      )++instance Prelude.Hashable DeleteVolumeOntapResponse where+  hashWithSalt _salt DeleteVolumeOntapResponse' {..} =+    _salt+      `Prelude.hashWithSalt` finalBackupId+      `Prelude.hashWithSalt` finalBackupTags++instance Prelude.NFData DeleteVolumeOntapResponse where+  rnf DeleteVolumeOntapResponse' {..} =+    Prelude.rnf finalBackupId+      `Prelude.seq` Prelude.rnf finalBackupTags
+ gen/Amazonka/FSx/Types/DeleteVolumeOpenZFSConfiguration.hs view
@@ -0,0 +1,83 @@+{-# 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.DeleteVolumeOpenZFSConfiguration+-- 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.DeleteVolumeOpenZFSConfiguration 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.DeleteOpenZFSVolumeOption+import qualified Amazonka.Prelude as Prelude++-- | A value that specifies whether to delete all child volumes and+-- snapshots.+--+-- /See:/ 'newDeleteVolumeOpenZFSConfiguration' smart constructor.+data DeleteVolumeOpenZFSConfiguration = DeleteVolumeOpenZFSConfiguration'+  { -- | To delete the volume\'s child volumes, snapshots, and clones, use the+    -- string @DELETE_CHILD_VOLUMES_AND_SNAPSHOTS@.+    options :: Prelude.Maybe [DeleteOpenZFSVolumeOption]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVolumeOpenZFSConfiguration' 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:+--+-- 'options', 'deleteVolumeOpenZFSConfiguration_options' - To delete the volume\'s child volumes, snapshots, and clones, use the+-- string @DELETE_CHILD_VOLUMES_AND_SNAPSHOTS@.+newDeleteVolumeOpenZFSConfiguration ::+  DeleteVolumeOpenZFSConfiguration+newDeleteVolumeOpenZFSConfiguration =+  DeleteVolumeOpenZFSConfiguration'+    { options =+        Prelude.Nothing+    }++-- | To delete the volume\'s child volumes, snapshots, and clones, use the+-- string @DELETE_CHILD_VOLUMES_AND_SNAPSHOTS@.+deleteVolumeOpenZFSConfiguration_options :: Lens.Lens' DeleteVolumeOpenZFSConfiguration (Prelude.Maybe [DeleteOpenZFSVolumeOption])+deleteVolumeOpenZFSConfiguration_options = Lens.lens (\DeleteVolumeOpenZFSConfiguration' {options} -> options) (\s@DeleteVolumeOpenZFSConfiguration' {} a -> s {options = a} :: DeleteVolumeOpenZFSConfiguration) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    DeleteVolumeOpenZFSConfiguration+  where+  hashWithSalt+    _salt+    DeleteVolumeOpenZFSConfiguration' {..} =+      _salt `Prelude.hashWithSalt` options++instance+  Prelude.NFData+    DeleteVolumeOpenZFSConfiguration+  where+  rnf DeleteVolumeOpenZFSConfiguration' {..} =+    Prelude.rnf options++instance Data.ToJSON DeleteVolumeOpenZFSConfiguration where+  toJSON DeleteVolumeOpenZFSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Options" Data..=) Prelude.<$> options]+      )
+ gen/Amazonka/FSx/Types/DiskIopsConfiguration.hs view
@@ -0,0 +1,104 @@+{-# 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.DiskIopsConfiguration+-- 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.DiskIopsConfiguration 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.DiskIopsConfigurationMode+import qualified Amazonka.Prelude as Prelude++-- | The SSD IOPS (input\/output operations per second) configuration for an+-- Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS file system. The+-- default is 3 IOPS per GB of storage capacity, but you can provision+-- additional IOPS per GB of storage. The configuration consists of the+-- total number of provisioned SSD IOPS and how the amount was provisioned+-- (by the customer or by the system).+--+-- /See:/ 'newDiskIopsConfiguration' smart constructor.+data DiskIopsConfiguration = DiskIopsConfiguration'+  { -- | The total number of SSD IOPS provisioned for the file system.+    iops :: Prelude.Maybe Prelude.Natural,+    -- | Specifies whether the number of IOPS for the file system is using the+    -- system default (@AUTOMATIC@) or was provisioned by the customer+    -- (@USER_PROVISIONED@).+    mode :: Prelude.Maybe DiskIopsConfigurationMode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DiskIopsConfiguration' 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:+--+-- 'iops', 'diskIopsConfiguration_iops' - The total number of SSD IOPS provisioned for the file system.+--+-- 'mode', 'diskIopsConfiguration_mode' - Specifies whether the number of IOPS for the file system is using the+-- system default (@AUTOMATIC@) or was provisioned by the customer+-- (@USER_PROVISIONED@).+newDiskIopsConfiguration ::+  DiskIopsConfiguration+newDiskIopsConfiguration =+  DiskIopsConfiguration'+    { iops = Prelude.Nothing,+      mode = Prelude.Nothing+    }++-- | The total number of SSD IOPS provisioned for the file system.+diskIopsConfiguration_iops :: Lens.Lens' DiskIopsConfiguration (Prelude.Maybe Prelude.Natural)+diskIopsConfiguration_iops = Lens.lens (\DiskIopsConfiguration' {iops} -> iops) (\s@DiskIopsConfiguration' {} a -> s {iops = a} :: DiskIopsConfiguration)++-- | Specifies whether the number of IOPS for the file system is using the+-- system default (@AUTOMATIC@) or was provisioned by the customer+-- (@USER_PROVISIONED@).+diskIopsConfiguration_mode :: Lens.Lens' DiskIopsConfiguration (Prelude.Maybe DiskIopsConfigurationMode)+diskIopsConfiguration_mode = Lens.lens (\DiskIopsConfiguration' {mode} -> mode) (\s@DiskIopsConfiguration' {} a -> s {mode = a} :: DiskIopsConfiguration)++instance Data.FromJSON DiskIopsConfiguration where+  parseJSON =+    Data.withObject+      "DiskIopsConfiguration"+      ( \x ->+          DiskIopsConfiguration'+            Prelude.<$> (x Data..:? "Iops")+            Prelude.<*> (x Data..:? "Mode")+      )++instance Prelude.Hashable DiskIopsConfiguration where+  hashWithSalt _salt DiskIopsConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` iops+      `Prelude.hashWithSalt` mode++instance Prelude.NFData DiskIopsConfiguration where+  rnf DiskIopsConfiguration' {..} =+    Prelude.rnf iops `Prelude.seq` Prelude.rnf mode++instance Data.ToJSON DiskIopsConfiguration where+  toJSON DiskIopsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Iops" Data..=) Prelude.<$> iops,+            ("Mode" Data..=) Prelude.<$> mode+          ]+      )
+ gen/Amazonka/FSx/Types/DiskIopsConfigurationMode.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DiskIopsConfigurationMode+-- 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.DiskIopsConfigurationMode+  ( DiskIopsConfigurationMode+      ( ..,+        DiskIopsConfigurationMode_AUTOMATIC,+        DiskIopsConfigurationMode_USER_PROVISIONED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DiskIopsConfigurationMode = DiskIopsConfigurationMode'+  { fromDiskIopsConfigurationMode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DiskIopsConfigurationMode_AUTOMATIC :: DiskIopsConfigurationMode+pattern DiskIopsConfigurationMode_AUTOMATIC = DiskIopsConfigurationMode' "AUTOMATIC"++pattern DiskIopsConfigurationMode_USER_PROVISIONED :: DiskIopsConfigurationMode+pattern DiskIopsConfigurationMode_USER_PROVISIONED = DiskIopsConfigurationMode' "USER_PROVISIONED"++{-# COMPLETE+  DiskIopsConfigurationMode_AUTOMATIC,+  DiskIopsConfigurationMode_USER_PROVISIONED,+  DiskIopsConfigurationMode'+  #-}
+ gen/Amazonka/FSx/Types/DriveCacheType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.DriveCacheType+-- 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.DriveCacheType+  ( DriveCacheType+      ( ..,+        DriveCacheType_NONE,+        DriveCacheType_READ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DriveCacheType = DriveCacheType'+  { fromDriveCacheType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DriveCacheType_NONE :: DriveCacheType+pattern DriveCacheType_NONE = DriveCacheType' "NONE"++pattern DriveCacheType_READ :: DriveCacheType+pattern DriveCacheType_READ = DriveCacheType' "READ"++{-# COMPLETE+  DriveCacheType_NONE,+  DriveCacheType_READ,+  DriveCacheType'+  #-}
+ gen/Amazonka/FSx/Types/EventType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.EventType+-- 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.EventType+  ( EventType+      ( ..,+        EventType_CHANGED,+        EventType_DELETED,+        EventType_NEW+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EventType = EventType'+  { fromEventType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern EventType_CHANGED :: EventType+pattern EventType_CHANGED = EventType' "CHANGED"++pattern EventType_DELETED :: EventType+pattern EventType_DELETED = EventType' "DELETED"++pattern EventType_NEW :: EventType+pattern EventType_NEW = EventType' "NEW"++{-# COMPLETE+  EventType_CHANGED,+  EventType_DELETED,+  EventType_NEW,+  EventType'+  #-}
+ gen/Amazonka/FSx/Types/FileCache.hs view
@@ -0,0 +1,317 @@+{-# 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.FileCache+-- 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.FileCache 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.FileCacheFailureDetails+import Amazonka.FSx.Types.FileCacheLifecycle+import Amazonka.FSx.Types.FileCacheLustreConfiguration+import Amazonka.FSx.Types.FileCacheType+import qualified Amazonka.Prelude as Prelude++-- | A description of a specific Amazon File Cache resource, which is a+-- response object from the @DescribeFileCaches@ operation.+--+-- /See:/ 'newFileCache' smart constructor.+data FileCache = FileCache'+  { creationTime :: Prelude.Maybe Data.POSIX,+    -- | The Domain Name System (DNS) name for the cache.+    dNSName :: Prelude.Maybe Prelude.Text,+    -- | A list of IDs of data repository associations that are associated with+    -- this cache.+    dataRepositoryAssociationIds :: Prelude.Maybe [Prelude.Text],+    -- | A structure providing details of any failures that occurred.+    failureDetails :: Prelude.Maybe FileCacheFailureDetails,+    -- | The system-generated, unique ID of the cache.+    fileCacheId :: Prelude.Maybe Prelude.Text,+    -- | The type of cache, which must be @LUSTRE@.+    fileCacheType :: Prelude.Maybe FileCacheType,+    -- | The Lustre version of the cache, which must be @2.12@.+    fileCacheTypeVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifies the ID of the Key Management Service (KMS) key to use for+    -- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+    -- specified, the Amazon FSx-managed KMS key for your account is used. For+    -- more information, see+    -- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+    -- in the /Key Management Service API Reference/.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The lifecycle status of the cache. The following are the possible values+    -- and what they mean:+    --+    -- -   @AVAILABLE@ - The cache is in a healthy state, and is reachable and+    --     available for use.+    --+    -- -   @CREATING@ - The new cache is being created.+    --+    -- -   @DELETING@ - An existing cache is being deleted.+    --+    -- -   @UPDATING@ - The cache is undergoing a customer-initiated update.+    --+    -- -   @FAILED@ - An existing cache has experienced an unrecoverable+    --     failure. When creating a new cache, the cache was unable to be+    --     created.+    lifecycle :: Prelude.Maybe FileCacheLifecycle,+    -- | The configuration for the Amazon File Cache resource.+    lustreConfiguration :: Prelude.Maybe FileCacheLustreConfiguration,+    networkInterfaceIds :: Prelude.Maybe [Prelude.Text],+    ownerId :: Prelude.Maybe Prelude.Text,+    resourceARN :: Prelude.Maybe Prelude.Text,+    -- | The storage capacity of the cache in gibibytes (GiB).+    storageCapacity :: Prelude.Maybe Prelude.Natural,+    subnetIds :: Prelude.Maybe [Prelude.Text],+    vpcId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileCache' 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:+--+-- 'creationTime', 'fileCache_creationTime' - Undocumented member.+--+-- 'dNSName', 'fileCache_dNSName' - The Domain Name System (DNS) name for the cache.+--+-- 'dataRepositoryAssociationIds', 'fileCache_dataRepositoryAssociationIds' - A list of IDs of data repository associations that are associated with+-- this cache.+--+-- 'failureDetails', 'fileCache_failureDetails' - A structure providing details of any failures that occurred.+--+-- 'fileCacheId', 'fileCache_fileCacheId' - The system-generated, unique ID of the cache.+--+-- 'fileCacheType', 'fileCache_fileCacheType' - The type of cache, which must be @LUSTRE@.+--+-- 'fileCacheTypeVersion', 'fileCache_fileCacheTypeVersion' - The Lustre version of the cache, which must be @2.12@.+--+-- 'kmsKeyId', 'fileCache_kmsKeyId' - Specifies the ID of the Key Management Service (KMS) key to use for+-- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+-- specified, the Amazon FSx-managed KMS key for your account is used. For+-- more information, see+-- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+-- in the /Key Management Service API Reference/.+--+-- 'lifecycle', 'fileCache_lifecycle' - The lifecycle status of the cache. The following are the possible values+-- and what they mean:+--+-- -   @AVAILABLE@ - The cache is in a healthy state, and is reachable and+--     available for use.+--+-- -   @CREATING@ - The new cache is being created.+--+-- -   @DELETING@ - An existing cache is being deleted.+--+-- -   @UPDATING@ - The cache is undergoing a customer-initiated update.+--+-- -   @FAILED@ - An existing cache has experienced an unrecoverable+--     failure. When creating a new cache, the cache was unable to be+--     created.+--+-- 'lustreConfiguration', 'fileCache_lustreConfiguration' - The configuration for the Amazon File Cache resource.+--+-- 'networkInterfaceIds', 'fileCache_networkInterfaceIds' - Undocumented member.+--+-- 'ownerId', 'fileCache_ownerId' - Undocumented member.+--+-- 'resourceARN', 'fileCache_resourceARN' - Undocumented member.+--+-- 'storageCapacity', 'fileCache_storageCapacity' - The storage capacity of the cache in gibibytes (GiB).+--+-- 'subnetIds', 'fileCache_subnetIds' - Undocumented member.+--+-- 'vpcId', 'fileCache_vpcId' - Undocumented member.+newFileCache ::+  FileCache+newFileCache =+  FileCache'+    { creationTime = Prelude.Nothing,+      dNSName = Prelude.Nothing,+      dataRepositoryAssociationIds = Prelude.Nothing,+      failureDetails = Prelude.Nothing,+      fileCacheId = Prelude.Nothing,+      fileCacheType = Prelude.Nothing,+      fileCacheTypeVersion = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      lustreConfiguration = Prelude.Nothing,+      networkInterfaceIds = Prelude.Nothing,+      ownerId = Prelude.Nothing,+      resourceARN = Prelude.Nothing,+      storageCapacity = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      vpcId = Prelude.Nothing+    }++-- | Undocumented member.+fileCache_creationTime :: Lens.Lens' FileCache (Prelude.Maybe Prelude.UTCTime)+fileCache_creationTime = Lens.lens (\FileCache' {creationTime} -> creationTime) (\s@FileCache' {} a -> s {creationTime = a} :: FileCache) Prelude.. Lens.mapping Data._Time++-- | The Domain Name System (DNS) name for the cache.+fileCache_dNSName :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Text)+fileCache_dNSName = Lens.lens (\FileCache' {dNSName} -> dNSName) (\s@FileCache' {} a -> s {dNSName = a} :: FileCache)++-- | A list of IDs of data repository associations that are associated with+-- this cache.+fileCache_dataRepositoryAssociationIds :: Lens.Lens' FileCache (Prelude.Maybe [Prelude.Text])+fileCache_dataRepositoryAssociationIds = Lens.lens (\FileCache' {dataRepositoryAssociationIds} -> dataRepositoryAssociationIds) (\s@FileCache' {} a -> s {dataRepositoryAssociationIds = a} :: FileCache) Prelude.. Lens.mapping Lens.coerced++-- | A structure providing details of any failures that occurred.+fileCache_failureDetails :: Lens.Lens' FileCache (Prelude.Maybe FileCacheFailureDetails)+fileCache_failureDetails = Lens.lens (\FileCache' {failureDetails} -> failureDetails) (\s@FileCache' {} a -> s {failureDetails = a} :: FileCache)++-- | The system-generated, unique ID of the cache.+fileCache_fileCacheId :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Text)+fileCache_fileCacheId = Lens.lens (\FileCache' {fileCacheId} -> fileCacheId) (\s@FileCache' {} a -> s {fileCacheId = a} :: FileCache)++-- | The type of cache, which must be @LUSTRE@.+fileCache_fileCacheType :: Lens.Lens' FileCache (Prelude.Maybe FileCacheType)+fileCache_fileCacheType = Lens.lens (\FileCache' {fileCacheType} -> fileCacheType) (\s@FileCache' {} a -> s {fileCacheType = a} :: FileCache)++-- | The Lustre version of the cache, which must be @2.12@.+fileCache_fileCacheTypeVersion :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Text)+fileCache_fileCacheTypeVersion = Lens.lens (\FileCache' {fileCacheTypeVersion} -> fileCacheTypeVersion) (\s@FileCache' {} a -> s {fileCacheTypeVersion = a} :: FileCache)++-- | Specifies the ID of the Key Management Service (KMS) key to use for+-- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+-- specified, the Amazon FSx-managed KMS key for your account is used. For+-- more information, see+-- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+-- in the /Key Management Service API Reference/.+fileCache_kmsKeyId :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Text)+fileCache_kmsKeyId = Lens.lens (\FileCache' {kmsKeyId} -> kmsKeyId) (\s@FileCache' {} a -> s {kmsKeyId = a} :: FileCache)++-- | The lifecycle status of the cache. The following are the possible values+-- and what they mean:+--+-- -   @AVAILABLE@ - The cache is in a healthy state, and is reachable and+--     available for use.+--+-- -   @CREATING@ - The new cache is being created.+--+-- -   @DELETING@ - An existing cache is being deleted.+--+-- -   @UPDATING@ - The cache is undergoing a customer-initiated update.+--+-- -   @FAILED@ - An existing cache has experienced an unrecoverable+--     failure. When creating a new cache, the cache was unable to be+--     created.+fileCache_lifecycle :: Lens.Lens' FileCache (Prelude.Maybe FileCacheLifecycle)+fileCache_lifecycle = Lens.lens (\FileCache' {lifecycle} -> lifecycle) (\s@FileCache' {} a -> s {lifecycle = a} :: FileCache)++-- | The configuration for the Amazon File Cache resource.+fileCache_lustreConfiguration :: Lens.Lens' FileCache (Prelude.Maybe FileCacheLustreConfiguration)+fileCache_lustreConfiguration = Lens.lens (\FileCache' {lustreConfiguration} -> lustreConfiguration) (\s@FileCache' {} a -> s {lustreConfiguration = a} :: FileCache)++-- | Undocumented member.+fileCache_networkInterfaceIds :: Lens.Lens' FileCache (Prelude.Maybe [Prelude.Text])+fileCache_networkInterfaceIds = Lens.lens (\FileCache' {networkInterfaceIds} -> networkInterfaceIds) (\s@FileCache' {} a -> s {networkInterfaceIds = a} :: FileCache) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+fileCache_ownerId :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Text)+fileCache_ownerId = Lens.lens (\FileCache' {ownerId} -> ownerId) (\s@FileCache' {} a -> s {ownerId = a} :: FileCache)++-- | Undocumented member.+fileCache_resourceARN :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Text)+fileCache_resourceARN = Lens.lens (\FileCache' {resourceARN} -> resourceARN) (\s@FileCache' {} a -> s {resourceARN = a} :: FileCache)++-- | The storage capacity of the cache in gibibytes (GiB).+fileCache_storageCapacity :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Natural)+fileCache_storageCapacity = Lens.lens (\FileCache' {storageCapacity} -> storageCapacity) (\s@FileCache' {} a -> s {storageCapacity = a} :: FileCache)++-- | Undocumented member.+fileCache_subnetIds :: Lens.Lens' FileCache (Prelude.Maybe [Prelude.Text])+fileCache_subnetIds = Lens.lens (\FileCache' {subnetIds} -> subnetIds) (\s@FileCache' {} a -> s {subnetIds = a} :: FileCache) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+fileCache_vpcId :: Lens.Lens' FileCache (Prelude.Maybe Prelude.Text)+fileCache_vpcId = Lens.lens (\FileCache' {vpcId} -> vpcId) (\s@FileCache' {} a -> s {vpcId = a} :: FileCache)++instance Data.FromJSON FileCache where+  parseJSON =+    Data.withObject+      "FileCache"+      ( \x ->+          FileCache'+            Prelude.<$> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "DNSName")+            Prelude.<*> ( x+                            Data..:? "DataRepositoryAssociationIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FailureDetails")+            Prelude.<*> (x Data..:? "FileCacheId")+            Prelude.<*> (x Data..:? "FileCacheType")+            Prelude.<*> (x Data..:? "FileCacheTypeVersion")+            Prelude.<*> (x Data..:? "KmsKeyId")+            Prelude.<*> (x Data..:? "Lifecycle")+            Prelude.<*> (x Data..:? "LustreConfiguration")+            Prelude.<*> ( x+                            Data..:? "NetworkInterfaceIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "OwnerId")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "StorageCapacity")+            Prelude.<*> (x Data..:? "SubnetIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "VpcId")+      )++instance Prelude.Hashable FileCache where+  hashWithSalt _salt FileCache' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` dNSName+      `Prelude.hashWithSalt` dataRepositoryAssociationIds+      `Prelude.hashWithSalt` failureDetails+      `Prelude.hashWithSalt` fileCacheId+      `Prelude.hashWithSalt` fileCacheType+      `Prelude.hashWithSalt` fileCacheTypeVersion+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` networkInterfaceIds+      `Prelude.hashWithSalt` ownerId+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` storageCapacity+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` vpcId++instance Prelude.NFData FileCache where+  rnf FileCache' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf dNSName+      `Prelude.seq` Prelude.rnf dataRepositoryAssociationIds+      `Prelude.seq` Prelude.rnf failureDetails+      `Prelude.seq` Prelude.rnf fileCacheId+      `Prelude.seq` Prelude.rnf fileCacheType+      `Prelude.seq` Prelude.rnf fileCacheTypeVersion+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf networkInterfaceIds+      `Prelude.seq` Prelude.rnf ownerId+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf storageCapacity+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/FSx/Types/FileCacheCreating.hs view
@@ -0,0 +1,345 @@+{-# 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.FileCacheCreating+-- 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.FileCacheCreating 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.FileCacheFailureDetails+import Amazonka.FSx.Types.FileCacheLifecycle+import Amazonka.FSx.Types.FileCacheLustreConfiguration+import Amazonka.FSx.Types.FileCacheType+import Amazonka.FSx.Types.Tag+import qualified Amazonka.Prelude as Prelude++-- | The response object for the Amazon File Cache resource being created in+-- the @CreateFileCache@ operation.+--+-- /See:/ 'newFileCacheCreating' smart constructor.+data FileCacheCreating = FileCacheCreating'+  { -- | A boolean flag indicating whether tags for the cache should be copied to+    -- data repository associations.+    copyTagsToDataRepositoryAssociations :: Prelude.Maybe Prelude.Bool,+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The Domain Name System (DNS) name for the cache.+    dNSName :: Prelude.Maybe Prelude.Text,+    -- | A list of IDs of data repository associations that are associated with+    -- this cache.+    dataRepositoryAssociationIds :: Prelude.Maybe [Prelude.Text],+    -- | A structure providing details of any failures that occurred.+    failureDetails :: Prelude.Maybe FileCacheFailureDetails,+    -- | The system-generated, unique ID of the cache.+    fileCacheId :: Prelude.Maybe Prelude.Text,+    -- | The type of cache, which must be @LUSTRE@.+    fileCacheType :: Prelude.Maybe FileCacheType,+    -- | The Lustre version of the cache, which must be @2.12@.+    fileCacheTypeVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifies the ID of the Key Management Service (KMS) key to use for+    -- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+    -- specified, the Amazon FSx-managed KMS key for your account is used. For+    -- more information, see+    -- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+    -- in the /Key Management Service API Reference/.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The lifecycle status of the cache. The following are the possible values+    -- and what they mean:+    --+    -- -   @AVAILABLE@ - The cache is in a healthy state, and is reachable and+    --     available for use.+    --+    -- -   @CREATING@ - The new cache is being created.+    --+    -- -   @DELETING@ - An existing cache is being deleted.+    --+    -- -   @UPDATING@ - The cache is undergoing a customer-initiated update.+    --+    -- -   @FAILED@ - An existing cache has experienced an unrecoverable+    --     failure. When creating a new cache, the cache was unable to be+    --     created.+    lifecycle :: Prelude.Maybe FileCacheLifecycle,+    -- | The configuration for the Amazon File Cache resource.+    lustreConfiguration :: Prelude.Maybe FileCacheLustreConfiguration,+    networkInterfaceIds :: Prelude.Maybe [Prelude.Text],+    ownerId :: Prelude.Maybe Prelude.Text,+    resourceARN :: Prelude.Maybe Prelude.Text,+    -- | The storage capacity of the cache in gibibytes (GiB).+    storageCapacity :: Prelude.Maybe Prelude.Natural,+    subnetIds :: Prelude.Maybe [Prelude.Text],+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    vpcId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileCacheCreating' 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:+--+-- 'copyTagsToDataRepositoryAssociations', 'fileCacheCreating_copyTagsToDataRepositoryAssociations' - A boolean flag indicating whether tags for the cache should be copied to+-- data repository associations.+--+-- 'creationTime', 'fileCacheCreating_creationTime' - Undocumented member.+--+-- 'dNSName', 'fileCacheCreating_dNSName' - The Domain Name System (DNS) name for the cache.+--+-- 'dataRepositoryAssociationIds', 'fileCacheCreating_dataRepositoryAssociationIds' - A list of IDs of data repository associations that are associated with+-- this cache.+--+-- 'failureDetails', 'fileCacheCreating_failureDetails' - A structure providing details of any failures that occurred.+--+-- 'fileCacheId', 'fileCacheCreating_fileCacheId' - The system-generated, unique ID of the cache.+--+-- 'fileCacheType', 'fileCacheCreating_fileCacheType' - The type of cache, which must be @LUSTRE@.+--+-- 'fileCacheTypeVersion', 'fileCacheCreating_fileCacheTypeVersion' - The Lustre version of the cache, which must be @2.12@.+--+-- 'kmsKeyId', 'fileCacheCreating_kmsKeyId' - Specifies the ID of the Key Management Service (KMS) key to use for+-- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+-- specified, the Amazon FSx-managed KMS key for your account is used. For+-- more information, see+-- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+-- in the /Key Management Service API Reference/.+--+-- 'lifecycle', 'fileCacheCreating_lifecycle' - The lifecycle status of the cache. The following are the possible values+-- and what they mean:+--+-- -   @AVAILABLE@ - The cache is in a healthy state, and is reachable and+--     available for use.+--+-- -   @CREATING@ - The new cache is being created.+--+-- -   @DELETING@ - An existing cache is being deleted.+--+-- -   @UPDATING@ - The cache is undergoing a customer-initiated update.+--+-- -   @FAILED@ - An existing cache has experienced an unrecoverable+--     failure. When creating a new cache, the cache was unable to be+--     created.+--+-- 'lustreConfiguration', 'fileCacheCreating_lustreConfiguration' - The configuration for the Amazon File Cache resource.+--+-- 'networkInterfaceIds', 'fileCacheCreating_networkInterfaceIds' - Undocumented member.+--+-- 'ownerId', 'fileCacheCreating_ownerId' - Undocumented member.+--+-- 'resourceARN', 'fileCacheCreating_resourceARN' - Undocumented member.+--+-- 'storageCapacity', 'fileCacheCreating_storageCapacity' - The storage capacity of the cache in gibibytes (GiB).+--+-- 'subnetIds', 'fileCacheCreating_subnetIds' - Undocumented member.+--+-- 'tags', 'fileCacheCreating_tags' - Undocumented member.+--+-- 'vpcId', 'fileCacheCreating_vpcId' - Undocumented member.+newFileCacheCreating ::+  FileCacheCreating+newFileCacheCreating =+  FileCacheCreating'+    { copyTagsToDataRepositoryAssociations =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      dNSName = Prelude.Nothing,+      dataRepositoryAssociationIds = Prelude.Nothing,+      failureDetails = Prelude.Nothing,+      fileCacheId = Prelude.Nothing,+      fileCacheType = Prelude.Nothing,+      fileCacheTypeVersion = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      lustreConfiguration = Prelude.Nothing,+      networkInterfaceIds = Prelude.Nothing,+      ownerId = Prelude.Nothing,+      resourceARN = Prelude.Nothing,+      storageCapacity = Prelude.Nothing,+      subnetIds = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcId = Prelude.Nothing+    }++-- | A boolean flag indicating whether tags for the cache should be copied to+-- data repository associations.+fileCacheCreating_copyTagsToDataRepositoryAssociations :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Bool)+fileCacheCreating_copyTagsToDataRepositoryAssociations = Lens.lens (\FileCacheCreating' {copyTagsToDataRepositoryAssociations} -> copyTagsToDataRepositoryAssociations) (\s@FileCacheCreating' {} a -> s {copyTagsToDataRepositoryAssociations = a} :: FileCacheCreating)++-- | Undocumented member.+fileCacheCreating_creationTime :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.UTCTime)+fileCacheCreating_creationTime = Lens.lens (\FileCacheCreating' {creationTime} -> creationTime) (\s@FileCacheCreating' {} a -> s {creationTime = a} :: FileCacheCreating) Prelude.. Lens.mapping Data._Time++-- | The Domain Name System (DNS) name for the cache.+fileCacheCreating_dNSName :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Text)+fileCacheCreating_dNSName = Lens.lens (\FileCacheCreating' {dNSName} -> dNSName) (\s@FileCacheCreating' {} a -> s {dNSName = a} :: FileCacheCreating)++-- | A list of IDs of data repository associations that are associated with+-- this cache.+fileCacheCreating_dataRepositoryAssociationIds :: Lens.Lens' FileCacheCreating (Prelude.Maybe [Prelude.Text])+fileCacheCreating_dataRepositoryAssociationIds = Lens.lens (\FileCacheCreating' {dataRepositoryAssociationIds} -> dataRepositoryAssociationIds) (\s@FileCacheCreating' {} a -> s {dataRepositoryAssociationIds = a} :: FileCacheCreating) Prelude.. Lens.mapping Lens.coerced++-- | A structure providing details of any failures that occurred.+fileCacheCreating_failureDetails :: Lens.Lens' FileCacheCreating (Prelude.Maybe FileCacheFailureDetails)+fileCacheCreating_failureDetails = Lens.lens (\FileCacheCreating' {failureDetails} -> failureDetails) (\s@FileCacheCreating' {} a -> s {failureDetails = a} :: FileCacheCreating)++-- | The system-generated, unique ID of the cache.+fileCacheCreating_fileCacheId :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Text)+fileCacheCreating_fileCacheId = Lens.lens (\FileCacheCreating' {fileCacheId} -> fileCacheId) (\s@FileCacheCreating' {} a -> s {fileCacheId = a} :: FileCacheCreating)++-- | The type of cache, which must be @LUSTRE@.+fileCacheCreating_fileCacheType :: Lens.Lens' FileCacheCreating (Prelude.Maybe FileCacheType)+fileCacheCreating_fileCacheType = Lens.lens (\FileCacheCreating' {fileCacheType} -> fileCacheType) (\s@FileCacheCreating' {} a -> s {fileCacheType = a} :: FileCacheCreating)++-- | The Lustre version of the cache, which must be @2.12@.+fileCacheCreating_fileCacheTypeVersion :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Text)+fileCacheCreating_fileCacheTypeVersion = Lens.lens (\FileCacheCreating' {fileCacheTypeVersion} -> fileCacheTypeVersion) (\s@FileCacheCreating' {} a -> s {fileCacheTypeVersion = a} :: FileCacheCreating)++-- | Specifies the ID of the Key Management Service (KMS) key to use for+-- encrypting data on an Amazon File Cache. If a @KmsKeyId@ isn\'t+-- specified, the Amazon FSx-managed KMS key for your account is used. For+-- more information, see+-- <https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html Encrypt>+-- in the /Key Management Service API Reference/.+fileCacheCreating_kmsKeyId :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Text)+fileCacheCreating_kmsKeyId = Lens.lens (\FileCacheCreating' {kmsKeyId} -> kmsKeyId) (\s@FileCacheCreating' {} a -> s {kmsKeyId = a} :: FileCacheCreating)++-- | The lifecycle status of the cache. The following are the possible values+-- and what they mean:+--+-- -   @AVAILABLE@ - The cache is in a healthy state, and is reachable and+--     available for use.+--+-- -   @CREATING@ - The new cache is being created.+--+-- -   @DELETING@ - An existing cache is being deleted.+--+-- -   @UPDATING@ - The cache is undergoing a customer-initiated update.+--+-- -   @FAILED@ - An existing cache has experienced an unrecoverable+--     failure. When creating a new cache, the cache was unable to be+--     created.+fileCacheCreating_lifecycle :: Lens.Lens' FileCacheCreating (Prelude.Maybe FileCacheLifecycle)+fileCacheCreating_lifecycle = Lens.lens (\FileCacheCreating' {lifecycle} -> lifecycle) (\s@FileCacheCreating' {} a -> s {lifecycle = a} :: FileCacheCreating)++-- | The configuration for the Amazon File Cache resource.+fileCacheCreating_lustreConfiguration :: Lens.Lens' FileCacheCreating (Prelude.Maybe FileCacheLustreConfiguration)+fileCacheCreating_lustreConfiguration = Lens.lens (\FileCacheCreating' {lustreConfiguration} -> lustreConfiguration) (\s@FileCacheCreating' {} a -> s {lustreConfiguration = a} :: FileCacheCreating)++-- | Undocumented member.+fileCacheCreating_networkInterfaceIds :: Lens.Lens' FileCacheCreating (Prelude.Maybe [Prelude.Text])+fileCacheCreating_networkInterfaceIds = Lens.lens (\FileCacheCreating' {networkInterfaceIds} -> networkInterfaceIds) (\s@FileCacheCreating' {} a -> s {networkInterfaceIds = a} :: FileCacheCreating) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+fileCacheCreating_ownerId :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Text)+fileCacheCreating_ownerId = Lens.lens (\FileCacheCreating' {ownerId} -> ownerId) (\s@FileCacheCreating' {} a -> s {ownerId = a} :: FileCacheCreating)++-- | Undocumented member.+fileCacheCreating_resourceARN :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Text)+fileCacheCreating_resourceARN = Lens.lens (\FileCacheCreating' {resourceARN} -> resourceARN) (\s@FileCacheCreating' {} a -> s {resourceARN = a} :: FileCacheCreating)++-- | The storage capacity of the cache in gibibytes (GiB).+fileCacheCreating_storageCapacity :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Natural)+fileCacheCreating_storageCapacity = Lens.lens (\FileCacheCreating' {storageCapacity} -> storageCapacity) (\s@FileCacheCreating' {} a -> s {storageCapacity = a} :: FileCacheCreating)++-- | Undocumented member.+fileCacheCreating_subnetIds :: Lens.Lens' FileCacheCreating (Prelude.Maybe [Prelude.Text])+fileCacheCreating_subnetIds = Lens.lens (\FileCacheCreating' {subnetIds} -> subnetIds) (\s@FileCacheCreating' {} a -> s {subnetIds = a} :: FileCacheCreating) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+fileCacheCreating_tags :: Lens.Lens' FileCacheCreating (Prelude.Maybe (Prelude.NonEmpty Tag))+fileCacheCreating_tags = Lens.lens (\FileCacheCreating' {tags} -> tags) (\s@FileCacheCreating' {} a -> s {tags = a} :: FileCacheCreating) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+fileCacheCreating_vpcId :: Lens.Lens' FileCacheCreating (Prelude.Maybe Prelude.Text)+fileCacheCreating_vpcId = Lens.lens (\FileCacheCreating' {vpcId} -> vpcId) (\s@FileCacheCreating' {} a -> s {vpcId = a} :: FileCacheCreating)++instance Data.FromJSON FileCacheCreating where+  parseJSON =+    Data.withObject+      "FileCacheCreating"+      ( \x ->+          FileCacheCreating'+            Prelude.<$> (x Data..:? "CopyTagsToDataRepositoryAssociations")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "DNSName")+            Prelude.<*> ( x+                            Data..:? "DataRepositoryAssociationIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FailureDetails")+            Prelude.<*> (x Data..:? "FileCacheId")+            Prelude.<*> (x Data..:? "FileCacheType")+            Prelude.<*> (x Data..:? "FileCacheTypeVersion")+            Prelude.<*> (x Data..:? "KmsKeyId")+            Prelude.<*> (x Data..:? "Lifecycle")+            Prelude.<*> (x Data..:? "LustreConfiguration")+            Prelude.<*> ( x+                            Data..:? "NetworkInterfaceIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "OwnerId")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "StorageCapacity")+            Prelude.<*> (x Data..:? "SubnetIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Tags")+            Prelude.<*> (x Data..:? "VpcId")+      )++instance Prelude.Hashable FileCacheCreating where+  hashWithSalt _salt FileCacheCreating' {..} =+    _salt+      `Prelude.hashWithSalt` copyTagsToDataRepositoryAssociations+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` dNSName+      `Prelude.hashWithSalt` dataRepositoryAssociationIds+      `Prelude.hashWithSalt` failureDetails+      `Prelude.hashWithSalt` fileCacheId+      `Prelude.hashWithSalt` fileCacheType+      `Prelude.hashWithSalt` fileCacheTypeVersion+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` networkInterfaceIds+      `Prelude.hashWithSalt` ownerId+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` storageCapacity+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcId++instance Prelude.NFData FileCacheCreating where+  rnf FileCacheCreating' {..} =+    Prelude.rnf copyTagsToDataRepositoryAssociations+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf dNSName+      `Prelude.seq` Prelude.rnf dataRepositoryAssociationIds+      `Prelude.seq` Prelude.rnf failureDetails+      `Prelude.seq` Prelude.rnf fileCacheId+      `Prelude.seq` Prelude.rnf fileCacheType+      `Prelude.seq` Prelude.rnf fileCacheTypeVersion+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf networkInterfaceIds+      `Prelude.seq` Prelude.rnf ownerId+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf storageCapacity+      `Prelude.seq` Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcId
+ gen/Amazonka/FSx/Types/FileCacheDataRepositoryAssociation.hs view
@@ -0,0 +1,260 @@+{-# 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.FileCacheDataRepositoryAssociation+-- 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.FileCacheDataRepositoryAssociation 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.FileCacheNFSConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a data repository association (DRA) to be created+-- during the Amazon File Cache resource creation. The DRA links the cache+-- to either an Amazon S3 bucket or prefix, or a Network File System (NFS)+-- data repository that supports the NFSv3 protocol.+--+-- The DRA does not support automatic import or automatic export.+--+-- /See:/ 'newFileCacheDataRepositoryAssociation' smart constructor.+data FileCacheDataRepositoryAssociation = FileCacheDataRepositoryAssociation'+  { -- | A list of NFS Exports that will be linked with this data repository+    -- association. The Export paths are in the format @\/exportpath1@. To use+    -- this parameter, you must configure @DataRepositoryPath@ as the domain+    -- name of the NFS file system. The NFS file system domain name in effect+    -- is the root of the subdirectories. Note that+    -- @DataRepositorySubdirectories@ is not supported for S3 data+    -- repositories.+    dataRepositorySubdirectories :: Prelude.Maybe [Prelude.Text],+    -- | The configuration for a data repository association that links an Amazon+    -- File Cache resource to an NFS data repository.+    nfs :: Prelude.Maybe FileCacheNFSConfiguration,+    -- | A path on the cache that points to a high-level directory (such as+    -- @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that will be+    -- mapped 1-1 with @DataRepositoryPath@. The leading forward slash in the+    -- name is required. Two data repository associations cannot have+    -- overlapping cache paths. For example, if a data repository is associated+    -- with cache path @\/ns1\/@, then you cannot link another data repository+    -- with cache path @\/ns1\/ns2@.+    --+    -- This path specifies where in your cache files will be exported from.+    -- This cache directory can be linked to only one data repository, and no+    -- data repository other can be linked to the directory.+    --+    -- The cache path can only be set to root (\/) on an NFS DRA when+    -- @DataRepositorySubdirectories@ is specified. If you specify root (\/) as+    -- the cache path, you can create only one DRA on the cache.+    --+    -- The cache path cannot be set to root (\/) for an S3 DRA.+    fileCachePath :: Prelude.Text,+    -- | The path to the S3 or NFS data repository that links to the cache. You+    -- must provide one of the following paths:+    --+    -- -   The path can be an NFS data repository that links to the cache. The+    --     path can be in one of two formats:+    --+    --     -   If you are not using the @DataRepositorySubdirectories@+    --         parameter, the path is to an NFS Export directory (or one of its+    --         subdirectories) in the format+    --         @nsf:\/\/nfs-domain-name\/exportpath@. You can therefore link a+    --         single NFS Export to a single data repository association.+    --+    --     -   If you are using the @DataRepositorySubdirectories@ parameter,+    --         the path is the domain name of the NFS file system in the format+    --         @nfs:\/\/filer-domain-name@, which indicates the root of the+    --         subdirectories specified with the @DataRepositorySubdirectories@+    --         parameter.+    --+    -- -   The path can be an S3 bucket or prefix in the format+    --     @s3:\/\/myBucket\/myPrefix\/@.+    dataRepositoryPath :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileCacheDataRepositoryAssociation' 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:+--+-- 'dataRepositorySubdirectories', 'fileCacheDataRepositoryAssociation_dataRepositorySubdirectories' - A list of NFS Exports that will be linked with this data repository+-- association. The Export paths are in the format @\/exportpath1@. To use+-- this parameter, you must configure @DataRepositoryPath@ as the domain+-- name of the NFS file system. The NFS file system domain name in effect+-- is the root of the subdirectories. Note that+-- @DataRepositorySubdirectories@ is not supported for S3 data+-- repositories.+--+-- 'nfs', 'fileCacheDataRepositoryAssociation_nfs' - The configuration for a data repository association that links an Amazon+-- File Cache resource to an NFS data repository.+--+-- 'fileCachePath', 'fileCacheDataRepositoryAssociation_fileCachePath' - A path on the cache that points to a high-level directory (such as+-- @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that will be+-- mapped 1-1 with @DataRepositoryPath@. The leading forward slash in the+-- name is required. Two data repository associations cannot have+-- overlapping cache paths. For example, if a data repository is associated+-- with cache path @\/ns1\/@, then you cannot link another data repository+-- with cache path @\/ns1\/ns2@.+--+-- This path specifies where in your cache files will be exported from.+-- This cache directory can be linked to only one data repository, and no+-- data repository other can be linked to the directory.+--+-- The cache path can only be set to root (\/) on an NFS DRA when+-- @DataRepositorySubdirectories@ is specified. If you specify root (\/) as+-- the cache path, you can create only one DRA on the cache.+--+-- The cache path cannot be set to root (\/) for an S3 DRA.+--+-- 'dataRepositoryPath', 'fileCacheDataRepositoryAssociation_dataRepositoryPath' - The path to the S3 or NFS data repository that links to the cache. You+-- must provide one of the following paths:+--+-- -   The path can be an NFS data repository that links to the cache. The+--     path can be in one of two formats:+--+--     -   If you are not using the @DataRepositorySubdirectories@+--         parameter, the path is to an NFS Export directory (or one of its+--         subdirectories) in the format+--         @nsf:\/\/nfs-domain-name\/exportpath@. You can therefore link a+--         single NFS Export to a single data repository association.+--+--     -   If you are using the @DataRepositorySubdirectories@ parameter,+--         the path is the domain name of the NFS file system in the format+--         @nfs:\/\/filer-domain-name@, which indicates the root of the+--         subdirectories specified with the @DataRepositorySubdirectories@+--         parameter.+--+-- -   The path can be an S3 bucket or prefix in the format+--     @s3:\/\/myBucket\/myPrefix\/@.+newFileCacheDataRepositoryAssociation ::+  -- | 'fileCachePath'+  Prelude.Text ->+  -- | 'dataRepositoryPath'+  Prelude.Text ->+  FileCacheDataRepositoryAssociation+newFileCacheDataRepositoryAssociation+  pFileCachePath_+  pDataRepositoryPath_ =+    FileCacheDataRepositoryAssociation'+      { dataRepositorySubdirectories =+          Prelude.Nothing,+        nfs = Prelude.Nothing,+        fileCachePath = pFileCachePath_,+        dataRepositoryPath =+          pDataRepositoryPath_+      }++-- | A list of NFS Exports that will be linked with this data repository+-- association. The Export paths are in the format @\/exportpath1@. To use+-- this parameter, you must configure @DataRepositoryPath@ as the domain+-- name of the NFS file system. The NFS file system domain name in effect+-- is the root of the subdirectories. Note that+-- @DataRepositorySubdirectories@ is not supported for S3 data+-- repositories.+fileCacheDataRepositoryAssociation_dataRepositorySubdirectories :: Lens.Lens' FileCacheDataRepositoryAssociation (Prelude.Maybe [Prelude.Text])+fileCacheDataRepositoryAssociation_dataRepositorySubdirectories = Lens.lens (\FileCacheDataRepositoryAssociation' {dataRepositorySubdirectories} -> dataRepositorySubdirectories) (\s@FileCacheDataRepositoryAssociation' {} a -> s {dataRepositorySubdirectories = a} :: FileCacheDataRepositoryAssociation) Prelude.. Lens.mapping Lens.coerced++-- | The configuration for a data repository association that links an Amazon+-- File Cache resource to an NFS data repository.+fileCacheDataRepositoryAssociation_nfs :: Lens.Lens' FileCacheDataRepositoryAssociation (Prelude.Maybe FileCacheNFSConfiguration)+fileCacheDataRepositoryAssociation_nfs = Lens.lens (\FileCacheDataRepositoryAssociation' {nfs} -> nfs) (\s@FileCacheDataRepositoryAssociation' {} a -> s {nfs = a} :: FileCacheDataRepositoryAssociation)++-- | A path on the cache that points to a high-level directory (such as+-- @\/ns1\/@) or subdirectory (such as @\/ns1\/subdir\/@) that will be+-- mapped 1-1 with @DataRepositoryPath@. The leading forward slash in the+-- name is required. Two data repository associations cannot have+-- overlapping cache paths. For example, if a data repository is associated+-- with cache path @\/ns1\/@, then you cannot link another data repository+-- with cache path @\/ns1\/ns2@.+--+-- This path specifies where in your cache files will be exported from.+-- This cache directory can be linked to only one data repository, and no+-- data repository other can be linked to the directory.+--+-- The cache path can only be set to root (\/) on an NFS DRA when+-- @DataRepositorySubdirectories@ is specified. If you specify root (\/) as+-- the cache path, you can create only one DRA on the cache.+--+-- The cache path cannot be set to root (\/) for an S3 DRA.+fileCacheDataRepositoryAssociation_fileCachePath :: Lens.Lens' FileCacheDataRepositoryAssociation Prelude.Text+fileCacheDataRepositoryAssociation_fileCachePath = Lens.lens (\FileCacheDataRepositoryAssociation' {fileCachePath} -> fileCachePath) (\s@FileCacheDataRepositoryAssociation' {} a -> s {fileCachePath = a} :: FileCacheDataRepositoryAssociation)++-- | The path to the S3 or NFS data repository that links to the cache. You+-- must provide one of the following paths:+--+-- -   The path can be an NFS data repository that links to the cache. The+--     path can be in one of two formats:+--+--     -   If you are not using the @DataRepositorySubdirectories@+--         parameter, the path is to an NFS Export directory (or one of its+--         subdirectories) in the format+--         @nsf:\/\/nfs-domain-name\/exportpath@. You can therefore link a+--         single NFS Export to a single data repository association.+--+--     -   If you are using the @DataRepositorySubdirectories@ parameter,+--         the path is the domain name of the NFS file system in the format+--         @nfs:\/\/filer-domain-name@, which indicates the root of the+--         subdirectories specified with the @DataRepositorySubdirectories@+--         parameter.+--+-- -   The path can be an S3 bucket or prefix in the format+--     @s3:\/\/myBucket\/myPrefix\/@.+fileCacheDataRepositoryAssociation_dataRepositoryPath :: Lens.Lens' FileCacheDataRepositoryAssociation Prelude.Text+fileCacheDataRepositoryAssociation_dataRepositoryPath = Lens.lens (\FileCacheDataRepositoryAssociation' {dataRepositoryPath} -> dataRepositoryPath) (\s@FileCacheDataRepositoryAssociation' {} a -> s {dataRepositoryPath = a} :: FileCacheDataRepositoryAssociation)++instance+  Prelude.Hashable+    FileCacheDataRepositoryAssociation+  where+  hashWithSalt+    _salt+    FileCacheDataRepositoryAssociation' {..} =+      _salt+        `Prelude.hashWithSalt` dataRepositorySubdirectories+        `Prelude.hashWithSalt` nfs+        `Prelude.hashWithSalt` fileCachePath+        `Prelude.hashWithSalt` dataRepositoryPath++instance+  Prelude.NFData+    FileCacheDataRepositoryAssociation+  where+  rnf FileCacheDataRepositoryAssociation' {..} =+    Prelude.rnf dataRepositorySubdirectories+      `Prelude.seq` Prelude.rnf nfs+      `Prelude.seq` Prelude.rnf fileCachePath+      `Prelude.seq` Prelude.rnf dataRepositoryPath++instance+  Data.ToJSON+    FileCacheDataRepositoryAssociation+  where+  toJSON FileCacheDataRepositoryAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataRepositorySubdirectories" Data..=)+              Prelude.<$> dataRepositorySubdirectories,+            ("NFS" Data..=) Prelude.<$> nfs,+            Prelude.Just ("FileCachePath" Data..= fileCachePath),+            Prelude.Just+              ("DataRepositoryPath" Data..= dataRepositoryPath)+          ]+      )
+ gen/Amazonka/FSx/Types/FileCacheFailureDetails.hs view
@@ -0,0 +1,69 @@+{-# 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.FileCacheFailureDetails+-- 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.FileCacheFailureDetails 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++-- | A structure providing details of any failures that occurred.+--+-- /See:/ 'newFileCacheFailureDetails' smart constructor.+data FileCacheFailureDetails = FileCacheFailureDetails'+  { -- | A message describing any failures that occurred.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileCacheFailureDetails' 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:+--+-- 'message', 'fileCacheFailureDetails_message' - A message describing any failures that occurred.+newFileCacheFailureDetails ::+  FileCacheFailureDetails+newFileCacheFailureDetails =+  FileCacheFailureDetails' {message = Prelude.Nothing}++-- | A message describing any failures that occurred.+fileCacheFailureDetails_message :: Lens.Lens' FileCacheFailureDetails (Prelude.Maybe Prelude.Text)+fileCacheFailureDetails_message = Lens.lens (\FileCacheFailureDetails' {message} -> message) (\s@FileCacheFailureDetails' {} a -> s {message = a} :: FileCacheFailureDetails)++instance Data.FromJSON FileCacheFailureDetails where+  parseJSON =+    Data.withObject+      "FileCacheFailureDetails"+      ( \x ->+          FileCacheFailureDetails'+            Prelude.<$> (x Data..:? "Message")+      )++instance Prelude.Hashable FileCacheFailureDetails where+  hashWithSalt _salt FileCacheFailureDetails' {..} =+    _salt `Prelude.hashWithSalt` message++instance Prelude.NFData FileCacheFailureDetails where+  rnf FileCacheFailureDetails' {..} =+    Prelude.rnf message
+ gen/Amazonka/FSx/Types/FileCacheLifecycle.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FileCacheLifecycle+-- 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.FileCacheLifecycle+  ( FileCacheLifecycle+      ( ..,+        FileCacheLifecycle_AVAILABLE,+        FileCacheLifecycle_CREATING,+        FileCacheLifecycle_DELETING,+        FileCacheLifecycle_FAILED,+        FileCacheLifecycle_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FileCacheLifecycle = FileCacheLifecycle'+  { fromFileCacheLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FileCacheLifecycle_AVAILABLE :: FileCacheLifecycle+pattern FileCacheLifecycle_AVAILABLE = FileCacheLifecycle' "AVAILABLE"++pattern FileCacheLifecycle_CREATING :: FileCacheLifecycle+pattern FileCacheLifecycle_CREATING = FileCacheLifecycle' "CREATING"++pattern FileCacheLifecycle_DELETING :: FileCacheLifecycle+pattern FileCacheLifecycle_DELETING = FileCacheLifecycle' "DELETING"++pattern FileCacheLifecycle_FAILED :: FileCacheLifecycle+pattern FileCacheLifecycle_FAILED = FileCacheLifecycle' "FAILED"++pattern FileCacheLifecycle_UPDATING :: FileCacheLifecycle+pattern FileCacheLifecycle_UPDATING = FileCacheLifecycle' "UPDATING"++{-# COMPLETE+  FileCacheLifecycle_AVAILABLE,+  FileCacheLifecycle_CREATING,+  FileCacheLifecycle_DELETING,+  FileCacheLifecycle_FAILED,+  FileCacheLifecycle_UPDATING,+  FileCacheLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/FileCacheLustreConfiguration.hs view
@@ -0,0 +1,162 @@+{-# 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.FileCacheLustreConfiguration+-- 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.FileCacheLustreConfiguration 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.FileCacheLustreDeploymentType+import Amazonka.FSx.Types.FileCacheLustreMetadataConfiguration+import Amazonka.FSx.Types.LustreLogConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration for the Amazon File Cache resource.+--+-- /See:/ 'newFileCacheLustreConfiguration' smart constructor.+data FileCacheLustreConfiguration = FileCacheLustreConfiguration'+  { -- | The deployment type of the Amazon File Cache resource, which must be+    -- @CACHE_1@.+    deploymentType :: Prelude.Maybe FileCacheLustreDeploymentType,+    -- | The configuration for Lustre logging used to write the enabled logging+    -- events for your Amazon File Cache resource to Amazon CloudWatch Logs.+    logConfiguration :: Prelude.Maybe LustreLogConfiguration,+    -- | The configuration for a Lustre MDT (Metadata Target) storage volume.+    metadataConfiguration :: Prelude.Maybe FileCacheLustreMetadataConfiguration,+    -- | You use the @MountName@ value when mounting the cache. If you pass a+    -- cache ID to the @DescribeFileCaches@ operation, it returns the the+    -- @MountName@ value as part of the cache\'s description.+    mountName :: Prelude.Maybe Prelude.Text,+    -- | Per unit storage throughput represents the megabytes per second of read+    -- or write throughput per 1 tebibyte of storage provisioned. Cache+    -- throughput capacity is equal to Storage capacity (TiB) *+    -- PerUnitStorageThroughput (MB\/s\/TiB). The only supported value is+    -- @1000@.+    perUnitStorageThroughput :: Prelude.Maybe Prelude.Natural,+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileCacheLustreConfiguration' 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:+--+-- 'deploymentType', 'fileCacheLustreConfiguration_deploymentType' - The deployment type of the Amazon File Cache resource, which must be+-- @CACHE_1@.+--+-- 'logConfiguration', 'fileCacheLustreConfiguration_logConfiguration' - The configuration for Lustre logging used to write the enabled logging+-- events for your Amazon File Cache resource to Amazon CloudWatch Logs.+--+-- 'metadataConfiguration', 'fileCacheLustreConfiguration_metadataConfiguration' - The configuration for a Lustre MDT (Metadata Target) storage volume.+--+-- 'mountName', 'fileCacheLustreConfiguration_mountName' - You use the @MountName@ value when mounting the cache. If you pass a+-- cache ID to the @DescribeFileCaches@ operation, it returns the the+-- @MountName@ value as part of the cache\'s description.+--+-- 'perUnitStorageThroughput', 'fileCacheLustreConfiguration_perUnitStorageThroughput' - Per unit storage throughput represents the megabytes per second of read+-- or write throughput per 1 tebibyte of storage provisioned. Cache+-- throughput capacity is equal to Storage capacity (TiB) *+-- PerUnitStorageThroughput (MB\/s\/TiB). The only supported value is+-- @1000@.+--+-- 'weeklyMaintenanceStartTime', 'fileCacheLustreConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+newFileCacheLustreConfiguration ::+  FileCacheLustreConfiguration+newFileCacheLustreConfiguration =+  FileCacheLustreConfiguration'+    { deploymentType =+        Prelude.Nothing,+      logConfiguration = Prelude.Nothing,+      metadataConfiguration = Prelude.Nothing,+      mountName = Prelude.Nothing,+      perUnitStorageThroughput = Prelude.Nothing,+      weeklyMaintenanceStartTime = Prelude.Nothing+    }++-- | The deployment type of the Amazon File Cache resource, which must be+-- @CACHE_1@.+fileCacheLustreConfiguration_deploymentType :: Lens.Lens' FileCacheLustreConfiguration (Prelude.Maybe FileCacheLustreDeploymentType)+fileCacheLustreConfiguration_deploymentType = Lens.lens (\FileCacheLustreConfiguration' {deploymentType} -> deploymentType) (\s@FileCacheLustreConfiguration' {} a -> s {deploymentType = a} :: FileCacheLustreConfiguration)++-- | The configuration for Lustre logging used to write the enabled logging+-- events for your Amazon File Cache resource to Amazon CloudWatch Logs.+fileCacheLustreConfiguration_logConfiguration :: Lens.Lens' FileCacheLustreConfiguration (Prelude.Maybe LustreLogConfiguration)+fileCacheLustreConfiguration_logConfiguration = Lens.lens (\FileCacheLustreConfiguration' {logConfiguration} -> logConfiguration) (\s@FileCacheLustreConfiguration' {} a -> s {logConfiguration = a} :: FileCacheLustreConfiguration)++-- | The configuration for a Lustre MDT (Metadata Target) storage volume.+fileCacheLustreConfiguration_metadataConfiguration :: Lens.Lens' FileCacheLustreConfiguration (Prelude.Maybe FileCacheLustreMetadataConfiguration)+fileCacheLustreConfiguration_metadataConfiguration = Lens.lens (\FileCacheLustreConfiguration' {metadataConfiguration} -> metadataConfiguration) (\s@FileCacheLustreConfiguration' {} a -> s {metadataConfiguration = a} :: FileCacheLustreConfiguration)++-- | You use the @MountName@ value when mounting the cache. If you pass a+-- cache ID to the @DescribeFileCaches@ operation, it returns the the+-- @MountName@ value as part of the cache\'s description.+fileCacheLustreConfiguration_mountName :: Lens.Lens' FileCacheLustreConfiguration (Prelude.Maybe Prelude.Text)+fileCacheLustreConfiguration_mountName = Lens.lens (\FileCacheLustreConfiguration' {mountName} -> mountName) (\s@FileCacheLustreConfiguration' {} a -> s {mountName = a} :: FileCacheLustreConfiguration)++-- | Per unit storage throughput represents the megabytes per second of read+-- or write throughput per 1 tebibyte of storage provisioned. Cache+-- throughput capacity is equal to Storage capacity (TiB) *+-- PerUnitStorageThroughput (MB\/s\/TiB). The only supported value is+-- @1000@.+fileCacheLustreConfiguration_perUnitStorageThroughput :: Lens.Lens' FileCacheLustreConfiguration (Prelude.Maybe Prelude.Natural)+fileCacheLustreConfiguration_perUnitStorageThroughput = Lens.lens (\FileCacheLustreConfiguration' {perUnitStorageThroughput} -> perUnitStorageThroughput) (\s@FileCacheLustreConfiguration' {} a -> s {perUnitStorageThroughput = a} :: FileCacheLustreConfiguration)++-- | Undocumented member.+fileCacheLustreConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' FileCacheLustreConfiguration (Prelude.Maybe Prelude.Text)+fileCacheLustreConfiguration_weeklyMaintenanceStartTime = Lens.lens (\FileCacheLustreConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@FileCacheLustreConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: FileCacheLustreConfiguration)++instance Data.FromJSON FileCacheLustreConfiguration where+  parseJSON =+    Data.withObject+      "FileCacheLustreConfiguration"+      ( \x ->+          FileCacheLustreConfiguration'+            Prelude.<$> (x Data..:? "DeploymentType")+            Prelude.<*> (x Data..:? "LogConfiguration")+            Prelude.<*> (x Data..:? "MetadataConfiguration")+            Prelude.<*> (x Data..:? "MountName")+            Prelude.<*> (x Data..:? "PerUnitStorageThroughput")+            Prelude.<*> (x Data..:? "WeeklyMaintenanceStartTime")+      )++instance+  Prelude.Hashable+    FileCacheLustreConfiguration+  where+  hashWithSalt _salt FileCacheLustreConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` deploymentType+      `Prelude.hashWithSalt` logConfiguration+      `Prelude.hashWithSalt` metadataConfiguration+      `Prelude.hashWithSalt` mountName+      `Prelude.hashWithSalt` perUnitStorageThroughput+      `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance Prelude.NFData FileCacheLustreConfiguration where+  rnf FileCacheLustreConfiguration' {..} =+    Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf logConfiguration+      `Prelude.seq` Prelude.rnf metadataConfiguration+      `Prelude.seq` Prelude.rnf mountName+      `Prelude.seq` Prelude.rnf perUnitStorageThroughput+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime
+ gen/Amazonka/FSx/Types/FileCacheLustreDeploymentType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FileCacheLustreDeploymentType+-- 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.FileCacheLustreDeploymentType+  ( FileCacheLustreDeploymentType+      ( ..,+        FileCacheLustreDeploymentType_CACHE_1+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FileCacheLustreDeploymentType = FileCacheLustreDeploymentType'+  { fromFileCacheLustreDeploymentType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FileCacheLustreDeploymentType_CACHE_1 :: FileCacheLustreDeploymentType+pattern FileCacheLustreDeploymentType_CACHE_1 = FileCacheLustreDeploymentType' "CACHE_1"++{-# COMPLETE+  FileCacheLustreDeploymentType_CACHE_1,+  FileCacheLustreDeploymentType'+  #-}
+ gen/Amazonka/FSx/Types/FileCacheLustreMetadataConfiguration.hs view
@@ -0,0 +1,103 @@+{-# 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.FileCacheLustreMetadataConfiguration+-- 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.FileCacheLustreMetadataConfiguration 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++-- | The configuration for a Lustre MDT (Metadata Target) storage volume. The+-- metadata on Amazon File Cache is managed by a Lustre Metadata Server+-- (MDS) while the actual metadata is persisted on an MDT.+--+-- /See:/ 'newFileCacheLustreMetadataConfiguration' smart constructor.+data FileCacheLustreMetadataConfiguration = FileCacheLustreMetadataConfiguration'+  { -- | The storage capacity of the Lustre MDT (Metadata Target) storage volume+    -- in gibibytes (GiB). The only supported value is @2400@ GiB.+    storageCapacity :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileCacheLustreMetadataConfiguration' 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:+--+-- 'storageCapacity', 'fileCacheLustreMetadataConfiguration_storageCapacity' - The storage capacity of the Lustre MDT (Metadata Target) storage volume+-- in gibibytes (GiB). The only supported value is @2400@ GiB.+newFileCacheLustreMetadataConfiguration ::+  -- | 'storageCapacity'+  Prelude.Natural ->+  FileCacheLustreMetadataConfiguration+newFileCacheLustreMetadataConfiguration+  pStorageCapacity_ =+    FileCacheLustreMetadataConfiguration'+      { storageCapacity =+          pStorageCapacity_+      }++-- | The storage capacity of the Lustre MDT (Metadata Target) storage volume+-- in gibibytes (GiB). The only supported value is @2400@ GiB.+fileCacheLustreMetadataConfiguration_storageCapacity :: Lens.Lens' FileCacheLustreMetadataConfiguration Prelude.Natural+fileCacheLustreMetadataConfiguration_storageCapacity = Lens.lens (\FileCacheLustreMetadataConfiguration' {storageCapacity} -> storageCapacity) (\s@FileCacheLustreMetadataConfiguration' {} a -> s {storageCapacity = a} :: FileCacheLustreMetadataConfiguration)++instance+  Data.FromJSON+    FileCacheLustreMetadataConfiguration+  where+  parseJSON =+    Data.withObject+      "FileCacheLustreMetadataConfiguration"+      ( \x ->+          FileCacheLustreMetadataConfiguration'+            Prelude.<$> (x Data..: "StorageCapacity")+      )++instance+  Prelude.Hashable+    FileCacheLustreMetadataConfiguration+  where+  hashWithSalt+    _salt+    FileCacheLustreMetadataConfiguration' {..} =+      _salt `Prelude.hashWithSalt` storageCapacity++instance+  Prelude.NFData+    FileCacheLustreMetadataConfiguration+  where+  rnf FileCacheLustreMetadataConfiguration' {..} =+    Prelude.rnf storageCapacity++instance+  Data.ToJSON+    FileCacheLustreMetadataConfiguration+  where+  toJSON FileCacheLustreMetadataConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("StorageCapacity" Data..= storageCapacity)+          ]+      )
+ gen/Amazonka/FSx/Types/FileCacheNFSConfiguration.hs view
@@ -0,0 +1,106 @@+{-# 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.FileCacheNFSConfiguration+-- 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.FileCacheNFSConfiguration 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.NfsVersion+import qualified Amazonka.Prelude as Prelude++-- | The configuration for an NFS data repository association (DRA) created+-- during the creation of the Amazon File Cache resource.+--+-- /See:/ 'newFileCacheNFSConfiguration' smart constructor.+data FileCacheNFSConfiguration = FileCacheNFSConfiguration'+  { -- | A list of up to 2 IP addresses of DNS servers used to resolve the NFS+    -- file system domain name. The provided IP addresses can either be the IP+    -- addresses of a DNS forwarder or resolver that the customer manages and+    -- runs inside the customer VPC, or the IP addresses of the on-premises DNS+    -- servers.+    dnsIps :: Prelude.Maybe [Prelude.Text],+    -- | The version of the NFS (Network File System) protocol of the NFS data+    -- repository. The only supported value is @NFS3@, which indicates that the+    -- data repository must support the NFSv3 protocol.+    version :: NfsVersion+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileCacheNFSConfiguration' 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:+--+-- 'dnsIps', 'fileCacheNFSConfiguration_dnsIps' - A list of up to 2 IP addresses of DNS servers used to resolve the NFS+-- file system domain name. The provided IP addresses can either be the IP+-- addresses of a DNS forwarder or resolver that the customer manages and+-- runs inside the customer VPC, or the IP addresses of the on-premises DNS+-- servers.+--+-- 'version', 'fileCacheNFSConfiguration_version' - The version of the NFS (Network File System) protocol of the NFS data+-- repository. The only supported value is @NFS3@, which indicates that the+-- data repository must support the NFSv3 protocol.+newFileCacheNFSConfiguration ::+  -- | 'version'+  NfsVersion ->+  FileCacheNFSConfiguration+newFileCacheNFSConfiguration pVersion_ =+  FileCacheNFSConfiguration'+    { dnsIps =+        Prelude.Nothing,+      version = pVersion_+    }++-- | A list of up to 2 IP addresses of DNS servers used to resolve the NFS+-- file system domain name. The provided IP addresses can either be the IP+-- addresses of a DNS forwarder or resolver that the customer manages and+-- runs inside the customer VPC, or the IP addresses of the on-premises DNS+-- servers.+fileCacheNFSConfiguration_dnsIps :: Lens.Lens' FileCacheNFSConfiguration (Prelude.Maybe [Prelude.Text])+fileCacheNFSConfiguration_dnsIps = Lens.lens (\FileCacheNFSConfiguration' {dnsIps} -> dnsIps) (\s@FileCacheNFSConfiguration' {} a -> s {dnsIps = a} :: FileCacheNFSConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The version of the NFS (Network File System) protocol of the NFS data+-- repository. The only supported value is @NFS3@, which indicates that the+-- data repository must support the NFSv3 protocol.+fileCacheNFSConfiguration_version :: Lens.Lens' FileCacheNFSConfiguration NfsVersion+fileCacheNFSConfiguration_version = Lens.lens (\FileCacheNFSConfiguration' {version} -> version) (\s@FileCacheNFSConfiguration' {} a -> s {version = a} :: FileCacheNFSConfiguration)++instance Prelude.Hashable FileCacheNFSConfiguration where+  hashWithSalt _salt FileCacheNFSConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` dnsIps+      `Prelude.hashWithSalt` version++instance Prelude.NFData FileCacheNFSConfiguration where+  rnf FileCacheNFSConfiguration' {..} =+    Prelude.rnf dnsIps+      `Prelude.seq` Prelude.rnf version++instance Data.ToJSON FileCacheNFSConfiguration where+  toJSON FileCacheNFSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DnsIps" Data..=) Prelude.<$> dnsIps,+            Prelude.Just ("Version" Data..= version)+          ]+      )
+ gen/Amazonka/FSx/Types/FileCacheType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FileCacheType+-- 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.FileCacheType+  ( FileCacheType+      ( ..,+        FileCacheType_LUSTRE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FileCacheType = FileCacheType'+  { fromFileCacheType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FileCacheType_LUSTRE :: FileCacheType+pattern FileCacheType_LUSTRE = FileCacheType' "LUSTRE"++{-# COMPLETE+  FileCacheType_LUSTRE,+  FileCacheType'+  #-}
+ gen/Amazonka/FSx/Types/FileSystem.hs view
@@ -0,0 +1,532 @@+{-# 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
+ gen/Amazonka/FSx/Types/FileSystem.hs-boot view
@@ -0,0 +1,31 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- 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.Data as Data+import qualified Amazonka.Prelude as Prelude++data FileSystem++instance Prelude.Eq FileSystem++instance Prelude.Read FileSystem++instance Prelude.Show FileSystem++instance Prelude.Generic FileSystem++instance Data.FromJSON FileSystem++instance Prelude.NFData FileSystem++instance Prelude.Hashable FileSystem
+ gen/Amazonka/FSx/Types/FileSystemEndpoint.hs view
@@ -0,0 +1,86 @@+{-# 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.FileSystemEndpoint+-- 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.FileSystemEndpoint 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++-- | An Amazon FSx for NetApp ONTAP file system has two endpoints that are+-- used to access data or to manage the file system using the NetApp ONTAP+-- CLI, REST API, or NetApp SnapMirror. They are the @Management@ and+-- @Intercluster@ endpoints.+--+-- /See:/ 'newFileSystemEndpoint' smart constructor.+data FileSystemEndpoint = FileSystemEndpoint'+  { dNSName :: Prelude.Maybe Prelude.Text,+    -- | IP addresses of the file system endpoint.+    ipAddresses :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileSystemEndpoint' 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:+--+-- 'dNSName', 'fileSystemEndpoint_dNSName' - Undocumented member.+--+-- 'ipAddresses', 'fileSystemEndpoint_ipAddresses' - IP addresses of the file system endpoint.+newFileSystemEndpoint ::+  FileSystemEndpoint+newFileSystemEndpoint =+  FileSystemEndpoint'+    { dNSName = Prelude.Nothing,+      ipAddresses = Prelude.Nothing+    }++-- | Undocumented member.+fileSystemEndpoint_dNSName :: Lens.Lens' FileSystemEndpoint (Prelude.Maybe Prelude.Text)+fileSystemEndpoint_dNSName = Lens.lens (\FileSystemEndpoint' {dNSName} -> dNSName) (\s@FileSystemEndpoint' {} a -> s {dNSName = a} :: FileSystemEndpoint)++-- | IP addresses of the file system endpoint.+fileSystemEndpoint_ipAddresses :: Lens.Lens' FileSystemEndpoint (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+fileSystemEndpoint_ipAddresses = Lens.lens (\FileSystemEndpoint' {ipAddresses} -> ipAddresses) (\s@FileSystemEndpoint' {} a -> s {ipAddresses = a} :: FileSystemEndpoint) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON FileSystemEndpoint where+  parseJSON =+    Data.withObject+      "FileSystemEndpoint"+      ( \x ->+          FileSystemEndpoint'+            Prelude.<$> (x Data..:? "DNSName")+            Prelude.<*> (x Data..:? "IpAddresses")+      )++instance Prelude.Hashable FileSystemEndpoint where+  hashWithSalt _salt FileSystemEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` dNSName+      `Prelude.hashWithSalt` ipAddresses++instance Prelude.NFData FileSystemEndpoint where+  rnf FileSystemEndpoint' {..} =+    Prelude.rnf dNSName+      `Prelude.seq` Prelude.rnf ipAddresses
+ gen/Amazonka/FSx/Types/FileSystemEndpoints.hs view
@@ -0,0 +1,94 @@+{-# 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.FileSystemEndpoints+-- 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.FileSystemEndpoints 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.FileSystemEndpoint+import qualified Amazonka.Prelude as Prelude++-- | An Amazon FSx for NetApp ONTAP file system has the following endpoints+-- that are used to access data or to manage the file system using the+-- NetApp ONTAP CLI, REST API, or NetApp SnapMirror.+--+-- /See:/ 'newFileSystemEndpoints' smart constructor.+data FileSystemEndpoints = FileSystemEndpoints'+  { -- | An endpoint for managing your file system by setting up NetApp+    -- SnapMirror with other ONTAP systems.+    intercluster :: Prelude.Maybe FileSystemEndpoint,+    -- | An endpoint for managing your file system using the NetApp ONTAP CLI and+    -- NetApp ONTAP API.+    management :: Prelude.Maybe FileSystemEndpoint+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileSystemEndpoints' 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:+--+-- 'intercluster', 'fileSystemEndpoints_intercluster' - An endpoint for managing your file system by setting up NetApp+-- SnapMirror with other ONTAP systems.+--+-- 'management', 'fileSystemEndpoints_management' - An endpoint for managing your file system using the NetApp ONTAP CLI and+-- NetApp ONTAP API.+newFileSystemEndpoints ::+  FileSystemEndpoints+newFileSystemEndpoints =+  FileSystemEndpoints'+    { intercluster =+        Prelude.Nothing,+      management = Prelude.Nothing+    }++-- | An endpoint for managing your file system by setting up NetApp+-- SnapMirror with other ONTAP systems.+fileSystemEndpoints_intercluster :: Lens.Lens' FileSystemEndpoints (Prelude.Maybe FileSystemEndpoint)+fileSystemEndpoints_intercluster = Lens.lens (\FileSystemEndpoints' {intercluster} -> intercluster) (\s@FileSystemEndpoints' {} a -> s {intercluster = a} :: FileSystemEndpoints)++-- | An endpoint for managing your file system using the NetApp ONTAP CLI and+-- NetApp ONTAP API.+fileSystemEndpoints_management :: Lens.Lens' FileSystemEndpoints (Prelude.Maybe FileSystemEndpoint)+fileSystemEndpoints_management = Lens.lens (\FileSystemEndpoints' {management} -> management) (\s@FileSystemEndpoints' {} a -> s {management = a} :: FileSystemEndpoints)++instance Data.FromJSON FileSystemEndpoints where+  parseJSON =+    Data.withObject+      "FileSystemEndpoints"+      ( \x ->+          FileSystemEndpoints'+            Prelude.<$> (x Data..:? "Intercluster")+            Prelude.<*> (x Data..:? "Management")+      )++instance Prelude.Hashable FileSystemEndpoints where+  hashWithSalt _salt FileSystemEndpoints' {..} =+    _salt+      `Prelude.hashWithSalt` intercluster+      `Prelude.hashWithSalt` management++instance Prelude.NFData FileSystemEndpoints where+  rnf FileSystemEndpoints' {..} =+    Prelude.rnf intercluster+      `Prelude.seq` Prelude.rnf management
+ gen/Amazonka/FSx/Types/FileSystemFailureDetails.hs view
@@ -0,0 +1,72 @@+{-# 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.FileSystemFailureDetails+-- 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.FileSystemFailureDetails 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++-- | A structure providing details of any failures that occurred.+--+-- /See:/ 'newFileSystemFailureDetails' smart constructor.+data FileSystemFailureDetails = FileSystemFailureDetails'+  { -- | A message describing any failures that occurred.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FileSystemFailureDetails' 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:+--+-- 'message', 'fileSystemFailureDetails_message' - A message describing any failures that occurred.+newFileSystemFailureDetails ::+  FileSystemFailureDetails+newFileSystemFailureDetails =+  FileSystemFailureDetails'+    { message =+        Prelude.Nothing+    }++-- | A message describing any failures that occurred.+fileSystemFailureDetails_message :: Lens.Lens' FileSystemFailureDetails (Prelude.Maybe Prelude.Text)+fileSystemFailureDetails_message = Lens.lens (\FileSystemFailureDetails' {message} -> message) (\s@FileSystemFailureDetails' {} a -> s {message = a} :: FileSystemFailureDetails)++instance Data.FromJSON FileSystemFailureDetails where+  parseJSON =+    Data.withObject+      "FileSystemFailureDetails"+      ( \x ->+          FileSystemFailureDetails'+            Prelude.<$> (x Data..:? "Message")+      )++instance Prelude.Hashable FileSystemFailureDetails where+  hashWithSalt _salt FileSystemFailureDetails' {..} =+    _salt `Prelude.hashWithSalt` message++instance Prelude.NFData FileSystemFailureDetails where+  rnf FileSystemFailureDetails' {..} =+    Prelude.rnf message
+ gen/Amazonka/FSx/Types/FileSystemLifecycle.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FileSystemLifecycle+-- 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.FileSystemLifecycle+  ( FileSystemLifecycle+      ( ..,+        FileSystemLifecycle_AVAILABLE,+        FileSystemLifecycle_CREATING,+        FileSystemLifecycle_DELETING,+        FileSystemLifecycle_FAILED,+        FileSystemLifecycle_MISCONFIGURED,+        FileSystemLifecycle_MISCONFIGURED_UNAVAILABLE,+        FileSystemLifecycle_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The lifecycle status of the file system.+newtype FileSystemLifecycle = FileSystemLifecycle'+  { fromFileSystemLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FileSystemLifecycle_AVAILABLE :: FileSystemLifecycle+pattern FileSystemLifecycle_AVAILABLE = FileSystemLifecycle' "AVAILABLE"++pattern FileSystemLifecycle_CREATING :: FileSystemLifecycle+pattern FileSystemLifecycle_CREATING = FileSystemLifecycle' "CREATING"++pattern FileSystemLifecycle_DELETING :: FileSystemLifecycle+pattern FileSystemLifecycle_DELETING = FileSystemLifecycle' "DELETING"++pattern FileSystemLifecycle_FAILED :: FileSystemLifecycle+pattern FileSystemLifecycle_FAILED = FileSystemLifecycle' "FAILED"++pattern FileSystemLifecycle_MISCONFIGURED :: FileSystemLifecycle+pattern FileSystemLifecycle_MISCONFIGURED = FileSystemLifecycle' "MISCONFIGURED"++pattern FileSystemLifecycle_MISCONFIGURED_UNAVAILABLE :: FileSystemLifecycle+pattern FileSystemLifecycle_MISCONFIGURED_UNAVAILABLE = FileSystemLifecycle' "MISCONFIGURED_UNAVAILABLE"++pattern FileSystemLifecycle_UPDATING :: FileSystemLifecycle+pattern FileSystemLifecycle_UPDATING = FileSystemLifecycle' "UPDATING"++{-# COMPLETE+  FileSystemLifecycle_AVAILABLE,+  FileSystemLifecycle_CREATING,+  FileSystemLifecycle_DELETING,+  FileSystemLifecycle_FAILED,+  FileSystemLifecycle_MISCONFIGURED,+  FileSystemLifecycle_MISCONFIGURED_UNAVAILABLE,+  FileSystemLifecycle_UPDATING,+  FileSystemLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/FileSystemMaintenanceOperation.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FileSystemMaintenanceOperation+-- 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.FileSystemMaintenanceOperation+  ( FileSystemMaintenanceOperation+      ( ..,+        FileSystemMaintenanceOperation_BACKING_UP,+        FileSystemMaintenanceOperation_PATCHING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An enumeration specifying the currently ongoing maintenance operation.+newtype FileSystemMaintenanceOperation = FileSystemMaintenanceOperation'+  { fromFileSystemMaintenanceOperation ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FileSystemMaintenanceOperation_BACKING_UP :: FileSystemMaintenanceOperation+pattern FileSystemMaintenanceOperation_BACKING_UP = FileSystemMaintenanceOperation' "BACKING_UP"++pattern FileSystemMaintenanceOperation_PATCHING :: FileSystemMaintenanceOperation+pattern FileSystemMaintenanceOperation_PATCHING = FileSystemMaintenanceOperation' "PATCHING"++{-# COMPLETE+  FileSystemMaintenanceOperation_BACKING_UP,+  FileSystemMaintenanceOperation_PATCHING,+  FileSystemMaintenanceOperation'+  #-}
+ gen/Amazonka/FSx/Types/FileSystemType.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FileSystemType+-- 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.FileSystemType+  ( FileSystemType+      ( ..,+        FileSystemType_LUSTRE,+        FileSystemType_ONTAP,+        FileSystemType_OPENZFS,+        FileSystemType_WINDOWS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of file system.+newtype FileSystemType = FileSystemType'+  { fromFileSystemType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FileSystemType_LUSTRE :: FileSystemType+pattern FileSystemType_LUSTRE = FileSystemType' "LUSTRE"++pattern FileSystemType_ONTAP :: FileSystemType+pattern FileSystemType_ONTAP = FileSystemType' "ONTAP"++pattern FileSystemType_OPENZFS :: FileSystemType+pattern FileSystemType_OPENZFS = FileSystemType' "OPENZFS"++pattern FileSystemType_WINDOWS :: FileSystemType+pattern FileSystemType_WINDOWS = FileSystemType' "WINDOWS"++{-# COMPLETE+  FileSystemType_LUSTRE,+  FileSystemType_ONTAP,+  FileSystemType_OPENZFS,+  FileSystemType_WINDOWS,+  FileSystemType'+  #-}
+ gen/Amazonka/FSx/Types/Filter.hs view
@@ -0,0 +1,88 @@+{-# 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.Filter+-- 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.Filter 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.FilterName+import qualified Amazonka.Prelude as Prelude++-- | A filter used to restrict the results of describe calls. You can use+-- multiple filters to return results that meet all applied filter+-- requirements.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+  { -- | The name for this filter.+    name :: Prelude.Maybe FilterName,+    -- | The values of the filter. These are all the values for any of the+    -- applied filters.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' 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:+--+-- 'name', 'filter_name' - The name for this filter.+--+-- 'values', 'filter_values' - The values of the filter. These are all the values for any of the+-- applied filters.+newFilter ::+  Filter+newFilter =+  Filter'+    { name = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The name for this filter.+filter_name :: Lens.Lens' Filter (Prelude.Maybe FilterName)+filter_name = Lens.lens (\Filter' {name} -> name) (\s@Filter' {} a -> s {name = a} :: Filter)++-- | The values of the filter. These are all the values for any of the+-- applied filters.+filter_values :: Lens.Lens' Filter (Prelude.Maybe [Prelude.Text])+filter_values = Lens.lens (\Filter' {values} -> values) (\s@Filter' {} a -> s {values = a} :: Filter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable Filter where+  hashWithSalt _salt Filter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData Filter where+  rnf Filter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON Filter where+  toJSON Filter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/FSx/Types/FilterName.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FilterName+-- 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.FilterName+  ( FilterName+      ( ..,+        FilterName_Backup_type,+        FilterName_Data_repository_type,+        FilterName_File_cache_id,+        FilterName_File_cache_type,+        FilterName_File_system_id,+        FilterName_File_system_type,+        FilterName_Volume_id+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The name for a filter.+newtype FilterName = FilterName'+  { fromFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FilterName_Backup_type :: FilterName+pattern FilterName_Backup_type = FilterName' "backup-type"++pattern FilterName_Data_repository_type :: FilterName+pattern FilterName_Data_repository_type = FilterName' "data-repository-type"++pattern FilterName_File_cache_id :: FilterName+pattern FilterName_File_cache_id = FilterName' "file-cache-id"++pattern FilterName_File_cache_type :: FilterName+pattern FilterName_File_cache_type = FilterName' "file-cache-type"++pattern FilterName_File_system_id :: FilterName+pattern FilterName_File_system_id = FilterName' "file-system-id"++pattern FilterName_File_system_type :: FilterName+pattern FilterName_File_system_type = FilterName' "file-system-type"++pattern FilterName_Volume_id :: FilterName+pattern FilterName_Volume_id = FilterName' "volume-id"++{-# COMPLETE+  FilterName_Backup_type,+  FilterName_Data_repository_type,+  FilterName_File_cache_id,+  FilterName_File_cache_type,+  FilterName_File_system_id,+  FilterName_File_system_type,+  FilterName_Volume_id,+  FilterName'+  #-}
+ gen/Amazonka/FSx/Types/FlexCacheEndpointType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.FlexCacheEndpointType+-- 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.FlexCacheEndpointType+  ( FlexCacheEndpointType+      ( ..,+        FlexCacheEndpointType_CACHE,+        FlexCacheEndpointType_NONE,+        FlexCacheEndpointType_ORIGIN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FlexCacheEndpointType = FlexCacheEndpointType'+  { fromFlexCacheEndpointType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FlexCacheEndpointType_CACHE :: FlexCacheEndpointType+pattern FlexCacheEndpointType_CACHE = FlexCacheEndpointType' "CACHE"++pattern FlexCacheEndpointType_NONE :: FlexCacheEndpointType+pattern FlexCacheEndpointType_NONE = FlexCacheEndpointType' "NONE"++pattern FlexCacheEndpointType_ORIGIN :: FlexCacheEndpointType+pattern FlexCacheEndpointType_ORIGIN = FlexCacheEndpointType' "ORIGIN"++{-# COMPLETE+  FlexCacheEndpointType_CACHE,+  FlexCacheEndpointType_NONE,+  FlexCacheEndpointType_ORIGIN,+  FlexCacheEndpointType'+  #-}
+ gen/Amazonka/FSx/Types/InputOntapVolumeType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.InputOntapVolumeType+-- 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.InputOntapVolumeType+  ( InputOntapVolumeType+      ( ..,+        InputOntapVolumeType_DP,+        InputOntapVolumeType_RW+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InputOntapVolumeType = InputOntapVolumeType'+  { fromInputOntapVolumeType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern InputOntapVolumeType_DP :: InputOntapVolumeType+pattern InputOntapVolumeType_DP = InputOntapVolumeType' "DP"++pattern InputOntapVolumeType_RW :: InputOntapVolumeType+pattern InputOntapVolumeType_RW = InputOntapVolumeType' "RW"++{-# COMPLETE+  InputOntapVolumeType_DP,+  InputOntapVolumeType_RW,+  InputOntapVolumeType'+  #-}
+ gen/Amazonka/FSx/Types/LifecycleTransitionReason.hs view
@@ -0,0 +1,71 @@+{-# 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.LifecycleTransitionReason+-- 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.LifecycleTransitionReason 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++-- | Describes why a resource lifecycle state changed.+--+-- /See:/ 'newLifecycleTransitionReason' smart constructor.+data LifecycleTransitionReason = LifecycleTransitionReason'+  { message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifecycleTransitionReason' 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:+--+-- 'message', 'lifecycleTransitionReason_message' - Undocumented member.+newLifecycleTransitionReason ::+  LifecycleTransitionReason+newLifecycleTransitionReason =+  LifecycleTransitionReason'+    { message =+        Prelude.Nothing+    }++-- | Undocumented member.+lifecycleTransitionReason_message :: Lens.Lens' LifecycleTransitionReason (Prelude.Maybe Prelude.Text)+lifecycleTransitionReason_message = Lens.lens (\LifecycleTransitionReason' {message} -> message) (\s@LifecycleTransitionReason' {} a -> s {message = a} :: LifecycleTransitionReason)++instance Data.FromJSON LifecycleTransitionReason where+  parseJSON =+    Data.withObject+      "LifecycleTransitionReason"+      ( \x ->+          LifecycleTransitionReason'+            Prelude.<$> (x Data..:? "Message")+      )++instance Prelude.Hashable LifecycleTransitionReason where+  hashWithSalt _salt LifecycleTransitionReason' {..} =+    _salt `Prelude.hashWithSalt` message++instance Prelude.NFData LifecycleTransitionReason where+  rnf LifecycleTransitionReason' {..} =+    Prelude.rnf message
+ gen/Amazonka/FSx/Types/LustreAccessAuditLogLevel.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.LustreAccessAuditLogLevel+-- 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.LustreAccessAuditLogLevel+  ( LustreAccessAuditLogLevel+      ( ..,+        LustreAccessAuditLogLevel_DISABLED,+        LustreAccessAuditLogLevel_ERROR_ONLY,+        LustreAccessAuditLogLevel_WARN_ERROR,+        LustreAccessAuditLogLevel_WARN_ONLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LustreAccessAuditLogLevel = LustreAccessAuditLogLevel'+  { fromLustreAccessAuditLogLevel ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern LustreAccessAuditLogLevel_DISABLED :: LustreAccessAuditLogLevel+pattern LustreAccessAuditLogLevel_DISABLED = LustreAccessAuditLogLevel' "DISABLED"++pattern LustreAccessAuditLogLevel_ERROR_ONLY :: LustreAccessAuditLogLevel+pattern LustreAccessAuditLogLevel_ERROR_ONLY = LustreAccessAuditLogLevel' "ERROR_ONLY"++pattern LustreAccessAuditLogLevel_WARN_ERROR :: LustreAccessAuditLogLevel+pattern LustreAccessAuditLogLevel_WARN_ERROR = LustreAccessAuditLogLevel' "WARN_ERROR"++pattern LustreAccessAuditLogLevel_WARN_ONLY :: LustreAccessAuditLogLevel+pattern LustreAccessAuditLogLevel_WARN_ONLY = LustreAccessAuditLogLevel' "WARN_ONLY"++{-# COMPLETE+  LustreAccessAuditLogLevel_DISABLED,+  LustreAccessAuditLogLevel_ERROR_ONLY,+  LustreAccessAuditLogLevel_WARN_ERROR,+  LustreAccessAuditLogLevel_WARN_ONLY,+  LustreAccessAuditLogLevel'+  #-}
+ gen/Amazonka/FSx/Types/LustreDeploymentType.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.LustreDeploymentType+-- 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.LustreDeploymentType+  ( LustreDeploymentType+      ( ..,+        LustreDeploymentType_PERSISTENT_1,+        LustreDeploymentType_PERSISTENT_2,+        LustreDeploymentType_SCRATCH_1,+        LustreDeploymentType_SCRATCH_2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LustreDeploymentType = LustreDeploymentType'+  { fromLustreDeploymentType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern LustreDeploymentType_PERSISTENT_1 :: LustreDeploymentType+pattern LustreDeploymentType_PERSISTENT_1 = LustreDeploymentType' "PERSISTENT_1"++pattern LustreDeploymentType_PERSISTENT_2 :: LustreDeploymentType+pattern LustreDeploymentType_PERSISTENT_2 = LustreDeploymentType' "PERSISTENT_2"++pattern LustreDeploymentType_SCRATCH_1 :: LustreDeploymentType+pattern LustreDeploymentType_SCRATCH_1 = LustreDeploymentType' "SCRATCH_1"++pattern LustreDeploymentType_SCRATCH_2 :: LustreDeploymentType+pattern LustreDeploymentType_SCRATCH_2 = LustreDeploymentType' "SCRATCH_2"++{-# COMPLETE+  LustreDeploymentType_PERSISTENT_1,+  LustreDeploymentType_PERSISTENT_2,+  LustreDeploymentType_SCRATCH_1,+  LustreDeploymentType_SCRATCH_2,+  LustreDeploymentType'+  #-}
+ gen/Amazonka/FSx/Types/LustreFileSystemConfiguration.hs view
@@ -0,0 +1,390 @@+{-# 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.LustreFileSystemConfiguration+-- 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.LustreFileSystemConfiguration 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.DataCompressionType+import Amazonka.FSx.Types.DataRepositoryConfiguration+import Amazonka.FSx.Types.DriveCacheType+import Amazonka.FSx.Types.LustreDeploymentType+import Amazonka.FSx.Types.LustreLogConfiguration+import Amazonka.FSx.Types.LustreRootSquashConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration for the Amazon FSx for Lustre file system.+--+-- /See:/ 'newLustreFileSystemConfiguration' smart constructor.+data LustreFileSystemConfiguration = LustreFileSystemConfiguration'+  { automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | A boolean flag indicating whether tags on the file system are copied to+    -- backups. If it\'s set to true, all tags on the file system are copied to+    -- all automatic backups and any user-initiated backups where the user+    -- doesn\'t specify any tags. If this value is true, and you specify one or+    -- more tags, only the specified tags are copied to backups. If you specify+    -- one or more tags when creating a user-initiated backup, no tags are+    -- copied from the file system, regardless of this value. (Default = false)+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | 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.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>.+    dataCompressionType :: Prelude.Maybe DataCompressionType,+    dataRepositoryConfiguration :: Prelude.Maybe DataRepositoryConfiguration,+    -- | The deployment type of the FSx for Lustre file system. /Scratch+    -- deployment type/ is designed for temporary storage and shorter-term+    -- processing of data.+    --+    -- @SCRATCH_1@ and @SCRATCH_2@ deployment types are best suited for when+    -- you need temporary storage and shorter-term processing of data. The+    -- @SCRATCH_2@ deployment type provides in-transit encryption of data and+    -- higher burst throughput capacity than @SCRATCH_1@.+    --+    -- The @PERSISTENT_1@ and @PERSISTENT_2@ deployment type is used for+    -- longer-term storage and workloads and encryption of data in transit.+    -- @PERSISTENT_2@ is built on Lustre v2.12 and offers higher+    -- @PerUnitStorageThroughput@ (up to 1000 MB\/s\/TiB) along with a lower+    -- minimum storage capacity requirement (600 GiB). To learn more about FSx+    -- for Lustre deployment types, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/lustre-deployment-types.html FSx for Lustre deployment options>.+    --+    -- The default is @SCRATCH_1@.+    deploymentType :: Prelude.Maybe LustreDeploymentType,+    -- | The type of drive cache used by @PERSISTENT_1@ file systems that are+    -- provisioned with HDD storage devices. This parameter is required when+    -- @StorageType@ is HDD. When set to @READ@ the file system has an SSD+    -- storage cache that is sized to 20% of the file system\'s storage+    -- capacity. This improves the performance for frequently accessed files by+    -- caching up to 20% of the total storage capacity.+    --+    -- This parameter is required when @StorageType@ is set to HDD.+    driveCacheType :: Prelude.Maybe DriveCacheType,+    -- | The Lustre logging configuration. Lustre logging writes the enabled log+    -- events for your file system to Amazon CloudWatch Logs.+    logConfiguration :: Prelude.Maybe LustreLogConfiguration,+    -- | You use the @MountName@ value when mounting the file system.+    --+    -- For the @SCRATCH_1@ deployment type, this value is always \"@fsx@\". For+    -- @SCRATCH_2@, @PERSISTENT_1@, and @PERSISTENT_2@ deployment types, this+    -- value is a string that is unique within an Amazon Web Services Region.+    mountName :: Prelude.Maybe Prelude.Text,+    -- | Per unit storage throughput represents the megabytes per second of read+    -- or write throughput per 1 tebibyte of storage provisioned. File system+    -- throughput capacity is equal to Storage capacity (TiB) *+    -- PerUnitStorageThroughput (MB\/s\/TiB). This option is only valid for+    -- @PERSISTENT_1@ and @PERSISTENT_2@ deployment types.+    --+    -- Valid values:+    --+    -- -   For @PERSISTENT_1@ SSD storage: 50, 100, 200.+    --+    -- -   For @PERSISTENT_1@ HDD storage: 12, 40.+    --+    -- -   For @PERSISTENT_2@ SSD storage: 125, 250, 500, 1000.+    perUnitStorageThroughput :: Prelude.Maybe Prelude.Natural,+    -- | The Lustre root squash configuration for 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,+    -- | The preferred start time to perform weekly maintenance, formatted+    -- d:HH:MM in the UTC time zone. Here, @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 'LustreFileSystemConfiguration' 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:+--+-- 'automaticBackupRetentionDays', 'lustreFileSystemConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'copyTagsToBackups', 'lustreFileSystemConfiguration_copyTagsToBackups' - A boolean flag indicating whether tags on the file system are copied to+-- backups. If it\'s set to true, all tags on the file system are copied to+-- all automatic backups and any user-initiated backups where the user+-- doesn\'t specify any tags. If this value is true, and you specify one or+-- more tags, only the specified tags are copied to backups. If you specify+-- one or more tags when creating a user-initiated backup, no tags are+-- copied from the file system, regardless of this value. (Default = false)+--+-- 'dailyAutomaticBackupStartTime', 'lustreFileSystemConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'dataCompressionType', 'lustreFileSystemConfiguration_dataCompressionType' - 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.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>.+--+-- 'dataRepositoryConfiguration', 'lustreFileSystemConfiguration_dataRepositoryConfiguration' - Undocumented member.+--+-- 'deploymentType', 'lustreFileSystemConfiguration_deploymentType' - The deployment type of the FSx for Lustre file system. /Scratch+-- deployment type/ is designed for temporary storage and shorter-term+-- processing of data.+--+-- @SCRATCH_1@ and @SCRATCH_2@ deployment types are best suited for when+-- you need temporary storage and shorter-term processing of data. The+-- @SCRATCH_2@ deployment type provides in-transit encryption of data and+-- higher burst throughput capacity than @SCRATCH_1@.+--+-- The @PERSISTENT_1@ and @PERSISTENT_2@ deployment type is used for+-- longer-term storage and workloads and encryption of data in transit.+-- @PERSISTENT_2@ is built on Lustre v2.12 and offers higher+-- @PerUnitStorageThroughput@ (up to 1000 MB\/s\/TiB) along with a lower+-- minimum storage capacity requirement (600 GiB). To learn more about FSx+-- for Lustre deployment types, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/lustre-deployment-types.html FSx for Lustre deployment options>.+--+-- The default is @SCRATCH_1@.+--+-- 'driveCacheType', 'lustreFileSystemConfiguration_driveCacheType' - The type of drive cache used by @PERSISTENT_1@ file systems that are+-- provisioned with HDD storage devices. This parameter is required when+-- @StorageType@ is HDD. When set to @READ@ the file system has an SSD+-- storage cache that is sized to 20% of the file system\'s storage+-- capacity. This improves the performance for frequently accessed files by+-- caching up to 20% of the total storage capacity.+--+-- This parameter is required when @StorageType@ is set to HDD.+--+-- 'logConfiguration', 'lustreFileSystemConfiguration_logConfiguration' - The Lustre logging configuration. Lustre logging writes the enabled log+-- events for your file system to Amazon CloudWatch Logs.+--+-- 'mountName', 'lustreFileSystemConfiguration_mountName' - You use the @MountName@ value when mounting the file system.+--+-- For the @SCRATCH_1@ deployment type, this value is always \"@fsx@\". For+-- @SCRATCH_2@, @PERSISTENT_1@, and @PERSISTENT_2@ deployment types, this+-- value is a string that is unique within an Amazon Web Services Region.+--+-- 'perUnitStorageThroughput', 'lustreFileSystemConfiguration_perUnitStorageThroughput' - Per unit storage throughput represents the megabytes per second of read+-- or write throughput per 1 tebibyte of storage provisioned. File system+-- throughput capacity is equal to Storage capacity (TiB) *+-- PerUnitStorageThroughput (MB\/s\/TiB). This option is only valid for+-- @PERSISTENT_1@ and @PERSISTENT_2@ deployment types.+--+-- Valid values:+--+-- -   For @PERSISTENT_1@ SSD storage: 50, 100, 200.+--+-- -   For @PERSISTENT_1@ HDD storage: 12, 40.+--+-- -   For @PERSISTENT_2@ SSD storage: 125, 250, 500, 1000.+--+-- 'rootSquashConfiguration', 'lustreFileSystemConfiguration_rootSquashConfiguration' - The Lustre root squash configuration for 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', 'lustreFileSystemConfiguration_weeklyMaintenanceStartTime' - The preferred start time to perform weekly maintenance, formatted+-- d:HH:MM in the UTC time zone. Here, @d@ is the weekday number, from 1+-- through 7, beginning with Monday and ending with Sunday.+newLustreFileSystemConfiguration ::+  LustreFileSystemConfiguration+newLustreFileSystemConfiguration =+  LustreFileSystemConfiguration'+    { automaticBackupRetentionDays =+        Prelude.Nothing,+      copyTagsToBackups = Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      dataCompressionType = Prelude.Nothing,+      dataRepositoryConfiguration =+        Prelude.Nothing,+      deploymentType = Prelude.Nothing,+      driveCacheType = Prelude.Nothing,+      logConfiguration = Prelude.Nothing,+      mountName = Prelude.Nothing,+      perUnitStorageThroughput = Prelude.Nothing,+      rootSquashConfiguration = Prelude.Nothing,+      weeklyMaintenanceStartTime = Prelude.Nothing+    }++-- | Undocumented member.+lustreFileSystemConfiguration_automaticBackupRetentionDays :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+lustreFileSystemConfiguration_automaticBackupRetentionDays = Lens.lens (\LustreFileSystemConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@LustreFileSystemConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: LustreFileSystemConfiguration)++-- | A boolean flag indicating whether tags on the file system are copied to+-- backups. If it\'s set to true, all tags on the file system are copied to+-- all automatic backups and any user-initiated backups where the user+-- doesn\'t specify any tags. If this value is true, and you specify one or+-- more tags, only the specified tags are copied to backups. If you specify+-- one or more tags when creating a user-initiated backup, no tags are+-- copied from the file system, regardless of this value. (Default = false)+lustreFileSystemConfiguration_copyTagsToBackups :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe Prelude.Bool)+lustreFileSystemConfiguration_copyTagsToBackups = Lens.lens (\LustreFileSystemConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@LustreFileSystemConfiguration' {} a -> s {copyTagsToBackups = a} :: LustreFileSystemConfiguration)++-- | Undocumented member.+lustreFileSystemConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe Prelude.Text)+lustreFileSystemConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\LustreFileSystemConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@LustreFileSystemConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: LustreFileSystemConfiguration)++-- | 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.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html Lustre data compression>.+lustreFileSystemConfiguration_dataCompressionType :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe DataCompressionType)+lustreFileSystemConfiguration_dataCompressionType = Lens.lens (\LustreFileSystemConfiguration' {dataCompressionType} -> dataCompressionType) (\s@LustreFileSystemConfiguration' {} a -> s {dataCompressionType = a} :: LustreFileSystemConfiguration)++-- | Undocumented member.+lustreFileSystemConfiguration_dataRepositoryConfiguration :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe DataRepositoryConfiguration)+lustreFileSystemConfiguration_dataRepositoryConfiguration = Lens.lens (\LustreFileSystemConfiguration' {dataRepositoryConfiguration} -> dataRepositoryConfiguration) (\s@LustreFileSystemConfiguration' {} a -> s {dataRepositoryConfiguration = a} :: LustreFileSystemConfiguration)++-- | The deployment type of the FSx for Lustre file system. /Scratch+-- deployment type/ is designed for temporary storage and shorter-term+-- processing of data.+--+-- @SCRATCH_1@ and @SCRATCH_2@ deployment types are best suited for when+-- you need temporary storage and shorter-term processing of data. The+-- @SCRATCH_2@ deployment type provides in-transit encryption of data and+-- higher burst throughput capacity than @SCRATCH_1@.+--+-- The @PERSISTENT_1@ and @PERSISTENT_2@ deployment type is used for+-- longer-term storage and workloads and encryption of data in transit.+-- @PERSISTENT_2@ is built on Lustre v2.12 and offers higher+-- @PerUnitStorageThroughput@ (up to 1000 MB\/s\/TiB) along with a lower+-- minimum storage capacity requirement (600 GiB). To learn more about FSx+-- for Lustre deployment types, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/lustre-deployment-types.html FSx for Lustre deployment options>.+--+-- The default is @SCRATCH_1@.+lustreFileSystemConfiguration_deploymentType :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe LustreDeploymentType)+lustreFileSystemConfiguration_deploymentType = Lens.lens (\LustreFileSystemConfiguration' {deploymentType} -> deploymentType) (\s@LustreFileSystemConfiguration' {} a -> s {deploymentType = a} :: LustreFileSystemConfiguration)++-- | The type of drive cache used by @PERSISTENT_1@ file systems that are+-- provisioned with HDD storage devices. This parameter is required when+-- @StorageType@ is HDD. When set to @READ@ the file system has an SSD+-- storage cache that is sized to 20% of the file system\'s storage+-- capacity. This improves the performance for frequently accessed files by+-- caching up to 20% of the total storage capacity.+--+-- This parameter is required when @StorageType@ is set to HDD.+lustreFileSystemConfiguration_driveCacheType :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe DriveCacheType)+lustreFileSystemConfiguration_driveCacheType = Lens.lens (\LustreFileSystemConfiguration' {driveCacheType} -> driveCacheType) (\s@LustreFileSystemConfiguration' {} a -> s {driveCacheType = a} :: LustreFileSystemConfiguration)++-- | The Lustre logging configuration. Lustre logging writes the enabled log+-- events for your file system to Amazon CloudWatch Logs.+lustreFileSystemConfiguration_logConfiguration :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe LustreLogConfiguration)+lustreFileSystemConfiguration_logConfiguration = Lens.lens (\LustreFileSystemConfiguration' {logConfiguration} -> logConfiguration) (\s@LustreFileSystemConfiguration' {} a -> s {logConfiguration = a} :: LustreFileSystemConfiguration)++-- | You use the @MountName@ value when mounting the file system.+--+-- For the @SCRATCH_1@ deployment type, this value is always \"@fsx@\". For+-- @SCRATCH_2@, @PERSISTENT_1@, and @PERSISTENT_2@ deployment types, this+-- value is a string that is unique within an Amazon Web Services Region.+lustreFileSystemConfiguration_mountName :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe Prelude.Text)+lustreFileSystemConfiguration_mountName = Lens.lens (\LustreFileSystemConfiguration' {mountName} -> mountName) (\s@LustreFileSystemConfiguration' {} a -> s {mountName = a} :: LustreFileSystemConfiguration)++-- | Per unit storage throughput represents the megabytes per second of read+-- or write throughput per 1 tebibyte of storage provisioned. File system+-- throughput capacity is equal to Storage capacity (TiB) *+-- PerUnitStorageThroughput (MB\/s\/TiB). This option is only valid for+-- @PERSISTENT_1@ and @PERSISTENT_2@ deployment types.+--+-- Valid values:+--+-- -   For @PERSISTENT_1@ SSD storage: 50, 100, 200.+--+-- -   For @PERSISTENT_1@ HDD storage: 12, 40.+--+-- -   For @PERSISTENT_2@ SSD storage: 125, 250, 500, 1000.+lustreFileSystemConfiguration_perUnitStorageThroughput :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+lustreFileSystemConfiguration_perUnitStorageThroughput = Lens.lens (\LustreFileSystemConfiguration' {perUnitStorageThroughput} -> perUnitStorageThroughput) (\s@LustreFileSystemConfiguration' {} a -> s {perUnitStorageThroughput = a} :: LustreFileSystemConfiguration)++-- | The Lustre root squash configuration for 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.+lustreFileSystemConfiguration_rootSquashConfiguration :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe LustreRootSquashConfiguration)+lustreFileSystemConfiguration_rootSquashConfiguration = Lens.lens (\LustreFileSystemConfiguration' {rootSquashConfiguration} -> rootSquashConfiguration) (\s@LustreFileSystemConfiguration' {} a -> s {rootSquashConfiguration = a} :: LustreFileSystemConfiguration)++-- | The preferred start time to perform weekly maintenance, formatted+-- d:HH:MM in the UTC time zone. Here, @d@ is the weekday number, from 1+-- through 7, beginning with Monday and ending with Sunday.+lustreFileSystemConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' LustreFileSystemConfiguration (Prelude.Maybe Prelude.Text)+lustreFileSystemConfiguration_weeklyMaintenanceStartTime = Lens.lens (\LustreFileSystemConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@LustreFileSystemConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: LustreFileSystemConfiguration)++instance Data.FromJSON LustreFileSystemConfiguration where+  parseJSON =+    Data.withObject+      "LustreFileSystemConfiguration"+      ( \x ->+          LustreFileSystemConfiguration'+            Prelude.<$> (x Data..:? "AutomaticBackupRetentionDays")+            Prelude.<*> (x Data..:? "CopyTagsToBackups")+            Prelude.<*> (x Data..:? "DailyAutomaticBackupStartTime")+            Prelude.<*> (x Data..:? "DataCompressionType")+            Prelude.<*> (x Data..:? "DataRepositoryConfiguration")+            Prelude.<*> (x Data..:? "DeploymentType")+            Prelude.<*> (x Data..:? "DriveCacheType")+            Prelude.<*> (x Data..:? "LogConfiguration")+            Prelude.<*> (x Data..:? "MountName")+            Prelude.<*> (x Data..:? "PerUnitStorageThroughput")+            Prelude.<*> (x Data..:? "RootSquashConfiguration")+            Prelude.<*> (x Data..:? "WeeklyMaintenanceStartTime")+      )++instance+  Prelude.Hashable+    LustreFileSystemConfiguration+  where+  hashWithSalt _salt LustreFileSystemConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` automaticBackupRetentionDays+      `Prelude.hashWithSalt` copyTagsToBackups+      `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+      `Prelude.hashWithSalt` dataCompressionType+      `Prelude.hashWithSalt` dataRepositoryConfiguration+      `Prelude.hashWithSalt` deploymentType+      `Prelude.hashWithSalt` driveCacheType+      `Prelude.hashWithSalt` logConfiguration+      `Prelude.hashWithSalt` mountName+      `Prelude.hashWithSalt` perUnitStorageThroughput+      `Prelude.hashWithSalt` rootSquashConfiguration+      `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance Prelude.NFData LustreFileSystemConfiguration where+  rnf LustreFileSystemConfiguration' {..} =+    Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf dataCompressionType+      `Prelude.seq` Prelude.rnf dataRepositoryConfiguration+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf driveCacheType+      `Prelude.seq` Prelude.rnf logConfiguration+      `Prelude.seq` Prelude.rnf mountName+      `Prelude.seq` Prelude.rnf perUnitStorageThroughput+      `Prelude.seq` Prelude.rnf rootSquashConfiguration+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime
+ gen/Amazonka/FSx/Types/LustreLogConfiguration.hs view
@@ -0,0 +1,135 @@+{-# 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.LustreLogConfiguration+-- 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.LustreLogConfiguration 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.LustreAccessAuditLogLevel+import qualified Amazonka.Prelude as Prelude++-- | The configuration for Lustre logging used to write the enabled logging+-- events for your Amazon FSx for Lustre file system or Amazon File Cache+-- resource to Amazon CloudWatch Logs.+--+-- /See:/ 'newLustreLogConfiguration' smart constructor.+data LustreLogConfiguration = LustreLogConfiguration'+  { -- | The Amazon Resource Name (ARN) that specifies the destination of the+    -- logs. The destination can be any Amazon CloudWatch Logs log group ARN.+    -- The destination ARN must be in the same Amazon Web Services partition,+    -- Amazon Web Services Region, and Amazon Web Services account as your+    -- Amazon FSx file system.+    destination :: Prelude.Maybe Prelude.Text,+    -- | The data repository events that are logged by Amazon FSx.+    --+    -- -   @WARN_ONLY@ - only warning events are logged.+    --+    -- -   @ERROR_ONLY@ - only error events are logged.+    --+    -- -   @WARN_ERROR@ - both warning events and error events are logged.+    --+    -- -   @DISABLED@ - logging of data repository events is turned off.+    --+    -- Note that Amazon File Cache uses a default setting of @WARN_ERROR@,+    -- which can\'t be changed.+    level :: LustreAccessAuditLogLevel+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LustreLogConfiguration' 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:+--+-- 'destination', 'lustreLogConfiguration_destination' - The Amazon Resource Name (ARN) that specifies the destination of the+-- logs. The destination can be any Amazon CloudWatch Logs log group ARN.+-- The destination ARN must be in the same Amazon Web Services partition,+-- Amazon Web Services Region, and Amazon Web Services account as your+-- Amazon FSx file system.+--+-- 'level', 'lustreLogConfiguration_level' - The data repository events that are logged by Amazon FSx.+--+-- -   @WARN_ONLY@ - only warning events are logged.+--+-- -   @ERROR_ONLY@ - only error events are logged.+--+-- -   @WARN_ERROR@ - both warning events and error events are logged.+--+-- -   @DISABLED@ - logging of data repository events is turned off.+--+-- Note that Amazon File Cache uses a default setting of @WARN_ERROR@,+-- which can\'t be changed.+newLustreLogConfiguration ::+  -- | 'level'+  LustreAccessAuditLogLevel ->+  LustreLogConfiguration+newLustreLogConfiguration pLevel_ =+  LustreLogConfiguration'+    { destination =+        Prelude.Nothing,+      level = pLevel_+    }++-- | The Amazon Resource Name (ARN) that specifies the destination of the+-- logs. The destination can be any Amazon CloudWatch Logs log group ARN.+-- The destination ARN must be in the same Amazon Web Services partition,+-- Amazon Web Services Region, and Amazon Web Services account as your+-- Amazon FSx file system.+lustreLogConfiguration_destination :: Lens.Lens' LustreLogConfiguration (Prelude.Maybe Prelude.Text)+lustreLogConfiguration_destination = Lens.lens (\LustreLogConfiguration' {destination} -> destination) (\s@LustreLogConfiguration' {} a -> s {destination = a} :: LustreLogConfiguration)++-- | The data repository events that are logged by Amazon FSx.+--+-- -   @WARN_ONLY@ - only warning events are logged.+--+-- -   @ERROR_ONLY@ - only error events are logged.+--+-- -   @WARN_ERROR@ - both warning events and error events are logged.+--+-- -   @DISABLED@ - logging of data repository events is turned off.+--+-- Note that Amazon File Cache uses a default setting of @WARN_ERROR@,+-- which can\'t be changed.+lustreLogConfiguration_level :: Lens.Lens' LustreLogConfiguration LustreAccessAuditLogLevel+lustreLogConfiguration_level = Lens.lens (\LustreLogConfiguration' {level} -> level) (\s@LustreLogConfiguration' {} a -> s {level = a} :: LustreLogConfiguration)++instance Data.FromJSON LustreLogConfiguration where+  parseJSON =+    Data.withObject+      "LustreLogConfiguration"+      ( \x ->+          LustreLogConfiguration'+            Prelude.<$> (x Data..:? "Destination")+            Prelude.<*> (x Data..: "Level")+      )++instance Prelude.Hashable LustreLogConfiguration where+  hashWithSalt _salt LustreLogConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` level++instance Prelude.NFData LustreLogConfiguration where+  rnf LustreLogConfiguration' {..} =+    Prelude.rnf destination+      `Prelude.seq` Prelude.rnf level
+ gen/Amazonka/FSx/Types/LustreLogCreateConfiguration.hs view
@@ -0,0 +1,186 @@+{-# 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.LustreLogCreateConfiguration+-- 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.LustreLogCreateConfiguration 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.LustreAccessAuditLogLevel+import qualified Amazonka.Prelude as Prelude++-- | The Lustre logging configuration used when creating or updating an+-- Amazon FSx for Lustre file system. An Amazon File Cache is created with+-- Lustre logging enabled by default, with a setting of @WARN_ERROR@ for+-- the logging events. which can\'t be changed.+--+-- Lustre logging writes the enabled logging events for your file system or+-- cache to Amazon CloudWatch Logs.+--+-- /See:/ 'newLustreLogCreateConfiguration' smart constructor.+data LustreLogCreateConfiguration = LustreLogCreateConfiguration'+  { -- | The Amazon Resource Name (ARN) that specifies the destination of the+    -- logs.+    --+    -- The destination can be any Amazon CloudWatch Logs log group ARN, with+    -- the following requirements:+    --+    -- -   The destination ARN that you provide must be in the same Amazon Web+    --     Services partition, Amazon Web Services Region, and Amazon Web+    --     Services account as your Amazon FSx file system.+    --+    -- -   The name of the Amazon CloudWatch Logs log group must begin with the+    --     @\/aws\/fsx@ prefix.+    --+    -- -   If you do not provide a destination, Amazon FSx will create and use+    --     a log stream in the CloudWatch Logs @\/aws\/fsx\/lustre@ log group+    --     (for Amazon FSx for Lustre) or @\/aws\/fsx\/filecache@ (for Amazon+    --     File Cache).+    --+    -- -   If @Destination@ is provided and the resource does not exist, the+    --     request will fail with a @BadRequest@ error.+    --+    -- -   If @Level@ is set to @DISABLED@, you cannot specify a destination in+    --     @Destination@.+    destination :: Prelude.Maybe Prelude.Text,+    -- | Sets which data repository events are logged by Amazon FSx.+    --+    -- -   @WARN_ONLY@ - only warning events are logged.+    --+    -- -   @ERROR_ONLY@ - only error events are logged.+    --+    -- -   @WARN_ERROR@ - both warning events and error events are logged.+    --+    -- -   @DISABLED@ - logging of data repository events is turned off.+    level :: LustreAccessAuditLogLevel+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LustreLogCreateConfiguration' 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:+--+-- 'destination', 'lustreLogCreateConfiguration_destination' - The Amazon Resource Name (ARN) that specifies the destination of the+-- logs.+--+-- The destination can be any Amazon CloudWatch Logs log group ARN, with+-- the following requirements:+--+-- -   The destination ARN that you provide must be in the same Amazon Web+--     Services partition, Amazon Web Services Region, and Amazon Web+--     Services account as your Amazon FSx file system.+--+-- -   The name of the Amazon CloudWatch Logs log group must begin with the+--     @\/aws\/fsx@ prefix.+--+-- -   If you do not provide a destination, Amazon FSx will create and use+--     a log stream in the CloudWatch Logs @\/aws\/fsx\/lustre@ log group+--     (for Amazon FSx for Lustre) or @\/aws\/fsx\/filecache@ (for Amazon+--     File Cache).+--+-- -   If @Destination@ is provided and the resource does not exist, the+--     request will fail with a @BadRequest@ error.+--+-- -   If @Level@ is set to @DISABLED@, you cannot specify a destination in+--     @Destination@.+--+-- 'level', 'lustreLogCreateConfiguration_level' - Sets which data repository events are logged by Amazon FSx.+--+-- -   @WARN_ONLY@ - only warning events are logged.+--+-- -   @ERROR_ONLY@ - only error events are logged.+--+-- -   @WARN_ERROR@ - both warning events and error events are logged.+--+-- -   @DISABLED@ - logging of data repository events is turned off.+newLustreLogCreateConfiguration ::+  -- | 'level'+  LustreAccessAuditLogLevel ->+  LustreLogCreateConfiguration+newLustreLogCreateConfiguration pLevel_ =+  LustreLogCreateConfiguration'+    { destination =+        Prelude.Nothing,+      level = pLevel_+    }++-- | The Amazon Resource Name (ARN) that specifies the destination of the+-- logs.+--+-- The destination can be any Amazon CloudWatch Logs log group ARN, with+-- the following requirements:+--+-- -   The destination ARN that you provide must be in the same Amazon Web+--     Services partition, Amazon Web Services Region, and Amazon Web+--     Services account as your Amazon FSx file system.+--+-- -   The name of the Amazon CloudWatch Logs log group must begin with the+--     @\/aws\/fsx@ prefix.+--+-- -   If you do not provide a destination, Amazon FSx will create and use+--     a log stream in the CloudWatch Logs @\/aws\/fsx\/lustre@ log group+--     (for Amazon FSx for Lustre) or @\/aws\/fsx\/filecache@ (for Amazon+--     File Cache).+--+-- -   If @Destination@ is provided and the resource does not exist, the+--     request will fail with a @BadRequest@ error.+--+-- -   If @Level@ is set to @DISABLED@, you cannot specify a destination in+--     @Destination@.+lustreLogCreateConfiguration_destination :: Lens.Lens' LustreLogCreateConfiguration (Prelude.Maybe Prelude.Text)+lustreLogCreateConfiguration_destination = Lens.lens (\LustreLogCreateConfiguration' {destination} -> destination) (\s@LustreLogCreateConfiguration' {} a -> s {destination = a} :: LustreLogCreateConfiguration)++-- | Sets which data repository events are logged by Amazon FSx.+--+-- -   @WARN_ONLY@ - only warning events are logged.+--+-- -   @ERROR_ONLY@ - only error events are logged.+--+-- -   @WARN_ERROR@ - both warning events and error events are logged.+--+-- -   @DISABLED@ - logging of data repository events is turned off.+lustreLogCreateConfiguration_level :: Lens.Lens' LustreLogCreateConfiguration LustreAccessAuditLogLevel+lustreLogCreateConfiguration_level = Lens.lens (\LustreLogCreateConfiguration' {level} -> level) (\s@LustreLogCreateConfiguration' {} a -> s {level = a} :: LustreLogCreateConfiguration)++instance+  Prelude.Hashable+    LustreLogCreateConfiguration+  where+  hashWithSalt _salt LustreLogCreateConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` level++instance Prelude.NFData LustreLogCreateConfiguration where+  rnf LustreLogCreateConfiguration' {..} =+    Prelude.rnf destination+      `Prelude.seq` Prelude.rnf level++instance Data.ToJSON LustreLogCreateConfiguration where+  toJSON LustreLogCreateConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Destination" Data..=) Prelude.<$> destination,+            Prelude.Just ("Level" Data..= level)+          ]+      )
+ gen/Amazonka/FSx/Types/LustreRootSquashConfiguration.hs view
@@ -0,0 +1,168 @@+{-# 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.LustreRootSquashConfiguration+-- 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.LustreRootSquashConfiguration 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++-- | The configuration for Lustre root squash used to restrict root-level+-- access from clients that try to access your FSx for Lustre file system+-- as root. Use the @RootSquash@ parameter to enable root squash. To learn+-- more about Lustre root squash, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/root-squash.html Lustre root squash>.+--+-- You can also use the @NoSquashNids@ parameter to provide an array of+-- clients who are not affected by the root squash setting. These clients+-- will access the file system as root, with unrestricted privileges.+--+-- /See:/ 'newLustreRootSquashConfiguration' smart constructor.+data LustreRootSquashConfiguration = LustreRootSquashConfiguration'+  { -- | When root squash is enabled, you can optionally specify an array of NIDs+    -- of clients for which root squash does not apply. A client NID is a+    -- Lustre Network Identifier used to uniquely identify a client. You can+    -- specify the NID as either a single address or a range of addresses:+    --+    -- -   A single address is described in standard Lustre NID format by+    --     specifying the client’s IP address followed by the Lustre network ID+    --     (for example, @10.0.1.6\@tcp@).+    --+    -- -   An address range is described using a dash to separate the range+    --     (for example, @10.0.[2-10].[1-255]\@tcp@).+    noSquashNids :: Prelude.Maybe [Prelude.Text],+    -- | You enable root squash by setting a user ID (UID) and group ID (GID) for+    -- the file system in the format @UID:GID@ (for example, @365534:65534@).+    -- The UID and GID values can range from @0@ to @4294967294@:+    --+    -- -   A non-zero value for UID and GID enables root squash. The UID and+    --     GID values can be different, but each must be a non-zero value.+    --+    -- -   A value of @0@ (zero) for UID and GID indicates root, and therefore+    --     disables root squash.+    --+    -- When root squash is enabled, the user ID and group ID of a root user+    -- accessing the file system are re-mapped to the UID and GID you provide.+    rootSquash :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LustreRootSquashConfiguration' 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:+--+-- 'noSquashNids', 'lustreRootSquashConfiguration_noSquashNids' - When root squash is enabled, you can optionally specify an array of NIDs+-- of clients for which root squash does not apply. A client NID is a+-- Lustre Network Identifier used to uniquely identify a client. You can+-- specify the NID as either a single address or a range of addresses:+--+-- -   A single address is described in standard Lustre NID format by+--     specifying the client’s IP address followed by the Lustre network ID+--     (for example, @10.0.1.6\@tcp@).+--+-- -   An address range is described using a dash to separate the range+--     (for example, @10.0.[2-10].[1-255]\@tcp@).+--+-- 'rootSquash', 'lustreRootSquashConfiguration_rootSquash' - You enable root squash by setting a user ID (UID) and group ID (GID) for+-- the file system in the format @UID:GID@ (for example, @365534:65534@).+-- The UID and GID values can range from @0@ to @4294967294@:+--+-- -   A non-zero value for UID and GID enables root squash. The UID and+--     GID values can be different, but each must be a non-zero value.+--+-- -   A value of @0@ (zero) for UID and GID indicates root, and therefore+--     disables root squash.+--+-- When root squash is enabled, the user ID and group ID of a root user+-- accessing the file system are re-mapped to the UID and GID you provide.+newLustreRootSquashConfiguration ::+  LustreRootSquashConfiguration+newLustreRootSquashConfiguration =+  LustreRootSquashConfiguration'+    { noSquashNids =+        Prelude.Nothing,+      rootSquash = Prelude.Nothing+    }++-- | When root squash is enabled, you can optionally specify an array of NIDs+-- of clients for which root squash does not apply. A client NID is a+-- Lustre Network Identifier used to uniquely identify a client. You can+-- specify the NID as either a single address or a range of addresses:+--+-- -   A single address is described in standard Lustre NID format by+--     specifying the client’s IP address followed by the Lustre network ID+--     (for example, @10.0.1.6\@tcp@).+--+-- -   An address range is described using a dash to separate the range+--     (for example, @10.0.[2-10].[1-255]\@tcp@).+lustreRootSquashConfiguration_noSquashNids :: Lens.Lens' LustreRootSquashConfiguration (Prelude.Maybe [Prelude.Text])+lustreRootSquashConfiguration_noSquashNids = Lens.lens (\LustreRootSquashConfiguration' {noSquashNids} -> noSquashNids) (\s@LustreRootSquashConfiguration' {} a -> s {noSquashNids = a} :: LustreRootSquashConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | You enable root squash by setting a user ID (UID) and group ID (GID) for+-- the file system in the format @UID:GID@ (for example, @365534:65534@).+-- The UID and GID values can range from @0@ to @4294967294@:+--+-- -   A non-zero value for UID and GID enables root squash. The UID and+--     GID values can be different, but each must be a non-zero value.+--+-- -   A value of @0@ (zero) for UID and GID indicates root, and therefore+--     disables root squash.+--+-- When root squash is enabled, the user ID and group ID of a root user+-- accessing the file system are re-mapped to the UID and GID you provide.+lustreRootSquashConfiguration_rootSquash :: Lens.Lens' LustreRootSquashConfiguration (Prelude.Maybe Prelude.Text)+lustreRootSquashConfiguration_rootSquash = Lens.lens (\LustreRootSquashConfiguration' {rootSquash} -> rootSquash) (\s@LustreRootSquashConfiguration' {} a -> s {rootSquash = a} :: LustreRootSquashConfiguration)++instance Data.FromJSON LustreRootSquashConfiguration where+  parseJSON =+    Data.withObject+      "LustreRootSquashConfiguration"+      ( \x ->+          LustreRootSquashConfiguration'+            Prelude.<$> (x Data..:? "NoSquashNids" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "RootSquash")+      )++instance+  Prelude.Hashable+    LustreRootSquashConfiguration+  where+  hashWithSalt _salt LustreRootSquashConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` noSquashNids+      `Prelude.hashWithSalt` rootSquash++instance Prelude.NFData LustreRootSquashConfiguration where+  rnf LustreRootSquashConfiguration' {..} =+    Prelude.rnf noSquashNids+      `Prelude.seq` Prelude.rnf rootSquash++instance Data.ToJSON LustreRootSquashConfiguration where+  toJSON LustreRootSquashConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("NoSquashNids" Data..=) Prelude.<$> noSquashNids,+            ("RootSquash" Data..=) Prelude.<$> rootSquash+          ]+      )
+ gen/Amazonka/FSx/Types/NFSDataRepositoryConfiguration.hs view
@@ -0,0 +1,128 @@+{-# 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.NFSDataRepositoryConfiguration+-- 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.NFSDataRepositoryConfiguration 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.AutoExportPolicy+import Amazonka.FSx.Types.NfsVersion+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a data repository association that links an Amazon+-- File Cache resource to an NFS data repository.+--+-- /See:/ 'newNFSDataRepositoryConfiguration' smart constructor.+data NFSDataRepositoryConfiguration = NFSDataRepositoryConfiguration'+  { -- | This parameter is not supported for Amazon File Cache.+    autoExportPolicy :: Prelude.Maybe AutoExportPolicy,+    -- | A list of up to 2 IP addresses of DNS servers used to resolve the NFS+    -- file system domain name. The provided IP addresses can either be the IP+    -- addresses of a DNS forwarder or resolver that the customer manages and+    -- runs inside the customer VPC, or the IP addresses of the on-premises DNS+    -- servers.+    dnsIps :: Prelude.Maybe [Prelude.Text],+    -- | The version of the NFS (Network File System) protocol of the NFS data+    -- repository. Currently, the only supported value is @NFS3@, which+    -- indicates that the data repository must support the NFSv3 protocol.+    version :: NfsVersion+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NFSDataRepositoryConfiguration' 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:+--+-- 'autoExportPolicy', 'nFSDataRepositoryConfiguration_autoExportPolicy' - This parameter is not supported for Amazon File Cache.+--+-- 'dnsIps', 'nFSDataRepositoryConfiguration_dnsIps' - A list of up to 2 IP addresses of DNS servers used to resolve the NFS+-- file system domain name. The provided IP addresses can either be the IP+-- addresses of a DNS forwarder or resolver that the customer manages and+-- runs inside the customer VPC, or the IP addresses of the on-premises DNS+-- servers.+--+-- 'version', 'nFSDataRepositoryConfiguration_version' - The version of the NFS (Network File System) protocol of the NFS data+-- repository. Currently, the only supported value is @NFS3@, which+-- indicates that the data repository must support the NFSv3 protocol.+newNFSDataRepositoryConfiguration ::+  -- | 'version'+  NfsVersion ->+  NFSDataRepositoryConfiguration+newNFSDataRepositoryConfiguration pVersion_ =+  NFSDataRepositoryConfiguration'+    { autoExportPolicy =+        Prelude.Nothing,+      dnsIps = Prelude.Nothing,+      version = pVersion_+    }++-- | This parameter is not supported for Amazon File Cache.+nFSDataRepositoryConfiguration_autoExportPolicy :: Lens.Lens' NFSDataRepositoryConfiguration (Prelude.Maybe AutoExportPolicy)+nFSDataRepositoryConfiguration_autoExportPolicy = Lens.lens (\NFSDataRepositoryConfiguration' {autoExportPolicy} -> autoExportPolicy) (\s@NFSDataRepositoryConfiguration' {} a -> s {autoExportPolicy = a} :: NFSDataRepositoryConfiguration)++-- | A list of up to 2 IP addresses of DNS servers used to resolve the NFS+-- file system domain name. The provided IP addresses can either be the IP+-- addresses of a DNS forwarder or resolver that the customer manages and+-- runs inside the customer VPC, or the IP addresses of the on-premises DNS+-- servers.+nFSDataRepositoryConfiguration_dnsIps :: Lens.Lens' NFSDataRepositoryConfiguration (Prelude.Maybe [Prelude.Text])+nFSDataRepositoryConfiguration_dnsIps = Lens.lens (\NFSDataRepositoryConfiguration' {dnsIps} -> dnsIps) (\s@NFSDataRepositoryConfiguration' {} a -> s {dnsIps = a} :: NFSDataRepositoryConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The version of the NFS (Network File System) protocol of the NFS data+-- repository. Currently, the only supported value is @NFS3@, which+-- indicates that the data repository must support the NFSv3 protocol.+nFSDataRepositoryConfiguration_version :: Lens.Lens' NFSDataRepositoryConfiguration NfsVersion+nFSDataRepositoryConfiguration_version = Lens.lens (\NFSDataRepositoryConfiguration' {version} -> version) (\s@NFSDataRepositoryConfiguration' {} a -> s {version = a} :: NFSDataRepositoryConfiguration)++instance Data.FromJSON NFSDataRepositoryConfiguration where+  parseJSON =+    Data.withObject+      "NFSDataRepositoryConfiguration"+      ( \x ->+          NFSDataRepositoryConfiguration'+            Prelude.<$> (x Data..:? "AutoExportPolicy")+            Prelude.<*> (x Data..:? "DnsIps" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Version")+      )++instance+  Prelude.Hashable+    NFSDataRepositoryConfiguration+  where+  hashWithSalt+    _salt+    NFSDataRepositoryConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` autoExportPolicy+        `Prelude.hashWithSalt` dnsIps+        `Prelude.hashWithSalt` version++instance+  Prelude.NFData+    NFSDataRepositoryConfiguration+  where+  rnf NFSDataRepositoryConfiguration' {..} =+    Prelude.rnf autoExportPolicy+      `Prelude.seq` Prelude.rnf dnsIps+      `Prelude.seq` Prelude.rnf version
+ gen/Amazonka/FSx/Types/NfsVersion.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.NfsVersion+-- 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.NfsVersion+  ( NfsVersion+      ( ..,+        NfsVersion_NFS3+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NfsVersion = NfsVersion'+  { fromNfsVersion ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern NfsVersion_NFS3 :: NfsVersion+pattern NfsVersion_NFS3 = NfsVersion' "NFS3"++{-# COMPLETE+  NfsVersion_NFS3,+  NfsVersion'+  #-}
+ gen/Amazonka/FSx/Types/OntapDeploymentType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.OntapDeploymentType+-- 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.OntapDeploymentType+  ( OntapDeploymentType+      ( ..,+        OntapDeploymentType_MULTI_AZ_1,+        OntapDeploymentType_SINGLE_AZ_1+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OntapDeploymentType = OntapDeploymentType'+  { fromOntapDeploymentType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OntapDeploymentType_MULTI_AZ_1 :: OntapDeploymentType+pattern OntapDeploymentType_MULTI_AZ_1 = OntapDeploymentType' "MULTI_AZ_1"++pattern OntapDeploymentType_SINGLE_AZ_1 :: OntapDeploymentType+pattern OntapDeploymentType_SINGLE_AZ_1 = OntapDeploymentType' "SINGLE_AZ_1"++{-# COMPLETE+  OntapDeploymentType_MULTI_AZ_1,+  OntapDeploymentType_SINGLE_AZ_1,+  OntapDeploymentType'+  #-}
+ gen/Amazonka/FSx/Types/OntapFileSystemConfiguration.hs view
@@ -0,0 +1,246 @@+{-# 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.OntapFileSystemConfiguration+-- 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.OntapFileSystemConfiguration 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.DiskIopsConfiguration+import Amazonka.FSx.Types.FileSystemEndpoints+import Amazonka.FSx.Types.OntapDeploymentType+import qualified Amazonka.Prelude as Prelude++-- | Configuration for the FSx for NetApp ONTAP file system.+--+-- /See:/ 'newOntapFileSystemConfiguration' smart constructor.+data OntapFileSystemConfiguration = OntapFileSystemConfiguration'+  { automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | Specifies the FSx for ONTAP file system deployment type in use in the+    -- file system.+    --+    -- -   @MULTI_AZ_1@ - (Default) A high availability file system configured+    --     for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ)+    --     unavailability.+    --+    -- -   @SINGLE_AZ_1@ - A file system configured for Single-AZ redundancy.+    --+    -- For information about the use cases for Multi-AZ and Single-AZ+    -- deployments, refer to+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html Choosing Multi-AZ or Single-AZ file system deployment>.+    deploymentType :: Prelude.Maybe OntapDeploymentType,+    -- | The SSD IOPS configuration for the ONTAP file system, specifying the+    -- number of provisioned IOPS and the provision mode.+    diskIopsConfiguration :: Prelude.Maybe DiskIopsConfiguration,+    -- | (Multi-AZ only) The IP address range in which the endpoints to access+    -- your file system are created.+    --+    -- The Endpoint IP address range you select for your file system must exist+    -- outside the VPC\'s CIDR range and must be at least \/30 or larger. If+    -- you do not specify this optional parameter, Amazon FSx will+    -- automatically select a CIDR block for you.+    endpointIpAddressRange :: Prelude.Maybe Prelude.Text,+    -- | The @Management@ and @Intercluster@ endpoints that are used to access+    -- data or to manage the file system using the NetApp ONTAP CLI, REST API,+    -- or NetApp SnapMirror.+    endpoints :: Prelude.Maybe FileSystemEndpoints,+    preferredSubnetId :: Prelude.Maybe Prelude.Text,+    -- | (Multi-AZ only) The VPC route tables in which your file system\'s+    -- endpoints are created.+    routeTableIds :: Prelude.Maybe [Prelude.Text],+    throughputCapacity :: Prelude.Maybe Prelude.Natural,+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OntapFileSystemConfiguration' 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:+--+-- 'automaticBackupRetentionDays', 'ontapFileSystemConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'dailyAutomaticBackupStartTime', 'ontapFileSystemConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'deploymentType', 'ontapFileSystemConfiguration_deploymentType' - Specifies the FSx for ONTAP file system deployment type in use in the+-- file system.+--+-- -   @MULTI_AZ_1@ - (Default) A high availability file system configured+--     for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ)+--     unavailability.+--+-- -   @SINGLE_AZ_1@ - A file system configured for Single-AZ redundancy.+--+-- For information about the use cases for Multi-AZ and Single-AZ+-- deployments, refer to+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html Choosing Multi-AZ or Single-AZ file system deployment>.+--+-- 'diskIopsConfiguration', 'ontapFileSystemConfiguration_diskIopsConfiguration' - The SSD IOPS configuration for the ONTAP file system, specifying the+-- number of provisioned IOPS and the provision mode.+--+-- 'endpointIpAddressRange', 'ontapFileSystemConfiguration_endpointIpAddressRange' - (Multi-AZ only) The IP address range in which the endpoints to access+-- your file system are created.+--+-- The Endpoint IP address range you select for your file system must exist+-- outside the VPC\'s CIDR range and must be at least \/30 or larger. If+-- you do not specify this optional parameter, Amazon FSx will+-- automatically select a CIDR block for you.+--+-- 'endpoints', 'ontapFileSystemConfiguration_endpoints' - The @Management@ and @Intercluster@ endpoints that are used to access+-- data or to manage the file system using the NetApp ONTAP CLI, REST API,+-- or NetApp SnapMirror.+--+-- 'preferredSubnetId', 'ontapFileSystemConfiguration_preferredSubnetId' - Undocumented member.+--+-- 'routeTableIds', 'ontapFileSystemConfiguration_routeTableIds' - (Multi-AZ only) The VPC route tables in which your file system\'s+-- endpoints are created.+--+-- 'throughputCapacity', 'ontapFileSystemConfiguration_throughputCapacity' - Undocumented member.+--+-- 'weeklyMaintenanceStartTime', 'ontapFileSystemConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+newOntapFileSystemConfiguration ::+  OntapFileSystemConfiguration+newOntapFileSystemConfiguration =+  OntapFileSystemConfiguration'+    { automaticBackupRetentionDays =+        Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      deploymentType = Prelude.Nothing,+      diskIopsConfiguration = Prelude.Nothing,+      endpointIpAddressRange = Prelude.Nothing,+      endpoints = Prelude.Nothing,+      preferredSubnetId = Prelude.Nothing,+      routeTableIds = Prelude.Nothing,+      throughputCapacity = Prelude.Nothing,+      weeklyMaintenanceStartTime = Prelude.Nothing+    }++-- | Undocumented member.+ontapFileSystemConfiguration_automaticBackupRetentionDays :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+ontapFileSystemConfiguration_automaticBackupRetentionDays = Lens.lens (\OntapFileSystemConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@OntapFileSystemConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: OntapFileSystemConfiguration)++-- | Undocumented member.+ontapFileSystemConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe Prelude.Text)+ontapFileSystemConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\OntapFileSystemConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@OntapFileSystemConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: OntapFileSystemConfiguration)++-- | Specifies the FSx for ONTAP file system deployment type in use in the+-- file system.+--+-- -   @MULTI_AZ_1@ - (Default) A high availability file system configured+--     for Multi-AZ redundancy to tolerate temporary Availability Zone (AZ)+--     unavailability.+--+-- -   @SINGLE_AZ_1@ - A file system configured for Single-AZ redundancy.+--+-- For information about the use cases for Multi-AZ and Single-AZ+-- deployments, refer to+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/high-availability-multiAZ.html Choosing Multi-AZ or Single-AZ file system deployment>.+ontapFileSystemConfiguration_deploymentType :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe OntapDeploymentType)+ontapFileSystemConfiguration_deploymentType = Lens.lens (\OntapFileSystemConfiguration' {deploymentType} -> deploymentType) (\s@OntapFileSystemConfiguration' {} a -> s {deploymentType = a} :: OntapFileSystemConfiguration)++-- | The SSD IOPS configuration for the ONTAP file system, specifying the+-- number of provisioned IOPS and the provision mode.+ontapFileSystemConfiguration_diskIopsConfiguration :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe DiskIopsConfiguration)+ontapFileSystemConfiguration_diskIopsConfiguration = Lens.lens (\OntapFileSystemConfiguration' {diskIopsConfiguration} -> diskIopsConfiguration) (\s@OntapFileSystemConfiguration' {} a -> s {diskIopsConfiguration = a} :: OntapFileSystemConfiguration)++-- | (Multi-AZ only) The IP address range in which the endpoints to access+-- your file system are created.+--+-- The Endpoint IP address range you select for your file system must exist+-- outside the VPC\'s CIDR range and must be at least \/30 or larger. If+-- you do not specify this optional parameter, Amazon FSx will+-- automatically select a CIDR block for you.+ontapFileSystemConfiguration_endpointIpAddressRange :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe Prelude.Text)+ontapFileSystemConfiguration_endpointIpAddressRange = Lens.lens (\OntapFileSystemConfiguration' {endpointIpAddressRange} -> endpointIpAddressRange) (\s@OntapFileSystemConfiguration' {} a -> s {endpointIpAddressRange = a} :: OntapFileSystemConfiguration)++-- | The @Management@ and @Intercluster@ endpoints that are used to access+-- data or to manage the file system using the NetApp ONTAP CLI, REST API,+-- or NetApp SnapMirror.+ontapFileSystemConfiguration_endpoints :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe FileSystemEndpoints)+ontapFileSystemConfiguration_endpoints = Lens.lens (\OntapFileSystemConfiguration' {endpoints} -> endpoints) (\s@OntapFileSystemConfiguration' {} a -> s {endpoints = a} :: OntapFileSystemConfiguration)++-- | Undocumented member.+ontapFileSystemConfiguration_preferredSubnetId :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe Prelude.Text)+ontapFileSystemConfiguration_preferredSubnetId = Lens.lens (\OntapFileSystemConfiguration' {preferredSubnetId} -> preferredSubnetId) (\s@OntapFileSystemConfiguration' {} a -> s {preferredSubnetId = a} :: OntapFileSystemConfiguration)++-- | (Multi-AZ only) The VPC route tables in which your file system\'s+-- endpoints are created.+ontapFileSystemConfiguration_routeTableIds :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe [Prelude.Text])+ontapFileSystemConfiguration_routeTableIds = Lens.lens (\OntapFileSystemConfiguration' {routeTableIds} -> routeTableIds) (\s@OntapFileSystemConfiguration' {} a -> s {routeTableIds = a} :: OntapFileSystemConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+ontapFileSystemConfiguration_throughputCapacity :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+ontapFileSystemConfiguration_throughputCapacity = Lens.lens (\OntapFileSystemConfiguration' {throughputCapacity} -> throughputCapacity) (\s@OntapFileSystemConfiguration' {} a -> s {throughputCapacity = a} :: OntapFileSystemConfiguration)++-- | Undocumented member.+ontapFileSystemConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' OntapFileSystemConfiguration (Prelude.Maybe Prelude.Text)+ontapFileSystemConfiguration_weeklyMaintenanceStartTime = Lens.lens (\OntapFileSystemConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@OntapFileSystemConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: OntapFileSystemConfiguration)++instance Data.FromJSON OntapFileSystemConfiguration where+  parseJSON =+    Data.withObject+      "OntapFileSystemConfiguration"+      ( \x ->+          OntapFileSystemConfiguration'+            Prelude.<$> (x Data..:? "AutomaticBackupRetentionDays")+            Prelude.<*> (x Data..:? "DailyAutomaticBackupStartTime")+            Prelude.<*> (x Data..:? "DeploymentType")+            Prelude.<*> (x Data..:? "DiskIopsConfiguration")+            Prelude.<*> (x Data..:? "EndpointIpAddressRange")+            Prelude.<*> (x Data..:? "Endpoints")+            Prelude.<*> (x Data..:? "PreferredSubnetId")+            Prelude.<*> (x Data..:? "RouteTableIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ThroughputCapacity")+            Prelude.<*> (x Data..:? "WeeklyMaintenanceStartTime")+      )++instance+  Prelude.Hashable+    OntapFileSystemConfiguration+  where+  hashWithSalt _salt OntapFileSystemConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` automaticBackupRetentionDays+      `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+      `Prelude.hashWithSalt` deploymentType+      `Prelude.hashWithSalt` diskIopsConfiguration+      `Prelude.hashWithSalt` endpointIpAddressRange+      `Prelude.hashWithSalt` endpoints+      `Prelude.hashWithSalt` preferredSubnetId+      `Prelude.hashWithSalt` routeTableIds+      `Prelude.hashWithSalt` throughputCapacity+      `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance Prelude.NFData OntapFileSystemConfiguration where+  rnf OntapFileSystemConfiguration' {..} =+    Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf diskIopsConfiguration+      `Prelude.seq` Prelude.rnf endpointIpAddressRange+      `Prelude.seq` Prelude.rnf endpoints+      `Prelude.seq` Prelude.rnf preferredSubnetId+      `Prelude.seq` Prelude.rnf routeTableIds+      `Prelude.seq` Prelude.rnf throughputCapacity+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime
+ gen/Amazonka/FSx/Types/OntapVolumeConfiguration.hs view
@@ -0,0 +1,389 @@+{-# 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.OntapVolumeConfiguration+-- 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.OntapVolumeConfiguration 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.FlexCacheEndpointType+import Amazonka.FSx.Types.OntapVolumeType+import Amazonka.FSx.Types.SecurityStyle+import Amazonka.FSx.Types.TieringPolicy+import qualified Amazonka.Prelude as Prelude++-- | The configuration of an Amazon FSx for NetApp ONTAP volume.+--+-- /See:/ 'newOntapVolumeConfiguration' smart constructor.+data OntapVolumeConfiguration = OntapVolumeConfiguration'+  { -- | A boolean flag indicating whether tags for the volume should be copied+    -- to backups. This value defaults to false. If it\'s set to true, all tags+    -- for the volume are copied to all automatic and user-initiated backups+    -- where the user doesn\'t specify tags. If this value is true, and you+    -- specify one or more tags, only the specified tags are copied to backups.+    -- If you specify one or more tags when creating a user-initiated backup,+    -- no tags are copied from the volume, regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the FlexCache endpoint type of the volume. Valid values are+    -- the following:+    --+    -- -   @NONE@ specifies that the volume doesn\'t have a FlexCache+    --     configuration. @NONE@ is the default.+    --+    -- -   @ORIGIN@ specifies that the volume is the origin volume for a+    --     FlexCache volume.+    --+    -- -   @CACHE@ specifies that the volume is a FlexCache volume.+    flexCacheEndpointType :: Prelude.Maybe FlexCacheEndpointType,+    -- | Specifies the directory that network-attached storage (NAS) clients use+    -- to mount the volume, along with the storage virtual machine (SVM) Domain+    -- Name System (DNS) name or IP address. You can create a @JunctionPath@+    -- directly below a parent volume junction or on a directory within a+    -- volume. A @JunctionPath@ for a volume named @vol3@ might be+    -- @\/vol1\/vol2\/vol3@, or @\/vol1\/dir2\/vol3@, or even+    -- @\/dir1\/dir2\/vol3@.+    junctionPath :: Prelude.Maybe Prelude.Text,+    -- | Specifies the type of volume. Valid values are the following:+    --+    -- -   @RW@ specifies a read\/write volume. @RW@ is the default.+    --+    -- -   @DP@ specifies a data-protection volume. You can protect data by+    --     replicating it to data-protection mirror copies. If a disaster+    --     occurs, you can use these data-protection mirror copies to recover+    --     data.+    --+    -- -   @LS@ specifies a load-sharing mirror volume. A load-sharing mirror+    --     reduces the network traffic to a FlexVol volume by providing+    --     additional read-only access to clients.+    ontapVolumeType :: Prelude.Maybe OntapVolumeType,+    -- | The security style for the volume, which can be @UNIX@, @NTFS@, or+    -- @MIXED@.+    securityStyle :: Prelude.Maybe SecurityStyle,+    -- | The configured size of the volume, in megabytes (MBs).+    sizeInMegabytes :: Prelude.Maybe Prelude.Natural,+    -- | Specifies the snapshot policy for the volume. There are three built-in+    -- snapshot policies:+    --+    -- -   @default@: This is the default policy. A maximum of six hourly+    --     snapshots taken five minutes past the hour. A maximum of two daily+    --     snapshots taken Monday through Saturday at 10 minutes after+    --     midnight. A maximum of two weekly snapshots taken every Sunday at 15+    --     minutes after midnight.+    --+    -- -   @default-1weekly@: This policy is the same as the @default@ policy+    --     except that it only retains one snapshot from the weekly schedule.+    --+    -- -   @none@: This policy does not take any snapshots. This policy can be+    --     assigned to volumes to prevent automatic snapshots from being taken.+    --+    -- You can also provide the name of a custom policy that you created with+    -- the ONTAP CLI or REST API.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+    -- in the /Amazon FSx for NetApp ONTAP User Guide/.+    snapshotPolicy :: Prelude.Maybe Prelude.Text,+    -- | The volume\'s storage efficiency setting.+    storageEfficiencyEnabled :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the volume\'s storage virtual machine.+    storageVirtualMachineId :: Prelude.Maybe Prelude.Text,+    -- | A Boolean flag indicating whether this volume is the root volume for its+    -- storage virtual machine (SVM). Only one volume on an SVM can be the root+    -- volume. This value defaults to @false@. If this value is @true@, then+    -- this is the SVM root volume.+    --+    -- This flag is useful when you\'re deleting an SVM, because you must first+    -- delete all non-root volumes. This flag, when set to @false@, helps you+    -- identify which volumes to delete before you can delete the SVM.+    storageVirtualMachineRoot :: Prelude.Maybe Prelude.Bool,+    -- | The volume\'s @TieringPolicy@ setting.+    tieringPolicy :: Prelude.Maybe TieringPolicy,+    -- | The volume\'s universally unique identifier (UUID).+    uuid :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OntapVolumeConfiguration' 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:+--+-- 'copyTagsToBackups', 'ontapVolumeConfiguration_copyTagsToBackups' - A boolean flag indicating whether tags for the volume should be copied+-- to backups. This value defaults to false. If it\'s set to true, all tags+-- for the volume are copied to all automatic and user-initiated backups+-- where the user doesn\'t specify tags. If this value is true, and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the volume, regardless of this value.+--+-- 'flexCacheEndpointType', 'ontapVolumeConfiguration_flexCacheEndpointType' - Specifies the FlexCache endpoint type of the volume. Valid values are+-- the following:+--+-- -   @NONE@ specifies that the volume doesn\'t have a FlexCache+--     configuration. @NONE@ is the default.+--+-- -   @ORIGIN@ specifies that the volume is the origin volume for a+--     FlexCache volume.+--+-- -   @CACHE@ specifies that the volume is a FlexCache volume.+--+-- 'junctionPath', 'ontapVolumeConfiguration_junctionPath' - Specifies the directory that network-attached storage (NAS) clients use+-- to mount the volume, along with the storage virtual machine (SVM) Domain+-- Name System (DNS) name or IP address. You can create a @JunctionPath@+-- directly below a parent volume junction or on a directory within a+-- volume. A @JunctionPath@ for a volume named @vol3@ might be+-- @\/vol1\/vol2\/vol3@, or @\/vol1\/dir2\/vol3@, or even+-- @\/dir1\/dir2\/vol3@.+--+-- 'ontapVolumeType', 'ontapVolumeConfiguration_ontapVolumeType' - Specifies the type of volume. Valid values are the following:+--+-- -   @RW@ specifies a read\/write volume. @RW@ is the default.+--+-- -   @DP@ specifies a data-protection volume. You can protect data by+--     replicating it to data-protection mirror copies. If a disaster+--     occurs, you can use these data-protection mirror copies to recover+--     data.+--+-- -   @LS@ specifies a load-sharing mirror volume. A load-sharing mirror+--     reduces the network traffic to a FlexVol volume by providing+--     additional read-only access to clients.+--+-- 'securityStyle', 'ontapVolumeConfiguration_securityStyle' - The security style for the volume, which can be @UNIX@, @NTFS@, or+-- @MIXED@.+--+-- 'sizeInMegabytes', 'ontapVolumeConfiguration_sizeInMegabytes' - The configured size of the volume, in megabytes (MBs).+--+-- 'snapshotPolicy', 'ontapVolumeConfiguration_snapshotPolicy' - Specifies the snapshot policy for the volume. There are three built-in+-- snapshot policies:+--+-- -   @default@: This is the default policy. A maximum of six hourly+--     snapshots taken five minutes past the hour. A maximum of two daily+--     snapshots taken Monday through Saturday at 10 minutes after+--     midnight. A maximum of two weekly snapshots taken every Sunday at 15+--     minutes after midnight.+--+-- -   @default-1weekly@: This policy is the same as the @default@ policy+--     except that it only retains one snapshot from the weekly schedule.+--+-- -   @none@: This policy does not take any snapshots. This policy can be+--     assigned to volumes to prevent automatic snapshots from being taken.+--+-- You can also provide the name of a custom policy that you created with+-- the ONTAP CLI or REST API.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+--+-- 'storageEfficiencyEnabled', 'ontapVolumeConfiguration_storageEfficiencyEnabled' - The volume\'s storage efficiency setting.+--+-- 'storageVirtualMachineId', 'ontapVolumeConfiguration_storageVirtualMachineId' - The ID of the volume\'s storage virtual machine.+--+-- 'storageVirtualMachineRoot', 'ontapVolumeConfiguration_storageVirtualMachineRoot' - A Boolean flag indicating whether this volume is the root volume for its+-- storage virtual machine (SVM). Only one volume on an SVM can be the root+-- volume. This value defaults to @false@. If this value is @true@, then+-- this is the SVM root volume.+--+-- This flag is useful when you\'re deleting an SVM, because you must first+-- delete all non-root volumes. This flag, when set to @false@, helps you+-- identify which volumes to delete before you can delete the SVM.+--+-- 'tieringPolicy', 'ontapVolumeConfiguration_tieringPolicy' - The volume\'s @TieringPolicy@ setting.+--+-- 'uuid', 'ontapVolumeConfiguration_uuid' - The volume\'s universally unique identifier (UUID).+newOntapVolumeConfiguration ::+  OntapVolumeConfiguration+newOntapVolumeConfiguration =+  OntapVolumeConfiguration'+    { copyTagsToBackups =+        Prelude.Nothing,+      flexCacheEndpointType = Prelude.Nothing,+      junctionPath = Prelude.Nothing,+      ontapVolumeType = Prelude.Nothing,+      securityStyle = Prelude.Nothing,+      sizeInMegabytes = Prelude.Nothing,+      snapshotPolicy = Prelude.Nothing,+      storageEfficiencyEnabled = Prelude.Nothing,+      storageVirtualMachineId = Prelude.Nothing,+      storageVirtualMachineRoot = Prelude.Nothing,+      tieringPolicy = Prelude.Nothing,+      uuid = Prelude.Nothing+    }++-- | A boolean flag indicating whether tags for the volume should be copied+-- to backups. This value defaults to false. If it\'s set to true, all tags+-- for the volume are copied to all automatic and user-initiated backups+-- where the user doesn\'t specify tags. If this value is true, and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the volume, regardless of this value.+ontapVolumeConfiguration_copyTagsToBackups :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Bool)+ontapVolumeConfiguration_copyTagsToBackups = Lens.lens (\OntapVolumeConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@OntapVolumeConfiguration' {} a -> s {copyTagsToBackups = a} :: OntapVolumeConfiguration)++-- | Specifies the FlexCache endpoint type of the volume. Valid values are+-- the following:+--+-- -   @NONE@ specifies that the volume doesn\'t have a FlexCache+--     configuration. @NONE@ is the default.+--+-- -   @ORIGIN@ specifies that the volume is the origin volume for a+--     FlexCache volume.+--+-- -   @CACHE@ specifies that the volume is a FlexCache volume.+ontapVolumeConfiguration_flexCacheEndpointType :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe FlexCacheEndpointType)+ontapVolumeConfiguration_flexCacheEndpointType = Lens.lens (\OntapVolumeConfiguration' {flexCacheEndpointType} -> flexCacheEndpointType) (\s@OntapVolumeConfiguration' {} a -> s {flexCacheEndpointType = a} :: OntapVolumeConfiguration)++-- | Specifies the directory that network-attached storage (NAS) clients use+-- to mount the volume, along with the storage virtual machine (SVM) Domain+-- Name System (DNS) name or IP address. You can create a @JunctionPath@+-- directly below a parent volume junction or on a directory within a+-- volume. A @JunctionPath@ for a volume named @vol3@ might be+-- @\/vol1\/vol2\/vol3@, or @\/vol1\/dir2\/vol3@, or even+-- @\/dir1\/dir2\/vol3@.+ontapVolumeConfiguration_junctionPath :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+ontapVolumeConfiguration_junctionPath = Lens.lens (\OntapVolumeConfiguration' {junctionPath} -> junctionPath) (\s@OntapVolumeConfiguration' {} a -> s {junctionPath = a} :: OntapVolumeConfiguration)++-- | Specifies the type of volume. Valid values are the following:+--+-- -   @RW@ specifies a read\/write volume. @RW@ is the default.+--+-- -   @DP@ specifies a data-protection volume. You can protect data by+--     replicating it to data-protection mirror copies. If a disaster+--     occurs, you can use these data-protection mirror copies to recover+--     data.+--+-- -   @LS@ specifies a load-sharing mirror volume. A load-sharing mirror+--     reduces the network traffic to a FlexVol volume by providing+--     additional read-only access to clients.+ontapVolumeConfiguration_ontapVolumeType :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe OntapVolumeType)+ontapVolumeConfiguration_ontapVolumeType = Lens.lens (\OntapVolumeConfiguration' {ontapVolumeType} -> ontapVolumeType) (\s@OntapVolumeConfiguration' {} a -> s {ontapVolumeType = a} :: OntapVolumeConfiguration)++-- | The security style for the volume, which can be @UNIX@, @NTFS@, or+-- @MIXED@.+ontapVolumeConfiguration_securityStyle :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe SecurityStyle)+ontapVolumeConfiguration_securityStyle = Lens.lens (\OntapVolumeConfiguration' {securityStyle} -> securityStyle) (\s@OntapVolumeConfiguration' {} a -> s {securityStyle = a} :: OntapVolumeConfiguration)++-- | The configured size of the volume, in megabytes (MBs).+ontapVolumeConfiguration_sizeInMegabytes :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Natural)+ontapVolumeConfiguration_sizeInMegabytes = Lens.lens (\OntapVolumeConfiguration' {sizeInMegabytes} -> sizeInMegabytes) (\s@OntapVolumeConfiguration' {} a -> s {sizeInMegabytes = a} :: OntapVolumeConfiguration)++-- | Specifies the snapshot policy for the volume. There are three built-in+-- snapshot policies:+--+-- -   @default@: This is the default policy. A maximum of six hourly+--     snapshots taken five minutes past the hour. A maximum of two daily+--     snapshots taken Monday through Saturday at 10 minutes after+--     midnight. A maximum of two weekly snapshots taken every Sunday at 15+--     minutes after midnight.+--+-- -   @default-1weekly@: This policy is the same as the @default@ policy+--     except that it only retains one snapshot from the weekly schedule.+--+-- -   @none@: This policy does not take any snapshots. This policy can be+--     assigned to volumes to prevent automatic snapshots from being taken.+--+-- You can also provide the name of a custom policy that you created with+-- the ONTAP CLI or REST API.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+ontapVolumeConfiguration_snapshotPolicy :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+ontapVolumeConfiguration_snapshotPolicy = Lens.lens (\OntapVolumeConfiguration' {snapshotPolicy} -> snapshotPolicy) (\s@OntapVolumeConfiguration' {} a -> s {snapshotPolicy = a} :: OntapVolumeConfiguration)++-- | The volume\'s storage efficiency setting.+ontapVolumeConfiguration_storageEfficiencyEnabled :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Bool)+ontapVolumeConfiguration_storageEfficiencyEnabled = Lens.lens (\OntapVolumeConfiguration' {storageEfficiencyEnabled} -> storageEfficiencyEnabled) (\s@OntapVolumeConfiguration' {} a -> s {storageEfficiencyEnabled = a} :: OntapVolumeConfiguration)++-- | The ID of the volume\'s storage virtual machine.+ontapVolumeConfiguration_storageVirtualMachineId :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+ontapVolumeConfiguration_storageVirtualMachineId = Lens.lens (\OntapVolumeConfiguration' {storageVirtualMachineId} -> storageVirtualMachineId) (\s@OntapVolumeConfiguration' {} a -> s {storageVirtualMachineId = a} :: OntapVolumeConfiguration)++-- | A Boolean flag indicating whether this volume is the root volume for its+-- storage virtual machine (SVM). Only one volume on an SVM can be the root+-- volume. This value defaults to @false@. If this value is @true@, then+-- this is the SVM root volume.+--+-- This flag is useful when you\'re deleting an SVM, because you must first+-- delete all non-root volumes. This flag, when set to @false@, helps you+-- identify which volumes to delete before you can delete the SVM.+ontapVolumeConfiguration_storageVirtualMachineRoot :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Bool)+ontapVolumeConfiguration_storageVirtualMachineRoot = Lens.lens (\OntapVolumeConfiguration' {storageVirtualMachineRoot} -> storageVirtualMachineRoot) (\s@OntapVolumeConfiguration' {} a -> s {storageVirtualMachineRoot = a} :: OntapVolumeConfiguration)++-- | The volume\'s @TieringPolicy@ setting.+ontapVolumeConfiguration_tieringPolicy :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe TieringPolicy)+ontapVolumeConfiguration_tieringPolicy = Lens.lens (\OntapVolumeConfiguration' {tieringPolicy} -> tieringPolicy) (\s@OntapVolumeConfiguration' {} a -> s {tieringPolicy = a} :: OntapVolumeConfiguration)++-- | The volume\'s universally unique identifier (UUID).+ontapVolumeConfiguration_uuid :: Lens.Lens' OntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+ontapVolumeConfiguration_uuid = Lens.lens (\OntapVolumeConfiguration' {uuid} -> uuid) (\s@OntapVolumeConfiguration' {} a -> s {uuid = a} :: OntapVolumeConfiguration)++instance Data.FromJSON OntapVolumeConfiguration where+  parseJSON =+    Data.withObject+      "OntapVolumeConfiguration"+      ( \x ->+          OntapVolumeConfiguration'+            Prelude.<$> (x Data..:? "CopyTagsToBackups")+            Prelude.<*> (x Data..:? "FlexCacheEndpointType")+            Prelude.<*> (x Data..:? "JunctionPath")+            Prelude.<*> (x Data..:? "OntapVolumeType")+            Prelude.<*> (x Data..:? "SecurityStyle")+            Prelude.<*> (x Data..:? "SizeInMegabytes")+            Prelude.<*> (x Data..:? "SnapshotPolicy")+            Prelude.<*> (x Data..:? "StorageEfficiencyEnabled")+            Prelude.<*> (x Data..:? "StorageVirtualMachineId")+            Prelude.<*> (x Data..:? "StorageVirtualMachineRoot")+            Prelude.<*> (x Data..:? "TieringPolicy")+            Prelude.<*> (x Data..:? "UUID")+      )++instance Prelude.Hashable OntapVolumeConfiguration where+  hashWithSalt _salt OntapVolumeConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` copyTagsToBackups+      `Prelude.hashWithSalt` flexCacheEndpointType+      `Prelude.hashWithSalt` junctionPath+      `Prelude.hashWithSalt` ontapVolumeType+      `Prelude.hashWithSalt` securityStyle+      `Prelude.hashWithSalt` sizeInMegabytes+      `Prelude.hashWithSalt` snapshotPolicy+      `Prelude.hashWithSalt` storageEfficiencyEnabled+      `Prelude.hashWithSalt` storageVirtualMachineId+      `Prelude.hashWithSalt` storageVirtualMachineRoot+      `Prelude.hashWithSalt` tieringPolicy+      `Prelude.hashWithSalt` uuid++instance Prelude.NFData OntapVolumeConfiguration where+  rnf OntapVolumeConfiguration' {..} =+    Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf flexCacheEndpointType+      `Prelude.seq` Prelude.rnf junctionPath+      `Prelude.seq` Prelude.rnf ontapVolumeType+      `Prelude.seq` Prelude.rnf securityStyle+      `Prelude.seq` Prelude.rnf sizeInMegabytes+      `Prelude.seq` Prelude.rnf snapshotPolicy+      `Prelude.seq` Prelude.rnf storageEfficiencyEnabled+      `Prelude.seq` Prelude.rnf storageVirtualMachineId+      `Prelude.seq` Prelude.rnf storageVirtualMachineRoot+      `Prelude.seq` Prelude.rnf tieringPolicy+      `Prelude.seq` Prelude.rnf uuid
+ gen/Amazonka/FSx/Types/OntapVolumeType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.OntapVolumeType+-- 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.OntapVolumeType+  ( OntapVolumeType+      ( ..,+        OntapVolumeType_DP,+        OntapVolumeType_LS,+        OntapVolumeType_RW+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OntapVolumeType = OntapVolumeType'+  { fromOntapVolumeType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OntapVolumeType_DP :: OntapVolumeType+pattern OntapVolumeType_DP = OntapVolumeType' "DP"++pattern OntapVolumeType_LS :: OntapVolumeType+pattern OntapVolumeType_LS = OntapVolumeType' "LS"++pattern OntapVolumeType_RW :: OntapVolumeType+pattern OntapVolumeType_RW = OntapVolumeType' "RW"++{-# COMPLETE+  OntapVolumeType_DP,+  OntapVolumeType_LS,+  OntapVolumeType_RW,+  OntapVolumeType'+  #-}
+ gen/Amazonka/FSx/Types/OpenZFSClientConfiguration.hs view
@@ -0,0 +1,140 @@+{-# 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.OpenZFSClientConfiguration+-- 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.OpenZFSClientConfiguration 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++-- | Specifies who can mount an OpenZFS file system and the options available+-- while mounting the file system.+--+-- /See:/ 'newOpenZFSClientConfiguration' smart constructor.+data OpenZFSClientConfiguration = OpenZFSClientConfiguration'+  { -- | A value that specifies who can mount the file system. You can provide a+    -- wildcard character (@*@), an IP address (@0.0.0.0@), or a CIDR address+    -- (@192.0.2.0\/24@). By default, Amazon FSx uses the wildcard character+    -- when specifying the client.+    clients :: Prelude.Text,+    -- | The options to use when mounting the file system. For a list of options+    -- that you can use with Network File System (NFS), see the+    -- <https://linux.die.net/man/5/exports exports(5) - Linux man page>. When+    -- choosing your options, consider the following:+    --+    -- -   @crossmnt@ is used by default. If you don\'t specify @crossmnt@ when+    --     changing the client configuration, you won\'t be able to see or+    --     access snapshots in your file system\'s snapshot directory.+    --+    -- -   @sync@ is used by default. If you instead specify @async@, the+    --     system acknowledges writes before writing to disk. If the system+    --     crashes before the writes are finished, you lose the unwritten data.+    options :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpenZFSClientConfiguration' 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:+--+-- 'clients', 'openZFSClientConfiguration_clients' - A value that specifies who can mount the file system. You can provide a+-- wildcard character (@*@), an IP address (@0.0.0.0@), or a CIDR address+-- (@192.0.2.0\/24@). By default, Amazon FSx uses the wildcard character+-- when specifying the client.+--+-- 'options', 'openZFSClientConfiguration_options' - The options to use when mounting the file system. For a list of options+-- that you can use with Network File System (NFS), see the+-- <https://linux.die.net/man/5/exports exports(5) - Linux man page>. When+-- choosing your options, consider the following:+--+-- -   @crossmnt@ is used by default. If you don\'t specify @crossmnt@ when+--     changing the client configuration, you won\'t be able to see or+--     access snapshots in your file system\'s snapshot directory.+--+-- -   @sync@ is used by default. If you instead specify @async@, the+--     system acknowledges writes before writing to disk. If the system+--     crashes before the writes are finished, you lose the unwritten data.+newOpenZFSClientConfiguration ::+  -- | 'clients'+  Prelude.Text ->+  -- | 'options'+  Prelude.NonEmpty Prelude.Text ->+  OpenZFSClientConfiguration+newOpenZFSClientConfiguration pClients_ pOptions_ =+  OpenZFSClientConfiguration'+    { clients = pClients_,+      options = Lens.coerced Lens.# pOptions_+    }++-- | A value that specifies who can mount the file system. You can provide a+-- wildcard character (@*@), an IP address (@0.0.0.0@), or a CIDR address+-- (@192.0.2.0\/24@). By default, Amazon FSx uses the wildcard character+-- when specifying the client.+openZFSClientConfiguration_clients :: Lens.Lens' OpenZFSClientConfiguration Prelude.Text+openZFSClientConfiguration_clients = Lens.lens (\OpenZFSClientConfiguration' {clients} -> clients) (\s@OpenZFSClientConfiguration' {} a -> s {clients = a} :: OpenZFSClientConfiguration)++-- | The options to use when mounting the file system. For a list of options+-- that you can use with Network File System (NFS), see the+-- <https://linux.die.net/man/5/exports exports(5) - Linux man page>. When+-- choosing your options, consider the following:+--+-- -   @crossmnt@ is used by default. If you don\'t specify @crossmnt@ when+--     changing the client configuration, you won\'t be able to see or+--     access snapshots in your file system\'s snapshot directory.+--+-- -   @sync@ is used by default. If you instead specify @async@, the+--     system acknowledges writes before writing to disk. If the system+--     crashes before the writes are finished, you lose the unwritten data.+openZFSClientConfiguration_options :: Lens.Lens' OpenZFSClientConfiguration (Prelude.NonEmpty Prelude.Text)+openZFSClientConfiguration_options = Lens.lens (\OpenZFSClientConfiguration' {options} -> options) (\s@OpenZFSClientConfiguration' {} a -> s {options = a} :: OpenZFSClientConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON OpenZFSClientConfiguration where+  parseJSON =+    Data.withObject+      "OpenZFSClientConfiguration"+      ( \x ->+          OpenZFSClientConfiguration'+            Prelude.<$> (x Data..: "Clients")+            Prelude.<*> (x Data..: "Options")+      )++instance Prelude.Hashable OpenZFSClientConfiguration where+  hashWithSalt _salt OpenZFSClientConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` clients+      `Prelude.hashWithSalt` options++instance Prelude.NFData OpenZFSClientConfiguration where+  rnf OpenZFSClientConfiguration' {..} =+    Prelude.rnf clients+      `Prelude.seq` Prelude.rnf options++instance Data.ToJSON OpenZFSClientConfiguration where+  toJSON OpenZFSClientConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Clients" Data..= clients),+            Prelude.Just ("Options" Data..= options)+          ]+      )
+ gen/Amazonka/FSx/Types/OpenZFSCopyStrategy.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.OpenZFSCopyStrategy+-- 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.OpenZFSCopyStrategy+  ( OpenZFSCopyStrategy+      ( ..,+        OpenZFSCopyStrategy_CLONE,+        OpenZFSCopyStrategy_FULL_COPY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OpenZFSCopyStrategy = OpenZFSCopyStrategy'+  { fromOpenZFSCopyStrategy ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OpenZFSCopyStrategy_CLONE :: OpenZFSCopyStrategy+pattern OpenZFSCopyStrategy_CLONE = OpenZFSCopyStrategy' "CLONE"++pattern OpenZFSCopyStrategy_FULL_COPY :: OpenZFSCopyStrategy+pattern OpenZFSCopyStrategy_FULL_COPY = OpenZFSCopyStrategy' "FULL_COPY"++{-# COMPLETE+  OpenZFSCopyStrategy_CLONE,+  OpenZFSCopyStrategy_FULL_COPY,+  OpenZFSCopyStrategy'+  #-}
+ gen/Amazonka/FSx/Types/OpenZFSCreateRootVolumeConfiguration.hs view
@@ -0,0 +1,233 @@+{-# 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.OpenZFSCreateRootVolumeConfiguration+-- 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.OpenZFSCreateRootVolumeConfiguration 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.OpenZFSDataCompressionType+import Amazonka.FSx.Types.OpenZFSNfsExport+import Amazonka.FSx.Types.OpenZFSUserOrGroupQuota+import qualified Amazonka.Prelude as Prelude++-- | The configuration of an Amazon FSx for OpenZFS root volume.+--+-- /See:/ 'newOpenZFSCreateRootVolumeConfiguration' smart constructor.+data OpenZFSCreateRootVolumeConfiguration = OpenZFSCreateRootVolumeConfiguration'+  { -- | A Boolean value indicating whether tags for the volume should be copied+    -- to snapshots of the volume. This value defaults to @false@. If it\'s set+    -- to @true@, all tags for the volume are copied to snapshots where the+    -- user doesn\'t specify tags. If this value is @true@ and you specify one+    -- or more tags, only the specified tags are copied to snapshots. If you+    -- specify one or more tags when creating the snapshot, no tags are copied+    -- from the volume, regardless of this value.+    copyTagsToSnapshots :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the method used to compress the data on the volume. The+    -- compression type is @NONE@ by default.+    --+    -- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+    --     default.+    --+    -- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+    --     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+    --     better compression ratio to minimize on-disk storage utilization.+    --+    -- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+    --     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+    --     delivers higher write throughput speeds.+    dataCompressionType :: Prelude.Maybe OpenZFSDataCompressionType,+    -- | The configuration object for mounting a file system.+    nfsExports :: Prelude.Maybe [OpenZFSNfsExport],+    -- | A Boolean value indicating whether the volume is read-only. Setting this+    -- value to @true@ can be useful after you have completed changes to a+    -- volume and no longer want changes to occur.+    readOnly :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the record size of an OpenZFS root volume, in kibibytes (KiB).+    -- Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The+    -- default is 128 KiB. Most workloads should use the default record size.+    -- Database workflows can benefit from a smaller record size, while+    -- streaming workflows can benefit from a larger record size. For+    -- additional guidance on setting a custom record size, see+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+    -- in the /Amazon FSx for OpenZFS User Guide/.+    recordSizeKiB :: Prelude.Maybe Prelude.Natural,+    -- | An object specifying how much storage users or groups can use on the+    -- volume.+    userAndGroupQuotas :: Prelude.Maybe [OpenZFSUserOrGroupQuota]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpenZFSCreateRootVolumeConfiguration' 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:+--+-- 'copyTagsToSnapshots', 'openZFSCreateRootVolumeConfiguration_copyTagsToSnapshots' - A Boolean value indicating whether tags for the volume should be copied+-- to snapshots of the volume. This value defaults to @false@. If it\'s set+-- to @true@, all tags for the volume are copied to snapshots where the+-- user doesn\'t specify tags. If this value is @true@ and you specify one+-- or more tags, only the specified tags are copied to snapshots. If you+-- specify one or more tags when creating the snapshot, no tags are copied+-- from the volume, regardless of this value.+--+-- 'dataCompressionType', 'openZFSCreateRootVolumeConfiguration_dataCompressionType' - Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+--     better compression ratio to minimize on-disk storage utilization.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+--     delivers higher write throughput speeds.+--+-- 'nfsExports', 'openZFSCreateRootVolumeConfiguration_nfsExports' - The configuration object for mounting a file system.+--+-- 'readOnly', 'openZFSCreateRootVolumeConfiguration_readOnly' - A Boolean value indicating whether the volume is read-only. Setting this+-- value to @true@ can be useful after you have completed changes to a+-- volume and no longer want changes to occur.+--+-- 'recordSizeKiB', 'openZFSCreateRootVolumeConfiguration_recordSizeKiB' - Specifies the record size of an OpenZFS root volume, in kibibytes (KiB).+-- Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The+-- default is 128 KiB. Most workloads should use the default record size.+-- Database workflows can benefit from a smaller record size, while+-- streaming workflows can benefit from a larger record size. For+-- additional guidance on setting a custom record size, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+-- in the /Amazon FSx for OpenZFS User Guide/.+--+-- 'userAndGroupQuotas', 'openZFSCreateRootVolumeConfiguration_userAndGroupQuotas' - An object specifying how much storage users or groups can use on the+-- volume.+newOpenZFSCreateRootVolumeConfiguration ::+  OpenZFSCreateRootVolumeConfiguration+newOpenZFSCreateRootVolumeConfiguration =+  OpenZFSCreateRootVolumeConfiguration'+    { copyTagsToSnapshots =+        Prelude.Nothing,+      dataCompressionType = Prelude.Nothing,+      nfsExports = Prelude.Nothing,+      readOnly = Prelude.Nothing,+      recordSizeKiB = Prelude.Nothing,+      userAndGroupQuotas = Prelude.Nothing+    }++-- | A Boolean value indicating whether tags for the volume should be copied+-- to snapshots of the volume. This value defaults to @false@. If it\'s set+-- to @true@, all tags for the volume are copied to snapshots where the+-- user doesn\'t specify tags. If this value is @true@ and you specify one+-- or more tags, only the specified tags are copied to snapshots. If you+-- specify one or more tags when creating the snapshot, no tags are copied+-- from the volume, regardless of this value.+openZFSCreateRootVolumeConfiguration_copyTagsToSnapshots :: Lens.Lens' OpenZFSCreateRootVolumeConfiguration (Prelude.Maybe Prelude.Bool)+openZFSCreateRootVolumeConfiguration_copyTagsToSnapshots = Lens.lens (\OpenZFSCreateRootVolumeConfiguration' {copyTagsToSnapshots} -> copyTagsToSnapshots) (\s@OpenZFSCreateRootVolumeConfiguration' {} a -> s {copyTagsToSnapshots = a} :: OpenZFSCreateRootVolumeConfiguration)++-- | Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+--     better compression ratio to minimize on-disk storage utilization.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+--     delivers higher write throughput speeds.+openZFSCreateRootVolumeConfiguration_dataCompressionType :: Lens.Lens' OpenZFSCreateRootVolumeConfiguration (Prelude.Maybe OpenZFSDataCompressionType)+openZFSCreateRootVolumeConfiguration_dataCompressionType = Lens.lens (\OpenZFSCreateRootVolumeConfiguration' {dataCompressionType} -> dataCompressionType) (\s@OpenZFSCreateRootVolumeConfiguration' {} a -> s {dataCompressionType = a} :: OpenZFSCreateRootVolumeConfiguration)++-- | The configuration object for mounting a file system.+openZFSCreateRootVolumeConfiguration_nfsExports :: Lens.Lens' OpenZFSCreateRootVolumeConfiguration (Prelude.Maybe [OpenZFSNfsExport])+openZFSCreateRootVolumeConfiguration_nfsExports = Lens.lens (\OpenZFSCreateRootVolumeConfiguration' {nfsExports} -> nfsExports) (\s@OpenZFSCreateRootVolumeConfiguration' {} a -> s {nfsExports = a} :: OpenZFSCreateRootVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean value indicating whether the volume is read-only. Setting this+-- value to @true@ can be useful after you have completed changes to a+-- volume and no longer want changes to occur.+openZFSCreateRootVolumeConfiguration_readOnly :: Lens.Lens' OpenZFSCreateRootVolumeConfiguration (Prelude.Maybe Prelude.Bool)+openZFSCreateRootVolumeConfiguration_readOnly = Lens.lens (\OpenZFSCreateRootVolumeConfiguration' {readOnly} -> readOnly) (\s@OpenZFSCreateRootVolumeConfiguration' {} a -> s {readOnly = a} :: OpenZFSCreateRootVolumeConfiguration)++-- | Specifies the record size of an OpenZFS root volume, in kibibytes (KiB).+-- Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The+-- default is 128 KiB. Most workloads should use the default record size.+-- Database workflows can benefit from a smaller record size, while+-- streaming workflows can benefit from a larger record size. For+-- additional guidance on setting a custom record size, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+-- in the /Amazon FSx for OpenZFS User Guide/.+openZFSCreateRootVolumeConfiguration_recordSizeKiB :: Lens.Lens' OpenZFSCreateRootVolumeConfiguration (Prelude.Maybe Prelude.Natural)+openZFSCreateRootVolumeConfiguration_recordSizeKiB = Lens.lens (\OpenZFSCreateRootVolumeConfiguration' {recordSizeKiB} -> recordSizeKiB) (\s@OpenZFSCreateRootVolumeConfiguration' {} a -> s {recordSizeKiB = a} :: OpenZFSCreateRootVolumeConfiguration)++-- | An object specifying how much storage users or groups can use on the+-- volume.+openZFSCreateRootVolumeConfiguration_userAndGroupQuotas :: Lens.Lens' OpenZFSCreateRootVolumeConfiguration (Prelude.Maybe [OpenZFSUserOrGroupQuota])+openZFSCreateRootVolumeConfiguration_userAndGroupQuotas = Lens.lens (\OpenZFSCreateRootVolumeConfiguration' {userAndGroupQuotas} -> userAndGroupQuotas) (\s@OpenZFSCreateRootVolumeConfiguration' {} a -> s {userAndGroupQuotas = a} :: OpenZFSCreateRootVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    OpenZFSCreateRootVolumeConfiguration+  where+  hashWithSalt+    _salt+    OpenZFSCreateRootVolumeConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` copyTagsToSnapshots+        `Prelude.hashWithSalt` dataCompressionType+        `Prelude.hashWithSalt` nfsExports+        `Prelude.hashWithSalt` readOnly+        `Prelude.hashWithSalt` recordSizeKiB+        `Prelude.hashWithSalt` userAndGroupQuotas++instance+  Prelude.NFData+    OpenZFSCreateRootVolumeConfiguration+  where+  rnf OpenZFSCreateRootVolumeConfiguration' {..} =+    Prelude.rnf copyTagsToSnapshots+      `Prelude.seq` Prelude.rnf dataCompressionType+      `Prelude.seq` Prelude.rnf nfsExports+      `Prelude.seq` Prelude.rnf readOnly+      `Prelude.seq` Prelude.rnf recordSizeKiB+      `Prelude.seq` Prelude.rnf userAndGroupQuotas++instance+  Data.ToJSON+    OpenZFSCreateRootVolumeConfiguration+  where+  toJSON OpenZFSCreateRootVolumeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CopyTagsToSnapshots" Data..=)+              Prelude.<$> copyTagsToSnapshots,+            ("DataCompressionType" Data..=)+              Prelude.<$> dataCompressionType,+            ("NfsExports" Data..=) Prelude.<$> nfsExports,+            ("ReadOnly" Data..=) Prelude.<$> readOnly,+            ("RecordSizeKiB" Data..=) Prelude.<$> recordSizeKiB,+            ("UserAndGroupQuotas" Data..=)+              Prelude.<$> userAndGroupQuotas+          ]+      )
+ gen/Amazonka/FSx/Types/OpenZFSDataCompressionType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.OpenZFSDataCompressionType+-- 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.OpenZFSDataCompressionType+  ( OpenZFSDataCompressionType+      ( ..,+        OpenZFSDataCompressionType_LZ4,+        OpenZFSDataCompressionType_NONE,+        OpenZFSDataCompressionType_ZSTD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OpenZFSDataCompressionType = OpenZFSDataCompressionType'+  { fromOpenZFSDataCompressionType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OpenZFSDataCompressionType_LZ4 :: OpenZFSDataCompressionType+pattern OpenZFSDataCompressionType_LZ4 = OpenZFSDataCompressionType' "LZ4"++pattern OpenZFSDataCompressionType_NONE :: OpenZFSDataCompressionType+pattern OpenZFSDataCompressionType_NONE = OpenZFSDataCompressionType' "NONE"++pattern OpenZFSDataCompressionType_ZSTD :: OpenZFSDataCompressionType+pattern OpenZFSDataCompressionType_ZSTD = OpenZFSDataCompressionType' "ZSTD"++{-# COMPLETE+  OpenZFSDataCompressionType_LZ4,+  OpenZFSDataCompressionType_NONE,+  OpenZFSDataCompressionType_ZSTD,+  OpenZFSDataCompressionType'+  #-}
+ gen/Amazonka/FSx/Types/OpenZFSDeploymentType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.OpenZFSDeploymentType+-- 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.OpenZFSDeploymentType+  ( OpenZFSDeploymentType+      ( ..,+        OpenZFSDeploymentType_SINGLE_AZ_1,+        OpenZFSDeploymentType_SINGLE_AZ_2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OpenZFSDeploymentType = OpenZFSDeploymentType'+  { fromOpenZFSDeploymentType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OpenZFSDeploymentType_SINGLE_AZ_1 :: OpenZFSDeploymentType+pattern OpenZFSDeploymentType_SINGLE_AZ_1 = OpenZFSDeploymentType' "SINGLE_AZ_1"++pattern OpenZFSDeploymentType_SINGLE_AZ_2 :: OpenZFSDeploymentType+pattern OpenZFSDeploymentType_SINGLE_AZ_2 = OpenZFSDeploymentType' "SINGLE_AZ_2"++{-# COMPLETE+  OpenZFSDeploymentType_SINGLE_AZ_1,+  OpenZFSDeploymentType_SINGLE_AZ_2,+  OpenZFSDeploymentType'+  #-}
+ gen/Amazonka/FSx/Types/OpenZFSFileSystemConfiguration.hs view
@@ -0,0 +1,219 @@+{-# 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.OpenZFSFileSystemConfiguration+-- 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.OpenZFSFileSystemConfiguration 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.DiskIopsConfiguration+import Amazonka.FSx.Types.OpenZFSDeploymentType+import qualified Amazonka.Prelude as Prelude++-- | The configuration for the Amazon FSx for OpenZFS file system.+--+-- /See:/ 'newOpenZFSFileSystemConfiguration' smart constructor.+data OpenZFSFileSystemConfiguration = OpenZFSFileSystemConfiguration'+  { automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | A Boolean value indicating whether tags on the file system should be+    -- copied to backups. If it\'s set to @true@, all tags on the file system+    -- are copied to all automatic backups and any user-initiated backups where+    -- the user doesn\'t specify any tags. If this value is @true@ and you+    -- specify one or more tags, only the specified tags are copied to backups.+    -- If you specify one or more tags when creating a user-initiated backup,+    -- no tags are copied from the file system, regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value indicating whether tags for the volume should be copied+    -- to snapshots. This value defaults to @false@. If it\'s set to @true@,+    -- all tags for the volume are copied to snapshots where the user doesn\'t+    -- specify tags. If this value is @true@ and you specify one or more tags,+    -- only the specified tags are copied to snapshots. If you specify one or+    -- more tags when creating the snapshot, no tags are copied from the+    -- volume, regardless of this value.+    copyTagsToVolumes :: Prelude.Maybe Prelude.Bool,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | Specifies the file-system deployment type. Amazon FSx for OpenZFS+    -- supports
 @SINGLE_AZ_1@ and @SINGLE_AZ_2@.+    deploymentType :: Prelude.Maybe OpenZFSDeploymentType,+    diskIopsConfiguration :: Prelude.Maybe DiskIopsConfiguration,+    -- | The ID of the root volume of the OpenZFS file system.+    rootVolumeId :: Prelude.Maybe Prelude.Text,+    -- | The throughput of an Amazon FSx file system, measured in megabytes per+    -- second (MBps).+    throughputCapacity :: Prelude.Maybe Prelude.Natural,+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpenZFSFileSystemConfiguration' 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:+--+-- 'automaticBackupRetentionDays', 'openZFSFileSystemConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'copyTagsToBackups', 'openZFSFileSystemConfiguration_copyTagsToBackups' - A Boolean value indicating whether tags on the file system should be+-- copied to backups. If it\'s set to @true@, all tags on the file system+-- are copied to all automatic backups and any user-initiated backups where+-- the user doesn\'t specify any tags. If this value is @true@ and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the file system, regardless of this value.+--+-- 'copyTagsToVolumes', 'openZFSFileSystemConfiguration_copyTagsToVolumes' - A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@ and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+--+-- 'dailyAutomaticBackupStartTime', 'openZFSFileSystemConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'deploymentType', 'openZFSFileSystemConfiguration_deploymentType' - Specifies the file-system deployment type. Amazon FSx for OpenZFS+-- supports
 @SINGLE_AZ_1@ and @SINGLE_AZ_2@.+--+-- 'diskIopsConfiguration', 'openZFSFileSystemConfiguration_diskIopsConfiguration' - Undocumented member.+--+-- 'rootVolumeId', 'openZFSFileSystemConfiguration_rootVolumeId' - The ID of the root volume of the OpenZFS file system.+--+-- 'throughputCapacity', 'openZFSFileSystemConfiguration_throughputCapacity' - The throughput of an Amazon FSx file system, measured in megabytes per+-- second (MBps).+--+-- 'weeklyMaintenanceStartTime', 'openZFSFileSystemConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+newOpenZFSFileSystemConfiguration ::+  OpenZFSFileSystemConfiguration+newOpenZFSFileSystemConfiguration =+  OpenZFSFileSystemConfiguration'+    { automaticBackupRetentionDays =+        Prelude.Nothing,+      copyTagsToBackups = Prelude.Nothing,+      copyTagsToVolumes = Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      deploymentType = Prelude.Nothing,+      diskIopsConfiguration = Prelude.Nothing,+      rootVolumeId = Prelude.Nothing,+      throughputCapacity = Prelude.Nothing,+      weeklyMaintenanceStartTime =+        Prelude.Nothing+    }++-- | Undocumented member.+openZFSFileSystemConfiguration_automaticBackupRetentionDays :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+openZFSFileSystemConfiguration_automaticBackupRetentionDays = Lens.lens (\OpenZFSFileSystemConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@OpenZFSFileSystemConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: OpenZFSFileSystemConfiguration)++-- | A Boolean value indicating whether tags on the file system should be+-- copied to backups. If it\'s set to @true@, all tags on the file system+-- are copied to all automatic backups and any user-initiated backups where+-- the user doesn\'t specify any tags. If this value is @true@ and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the file system, regardless of this value.+openZFSFileSystemConfiguration_copyTagsToBackups :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe Prelude.Bool)+openZFSFileSystemConfiguration_copyTagsToBackups = Lens.lens (\OpenZFSFileSystemConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@OpenZFSFileSystemConfiguration' {} a -> s {copyTagsToBackups = a} :: OpenZFSFileSystemConfiguration)++-- | A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@ and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+openZFSFileSystemConfiguration_copyTagsToVolumes :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe Prelude.Bool)+openZFSFileSystemConfiguration_copyTagsToVolumes = Lens.lens (\OpenZFSFileSystemConfiguration' {copyTagsToVolumes} -> copyTagsToVolumes) (\s@OpenZFSFileSystemConfiguration' {} a -> s {copyTagsToVolumes = a} :: OpenZFSFileSystemConfiguration)++-- | Undocumented member.+openZFSFileSystemConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe Prelude.Text)+openZFSFileSystemConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\OpenZFSFileSystemConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@OpenZFSFileSystemConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: OpenZFSFileSystemConfiguration)++-- | Specifies the file-system deployment type. Amazon FSx for OpenZFS+-- supports
 @SINGLE_AZ_1@ and @SINGLE_AZ_2@.+openZFSFileSystemConfiguration_deploymentType :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe OpenZFSDeploymentType)+openZFSFileSystemConfiguration_deploymentType = Lens.lens (\OpenZFSFileSystemConfiguration' {deploymentType} -> deploymentType) (\s@OpenZFSFileSystemConfiguration' {} a -> s {deploymentType = a} :: OpenZFSFileSystemConfiguration)++-- | Undocumented member.+openZFSFileSystemConfiguration_diskIopsConfiguration :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe DiskIopsConfiguration)+openZFSFileSystemConfiguration_diskIopsConfiguration = Lens.lens (\OpenZFSFileSystemConfiguration' {diskIopsConfiguration} -> diskIopsConfiguration) (\s@OpenZFSFileSystemConfiguration' {} a -> s {diskIopsConfiguration = a} :: OpenZFSFileSystemConfiguration)++-- | The ID of the root volume of the OpenZFS file system.+openZFSFileSystemConfiguration_rootVolumeId :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe Prelude.Text)+openZFSFileSystemConfiguration_rootVolumeId = Lens.lens (\OpenZFSFileSystemConfiguration' {rootVolumeId} -> rootVolumeId) (\s@OpenZFSFileSystemConfiguration' {} a -> s {rootVolumeId = a} :: OpenZFSFileSystemConfiguration)++-- | The throughput of an Amazon FSx file system, measured in megabytes per+-- second (MBps).+openZFSFileSystemConfiguration_throughputCapacity :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+openZFSFileSystemConfiguration_throughputCapacity = Lens.lens (\OpenZFSFileSystemConfiguration' {throughputCapacity} -> throughputCapacity) (\s@OpenZFSFileSystemConfiguration' {} a -> s {throughputCapacity = a} :: OpenZFSFileSystemConfiguration)++-- | Undocumented member.+openZFSFileSystemConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' OpenZFSFileSystemConfiguration (Prelude.Maybe Prelude.Text)+openZFSFileSystemConfiguration_weeklyMaintenanceStartTime = Lens.lens (\OpenZFSFileSystemConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@OpenZFSFileSystemConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: OpenZFSFileSystemConfiguration)++instance Data.FromJSON OpenZFSFileSystemConfiguration where+  parseJSON =+    Data.withObject+      "OpenZFSFileSystemConfiguration"+      ( \x ->+          OpenZFSFileSystemConfiguration'+            Prelude.<$> (x Data..:? "AutomaticBackupRetentionDays")+            Prelude.<*> (x Data..:? "CopyTagsToBackups")+            Prelude.<*> (x Data..:? "CopyTagsToVolumes")+            Prelude.<*> (x Data..:? "DailyAutomaticBackupStartTime")+            Prelude.<*> (x Data..:? "DeploymentType")+            Prelude.<*> (x Data..:? "DiskIopsConfiguration")+            Prelude.<*> (x Data..:? "RootVolumeId")+            Prelude.<*> (x Data..:? "ThroughputCapacity")+            Prelude.<*> (x Data..:? "WeeklyMaintenanceStartTime")+      )++instance+  Prelude.Hashable+    OpenZFSFileSystemConfiguration+  where+  hashWithSalt+    _salt+    OpenZFSFileSystemConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` copyTagsToVolumes+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` deploymentType+        `Prelude.hashWithSalt` diskIopsConfiguration+        `Prelude.hashWithSalt` rootVolumeId+        `Prelude.hashWithSalt` throughputCapacity+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance+  Prelude.NFData+    OpenZFSFileSystemConfiguration+  where+  rnf OpenZFSFileSystemConfiguration' {..} =+    Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf copyTagsToVolumes+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf diskIopsConfiguration+      `Prelude.seq` Prelude.rnf rootVolumeId+      `Prelude.seq` Prelude.rnf throughputCapacity+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime
+ gen/Amazonka/FSx/Types/OpenZFSNfsExport.hs view
@@ -0,0 +1,91 @@+{-# 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.OpenZFSNfsExport+-- 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.OpenZFSNfsExport 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.OpenZFSClientConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The Network File System (NFS) configurations for mounting an Amazon FSx+-- for OpenZFS file system.+--+-- /See:/ 'newOpenZFSNfsExport' smart constructor.+data OpenZFSNfsExport = OpenZFSNfsExport'+  { -- | A list of configuration objects that contain the client and options for+    -- mounting the OpenZFS file system.+    clientConfigurations :: [OpenZFSClientConfiguration]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpenZFSNfsExport' 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:+--+-- 'clientConfigurations', 'openZFSNfsExport_clientConfigurations' - A list of configuration objects that contain the client and options for+-- mounting the OpenZFS file system.+newOpenZFSNfsExport ::+  OpenZFSNfsExport+newOpenZFSNfsExport =+  OpenZFSNfsExport'+    { clientConfigurations =+        Prelude.mempty+    }++-- | A list of configuration objects that contain the client and options for+-- mounting the OpenZFS file system.+openZFSNfsExport_clientConfigurations :: Lens.Lens' OpenZFSNfsExport [OpenZFSClientConfiguration]+openZFSNfsExport_clientConfigurations = Lens.lens (\OpenZFSNfsExport' {clientConfigurations} -> clientConfigurations) (\s@OpenZFSNfsExport' {} a -> s {clientConfigurations = a} :: OpenZFSNfsExport) Prelude.. Lens.coerced++instance Data.FromJSON OpenZFSNfsExport where+  parseJSON =+    Data.withObject+      "OpenZFSNfsExport"+      ( \x ->+          OpenZFSNfsExport'+            Prelude.<$> ( x+                            Data..:? "ClientConfigurations"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable OpenZFSNfsExport where+  hashWithSalt _salt OpenZFSNfsExport' {..} =+    _salt `Prelude.hashWithSalt` clientConfigurations++instance Prelude.NFData OpenZFSNfsExport where+  rnf OpenZFSNfsExport' {..} =+    Prelude.rnf clientConfigurations++instance Data.ToJSON OpenZFSNfsExport where+  toJSON OpenZFSNfsExport' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "ClientConfigurations"+                  Data..= clientConfigurations+              )+          ]+      )
+ gen/Amazonka/FSx/Types/OpenZFSOriginSnapshotConfiguration.hs view
@@ -0,0 +1,121 @@+{-# 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.OpenZFSOriginSnapshotConfiguration+-- 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.OpenZFSOriginSnapshotConfiguration 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.OpenZFSCopyStrategy+import qualified Amazonka.Prelude as Prelude++-- | The snapshot configuration to use when creating an OpenZFS volume from a+-- snapshot.+--+-- /See:/ 'newOpenZFSOriginSnapshotConfiguration' smart constructor.+data OpenZFSOriginSnapshotConfiguration = OpenZFSOriginSnapshotConfiguration'+  { -- | The strategy used when copying data from the snapshot to the new volume.+    --+    -- -   @CLONE@ - The new volume references the data in the origin snapshot.+    --     Cloning a snapshot is faster than copying the data from a snapshot+    --     to a new volume and doesn\'t consume disk throughput. However, the+    --     origin snapshot can\'t be deleted if there is a volume using its+    --     copied data.+    --+    -- -   @FULL_COPY@ - Copies all data from the snapshot to the new volume.+    copyStrategy :: Prelude.Maybe OpenZFSCopyStrategy,+    snapshotARN :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpenZFSOriginSnapshotConfiguration' 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:+--+-- 'copyStrategy', 'openZFSOriginSnapshotConfiguration_copyStrategy' - The strategy used when copying data from the snapshot to the new volume.+--+-- -   @CLONE@ - The new volume references the data in the origin snapshot.+--     Cloning a snapshot is faster than copying the data from a snapshot+--     to a new volume and doesn\'t consume disk throughput. However, the+--     origin snapshot can\'t be deleted if there is a volume using its+--     copied data.+--+-- -   @FULL_COPY@ - Copies all data from the snapshot to the new volume.+--+-- 'snapshotARN', 'openZFSOriginSnapshotConfiguration_snapshotARN' - Undocumented member.+newOpenZFSOriginSnapshotConfiguration ::+  OpenZFSOriginSnapshotConfiguration+newOpenZFSOriginSnapshotConfiguration =+  OpenZFSOriginSnapshotConfiguration'+    { copyStrategy =+        Prelude.Nothing,+      snapshotARN = Prelude.Nothing+    }++-- | The strategy used when copying data from the snapshot to the new volume.+--+-- -   @CLONE@ - The new volume references the data in the origin snapshot.+--     Cloning a snapshot is faster than copying the data from a snapshot+--     to a new volume and doesn\'t consume disk throughput. However, the+--     origin snapshot can\'t be deleted if there is a volume using its+--     copied data.+--+-- -   @FULL_COPY@ - Copies all data from the snapshot to the new volume.+openZFSOriginSnapshotConfiguration_copyStrategy :: Lens.Lens' OpenZFSOriginSnapshotConfiguration (Prelude.Maybe OpenZFSCopyStrategy)+openZFSOriginSnapshotConfiguration_copyStrategy = Lens.lens (\OpenZFSOriginSnapshotConfiguration' {copyStrategy} -> copyStrategy) (\s@OpenZFSOriginSnapshotConfiguration' {} a -> s {copyStrategy = a} :: OpenZFSOriginSnapshotConfiguration)++-- | Undocumented member.+openZFSOriginSnapshotConfiguration_snapshotARN :: Lens.Lens' OpenZFSOriginSnapshotConfiguration (Prelude.Maybe Prelude.Text)+openZFSOriginSnapshotConfiguration_snapshotARN = Lens.lens (\OpenZFSOriginSnapshotConfiguration' {snapshotARN} -> snapshotARN) (\s@OpenZFSOriginSnapshotConfiguration' {} a -> s {snapshotARN = a} :: OpenZFSOriginSnapshotConfiguration)++instance+  Data.FromJSON+    OpenZFSOriginSnapshotConfiguration+  where+  parseJSON =+    Data.withObject+      "OpenZFSOriginSnapshotConfiguration"+      ( \x ->+          OpenZFSOriginSnapshotConfiguration'+            Prelude.<$> (x Data..:? "CopyStrategy")+            Prelude.<*> (x Data..:? "SnapshotARN")+      )++instance+  Prelude.Hashable+    OpenZFSOriginSnapshotConfiguration+  where+  hashWithSalt+    _salt+    OpenZFSOriginSnapshotConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` copyStrategy+        `Prelude.hashWithSalt` snapshotARN++instance+  Prelude.NFData+    OpenZFSOriginSnapshotConfiguration+  where+  rnf OpenZFSOriginSnapshotConfiguration' {..} =+    Prelude.rnf copyStrategy+      `Prelude.seq` Prelude.rnf snapshotARN
+ gen/Amazonka/FSx/Types/OpenZFSQuotaType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.OpenZFSQuotaType+-- 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.OpenZFSQuotaType+  ( OpenZFSQuotaType+      ( ..,+        OpenZFSQuotaType_GROUP,+        OpenZFSQuotaType_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OpenZFSQuotaType = OpenZFSQuotaType'+  { fromOpenZFSQuotaType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OpenZFSQuotaType_GROUP :: OpenZFSQuotaType+pattern OpenZFSQuotaType_GROUP = OpenZFSQuotaType' "GROUP"++pattern OpenZFSQuotaType_USER :: OpenZFSQuotaType+pattern OpenZFSQuotaType_USER = OpenZFSQuotaType' "USER"++{-# COMPLETE+  OpenZFSQuotaType_GROUP,+  OpenZFSQuotaType_USER,+  OpenZFSQuotaType'+  #-}
+ gen/Amazonka/FSx/Types/OpenZFSUserOrGroupQuota.hs view
@@ -0,0 +1,121 @@+{-# 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.OpenZFSUserOrGroupQuota+-- 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.OpenZFSUserOrGroupQuota 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.OpenZFSQuotaType+import qualified Amazonka.Prelude as Prelude++-- | The configuration for how much storage a user or group can use on the+-- volume.+--+-- /See:/ 'newOpenZFSUserOrGroupQuota' smart constructor.+data OpenZFSUserOrGroupQuota = OpenZFSUserOrGroupQuota'+  { -- | A value that specifies whether the quota applies to a user or group.+    type' :: OpenZFSQuotaType,+    -- | The ID of the user or group.+    id :: Prelude.Natural,+    -- | The amount of storage that the user or group can use in gibibytes (GiB).+    storageCapacityQuotaGiB :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpenZFSUserOrGroupQuota' 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:+--+-- 'type'', 'openZFSUserOrGroupQuota_type' - A value that specifies whether the quota applies to a user or group.+--+-- 'id', 'openZFSUserOrGroupQuota_id' - The ID of the user or group.+--+-- 'storageCapacityQuotaGiB', 'openZFSUserOrGroupQuota_storageCapacityQuotaGiB' - The amount of storage that the user or group can use in gibibytes (GiB).+newOpenZFSUserOrGroupQuota ::+  -- | 'type''+  OpenZFSQuotaType ->+  -- | 'id'+  Prelude.Natural ->+  -- | 'storageCapacityQuotaGiB'+  Prelude.Natural ->+  OpenZFSUserOrGroupQuota+newOpenZFSUserOrGroupQuota+  pType_+  pId_+  pStorageCapacityQuotaGiB_ =+    OpenZFSUserOrGroupQuota'+      { type' = pType_,+        id = pId_,+        storageCapacityQuotaGiB =+          pStorageCapacityQuotaGiB_+      }++-- | A value that specifies whether the quota applies to a user or group.+openZFSUserOrGroupQuota_type :: Lens.Lens' OpenZFSUserOrGroupQuota OpenZFSQuotaType+openZFSUserOrGroupQuota_type = Lens.lens (\OpenZFSUserOrGroupQuota' {type'} -> type') (\s@OpenZFSUserOrGroupQuota' {} a -> s {type' = a} :: OpenZFSUserOrGroupQuota)++-- | The ID of the user or group.+openZFSUserOrGroupQuota_id :: Lens.Lens' OpenZFSUserOrGroupQuota Prelude.Natural+openZFSUserOrGroupQuota_id = Lens.lens (\OpenZFSUserOrGroupQuota' {id} -> id) (\s@OpenZFSUserOrGroupQuota' {} a -> s {id = a} :: OpenZFSUserOrGroupQuota)++-- | The amount of storage that the user or group can use in gibibytes (GiB).+openZFSUserOrGroupQuota_storageCapacityQuotaGiB :: Lens.Lens' OpenZFSUserOrGroupQuota Prelude.Natural+openZFSUserOrGroupQuota_storageCapacityQuotaGiB = Lens.lens (\OpenZFSUserOrGroupQuota' {storageCapacityQuotaGiB} -> storageCapacityQuotaGiB) (\s@OpenZFSUserOrGroupQuota' {} a -> s {storageCapacityQuotaGiB = a} :: OpenZFSUserOrGroupQuota)++instance Data.FromJSON OpenZFSUserOrGroupQuota where+  parseJSON =+    Data.withObject+      "OpenZFSUserOrGroupQuota"+      ( \x ->+          OpenZFSUserOrGroupQuota'+            Prelude.<$> (x Data..: "Type")+            Prelude.<*> (x Data..: "Id")+            Prelude.<*> (x Data..: "StorageCapacityQuotaGiB")+      )++instance Prelude.Hashable OpenZFSUserOrGroupQuota where+  hashWithSalt _salt OpenZFSUserOrGroupQuota' {..} =+    _salt+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` storageCapacityQuotaGiB++instance Prelude.NFData OpenZFSUserOrGroupQuota where+  rnf OpenZFSUserOrGroupQuota' {..} =+    Prelude.rnf type'+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf storageCapacityQuotaGiB++instance Data.ToJSON OpenZFSUserOrGroupQuota where+  toJSON OpenZFSUserOrGroupQuota' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Type" Data..= type'),+            Prelude.Just ("Id" Data..= id),+            Prelude.Just+              ( "StorageCapacityQuotaGiB"+                  Data..= storageCapacityQuotaGiB+              )+          ]+      )
+ gen/Amazonka/FSx/Types/OpenZFSVolumeConfiguration.hs view
@@ -0,0 +1,338 @@+{-# 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.OpenZFSVolumeConfiguration+-- 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.OpenZFSVolumeConfiguration 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.OpenZFSDataCompressionType+import Amazonka.FSx.Types.OpenZFSNfsExport+import Amazonka.FSx.Types.OpenZFSOriginSnapshotConfiguration+import Amazonka.FSx.Types.OpenZFSUserOrGroupQuota+import qualified Amazonka.Prelude as Prelude++-- | The configuration of an Amazon FSx for OpenZFS volume.+--+-- /See:/ 'newOpenZFSVolumeConfiguration' smart constructor.+data OpenZFSVolumeConfiguration = OpenZFSVolumeConfiguration'+  { -- | A Boolean value indicating whether tags for the volume should be copied+    -- to snapshots. This value defaults to @false@. If it\'s set to @true@,+    -- all tags for the volume are copied to snapshots where the user doesn\'t+    -- specify tags. If this value is @true@ and you specify one or more tags,+    -- only the specified tags are copied to snapshots. If you specify one or+    -- more tags when creating the snapshot, no tags are copied from the+    -- volume, regardless of this value.+    copyTagsToSnapshots :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the method used to compress the data on the volume. The+    -- compression type is @NONE@ by default.+    --+    -- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+    --     default.+    --+    -- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+    --     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+    --     better compression ratio to minimize on-disk storage utilization.+    --+    -- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+    --     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+    --     delivers higher write throughput speeds.+    dataCompressionType :: Prelude.Maybe OpenZFSDataCompressionType,+    -- | A Boolean value indicating whether dependent clone volumes created from+    -- intermediate snapshots should be deleted when a volume is restored from+    -- snapshot.+    deleteClonedVolumes :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value indicating whether snapshots between the current state+    -- and the specified snapshot should be deleted when a volume is restored+    -- from snapshot.+    deleteIntermediateSnaphots :: Prelude.Maybe Prelude.Bool,+    -- | The configuration object for mounting a Network File System (NFS) file+    -- system.+    nfsExports :: Prelude.Maybe [OpenZFSNfsExport],+    -- | The configuration object that specifies the snapshot to use as the+    -- origin of the data for the volume.+    originSnapshot :: Prelude.Maybe OpenZFSOriginSnapshotConfiguration,+    -- | The ID of the parent volume.+    parentVolumeId :: Prelude.Maybe Prelude.Text,+    -- | A Boolean value indicating whether the volume is read-only.+    readOnly :: Prelude.Maybe Prelude.Bool,+    -- | The record size of an OpenZFS volume, in kibibytes (KiB). Valid values+    -- are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128+    -- KiB. Most workloads should use the default record size. For guidance on+    -- when to set a custom record size, see the /Amazon FSx for OpenZFS User+    -- Guide/.+    recordSizeKiB :: Prelude.Maybe Prelude.Natural,+    -- | Specifies the ID of the snapshot to which the volume was restored.+    restoreToSnapshot :: Prelude.Maybe Prelude.Text,+    -- | The maximum amount of storage in gibibtyes (GiB) that the volume can use+    -- from its parent. You can specify a quota larger than the storage on the+    -- parent volume.+    storageCapacityQuotaGiB :: Prelude.Maybe Prelude.Natural,+    -- | The amount of storage in gibibytes (GiB) to reserve from the parent+    -- volume. You can\'t reserve more storage than the parent volume has+    -- reserved.+    storageCapacityReservationGiB :: Prelude.Maybe Prelude.Natural,+    -- | An object specifying how much storage users or groups can use on the+    -- volume.+    userAndGroupQuotas :: Prelude.Maybe [OpenZFSUserOrGroupQuota],+    -- | The path to the volume from the root volume. For example,+    -- @fsx\/parentVolume\/volume1@.+    volumePath :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OpenZFSVolumeConfiguration' 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:+--+-- 'copyTagsToSnapshots', 'openZFSVolumeConfiguration_copyTagsToSnapshots' - A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@ and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+--+-- 'dataCompressionType', 'openZFSVolumeConfiguration_dataCompressionType' - Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+--     better compression ratio to minimize on-disk storage utilization.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+--     delivers higher write throughput speeds.+--+-- 'deleteClonedVolumes', 'openZFSVolumeConfiguration_deleteClonedVolumes' - A Boolean value indicating whether dependent clone volumes created from+-- intermediate snapshots should be deleted when a volume is restored from+-- snapshot.+--+-- 'deleteIntermediateSnaphots', 'openZFSVolumeConfiguration_deleteIntermediateSnaphots' - A Boolean value indicating whether snapshots between the current state+-- and the specified snapshot should be deleted when a volume is restored+-- from snapshot.+--+-- 'nfsExports', 'openZFSVolumeConfiguration_nfsExports' - The configuration object for mounting a Network File System (NFS) file+-- system.+--+-- 'originSnapshot', 'openZFSVolumeConfiguration_originSnapshot' - The configuration object that specifies the snapshot to use as the+-- origin of the data for the volume.+--+-- 'parentVolumeId', 'openZFSVolumeConfiguration_parentVolumeId' - The ID of the parent volume.+--+-- 'readOnly', 'openZFSVolumeConfiguration_readOnly' - A Boolean value indicating whether the volume is read-only.+--+-- 'recordSizeKiB', 'openZFSVolumeConfiguration_recordSizeKiB' - The record size of an OpenZFS volume, in kibibytes (KiB). Valid values+-- are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128+-- KiB. Most workloads should use the default record size. For guidance on+-- when to set a custom record size, see the /Amazon FSx for OpenZFS User+-- Guide/.+--+-- 'restoreToSnapshot', 'openZFSVolumeConfiguration_restoreToSnapshot' - Specifies the ID of the snapshot to which the volume was restored.+--+-- 'storageCapacityQuotaGiB', 'openZFSVolumeConfiguration_storageCapacityQuotaGiB' - The maximum amount of storage in gibibtyes (GiB) that the volume can use+-- from its parent. You can specify a quota larger than the storage on the+-- parent volume.+--+-- 'storageCapacityReservationGiB', 'openZFSVolumeConfiguration_storageCapacityReservationGiB' - The amount of storage in gibibytes (GiB) to reserve from the parent+-- volume. You can\'t reserve more storage than the parent volume has+-- reserved.+--+-- 'userAndGroupQuotas', 'openZFSVolumeConfiguration_userAndGroupQuotas' - An object specifying how much storage users or groups can use on the+-- volume.+--+-- 'volumePath', 'openZFSVolumeConfiguration_volumePath' - The path to the volume from the root volume. For example,+-- @fsx\/parentVolume\/volume1@.+newOpenZFSVolumeConfiguration ::+  OpenZFSVolumeConfiguration+newOpenZFSVolumeConfiguration =+  OpenZFSVolumeConfiguration'+    { copyTagsToSnapshots =+        Prelude.Nothing,+      dataCompressionType = Prelude.Nothing,+      deleteClonedVolumes = Prelude.Nothing,+      deleteIntermediateSnaphots = Prelude.Nothing,+      nfsExports = Prelude.Nothing,+      originSnapshot = Prelude.Nothing,+      parentVolumeId = Prelude.Nothing,+      readOnly = Prelude.Nothing,+      recordSizeKiB = Prelude.Nothing,+      restoreToSnapshot = Prelude.Nothing,+      storageCapacityQuotaGiB = Prelude.Nothing,+      storageCapacityReservationGiB = Prelude.Nothing,+      userAndGroupQuotas = Prelude.Nothing,+      volumePath = Prelude.Nothing+    }++-- | A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@ and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+openZFSVolumeConfiguration_copyTagsToSnapshots :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Bool)+openZFSVolumeConfiguration_copyTagsToSnapshots = Lens.lens (\OpenZFSVolumeConfiguration' {copyTagsToSnapshots} -> copyTagsToSnapshots) (\s@OpenZFSVolumeConfiguration' {} a -> s {copyTagsToSnapshots = a} :: OpenZFSVolumeConfiguration)++-- | Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+--     better compression ratio to minimize on-disk storage utilization.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+--     delivers higher write throughput speeds.+openZFSVolumeConfiguration_dataCompressionType :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe OpenZFSDataCompressionType)+openZFSVolumeConfiguration_dataCompressionType = Lens.lens (\OpenZFSVolumeConfiguration' {dataCompressionType} -> dataCompressionType) (\s@OpenZFSVolumeConfiguration' {} a -> s {dataCompressionType = a} :: OpenZFSVolumeConfiguration)++-- | A Boolean value indicating whether dependent clone volumes created from+-- intermediate snapshots should be deleted when a volume is restored from+-- snapshot.+openZFSVolumeConfiguration_deleteClonedVolumes :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Bool)+openZFSVolumeConfiguration_deleteClonedVolumes = Lens.lens (\OpenZFSVolumeConfiguration' {deleteClonedVolumes} -> deleteClonedVolumes) (\s@OpenZFSVolumeConfiguration' {} a -> s {deleteClonedVolumes = a} :: OpenZFSVolumeConfiguration)++-- | A Boolean value indicating whether snapshots between the current state+-- and the specified snapshot should be deleted when a volume is restored+-- from snapshot.+openZFSVolumeConfiguration_deleteIntermediateSnaphots :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Bool)+openZFSVolumeConfiguration_deleteIntermediateSnaphots = Lens.lens (\OpenZFSVolumeConfiguration' {deleteIntermediateSnaphots} -> deleteIntermediateSnaphots) (\s@OpenZFSVolumeConfiguration' {} a -> s {deleteIntermediateSnaphots = a} :: OpenZFSVolumeConfiguration)++-- | The configuration object for mounting a Network File System (NFS) file+-- system.+openZFSVolumeConfiguration_nfsExports :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe [OpenZFSNfsExport])+openZFSVolumeConfiguration_nfsExports = Lens.lens (\OpenZFSVolumeConfiguration' {nfsExports} -> nfsExports) (\s@OpenZFSVolumeConfiguration' {} a -> s {nfsExports = a} :: OpenZFSVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The configuration object that specifies the snapshot to use as the+-- origin of the data for the volume.+openZFSVolumeConfiguration_originSnapshot :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe OpenZFSOriginSnapshotConfiguration)+openZFSVolumeConfiguration_originSnapshot = Lens.lens (\OpenZFSVolumeConfiguration' {originSnapshot} -> originSnapshot) (\s@OpenZFSVolumeConfiguration' {} a -> s {originSnapshot = a} :: OpenZFSVolumeConfiguration)++-- | The ID of the parent volume.+openZFSVolumeConfiguration_parentVolumeId :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Text)+openZFSVolumeConfiguration_parentVolumeId = Lens.lens (\OpenZFSVolumeConfiguration' {parentVolumeId} -> parentVolumeId) (\s@OpenZFSVolumeConfiguration' {} a -> s {parentVolumeId = a} :: OpenZFSVolumeConfiguration)++-- | A Boolean value indicating whether the volume is read-only.+openZFSVolumeConfiguration_readOnly :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Bool)+openZFSVolumeConfiguration_readOnly = Lens.lens (\OpenZFSVolumeConfiguration' {readOnly} -> readOnly) (\s@OpenZFSVolumeConfiguration' {} a -> s {readOnly = a} :: OpenZFSVolumeConfiguration)++-- | The record size of an OpenZFS volume, in kibibytes (KiB). Valid values+-- are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The default is 128+-- KiB. Most workloads should use the default record size. For guidance on+-- when to set a custom record size, see the /Amazon FSx for OpenZFS User+-- Guide/.+openZFSVolumeConfiguration_recordSizeKiB :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Natural)+openZFSVolumeConfiguration_recordSizeKiB = Lens.lens (\OpenZFSVolumeConfiguration' {recordSizeKiB} -> recordSizeKiB) (\s@OpenZFSVolumeConfiguration' {} a -> s {recordSizeKiB = a} :: OpenZFSVolumeConfiguration)++-- | Specifies the ID of the snapshot to which the volume was restored.+openZFSVolumeConfiguration_restoreToSnapshot :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Text)+openZFSVolumeConfiguration_restoreToSnapshot = Lens.lens (\OpenZFSVolumeConfiguration' {restoreToSnapshot} -> restoreToSnapshot) (\s@OpenZFSVolumeConfiguration' {} a -> s {restoreToSnapshot = a} :: OpenZFSVolumeConfiguration)++-- | The maximum amount of storage in gibibtyes (GiB) that the volume can use+-- from its parent. You can specify a quota larger than the storage on the+-- parent volume.+openZFSVolumeConfiguration_storageCapacityQuotaGiB :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Natural)+openZFSVolumeConfiguration_storageCapacityQuotaGiB = Lens.lens (\OpenZFSVolumeConfiguration' {storageCapacityQuotaGiB} -> storageCapacityQuotaGiB) (\s@OpenZFSVolumeConfiguration' {} a -> s {storageCapacityQuotaGiB = a} :: OpenZFSVolumeConfiguration)++-- | The amount of storage in gibibytes (GiB) to reserve from the parent+-- volume. You can\'t reserve more storage than the parent volume has+-- reserved.+openZFSVolumeConfiguration_storageCapacityReservationGiB :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Natural)+openZFSVolumeConfiguration_storageCapacityReservationGiB = Lens.lens (\OpenZFSVolumeConfiguration' {storageCapacityReservationGiB} -> storageCapacityReservationGiB) (\s@OpenZFSVolumeConfiguration' {} a -> s {storageCapacityReservationGiB = a} :: OpenZFSVolumeConfiguration)++-- | An object specifying how much storage users or groups can use on the+-- volume.+openZFSVolumeConfiguration_userAndGroupQuotas :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe [OpenZFSUserOrGroupQuota])+openZFSVolumeConfiguration_userAndGroupQuotas = Lens.lens (\OpenZFSVolumeConfiguration' {userAndGroupQuotas} -> userAndGroupQuotas) (\s@OpenZFSVolumeConfiguration' {} a -> s {userAndGroupQuotas = a} :: OpenZFSVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The path to the volume from the root volume. For example,+-- @fsx\/parentVolume\/volume1@.+openZFSVolumeConfiguration_volumePath :: Lens.Lens' OpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Text)+openZFSVolumeConfiguration_volumePath = Lens.lens (\OpenZFSVolumeConfiguration' {volumePath} -> volumePath) (\s@OpenZFSVolumeConfiguration' {} a -> s {volumePath = a} :: OpenZFSVolumeConfiguration)++instance Data.FromJSON OpenZFSVolumeConfiguration where+  parseJSON =+    Data.withObject+      "OpenZFSVolumeConfiguration"+      ( \x ->+          OpenZFSVolumeConfiguration'+            Prelude.<$> (x Data..:? "CopyTagsToSnapshots")+            Prelude.<*> (x Data..:? "DataCompressionType")+            Prelude.<*> (x Data..:? "DeleteClonedVolumes")+            Prelude.<*> (x Data..:? "DeleteIntermediateSnaphots")+            Prelude.<*> (x Data..:? "NfsExports" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "OriginSnapshot")+            Prelude.<*> (x Data..:? "ParentVolumeId")+            Prelude.<*> (x Data..:? "ReadOnly")+            Prelude.<*> (x Data..:? "RecordSizeKiB")+            Prelude.<*> (x Data..:? "RestoreToSnapshot")+            Prelude.<*> (x Data..:? "StorageCapacityQuotaGiB")+            Prelude.<*> (x Data..:? "StorageCapacityReservationGiB")+            Prelude.<*> ( x+                            Data..:? "UserAndGroupQuotas"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "VolumePath")+      )++instance Prelude.Hashable OpenZFSVolumeConfiguration where+  hashWithSalt _salt OpenZFSVolumeConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` copyTagsToSnapshots+      `Prelude.hashWithSalt` dataCompressionType+      `Prelude.hashWithSalt` deleteClonedVolumes+      `Prelude.hashWithSalt` deleteIntermediateSnaphots+      `Prelude.hashWithSalt` nfsExports+      `Prelude.hashWithSalt` originSnapshot+      `Prelude.hashWithSalt` parentVolumeId+      `Prelude.hashWithSalt` readOnly+      `Prelude.hashWithSalt` recordSizeKiB+      `Prelude.hashWithSalt` restoreToSnapshot+      `Prelude.hashWithSalt` storageCapacityQuotaGiB+      `Prelude.hashWithSalt` storageCapacityReservationGiB+      `Prelude.hashWithSalt` userAndGroupQuotas+      `Prelude.hashWithSalt` volumePath++instance Prelude.NFData OpenZFSVolumeConfiguration where+  rnf OpenZFSVolumeConfiguration' {..} =+    Prelude.rnf copyTagsToSnapshots+      `Prelude.seq` Prelude.rnf dataCompressionType+      `Prelude.seq` Prelude.rnf deleteClonedVolumes+      `Prelude.seq` Prelude.rnf deleteIntermediateSnaphots+      `Prelude.seq` Prelude.rnf nfsExports+      `Prelude.seq` Prelude.rnf originSnapshot+      `Prelude.seq` Prelude.rnf parentVolumeId+      `Prelude.seq` Prelude.rnf readOnly+      `Prelude.seq` Prelude.rnf recordSizeKiB+      `Prelude.seq` Prelude.rnf restoreToSnapshot+      `Prelude.seq` Prelude.rnf storageCapacityQuotaGiB+      `Prelude.seq` Prelude.rnf storageCapacityReservationGiB+      `Prelude.seq` Prelude.rnf userAndGroupQuotas+      `Prelude.seq` Prelude.rnf volumePath
+ gen/Amazonka/FSx/Types/ReportFormat.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.ReportFormat+-- 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.ReportFormat+  ( ReportFormat+      ( ..,+        ReportFormat_REPORT_CSV_20191124+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReportFormat = ReportFormat'+  { fromReportFormat ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ReportFormat_REPORT_CSV_20191124 :: ReportFormat+pattern ReportFormat_REPORT_CSV_20191124 = ReportFormat' "REPORT_CSV_20191124"++{-# COMPLETE+  ReportFormat_REPORT_CSV_20191124,+  ReportFormat'+  #-}
+ gen/Amazonka/FSx/Types/ReportScope.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.ReportScope+-- 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.ReportScope+  ( ReportScope+      ( ..,+        ReportScope_FAILED_FILES_ONLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReportScope = ReportScope'+  { fromReportScope ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ReportScope_FAILED_FILES_ONLY :: ReportScope+pattern ReportScope_FAILED_FILES_ONLY = ReportScope' "FAILED_FILES_ONLY"++{-# COMPLETE+  ReportScope_FAILED_FILES_ONLY,+  ReportScope'+  #-}
+ gen/Amazonka/FSx/Types/ResourceType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.ResourceType+-- 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.ResourceType+  ( ResourceType+      ( ..,+        ResourceType_FILE_SYSTEM,+        ResourceType_VOLUME+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceType = ResourceType'+  { fromResourceType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ResourceType_FILE_SYSTEM :: ResourceType+pattern ResourceType_FILE_SYSTEM = ResourceType' "FILE_SYSTEM"++pattern ResourceType_VOLUME :: ResourceType+pattern ResourceType_VOLUME = ResourceType' "VOLUME"++{-# COMPLETE+  ResourceType_FILE_SYSTEM,+  ResourceType_VOLUME,+  ResourceType'+  #-}
+ gen/Amazonka/FSx/Types/RestoreOpenZFSVolumeOption.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.RestoreOpenZFSVolumeOption+-- 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.RestoreOpenZFSVolumeOption+  ( RestoreOpenZFSVolumeOption+      ( ..,+        RestoreOpenZFSVolumeOption_DELETE_CLONED_VOLUMES,+        RestoreOpenZFSVolumeOption_DELETE_INTERMEDIATE_SNAPSHOTS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RestoreOpenZFSVolumeOption = RestoreOpenZFSVolumeOption'+  { fromRestoreOpenZFSVolumeOption ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern RestoreOpenZFSVolumeOption_DELETE_CLONED_VOLUMES :: RestoreOpenZFSVolumeOption+pattern RestoreOpenZFSVolumeOption_DELETE_CLONED_VOLUMES = RestoreOpenZFSVolumeOption' "DELETE_CLONED_VOLUMES"++pattern RestoreOpenZFSVolumeOption_DELETE_INTERMEDIATE_SNAPSHOTS :: RestoreOpenZFSVolumeOption+pattern RestoreOpenZFSVolumeOption_DELETE_INTERMEDIATE_SNAPSHOTS = RestoreOpenZFSVolumeOption' "DELETE_INTERMEDIATE_SNAPSHOTS"++{-# COMPLETE+  RestoreOpenZFSVolumeOption_DELETE_CLONED_VOLUMES,+  RestoreOpenZFSVolumeOption_DELETE_INTERMEDIATE_SNAPSHOTS,+  RestoreOpenZFSVolumeOption'+  #-}
+ gen/Amazonka/FSx/Types/S3DataRepositoryConfiguration.hs view
@@ -0,0 +1,118 @@+{-# 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.S3DataRepositoryConfiguration+-- 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.S3DataRepositoryConfiguration 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.AutoExportPolicy+import Amazonka.FSx.Types.AutoImportPolicy+import qualified Amazonka.Prelude as Prelude++-- | The configuration for an Amazon S3 data repository linked to an Amazon+-- FSx for Lustre file system with a data repository association. The+-- configuration consists of an @AutoImportPolicy@ that defines which file+-- events on the data repository are automatically imported to the file+-- system and an @AutoExportPolicy@ that defines which file events on the+-- file system are automatically exported to the data repository. File+-- events are when files or directories are added, changed, or deleted on+-- the file system or the data repository.+--+-- Data repository associations on Amazon File Cache don\'t use+-- @S3DataRepositoryConfiguration@ because they don\'t support automatic+-- import or automatic export.+--+-- /See:/ 'newS3DataRepositoryConfiguration' smart constructor.+data S3DataRepositoryConfiguration = S3DataRepositoryConfiguration'+  { -- | Specifies the type of updated objects (new, changed, deleted) that will+    -- be automatically exported from your file system to the linked S3 bucket.+    autoExportPolicy :: Prelude.Maybe AutoExportPolicy,+    -- | Specifies the type of updated objects (new, changed, deleted) that will+    -- be automatically imported from the linked S3 bucket to your file system.+    autoImportPolicy :: Prelude.Maybe AutoImportPolicy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3DataRepositoryConfiguration' 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:+--+-- 'autoExportPolicy', 's3DataRepositoryConfiguration_autoExportPolicy' - Specifies the type of updated objects (new, changed, deleted) that will+-- be automatically exported from your file system to the linked S3 bucket.+--+-- 'autoImportPolicy', 's3DataRepositoryConfiguration_autoImportPolicy' - Specifies the type of updated objects (new, changed, deleted) that will+-- be automatically imported from the linked S3 bucket to your file system.+newS3DataRepositoryConfiguration ::+  S3DataRepositoryConfiguration+newS3DataRepositoryConfiguration =+  S3DataRepositoryConfiguration'+    { autoExportPolicy =+        Prelude.Nothing,+      autoImportPolicy = Prelude.Nothing+    }++-- | Specifies the type of updated objects (new, changed, deleted) that will+-- be automatically exported from your file system to the linked S3 bucket.+s3DataRepositoryConfiguration_autoExportPolicy :: Lens.Lens' S3DataRepositoryConfiguration (Prelude.Maybe AutoExportPolicy)+s3DataRepositoryConfiguration_autoExportPolicy = Lens.lens (\S3DataRepositoryConfiguration' {autoExportPolicy} -> autoExportPolicy) (\s@S3DataRepositoryConfiguration' {} a -> s {autoExportPolicy = a} :: S3DataRepositoryConfiguration)++-- | Specifies the type of updated objects (new, changed, deleted) that will+-- be automatically imported from the linked S3 bucket to your file system.+s3DataRepositoryConfiguration_autoImportPolicy :: Lens.Lens' S3DataRepositoryConfiguration (Prelude.Maybe AutoImportPolicy)+s3DataRepositoryConfiguration_autoImportPolicy = Lens.lens (\S3DataRepositoryConfiguration' {autoImportPolicy} -> autoImportPolicy) (\s@S3DataRepositoryConfiguration' {} a -> s {autoImportPolicy = a} :: S3DataRepositoryConfiguration)++instance Data.FromJSON S3DataRepositoryConfiguration where+  parseJSON =+    Data.withObject+      "S3DataRepositoryConfiguration"+      ( \x ->+          S3DataRepositoryConfiguration'+            Prelude.<$> (x Data..:? "AutoExportPolicy")+            Prelude.<*> (x Data..:? "AutoImportPolicy")+      )++instance+  Prelude.Hashable+    S3DataRepositoryConfiguration+  where+  hashWithSalt _salt S3DataRepositoryConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` autoExportPolicy+      `Prelude.hashWithSalt` autoImportPolicy++instance Prelude.NFData S3DataRepositoryConfiguration where+  rnf S3DataRepositoryConfiguration' {..} =+    Prelude.rnf autoExportPolicy+      `Prelude.seq` Prelude.rnf autoImportPolicy++instance Data.ToJSON S3DataRepositoryConfiguration where+  toJSON S3DataRepositoryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AutoExportPolicy" Data..=)+              Prelude.<$> autoExportPolicy,+            ("AutoImportPolicy" Data..=)+              Prelude.<$> autoImportPolicy+          ]+      )
+ gen/Amazonka/FSx/Types/SecurityStyle.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.SecurityStyle+-- 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.SecurityStyle+  ( SecurityStyle+      ( ..,+        SecurityStyle_MIXED,+        SecurityStyle_NTFS,+        SecurityStyle_UNIX+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SecurityStyle = SecurityStyle'+  { fromSecurityStyle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SecurityStyle_MIXED :: SecurityStyle+pattern SecurityStyle_MIXED = SecurityStyle' "MIXED"++pattern SecurityStyle_NTFS :: SecurityStyle+pattern SecurityStyle_NTFS = SecurityStyle' "NTFS"++pattern SecurityStyle_UNIX :: SecurityStyle+pattern SecurityStyle_UNIX = SecurityStyle' "UNIX"++{-# COMPLETE+  SecurityStyle_MIXED,+  SecurityStyle_NTFS,+  SecurityStyle_UNIX,+  SecurityStyle'+  #-}
+ gen/Amazonka/FSx/Types/SelfManagedActiveDirectoryAttributes.hs view
@@ -0,0 +1,151 @@+{-# 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.SelfManagedActiveDirectoryAttributes+-- 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.SelfManagedActiveDirectoryAttributes 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++-- | The configuration of the self-managed Microsoft Active Directory (AD)+-- directory to which the Windows File Server or ONTAP storage virtual+-- machine (SVM) instance is joined.+--+-- /See:/ 'newSelfManagedActiveDirectoryAttributes' smart constructor.+data SelfManagedActiveDirectoryAttributes = SelfManagedActiveDirectoryAttributes'+  { -- | A list of up to three IP addresses of DNS servers or domain controllers+    -- in the self-managed AD directory.+    dnsIps :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The fully qualified domain name of the self-managed AD directory.+    domainName :: Prelude.Maybe Prelude.Text,+    -- | The name of the domain group whose members have administrative+    -- privileges for the FSx file system.+    fileSystemAdministratorsGroup :: Prelude.Maybe Prelude.Text,+    -- | The fully qualified distinguished name of the organizational unit within+    -- the self-managed AD directory to which the Windows File Server or ONTAP+    -- storage virtual machine (SVM) instance is joined.+    organizationalUnitDistinguishedName :: Prelude.Maybe Prelude.Text,+    -- | The user name for the service account on your self-managed AD domain+    -- that FSx uses to join to your AD domain.+    userName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SelfManagedActiveDirectoryAttributes' 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:+--+-- 'dnsIps', 'selfManagedActiveDirectoryAttributes_dnsIps' - A list of up to three IP addresses of DNS servers or domain controllers+-- in the self-managed AD directory.+--+-- 'domainName', 'selfManagedActiveDirectoryAttributes_domainName' - The fully qualified domain name of the self-managed AD directory.+--+-- 'fileSystemAdministratorsGroup', 'selfManagedActiveDirectoryAttributes_fileSystemAdministratorsGroup' - The name of the domain group whose members have administrative+-- privileges for the FSx file system.+--+-- 'organizationalUnitDistinguishedName', 'selfManagedActiveDirectoryAttributes_organizationalUnitDistinguishedName' - The fully qualified distinguished name of the organizational unit within+-- the self-managed AD directory to which the Windows File Server or ONTAP+-- storage virtual machine (SVM) instance is joined.+--+-- 'userName', 'selfManagedActiveDirectoryAttributes_userName' - The user name for the service account on your self-managed AD domain+-- that FSx uses to join to your AD domain.+newSelfManagedActiveDirectoryAttributes ::+  SelfManagedActiveDirectoryAttributes+newSelfManagedActiveDirectoryAttributes =+  SelfManagedActiveDirectoryAttributes'+    { dnsIps =+        Prelude.Nothing,+      domainName = Prelude.Nothing,+      fileSystemAdministratorsGroup =+        Prelude.Nothing,+      organizationalUnitDistinguishedName =+        Prelude.Nothing,+      userName = Prelude.Nothing+    }++-- | A list of up to three IP addresses of DNS servers or domain controllers+-- in the self-managed AD directory.+selfManagedActiveDirectoryAttributes_dnsIps :: Lens.Lens' SelfManagedActiveDirectoryAttributes (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+selfManagedActiveDirectoryAttributes_dnsIps = Lens.lens (\SelfManagedActiveDirectoryAttributes' {dnsIps} -> dnsIps) (\s@SelfManagedActiveDirectoryAttributes' {} a -> s {dnsIps = a} :: SelfManagedActiveDirectoryAttributes) Prelude.. Lens.mapping Lens.coerced++-- | The fully qualified domain name of the self-managed AD directory.+selfManagedActiveDirectoryAttributes_domainName :: Lens.Lens' SelfManagedActiveDirectoryAttributes (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryAttributes_domainName = Lens.lens (\SelfManagedActiveDirectoryAttributes' {domainName} -> domainName) (\s@SelfManagedActiveDirectoryAttributes' {} a -> s {domainName = a} :: SelfManagedActiveDirectoryAttributes)++-- | The name of the domain group whose members have administrative+-- privileges for the FSx file system.+selfManagedActiveDirectoryAttributes_fileSystemAdministratorsGroup :: Lens.Lens' SelfManagedActiveDirectoryAttributes (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryAttributes_fileSystemAdministratorsGroup = Lens.lens (\SelfManagedActiveDirectoryAttributes' {fileSystemAdministratorsGroup} -> fileSystemAdministratorsGroup) (\s@SelfManagedActiveDirectoryAttributes' {} a -> s {fileSystemAdministratorsGroup = a} :: SelfManagedActiveDirectoryAttributes)++-- | The fully qualified distinguished name of the organizational unit within+-- the self-managed AD directory to which the Windows File Server or ONTAP+-- storage virtual machine (SVM) instance is joined.+selfManagedActiveDirectoryAttributes_organizationalUnitDistinguishedName :: Lens.Lens' SelfManagedActiveDirectoryAttributes (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryAttributes_organizationalUnitDistinguishedName = Lens.lens (\SelfManagedActiveDirectoryAttributes' {organizationalUnitDistinguishedName} -> organizationalUnitDistinguishedName) (\s@SelfManagedActiveDirectoryAttributes' {} a -> s {organizationalUnitDistinguishedName = a} :: SelfManagedActiveDirectoryAttributes)++-- | The user name for the service account on your self-managed AD domain+-- that FSx uses to join to your AD domain.+selfManagedActiveDirectoryAttributes_userName :: Lens.Lens' SelfManagedActiveDirectoryAttributes (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryAttributes_userName = Lens.lens (\SelfManagedActiveDirectoryAttributes' {userName} -> userName) (\s@SelfManagedActiveDirectoryAttributes' {} a -> s {userName = a} :: SelfManagedActiveDirectoryAttributes)++instance+  Data.FromJSON+    SelfManagedActiveDirectoryAttributes+  where+  parseJSON =+    Data.withObject+      "SelfManagedActiveDirectoryAttributes"+      ( \x ->+          SelfManagedActiveDirectoryAttributes'+            Prelude.<$> (x Data..:? "DnsIps")+            Prelude.<*> (x Data..:? "DomainName")+            Prelude.<*> (x Data..:? "FileSystemAdministratorsGroup")+            Prelude.<*> (x Data..:? "OrganizationalUnitDistinguishedName")+            Prelude.<*> (x Data..:? "UserName")+      )++instance+  Prelude.Hashable+    SelfManagedActiveDirectoryAttributes+  where+  hashWithSalt+    _salt+    SelfManagedActiveDirectoryAttributes' {..} =+      _salt+        `Prelude.hashWithSalt` dnsIps+        `Prelude.hashWithSalt` domainName+        `Prelude.hashWithSalt` fileSystemAdministratorsGroup+        `Prelude.hashWithSalt` organizationalUnitDistinguishedName+        `Prelude.hashWithSalt` userName++instance+  Prelude.NFData+    SelfManagedActiveDirectoryAttributes+  where+  rnf SelfManagedActiveDirectoryAttributes' {..} =+    Prelude.rnf dnsIps+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf fileSystemAdministratorsGroup+      `Prelude.seq` Prelude.rnf organizationalUnitDistinguishedName+      `Prelude.seq` Prelude.rnf userName
+ gen/Amazonka/FSx/Types/SelfManagedActiveDirectoryConfiguration.hs view
@@ -0,0 +1,233 @@+{-# 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.SelfManagedActiveDirectoryConfiguration+-- 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.SelfManagedActiveDirectoryConfiguration 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++-- | The configuration that Amazon FSx uses to join a FSx for Windows File+-- Server file system or an ONTAP storage virtual machine (SVM) to a+-- self-managed (including on-premises) Microsoft Active Directory (AD)+-- directory. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/self-managed-AD.html Using Amazon FSx with your self-managed Microsoft Active Directory>+-- or+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html Managing SVMs>.+--+-- /See:/ 'newSelfManagedActiveDirectoryConfiguration' smart constructor.+data SelfManagedActiveDirectoryConfiguration = SelfManagedActiveDirectoryConfiguration'+  { -- | (Optional) The name of the domain group whose members are granted+    -- administrative privileges for the file system. Administrative privileges+    -- include taking ownership of files and folders, setting audit controls+    -- (audit ACLs) on files and folders, and administering the file system+    -- remotely by using the FSx Remote PowerShell. The group that you specify+    -- must already exist in your domain. If you don\'t provide one, your AD+    -- domain\'s Domain Admins group is used.+    fileSystemAdministratorsGroup :: Prelude.Maybe Prelude.Text,+    -- | (Optional) The fully qualified distinguished name of the organizational+    -- unit within your self-managed AD directory. Amazon FSx only accepts OU+    -- as the direct parent of the file system. An example is+    -- @OU=FSx,DC=yourdomain,DC=corp,DC=com@. To learn more, see+    -- <https://tools.ietf.org/html/rfc2253 RFC 2253>. If none is provided, the+    -- FSx file system is created in the default location of your self-managed+    -- AD directory.+    --+    -- Only Organizational Unit (OU) objects can be the direct parent of the+    -- file system that you\'re creating.+    organizationalUnitDistinguishedName :: Prelude.Maybe Prelude.Text,+    -- | The fully qualified domain name of the self-managed AD directory, such+    -- as @corp.example.com@.+    domainName :: Prelude.Text,+    -- | The user name for the service account on your self-managed AD domain+    -- that Amazon FSx will use to join to your AD domain. This account must+    -- have the permission to join computers to the domain in the+    -- organizational unit provided in @OrganizationalUnitDistinguishedName@,+    -- or in the default location of your AD domain.+    userName :: Prelude.Text,+    -- | The password for the service account on your self-managed AD domain that+    -- Amazon FSx will use to join to your AD domain.+    password :: Data.Sensitive Prelude.Text,+    -- | A list of up to three IP addresses of DNS servers or domain controllers+    -- in the self-managed AD directory.+    dnsIps :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SelfManagedActiveDirectoryConfiguration' 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:+--+-- 'fileSystemAdministratorsGroup', 'selfManagedActiveDirectoryConfiguration_fileSystemAdministratorsGroup' - (Optional) The name of the domain group whose members are granted+-- administrative privileges for the file system. Administrative privileges+-- include taking ownership of files and folders, setting audit controls+-- (audit ACLs) on files and folders, and administering the file system+-- remotely by using the FSx Remote PowerShell. The group that you specify+-- must already exist in your domain. If you don\'t provide one, your AD+-- domain\'s Domain Admins group is used.+--+-- 'organizationalUnitDistinguishedName', 'selfManagedActiveDirectoryConfiguration_organizationalUnitDistinguishedName' - (Optional) The fully qualified distinguished name of the organizational+-- unit within your self-managed AD directory. Amazon FSx only accepts OU+-- as the direct parent of the file system. An example is+-- @OU=FSx,DC=yourdomain,DC=corp,DC=com@. To learn more, see+-- <https://tools.ietf.org/html/rfc2253 RFC 2253>. If none is provided, the+-- FSx file system is created in the default location of your self-managed+-- AD directory.+--+-- Only Organizational Unit (OU) objects can be the direct parent of the+-- file system that you\'re creating.+--+-- 'domainName', 'selfManagedActiveDirectoryConfiguration_domainName' - The fully qualified domain name of the self-managed AD directory, such+-- as @corp.example.com@.+--+-- 'userName', 'selfManagedActiveDirectoryConfiguration_userName' - The user name for the service account on your self-managed AD domain+-- that Amazon FSx will use to join to your AD domain. This account must+-- have the permission to join computers to the domain in the+-- organizational unit provided in @OrganizationalUnitDistinguishedName@,+-- or in the default location of your AD domain.+--+-- 'password', 'selfManagedActiveDirectoryConfiguration_password' - The password for the service account on your self-managed AD domain that+-- Amazon FSx will use to join to your AD domain.+--+-- 'dnsIps', 'selfManagedActiveDirectoryConfiguration_dnsIps' - A list of up to three IP addresses of DNS servers or domain controllers+-- in the self-managed AD directory.+newSelfManagedActiveDirectoryConfiguration ::+  -- | 'domainName'+  Prelude.Text ->+  -- | 'userName'+  Prelude.Text ->+  -- | 'password'+  Prelude.Text ->+  -- | 'dnsIps'+  Prelude.NonEmpty Prelude.Text ->+  SelfManagedActiveDirectoryConfiguration+newSelfManagedActiveDirectoryConfiguration+  pDomainName_+  pUserName_+  pPassword_+  pDnsIps_ =+    SelfManagedActiveDirectoryConfiguration'+      { fileSystemAdministratorsGroup =+          Prelude.Nothing,+        organizationalUnitDistinguishedName =+          Prelude.Nothing,+        domainName = pDomainName_,+        userName = pUserName_,+        password =+          Data._Sensitive+            Lens.# pPassword_,+        dnsIps =+          Lens.coerced Lens.# pDnsIps_+      }++-- | (Optional) The name of the domain group whose members are granted+-- administrative privileges for the file system. Administrative privileges+-- include taking ownership of files and folders, setting audit controls+-- (audit ACLs) on files and folders, and administering the file system+-- remotely by using the FSx Remote PowerShell. The group that you specify+-- must already exist in your domain. If you don\'t provide one, your AD+-- domain\'s Domain Admins group is used.+selfManagedActiveDirectoryConfiguration_fileSystemAdministratorsGroup :: Lens.Lens' SelfManagedActiveDirectoryConfiguration (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryConfiguration_fileSystemAdministratorsGroup = Lens.lens (\SelfManagedActiveDirectoryConfiguration' {fileSystemAdministratorsGroup} -> fileSystemAdministratorsGroup) (\s@SelfManagedActiveDirectoryConfiguration' {} a -> s {fileSystemAdministratorsGroup = a} :: SelfManagedActiveDirectoryConfiguration)++-- | (Optional) The fully qualified distinguished name of the organizational+-- unit within your self-managed AD directory. Amazon FSx only accepts OU+-- as the direct parent of the file system. An example is+-- @OU=FSx,DC=yourdomain,DC=corp,DC=com@. To learn more, see+-- <https://tools.ietf.org/html/rfc2253 RFC 2253>. If none is provided, the+-- FSx file system is created in the default location of your self-managed+-- AD directory.+--+-- Only Organizational Unit (OU) objects can be the direct parent of the+-- file system that you\'re creating.+selfManagedActiveDirectoryConfiguration_organizationalUnitDistinguishedName :: Lens.Lens' SelfManagedActiveDirectoryConfiguration (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryConfiguration_organizationalUnitDistinguishedName = Lens.lens (\SelfManagedActiveDirectoryConfiguration' {organizationalUnitDistinguishedName} -> organizationalUnitDistinguishedName) (\s@SelfManagedActiveDirectoryConfiguration' {} a -> s {organizationalUnitDistinguishedName = a} :: SelfManagedActiveDirectoryConfiguration)++-- | The fully qualified domain name of the self-managed AD directory, such+-- as @corp.example.com@.+selfManagedActiveDirectoryConfiguration_domainName :: Lens.Lens' SelfManagedActiveDirectoryConfiguration Prelude.Text+selfManagedActiveDirectoryConfiguration_domainName = Lens.lens (\SelfManagedActiveDirectoryConfiguration' {domainName} -> domainName) (\s@SelfManagedActiveDirectoryConfiguration' {} a -> s {domainName = a} :: SelfManagedActiveDirectoryConfiguration)++-- | The user name for the service account on your self-managed AD domain+-- that Amazon FSx will use to join to your AD domain. This account must+-- have the permission to join computers to the domain in the+-- organizational unit provided in @OrganizationalUnitDistinguishedName@,+-- or in the default location of your AD domain.+selfManagedActiveDirectoryConfiguration_userName :: Lens.Lens' SelfManagedActiveDirectoryConfiguration Prelude.Text+selfManagedActiveDirectoryConfiguration_userName = Lens.lens (\SelfManagedActiveDirectoryConfiguration' {userName} -> userName) (\s@SelfManagedActiveDirectoryConfiguration' {} a -> s {userName = a} :: SelfManagedActiveDirectoryConfiguration)++-- | The password for the service account on your self-managed AD domain that+-- Amazon FSx will use to join to your AD domain.+selfManagedActiveDirectoryConfiguration_password :: Lens.Lens' SelfManagedActiveDirectoryConfiguration Prelude.Text+selfManagedActiveDirectoryConfiguration_password = Lens.lens (\SelfManagedActiveDirectoryConfiguration' {password} -> password) (\s@SelfManagedActiveDirectoryConfiguration' {} a -> s {password = a} :: SelfManagedActiveDirectoryConfiguration) Prelude.. Data._Sensitive++-- | A list of up to three IP addresses of DNS servers or domain controllers+-- in the self-managed AD directory.+selfManagedActiveDirectoryConfiguration_dnsIps :: Lens.Lens' SelfManagedActiveDirectoryConfiguration (Prelude.NonEmpty Prelude.Text)+selfManagedActiveDirectoryConfiguration_dnsIps = Lens.lens (\SelfManagedActiveDirectoryConfiguration' {dnsIps} -> dnsIps) (\s@SelfManagedActiveDirectoryConfiguration' {} a -> s {dnsIps = a} :: SelfManagedActiveDirectoryConfiguration) Prelude.. Lens.coerced++instance+  Prelude.Hashable+    SelfManagedActiveDirectoryConfiguration+  where+  hashWithSalt+    _salt+    SelfManagedActiveDirectoryConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` fileSystemAdministratorsGroup+        `Prelude.hashWithSalt` organizationalUnitDistinguishedName+        `Prelude.hashWithSalt` domainName+        `Prelude.hashWithSalt` userName+        `Prelude.hashWithSalt` password+        `Prelude.hashWithSalt` dnsIps++instance+  Prelude.NFData+    SelfManagedActiveDirectoryConfiguration+  where+  rnf SelfManagedActiveDirectoryConfiguration' {..} =+    Prelude.rnf fileSystemAdministratorsGroup+      `Prelude.seq` Prelude.rnf organizationalUnitDistinguishedName+      `Prelude.seq` Prelude.rnf domainName+      `Prelude.seq` Prelude.rnf userName+      `Prelude.seq` Prelude.rnf password+      `Prelude.seq` Prelude.rnf dnsIps++instance+  Data.ToJSON+    SelfManagedActiveDirectoryConfiguration+  where+  toJSON SelfManagedActiveDirectoryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FileSystemAdministratorsGroup" Data..=)+              Prelude.<$> fileSystemAdministratorsGroup,+            ("OrganizationalUnitDistinguishedName" Data..=)+              Prelude.<$> organizationalUnitDistinguishedName,+            Prelude.Just ("DomainName" Data..= domainName),+            Prelude.Just ("UserName" Data..= userName),+            Prelude.Just ("Password" Data..= password),+            Prelude.Just ("DnsIps" Data..= dnsIps)+          ]+      )
+ gen/Amazonka/FSx/Types/SelfManagedActiveDirectoryConfigurationUpdates.hs view
@@ -0,0 +1,125 @@+{-# 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.SelfManagedActiveDirectoryConfigurationUpdates+-- 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.SelfManagedActiveDirectoryConfigurationUpdates 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++-- | The configuration that Amazon FSx uses to join the Windows File Server+-- instance to a self-managed Microsoft Active Directory (AD) directory.+--+-- /See:/ 'newSelfManagedActiveDirectoryConfigurationUpdates' smart constructor.+data SelfManagedActiveDirectoryConfigurationUpdates = SelfManagedActiveDirectoryConfigurationUpdates'+  { -- | A list of up to three IP addresses of DNS servers or domain controllers+    -- in the self-managed AD directory.+    dnsIps :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The password for the service account on your self-managed AD domain that+    -- Amazon FSx will use to join to your AD domain.+    password :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The user name for the service account on your self-managed AD domain+    -- that Amazon FSx will use to join to your AD domain. This account must+    -- have the permission to join computers to the domain in the+    -- organizational unit provided in @OrganizationalUnitDistinguishedName@.+    userName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SelfManagedActiveDirectoryConfigurationUpdates' 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:+--+-- 'dnsIps', 'selfManagedActiveDirectoryConfigurationUpdates_dnsIps' - A list of up to three IP addresses of DNS servers or domain controllers+-- in the self-managed AD directory.+--+-- 'password', 'selfManagedActiveDirectoryConfigurationUpdates_password' - The password for the service account on your self-managed AD domain that+-- Amazon FSx will use to join to your AD domain.+--+-- 'userName', 'selfManagedActiveDirectoryConfigurationUpdates_userName' - The user name for the service account on your self-managed AD domain+-- that Amazon FSx will use to join to your AD domain. This account must+-- have the permission to join computers to the domain in the+-- organizational unit provided in @OrganizationalUnitDistinguishedName@.+newSelfManagedActiveDirectoryConfigurationUpdates ::+  SelfManagedActiveDirectoryConfigurationUpdates+newSelfManagedActiveDirectoryConfigurationUpdates =+  SelfManagedActiveDirectoryConfigurationUpdates'+    { dnsIps =+        Prelude.Nothing,+      password = Prelude.Nothing,+      userName = Prelude.Nothing+    }++-- | A list of up to three IP addresses of DNS servers or domain controllers+-- in the self-managed AD directory.+selfManagedActiveDirectoryConfigurationUpdates_dnsIps :: Lens.Lens' SelfManagedActiveDirectoryConfigurationUpdates (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+selfManagedActiveDirectoryConfigurationUpdates_dnsIps = Lens.lens (\SelfManagedActiveDirectoryConfigurationUpdates' {dnsIps} -> dnsIps) (\s@SelfManagedActiveDirectoryConfigurationUpdates' {} a -> s {dnsIps = a} :: SelfManagedActiveDirectoryConfigurationUpdates) Prelude.. Lens.mapping Lens.coerced++-- | The password for the service account on your self-managed AD domain that+-- Amazon FSx will use to join to your AD domain.+selfManagedActiveDirectoryConfigurationUpdates_password :: Lens.Lens' SelfManagedActiveDirectoryConfigurationUpdates (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryConfigurationUpdates_password = Lens.lens (\SelfManagedActiveDirectoryConfigurationUpdates' {password} -> password) (\s@SelfManagedActiveDirectoryConfigurationUpdates' {} a -> s {password = a} :: SelfManagedActiveDirectoryConfigurationUpdates) Prelude.. Lens.mapping Data._Sensitive++-- | The user name for the service account on your self-managed AD domain+-- that Amazon FSx will use to join to your AD domain. This account must+-- have the permission to join computers to the domain in the+-- organizational unit provided in @OrganizationalUnitDistinguishedName@.+selfManagedActiveDirectoryConfigurationUpdates_userName :: Lens.Lens' SelfManagedActiveDirectoryConfigurationUpdates (Prelude.Maybe Prelude.Text)+selfManagedActiveDirectoryConfigurationUpdates_userName = Lens.lens (\SelfManagedActiveDirectoryConfigurationUpdates' {userName} -> userName) (\s@SelfManagedActiveDirectoryConfigurationUpdates' {} a -> s {userName = a} :: SelfManagedActiveDirectoryConfigurationUpdates)++instance+  Prelude.Hashable+    SelfManagedActiveDirectoryConfigurationUpdates+  where+  hashWithSalt+    _salt+    SelfManagedActiveDirectoryConfigurationUpdates' {..} =+      _salt+        `Prelude.hashWithSalt` dnsIps+        `Prelude.hashWithSalt` password+        `Prelude.hashWithSalt` userName++instance+  Prelude.NFData+    SelfManagedActiveDirectoryConfigurationUpdates+  where+  rnf+    SelfManagedActiveDirectoryConfigurationUpdates' {..} =+      Prelude.rnf dnsIps+        `Prelude.seq` Prelude.rnf password+        `Prelude.seq` Prelude.rnf userName++instance+  Data.ToJSON+    SelfManagedActiveDirectoryConfigurationUpdates+  where+  toJSON+    SelfManagedActiveDirectoryConfigurationUpdates' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("DnsIps" Data..=) Prelude.<$> dnsIps,+              ("Password" Data..=) Prelude.<$> password,+              ("UserName" Data..=) Prelude.<$> userName+            ]+        )
+ gen/Amazonka/FSx/Types/Snapshot.hs view
@@ -0,0 +1,201 @@+{-# 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.Snapshot+-- 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.Snapshot 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.LifecycleTransitionReason+import Amazonka.FSx.Types.SnapshotLifecycle+import Amazonka.FSx.Types.Tag+import qualified Amazonka.Prelude as Prelude++-- | A snapshot of an Amazon FSx for OpenZFS volume.+--+-- /See:/ 'newSnapshot' smart constructor.+data Snapshot = Snapshot'+  { -- | 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.+    administrativeActions :: Prelude.Maybe [AdministrativeAction],+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The lifecycle status of the snapshot.+    --+    -- -   @PENDING@ - Amazon FSx hasn\'t started creating the snapshot.+    --+    -- -   @CREATING@ - Amazon FSx is creating the snapshot.+    --+    -- -   @DELETING@ - Amazon FSx is deleting the snapshot.+    --+    -- -   @AVAILABLE@ - The snapshot is fully available.+    lifecycle :: Prelude.Maybe SnapshotLifecycle,+    lifecycleTransitionReason :: Prelude.Maybe LifecycleTransitionReason,+    -- | The name of the snapshot.+    name :: Prelude.Maybe Prelude.Text,+    resourceARN :: Prelude.Maybe Prelude.Text,+    -- | The ID of the snapshot.+    snapshotId :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The ID of the volume that the snapshot is of.+    volumeId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Snapshot' 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', 'snapshot_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.+--+-- 'creationTime', 'snapshot_creationTime' - Undocumented member.+--+-- 'lifecycle', 'snapshot_lifecycle' - The lifecycle status of the snapshot.+--+-- -   @PENDING@ - Amazon FSx hasn\'t started creating the snapshot.+--+-- -   @CREATING@ - Amazon FSx is creating the snapshot.+--+-- -   @DELETING@ - Amazon FSx is deleting the snapshot.+--+-- -   @AVAILABLE@ - The snapshot is fully available.+--+-- 'lifecycleTransitionReason', 'snapshot_lifecycleTransitionReason' - Undocumented member.+--+-- 'name', 'snapshot_name' - The name of the snapshot.+--+-- 'resourceARN', 'snapshot_resourceARN' - Undocumented member.+--+-- 'snapshotId', 'snapshot_snapshotId' - The ID of the snapshot.+--+-- 'tags', 'snapshot_tags' - Undocumented member.+--+-- 'volumeId', 'snapshot_volumeId' - The ID of the volume that the snapshot is of.+newSnapshot ::+  Snapshot+newSnapshot =+  Snapshot'+    { administrativeActions = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      lifecycleTransitionReason = Prelude.Nothing,+      name = Prelude.Nothing,+      resourceARN = Prelude.Nothing,+      snapshotId = Prelude.Nothing,+      tags = Prelude.Nothing,+      volumeId = 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.+snapshot_administrativeActions :: Lens.Lens' Snapshot (Prelude.Maybe [AdministrativeAction])+snapshot_administrativeActions = Lens.lens (\Snapshot' {administrativeActions} -> administrativeActions) (\s@Snapshot' {} a -> s {administrativeActions = a} :: Snapshot) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+snapshot_creationTime :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.UTCTime)+snapshot_creationTime = Lens.lens (\Snapshot' {creationTime} -> creationTime) (\s@Snapshot' {} a -> s {creationTime = a} :: Snapshot) Prelude.. Lens.mapping Data._Time++-- | The lifecycle status of the snapshot.+--+-- -   @PENDING@ - Amazon FSx hasn\'t started creating the snapshot.+--+-- -   @CREATING@ - Amazon FSx is creating the snapshot.+--+-- -   @DELETING@ - Amazon FSx is deleting the snapshot.+--+-- -   @AVAILABLE@ - The snapshot is fully available.+snapshot_lifecycle :: Lens.Lens' Snapshot (Prelude.Maybe SnapshotLifecycle)+snapshot_lifecycle = Lens.lens (\Snapshot' {lifecycle} -> lifecycle) (\s@Snapshot' {} a -> s {lifecycle = a} :: Snapshot)++-- | Undocumented member.+snapshot_lifecycleTransitionReason :: Lens.Lens' Snapshot (Prelude.Maybe LifecycleTransitionReason)+snapshot_lifecycleTransitionReason = Lens.lens (\Snapshot' {lifecycleTransitionReason} -> lifecycleTransitionReason) (\s@Snapshot' {} a -> s {lifecycleTransitionReason = a} :: Snapshot)++-- | The name of the snapshot.+snapshot_name :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_name = Lens.lens (\Snapshot' {name} -> name) (\s@Snapshot' {} a -> s {name = a} :: Snapshot)++-- | Undocumented member.+snapshot_resourceARN :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_resourceARN = Lens.lens (\Snapshot' {resourceARN} -> resourceARN) (\s@Snapshot' {} a -> s {resourceARN = a} :: Snapshot)++-- | The ID of the snapshot.+snapshot_snapshotId :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_snapshotId = Lens.lens (\Snapshot' {snapshotId} -> snapshotId) (\s@Snapshot' {} a -> s {snapshotId = a} :: Snapshot)++-- | Undocumented member.+snapshot_tags :: Lens.Lens' Snapshot (Prelude.Maybe (Prelude.NonEmpty Tag))+snapshot_tags = Lens.lens (\Snapshot' {tags} -> tags) (\s@Snapshot' {} a -> s {tags = a} :: Snapshot) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the volume that the snapshot is of.+snapshot_volumeId :: Lens.Lens' Snapshot (Prelude.Maybe Prelude.Text)+snapshot_volumeId = Lens.lens (\Snapshot' {volumeId} -> volumeId) (\s@Snapshot' {} a -> s {volumeId = a} :: Snapshot)++instance Data.FromJSON Snapshot where+  parseJSON =+    Data.withObject+      "Snapshot"+      ( \x ->+          Snapshot'+            Prelude.<$> ( x+                            Data..:? "AdministrativeActions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "Lifecycle")+            Prelude.<*> (x Data..:? "LifecycleTransitionReason")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "SnapshotId")+            Prelude.<*> (x Data..:? "Tags")+            Prelude.<*> (x Data..:? "VolumeId")+      )++instance Prelude.Hashable Snapshot where+  hashWithSalt _salt Snapshot' {..} =+    _salt+      `Prelude.hashWithSalt` administrativeActions+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` lifecycleTransitionReason+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` snapshotId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` volumeId++instance Prelude.NFData Snapshot where+  rnf Snapshot' {..} =+    Prelude.rnf administrativeActions+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf lifecycleTransitionReason+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf snapshotId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf volumeId
+ gen/Amazonka/FSx/Types/Snapshot.hs-boot view
@@ -0,0 +1,31 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.Snapshot+-- 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.Snapshot where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data Snapshot++instance Prelude.Eq Snapshot++instance Prelude.Read Snapshot++instance Prelude.Show Snapshot++instance Prelude.Generic Snapshot++instance Data.FromJSON Snapshot++instance Prelude.NFData Snapshot++instance Prelude.Hashable Snapshot
+ gen/Amazonka/FSx/Types/SnapshotFilter.hs view
@@ -0,0 +1,88 @@+{-# 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.SnapshotFilter+-- 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.SnapshotFilter 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.SnapshotFilterName+import qualified Amazonka.Prelude as Prelude++-- | A filter used to restrict the results of @DescribeSnapshots@ calls. You+-- can use multiple filters to return results that meet all applied filter+-- requirements.+--+-- /See:/ 'newSnapshotFilter' smart constructor.+data SnapshotFilter = SnapshotFilter'+  { -- | The name of the filter to use. You can filter by the @file-system-id@ or+    -- by @volume-id@.+    name :: Prelude.Maybe SnapshotFilterName,+    -- | The @file-system-id@ or @volume-id@ that you are filtering for.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SnapshotFilter' 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:+--+-- 'name', 'snapshotFilter_name' - The name of the filter to use. You can filter by the @file-system-id@ or+-- by @volume-id@.+--+-- 'values', 'snapshotFilter_values' - The @file-system-id@ or @volume-id@ that you are filtering for.+newSnapshotFilter ::+  SnapshotFilter+newSnapshotFilter =+  SnapshotFilter'+    { name = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The name of the filter to use. You can filter by the @file-system-id@ or+-- by @volume-id@.+snapshotFilter_name :: Lens.Lens' SnapshotFilter (Prelude.Maybe SnapshotFilterName)+snapshotFilter_name = Lens.lens (\SnapshotFilter' {name} -> name) (\s@SnapshotFilter' {} a -> s {name = a} :: SnapshotFilter)++-- | The @file-system-id@ or @volume-id@ that you are filtering for.+snapshotFilter_values :: Lens.Lens' SnapshotFilter (Prelude.Maybe [Prelude.Text])+snapshotFilter_values = Lens.lens (\SnapshotFilter' {values} -> values) (\s@SnapshotFilter' {} a -> s {values = a} :: SnapshotFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable SnapshotFilter where+  hashWithSalt _salt SnapshotFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData SnapshotFilter where+  rnf SnapshotFilter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON SnapshotFilter where+  toJSON SnapshotFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/FSx/Types/SnapshotFilterName.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.SnapshotFilterName+-- 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.SnapshotFilterName+  ( SnapshotFilterName+      ( ..,+        SnapshotFilterName_File_system_id,+        SnapshotFilterName_Volume_id+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SnapshotFilterName = SnapshotFilterName'+  { fromSnapshotFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SnapshotFilterName_File_system_id :: SnapshotFilterName+pattern SnapshotFilterName_File_system_id = SnapshotFilterName' "file-system-id"++pattern SnapshotFilterName_Volume_id :: SnapshotFilterName+pattern SnapshotFilterName_Volume_id = SnapshotFilterName' "volume-id"++{-# COMPLETE+  SnapshotFilterName_File_system_id,+  SnapshotFilterName_Volume_id,+  SnapshotFilterName'+  #-}
+ gen/Amazonka/FSx/Types/SnapshotLifecycle.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.SnapshotLifecycle+-- 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.SnapshotLifecycle+  ( SnapshotLifecycle+      ( ..,+        SnapshotLifecycle_AVAILABLE,+        SnapshotLifecycle_CREATING,+        SnapshotLifecycle_DELETING,+        SnapshotLifecycle_PENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SnapshotLifecycle = SnapshotLifecycle'+  { fromSnapshotLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SnapshotLifecycle_AVAILABLE :: SnapshotLifecycle+pattern SnapshotLifecycle_AVAILABLE = SnapshotLifecycle' "AVAILABLE"++pattern SnapshotLifecycle_CREATING :: SnapshotLifecycle+pattern SnapshotLifecycle_CREATING = SnapshotLifecycle' "CREATING"++pattern SnapshotLifecycle_DELETING :: SnapshotLifecycle+pattern SnapshotLifecycle_DELETING = SnapshotLifecycle' "DELETING"++pattern SnapshotLifecycle_PENDING :: SnapshotLifecycle+pattern SnapshotLifecycle_PENDING = SnapshotLifecycle' "PENDING"++{-# COMPLETE+  SnapshotLifecycle_AVAILABLE,+  SnapshotLifecycle_CREATING,+  SnapshotLifecycle_DELETING,+  SnapshotLifecycle_PENDING,+  SnapshotLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/Status.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.Status+-- 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.Status+  ( Status+      ( ..,+        Status_COMPLETED,+        Status_FAILED,+        Status_IN_PROGRESS,+        Status_PENDING,+        Status_UPDATED_OPTIMIZING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Status = Status' {fromStatus :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Status_COMPLETED :: Status+pattern Status_COMPLETED = Status' "COMPLETED"++pattern Status_FAILED :: Status+pattern Status_FAILED = Status' "FAILED"++pattern Status_IN_PROGRESS :: Status+pattern Status_IN_PROGRESS = Status' "IN_PROGRESS"++pattern Status_PENDING :: Status+pattern Status_PENDING = Status' "PENDING"++pattern Status_UPDATED_OPTIMIZING :: Status+pattern Status_UPDATED_OPTIMIZING = Status' "UPDATED_OPTIMIZING"++{-# COMPLETE+  Status_COMPLETED,+  Status_FAILED,+  Status_IN_PROGRESS,+  Status_PENDING,+  Status_UPDATED_OPTIMIZING,+  Status'+  #-}
+ gen/Amazonka/FSx/Types/StorageType.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.StorageType+-- 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.StorageType+  ( StorageType+      ( ..,+        StorageType_HDD,+        StorageType_SSD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The storage type for your Amazon FSx file system.+newtype StorageType = StorageType'+  { fromStorageType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern StorageType_HDD :: StorageType+pattern StorageType_HDD = StorageType' "HDD"++pattern StorageType_SSD :: StorageType+pattern StorageType_SSD = StorageType' "SSD"++{-# COMPLETE+  StorageType_HDD,+  StorageType_SSD,+  StorageType'+  #-}
+ gen/Amazonka/FSx/Types/StorageVirtualMachine.hs view
@@ -0,0 +1,266 @@+{-# 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.StorageVirtualMachine+-- 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.StorageVirtualMachine 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.LifecycleTransitionReason+import Amazonka.FSx.Types.StorageVirtualMachineLifecycle+import Amazonka.FSx.Types.StorageVirtualMachineRootVolumeSecurityStyle+import Amazonka.FSx.Types.StorageVirtualMachineSubtype+import Amazonka.FSx.Types.SvmActiveDirectoryConfiguration+import Amazonka.FSx.Types.SvmEndpoints+import Amazonka.FSx.Types.Tag+import qualified Amazonka.Prelude as Prelude++-- | Describes the Amazon FSx for NetApp ONTAP storage virtual machine (SVM)+-- configuration.+--+-- /See:/ 'newStorageVirtualMachine' smart constructor.+data StorageVirtualMachine = StorageVirtualMachine'+  { -- | Describes the Microsoft Active Directory configuration to which the SVM+    -- is joined, if applicable.+    activeDirectoryConfiguration :: Prelude.Maybe SvmActiveDirectoryConfiguration,+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The endpoints that are used to access data or to manage the SVM using+    -- the NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the+    -- @Iscsi@, @Management@, @Nfs@, and @Smb@ endpoints.+    endpoints :: Prelude.Maybe SvmEndpoints,+    fileSystemId :: Prelude.Maybe Prelude.Text,+    -- | Describes the SVM\'s lifecycle status.+    --+    -- -   @CREATED@ - The SVM is fully available for use.+    --+    -- -   @CREATING@ - Amazon FSx is creating the new SVM.+    --+    -- -   @DELETING@ - Amazon FSx is deleting an existing SVM.+    --+    -- -   @FAILED@ - Amazon FSx was unable to create the SVM.+    --+    -- -   @MISCONFIGURED@ - The SVM is in a failed but recoverable state.+    --+    -- -   @PENDING@ - Amazon FSx has not started creating the SVM.+    lifecycle :: Prelude.Maybe StorageVirtualMachineLifecycle,+    -- | Describes why the SVM lifecycle state changed.+    lifecycleTransitionReason :: Prelude.Maybe LifecycleTransitionReason,+    -- | The name of the SVM, if provisioned.+    name :: Prelude.Maybe Prelude.Text,+    resourceARN :: Prelude.Maybe Prelude.Text,+    -- | The security style of the root volume of the SVM.+    rootVolumeSecurityStyle :: Prelude.Maybe StorageVirtualMachineRootVolumeSecurityStyle,+    -- | The SVM\'s system generated unique ID.+    storageVirtualMachineId :: Prelude.Maybe Prelude.Text,+    -- | Describes the SVM\'s subtype.+    subtype :: Prelude.Maybe StorageVirtualMachineSubtype,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The SVM\'s UUID (universally unique identifier).+    uuid :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StorageVirtualMachine' 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:+--+-- 'activeDirectoryConfiguration', 'storageVirtualMachine_activeDirectoryConfiguration' - Describes the Microsoft Active Directory configuration to which the SVM+-- is joined, if applicable.+--+-- 'creationTime', 'storageVirtualMachine_creationTime' - Undocumented member.+--+-- 'endpoints', 'storageVirtualMachine_endpoints' - The endpoints that are used to access data or to manage the SVM using+-- the NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the+-- @Iscsi@, @Management@, @Nfs@, and @Smb@ endpoints.+--+-- 'fileSystemId', 'storageVirtualMachine_fileSystemId' - Undocumented member.+--+-- 'lifecycle', 'storageVirtualMachine_lifecycle' - Describes the SVM\'s lifecycle status.+--+-- -   @CREATED@ - The SVM is fully available for use.+--+-- -   @CREATING@ - Amazon FSx is creating the new SVM.+--+-- -   @DELETING@ - Amazon FSx is deleting an existing SVM.+--+-- -   @FAILED@ - Amazon FSx was unable to create the SVM.+--+-- -   @MISCONFIGURED@ - The SVM is in a failed but recoverable state.+--+-- -   @PENDING@ - Amazon FSx has not started creating the SVM.+--+-- 'lifecycleTransitionReason', 'storageVirtualMachine_lifecycleTransitionReason' - Describes why the SVM lifecycle state changed.+--+-- 'name', 'storageVirtualMachine_name' - The name of the SVM, if provisioned.+--+-- 'resourceARN', 'storageVirtualMachine_resourceARN' - Undocumented member.+--+-- 'rootVolumeSecurityStyle', 'storageVirtualMachine_rootVolumeSecurityStyle' - The security style of the root volume of the SVM.+--+-- 'storageVirtualMachineId', 'storageVirtualMachine_storageVirtualMachineId' - The SVM\'s system generated unique ID.+--+-- 'subtype', 'storageVirtualMachine_subtype' - Describes the SVM\'s subtype.+--+-- 'tags', 'storageVirtualMachine_tags' - Undocumented member.+--+-- 'uuid', 'storageVirtualMachine_uuid' - The SVM\'s UUID (universally unique identifier).+newStorageVirtualMachine ::+  StorageVirtualMachine+newStorageVirtualMachine =+  StorageVirtualMachine'+    { activeDirectoryConfiguration =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      endpoints = Prelude.Nothing,+      fileSystemId = Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      lifecycleTransitionReason = Prelude.Nothing,+      name = Prelude.Nothing,+      resourceARN = Prelude.Nothing,+      rootVolumeSecurityStyle = Prelude.Nothing,+      storageVirtualMachineId = Prelude.Nothing,+      subtype = Prelude.Nothing,+      tags = Prelude.Nothing,+      uuid = Prelude.Nothing+    }++-- | Describes the Microsoft Active Directory configuration to which the SVM+-- is joined, if applicable.+storageVirtualMachine_activeDirectoryConfiguration :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe SvmActiveDirectoryConfiguration)+storageVirtualMachine_activeDirectoryConfiguration = Lens.lens (\StorageVirtualMachine' {activeDirectoryConfiguration} -> activeDirectoryConfiguration) (\s@StorageVirtualMachine' {} a -> s {activeDirectoryConfiguration = a} :: StorageVirtualMachine)++-- | Undocumented member.+storageVirtualMachine_creationTime :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe Prelude.UTCTime)+storageVirtualMachine_creationTime = Lens.lens (\StorageVirtualMachine' {creationTime} -> creationTime) (\s@StorageVirtualMachine' {} a -> s {creationTime = a} :: StorageVirtualMachine) Prelude.. Lens.mapping Data._Time++-- | The endpoints that are used to access data or to manage the SVM using+-- the NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the+-- @Iscsi@, @Management@, @Nfs@, and @Smb@ endpoints.+storageVirtualMachine_endpoints :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe SvmEndpoints)+storageVirtualMachine_endpoints = Lens.lens (\StorageVirtualMachine' {endpoints} -> endpoints) (\s@StorageVirtualMachine' {} a -> s {endpoints = a} :: StorageVirtualMachine)++-- | Undocumented member.+storageVirtualMachine_fileSystemId :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe Prelude.Text)+storageVirtualMachine_fileSystemId = Lens.lens (\StorageVirtualMachine' {fileSystemId} -> fileSystemId) (\s@StorageVirtualMachine' {} a -> s {fileSystemId = a} :: StorageVirtualMachine)++-- | Describes the SVM\'s lifecycle status.+--+-- -   @CREATED@ - The SVM is fully available for use.+--+-- -   @CREATING@ - Amazon FSx is creating the new SVM.+--+-- -   @DELETING@ - Amazon FSx is deleting an existing SVM.+--+-- -   @FAILED@ - Amazon FSx was unable to create the SVM.+--+-- -   @MISCONFIGURED@ - The SVM is in a failed but recoverable state.+--+-- -   @PENDING@ - Amazon FSx has not started creating the SVM.+storageVirtualMachine_lifecycle :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe StorageVirtualMachineLifecycle)+storageVirtualMachine_lifecycle = Lens.lens (\StorageVirtualMachine' {lifecycle} -> lifecycle) (\s@StorageVirtualMachine' {} a -> s {lifecycle = a} :: StorageVirtualMachine)++-- | Describes why the SVM lifecycle state changed.+storageVirtualMachine_lifecycleTransitionReason :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe LifecycleTransitionReason)+storageVirtualMachine_lifecycleTransitionReason = Lens.lens (\StorageVirtualMachine' {lifecycleTransitionReason} -> lifecycleTransitionReason) (\s@StorageVirtualMachine' {} a -> s {lifecycleTransitionReason = a} :: StorageVirtualMachine)++-- | The name of the SVM, if provisioned.+storageVirtualMachine_name :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe Prelude.Text)+storageVirtualMachine_name = Lens.lens (\StorageVirtualMachine' {name} -> name) (\s@StorageVirtualMachine' {} a -> s {name = a} :: StorageVirtualMachine)++-- | Undocumented member.+storageVirtualMachine_resourceARN :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe Prelude.Text)+storageVirtualMachine_resourceARN = Lens.lens (\StorageVirtualMachine' {resourceARN} -> resourceARN) (\s@StorageVirtualMachine' {} a -> s {resourceARN = a} :: StorageVirtualMachine)++-- | The security style of the root volume of the SVM.+storageVirtualMachine_rootVolumeSecurityStyle :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe StorageVirtualMachineRootVolumeSecurityStyle)+storageVirtualMachine_rootVolumeSecurityStyle = Lens.lens (\StorageVirtualMachine' {rootVolumeSecurityStyle} -> rootVolumeSecurityStyle) (\s@StorageVirtualMachine' {} a -> s {rootVolumeSecurityStyle = a} :: StorageVirtualMachine)++-- | The SVM\'s system generated unique ID.+storageVirtualMachine_storageVirtualMachineId :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe Prelude.Text)+storageVirtualMachine_storageVirtualMachineId = Lens.lens (\StorageVirtualMachine' {storageVirtualMachineId} -> storageVirtualMachineId) (\s@StorageVirtualMachine' {} a -> s {storageVirtualMachineId = a} :: StorageVirtualMachine)++-- | Describes the SVM\'s subtype.+storageVirtualMachine_subtype :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe StorageVirtualMachineSubtype)+storageVirtualMachine_subtype = Lens.lens (\StorageVirtualMachine' {subtype} -> subtype) (\s@StorageVirtualMachine' {} a -> s {subtype = a} :: StorageVirtualMachine)++-- | Undocumented member.+storageVirtualMachine_tags :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe (Prelude.NonEmpty Tag))+storageVirtualMachine_tags = Lens.lens (\StorageVirtualMachine' {tags} -> tags) (\s@StorageVirtualMachine' {} a -> s {tags = a} :: StorageVirtualMachine) Prelude.. Lens.mapping Lens.coerced++-- | The SVM\'s UUID (universally unique identifier).+storageVirtualMachine_uuid :: Lens.Lens' StorageVirtualMachine (Prelude.Maybe Prelude.Text)+storageVirtualMachine_uuid = Lens.lens (\StorageVirtualMachine' {uuid} -> uuid) (\s@StorageVirtualMachine' {} a -> s {uuid = a} :: StorageVirtualMachine)++instance Data.FromJSON StorageVirtualMachine where+  parseJSON =+    Data.withObject+      "StorageVirtualMachine"+      ( \x ->+          StorageVirtualMachine'+            Prelude.<$> (x Data..:? "ActiveDirectoryConfiguration")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "Endpoints")+            Prelude.<*> (x Data..:? "FileSystemId")+            Prelude.<*> (x Data..:? "Lifecycle")+            Prelude.<*> (x Data..:? "LifecycleTransitionReason")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "RootVolumeSecurityStyle")+            Prelude.<*> (x Data..:? "StorageVirtualMachineId")+            Prelude.<*> (x Data..:? "Subtype")+            Prelude.<*> (x Data..:? "Tags")+            Prelude.<*> (x Data..:? "UUID")+      )++instance Prelude.Hashable StorageVirtualMachine where+  hashWithSalt _salt StorageVirtualMachine' {..} =+    _salt+      `Prelude.hashWithSalt` activeDirectoryConfiguration+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` endpoints+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` lifecycleTransitionReason+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` rootVolumeSecurityStyle+      `Prelude.hashWithSalt` storageVirtualMachineId+      `Prelude.hashWithSalt` subtype+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` uuid++instance Prelude.NFData StorageVirtualMachine where+  rnf StorageVirtualMachine' {..} =+    Prelude.rnf activeDirectoryConfiguration+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf endpoints+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf lifecycleTransitionReason+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf rootVolumeSecurityStyle+      `Prelude.seq` Prelude.rnf storageVirtualMachineId+      `Prelude.seq` Prelude.rnf subtype+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf uuid
+ gen/Amazonka/FSx/Types/StorageVirtualMachineFilter.hs view
@@ -0,0 +1,89 @@+{-# 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.StorageVirtualMachineFilter+-- 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.StorageVirtualMachineFilter 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.StorageVirtualMachineFilterName+import qualified Amazonka.Prelude as Prelude++-- | A filter used to restrict the results of describe calls for Amazon FSx+-- for NetApp ONTAP storage virtual machines (SVMs). You can use multiple+-- filters to return results that meet all applied filter requirements.+--+-- /See:/ 'newStorageVirtualMachineFilter' smart constructor.+data StorageVirtualMachineFilter = StorageVirtualMachineFilter'+  { -- | The name for this filter.+    name :: Prelude.Maybe StorageVirtualMachineFilterName,+    -- | The values of the filter. These are all the values for any of the+    -- applied filters.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StorageVirtualMachineFilter' 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:+--+-- 'name', 'storageVirtualMachineFilter_name' - The name for this filter.+--+-- 'values', 'storageVirtualMachineFilter_values' - The values of the filter. These are all the values for any of the+-- applied filters.+newStorageVirtualMachineFilter ::+  StorageVirtualMachineFilter+newStorageVirtualMachineFilter =+  StorageVirtualMachineFilter'+    { name =+        Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The name for this filter.+storageVirtualMachineFilter_name :: Lens.Lens' StorageVirtualMachineFilter (Prelude.Maybe StorageVirtualMachineFilterName)+storageVirtualMachineFilter_name = Lens.lens (\StorageVirtualMachineFilter' {name} -> name) (\s@StorageVirtualMachineFilter' {} a -> s {name = a} :: StorageVirtualMachineFilter)++-- | The values of the filter. These are all the values for any of the+-- applied filters.+storageVirtualMachineFilter_values :: Lens.Lens' StorageVirtualMachineFilter (Prelude.Maybe [Prelude.Text])+storageVirtualMachineFilter_values = Lens.lens (\StorageVirtualMachineFilter' {values} -> values) (\s@StorageVirtualMachineFilter' {} a -> s {values = a} :: StorageVirtualMachineFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable StorageVirtualMachineFilter where+  hashWithSalt _salt StorageVirtualMachineFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData StorageVirtualMachineFilter where+  rnf StorageVirtualMachineFilter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON StorageVirtualMachineFilter where+  toJSON StorageVirtualMachineFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/FSx/Types/StorageVirtualMachineFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.StorageVirtualMachineFilterName+-- 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.StorageVirtualMachineFilterName+  ( StorageVirtualMachineFilterName+      ( ..,+        StorageVirtualMachineFilterName_File_system_id+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StorageVirtualMachineFilterName = StorageVirtualMachineFilterName'+  { fromStorageVirtualMachineFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern StorageVirtualMachineFilterName_File_system_id :: StorageVirtualMachineFilterName+pattern StorageVirtualMachineFilterName_File_system_id = StorageVirtualMachineFilterName' "file-system-id"++{-# COMPLETE+  StorageVirtualMachineFilterName_File_system_id,+  StorageVirtualMachineFilterName'+  #-}
+ gen/Amazonka/FSx/Types/StorageVirtualMachineLifecycle.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.StorageVirtualMachineLifecycle+-- 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.StorageVirtualMachineLifecycle+  ( StorageVirtualMachineLifecycle+      ( ..,+        StorageVirtualMachineLifecycle_CREATED,+        StorageVirtualMachineLifecycle_CREATING,+        StorageVirtualMachineLifecycle_DELETING,+        StorageVirtualMachineLifecycle_FAILED,+        StorageVirtualMachineLifecycle_MISCONFIGURED,+        StorageVirtualMachineLifecycle_PENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StorageVirtualMachineLifecycle = StorageVirtualMachineLifecycle'+  { fromStorageVirtualMachineLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern StorageVirtualMachineLifecycle_CREATED :: StorageVirtualMachineLifecycle+pattern StorageVirtualMachineLifecycle_CREATED = StorageVirtualMachineLifecycle' "CREATED"++pattern StorageVirtualMachineLifecycle_CREATING :: StorageVirtualMachineLifecycle+pattern StorageVirtualMachineLifecycle_CREATING = StorageVirtualMachineLifecycle' "CREATING"++pattern StorageVirtualMachineLifecycle_DELETING :: StorageVirtualMachineLifecycle+pattern StorageVirtualMachineLifecycle_DELETING = StorageVirtualMachineLifecycle' "DELETING"++pattern StorageVirtualMachineLifecycle_FAILED :: StorageVirtualMachineLifecycle+pattern StorageVirtualMachineLifecycle_FAILED = StorageVirtualMachineLifecycle' "FAILED"++pattern StorageVirtualMachineLifecycle_MISCONFIGURED :: StorageVirtualMachineLifecycle+pattern StorageVirtualMachineLifecycle_MISCONFIGURED = StorageVirtualMachineLifecycle' "MISCONFIGURED"++pattern StorageVirtualMachineLifecycle_PENDING :: StorageVirtualMachineLifecycle+pattern StorageVirtualMachineLifecycle_PENDING = StorageVirtualMachineLifecycle' "PENDING"++{-# COMPLETE+  StorageVirtualMachineLifecycle_CREATED,+  StorageVirtualMachineLifecycle_CREATING,+  StorageVirtualMachineLifecycle_DELETING,+  StorageVirtualMachineLifecycle_FAILED,+  StorageVirtualMachineLifecycle_MISCONFIGURED,+  StorageVirtualMachineLifecycle_PENDING,+  StorageVirtualMachineLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/StorageVirtualMachineRootVolumeSecurityStyle.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.StorageVirtualMachineRootVolumeSecurityStyle+-- 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.StorageVirtualMachineRootVolumeSecurityStyle+  ( StorageVirtualMachineRootVolumeSecurityStyle+      ( ..,+        StorageVirtualMachineRootVolumeSecurityStyle_MIXED,+        StorageVirtualMachineRootVolumeSecurityStyle_NTFS,+        StorageVirtualMachineRootVolumeSecurityStyle_UNIX+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StorageVirtualMachineRootVolumeSecurityStyle = StorageVirtualMachineRootVolumeSecurityStyle'+  { fromStorageVirtualMachineRootVolumeSecurityStyle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern StorageVirtualMachineRootVolumeSecurityStyle_MIXED :: StorageVirtualMachineRootVolumeSecurityStyle+pattern StorageVirtualMachineRootVolumeSecurityStyle_MIXED = StorageVirtualMachineRootVolumeSecurityStyle' "MIXED"++pattern StorageVirtualMachineRootVolumeSecurityStyle_NTFS :: StorageVirtualMachineRootVolumeSecurityStyle+pattern StorageVirtualMachineRootVolumeSecurityStyle_NTFS = StorageVirtualMachineRootVolumeSecurityStyle' "NTFS"++pattern StorageVirtualMachineRootVolumeSecurityStyle_UNIX :: StorageVirtualMachineRootVolumeSecurityStyle+pattern StorageVirtualMachineRootVolumeSecurityStyle_UNIX = StorageVirtualMachineRootVolumeSecurityStyle' "UNIX"++{-# COMPLETE+  StorageVirtualMachineRootVolumeSecurityStyle_MIXED,+  StorageVirtualMachineRootVolumeSecurityStyle_NTFS,+  StorageVirtualMachineRootVolumeSecurityStyle_UNIX,+  StorageVirtualMachineRootVolumeSecurityStyle'+  #-}
+ gen/Amazonka/FSx/Types/StorageVirtualMachineSubtype.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.StorageVirtualMachineSubtype+-- 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.StorageVirtualMachineSubtype+  ( StorageVirtualMachineSubtype+      ( ..,+        StorageVirtualMachineSubtype_DEFAULT,+        StorageVirtualMachineSubtype_DP_DESTINATION,+        StorageVirtualMachineSubtype_SYNC_DESTINATION,+        StorageVirtualMachineSubtype_SYNC_SOURCE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StorageVirtualMachineSubtype = StorageVirtualMachineSubtype'+  { fromStorageVirtualMachineSubtype ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern StorageVirtualMachineSubtype_DEFAULT :: StorageVirtualMachineSubtype+pattern StorageVirtualMachineSubtype_DEFAULT = StorageVirtualMachineSubtype' "DEFAULT"++pattern StorageVirtualMachineSubtype_DP_DESTINATION :: StorageVirtualMachineSubtype+pattern StorageVirtualMachineSubtype_DP_DESTINATION = StorageVirtualMachineSubtype' "DP_DESTINATION"++pattern StorageVirtualMachineSubtype_SYNC_DESTINATION :: StorageVirtualMachineSubtype+pattern StorageVirtualMachineSubtype_SYNC_DESTINATION = StorageVirtualMachineSubtype' "SYNC_DESTINATION"++pattern StorageVirtualMachineSubtype_SYNC_SOURCE :: StorageVirtualMachineSubtype+pattern StorageVirtualMachineSubtype_SYNC_SOURCE = StorageVirtualMachineSubtype' "SYNC_SOURCE"++{-# COMPLETE+  StorageVirtualMachineSubtype_DEFAULT,+  StorageVirtualMachineSubtype_DP_DESTINATION,+  StorageVirtualMachineSubtype_SYNC_DESTINATION,+  StorageVirtualMachineSubtype_SYNC_SOURCE,+  StorageVirtualMachineSubtype'+  #-}
+ gen/Amazonka/FSx/Types/SvmActiveDirectoryConfiguration.hs view
@@ -0,0 +1,105 @@+{-# 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.SvmActiveDirectoryConfiguration+-- 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.SvmActiveDirectoryConfiguration 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.SelfManagedActiveDirectoryAttributes+import qualified Amazonka.Prelude as Prelude++-- | Describes the configuration of the Microsoft Active Directory (AD)+-- directory to which the Amazon FSx for ONTAP storage virtual machine+-- (SVM) is joined. Pleae note, account credentials are not returned in the+-- response payload.+--+-- /See:/ 'newSvmActiveDirectoryConfiguration' smart constructor.+data SvmActiveDirectoryConfiguration = SvmActiveDirectoryConfiguration'+  { -- | The NetBIOS name of the Active Directory computer object that is joined+    -- to your SVM.+    netBiosName :: Prelude.Maybe Prelude.Text,+    selfManagedActiveDirectoryConfiguration :: Prelude.Maybe SelfManagedActiveDirectoryAttributes+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SvmActiveDirectoryConfiguration' 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:+--+-- 'netBiosName', 'svmActiveDirectoryConfiguration_netBiosName' - The NetBIOS name of the Active Directory computer object that is joined+-- to your SVM.+--+-- 'selfManagedActiveDirectoryConfiguration', 'svmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration' - Undocumented member.+newSvmActiveDirectoryConfiguration ::+  SvmActiveDirectoryConfiguration+newSvmActiveDirectoryConfiguration =+  SvmActiveDirectoryConfiguration'+    { netBiosName =+        Prelude.Nothing,+      selfManagedActiveDirectoryConfiguration =+        Prelude.Nothing+    }++-- | The NetBIOS name of the Active Directory computer object that is joined+-- to your SVM.+svmActiveDirectoryConfiguration_netBiosName :: Lens.Lens' SvmActiveDirectoryConfiguration (Prelude.Maybe Prelude.Text)+svmActiveDirectoryConfiguration_netBiosName = Lens.lens (\SvmActiveDirectoryConfiguration' {netBiosName} -> netBiosName) (\s@SvmActiveDirectoryConfiguration' {} a -> s {netBiosName = a} :: SvmActiveDirectoryConfiguration)++-- | Undocumented member.+svmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration :: Lens.Lens' SvmActiveDirectoryConfiguration (Prelude.Maybe SelfManagedActiveDirectoryAttributes)+svmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration = Lens.lens (\SvmActiveDirectoryConfiguration' {selfManagedActiveDirectoryConfiguration} -> selfManagedActiveDirectoryConfiguration) (\s@SvmActiveDirectoryConfiguration' {} a -> s {selfManagedActiveDirectoryConfiguration = a} :: SvmActiveDirectoryConfiguration)++instance+  Data.FromJSON+    SvmActiveDirectoryConfiguration+  where+  parseJSON =+    Data.withObject+      "SvmActiveDirectoryConfiguration"+      ( \x ->+          SvmActiveDirectoryConfiguration'+            Prelude.<$> (x Data..:? "NetBiosName")+            Prelude.<*> ( x+                            Data..:? "SelfManagedActiveDirectoryConfiguration"+                        )+      )++instance+  Prelude.Hashable+    SvmActiveDirectoryConfiguration+  where+  hashWithSalt+    _salt+    SvmActiveDirectoryConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` netBiosName+        `Prelude.hashWithSalt` selfManagedActiveDirectoryConfiguration++instance+  Prelude.NFData+    SvmActiveDirectoryConfiguration+  where+  rnf SvmActiveDirectoryConfiguration' {..} =+    Prelude.rnf netBiosName+      `Prelude.seq` Prelude.rnf selfManagedActiveDirectoryConfiguration
+ gen/Amazonka/FSx/Types/SvmEndpoint.hs view
@@ -0,0 +1,86 @@+{-# 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.SvmEndpoint+-- 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.SvmEndpoint 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++-- | An Amazon FSx for NetApp ONTAP storage virtual machine (SVM) has four+-- endpoints that are used to access data or to manage the SVM using the+-- NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the+-- @Iscsi@, @Management@, @Nfs@, and @Smb@ endpoints.+--+-- /See:/ 'newSvmEndpoint' smart constructor.+data SvmEndpoint = SvmEndpoint'+  { dNSName :: Prelude.Maybe Prelude.Text,+    -- | The SVM endpoint\'s IP addresses.+    ipAddresses :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SvmEndpoint' 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:+--+-- 'dNSName', 'svmEndpoint_dNSName' - Undocumented member.+--+-- 'ipAddresses', 'svmEndpoint_ipAddresses' - The SVM endpoint\'s IP addresses.+newSvmEndpoint ::+  SvmEndpoint+newSvmEndpoint =+  SvmEndpoint'+    { dNSName = Prelude.Nothing,+      ipAddresses = Prelude.Nothing+    }++-- | Undocumented member.+svmEndpoint_dNSName :: Lens.Lens' SvmEndpoint (Prelude.Maybe Prelude.Text)+svmEndpoint_dNSName = Lens.lens (\SvmEndpoint' {dNSName} -> dNSName) (\s@SvmEndpoint' {} a -> s {dNSName = a} :: SvmEndpoint)++-- | The SVM endpoint\'s IP addresses.+svmEndpoint_ipAddresses :: Lens.Lens' SvmEndpoint (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+svmEndpoint_ipAddresses = Lens.lens (\SvmEndpoint' {ipAddresses} -> ipAddresses) (\s@SvmEndpoint' {} a -> s {ipAddresses = a} :: SvmEndpoint) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SvmEndpoint where+  parseJSON =+    Data.withObject+      "SvmEndpoint"+      ( \x ->+          SvmEndpoint'+            Prelude.<$> (x Data..:? "DNSName")+            Prelude.<*> (x Data..:? "IpAddresses")+      )++instance Prelude.Hashable SvmEndpoint where+  hashWithSalt _salt SvmEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` dNSName+      `Prelude.hashWithSalt` ipAddresses++instance Prelude.NFData SvmEndpoint where+  rnf SvmEndpoint' {..} =+    Prelude.rnf dNSName+      `Prelude.seq` Prelude.rnf ipAddresses
+ gen/Amazonka/FSx/Types/SvmEndpoints.hs view
@@ -0,0 +1,120 @@+{-# 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.SvmEndpoints+-- 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.SvmEndpoints 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.SvmEndpoint+import qualified Amazonka.Prelude as Prelude++-- | An Amazon FSx for NetApp ONTAP storage virtual machine (SVM) has the+-- following endpoints that are used to access data or to manage the SVM+-- using the NetApp ONTAP CLI, REST API, or NetApp CloudManager.+--+-- /See:/ 'newSvmEndpoints' smart constructor.+data SvmEndpoints = SvmEndpoints'+  { -- | An endpoint for connecting using the Internet Small Computer Systems+    -- Interface (iSCSI) protocol.+    iscsi :: Prelude.Maybe SvmEndpoint,+    -- | An endpoint for managing SVMs using the NetApp ONTAP CLI, NetApp ONTAP+    -- API, or NetApp CloudManager.+    management :: Prelude.Maybe SvmEndpoint,+    -- | An endpoint for connecting using the Network File System (NFS) protocol.+    nfs :: Prelude.Maybe SvmEndpoint,+    -- | An endpoint for connecting using the Server Message Block (SMB)+    -- protocol.+    smb :: Prelude.Maybe SvmEndpoint+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SvmEndpoints' 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:+--+-- 'iscsi', 'svmEndpoints_iscsi' - An endpoint for connecting using the Internet Small Computer Systems+-- Interface (iSCSI) protocol.+--+-- 'management', 'svmEndpoints_management' - An endpoint for managing SVMs using the NetApp ONTAP CLI, NetApp ONTAP+-- API, or NetApp CloudManager.+--+-- 'nfs', 'svmEndpoints_nfs' - An endpoint for connecting using the Network File System (NFS) protocol.+--+-- 'smb', 'svmEndpoints_smb' - An endpoint for connecting using the Server Message Block (SMB)+-- protocol.+newSvmEndpoints ::+  SvmEndpoints+newSvmEndpoints =+  SvmEndpoints'+    { iscsi = Prelude.Nothing,+      management = Prelude.Nothing,+      nfs = Prelude.Nothing,+      smb = Prelude.Nothing+    }++-- | An endpoint for connecting using the Internet Small Computer Systems+-- Interface (iSCSI) protocol.+svmEndpoints_iscsi :: Lens.Lens' SvmEndpoints (Prelude.Maybe SvmEndpoint)+svmEndpoints_iscsi = Lens.lens (\SvmEndpoints' {iscsi} -> iscsi) (\s@SvmEndpoints' {} a -> s {iscsi = a} :: SvmEndpoints)++-- | An endpoint for managing SVMs using the NetApp ONTAP CLI, NetApp ONTAP+-- API, or NetApp CloudManager.+svmEndpoints_management :: Lens.Lens' SvmEndpoints (Prelude.Maybe SvmEndpoint)+svmEndpoints_management = Lens.lens (\SvmEndpoints' {management} -> management) (\s@SvmEndpoints' {} a -> s {management = a} :: SvmEndpoints)++-- | An endpoint for connecting using the Network File System (NFS) protocol.+svmEndpoints_nfs :: Lens.Lens' SvmEndpoints (Prelude.Maybe SvmEndpoint)+svmEndpoints_nfs = Lens.lens (\SvmEndpoints' {nfs} -> nfs) (\s@SvmEndpoints' {} a -> s {nfs = a} :: SvmEndpoints)++-- | An endpoint for connecting using the Server Message Block (SMB)+-- protocol.+svmEndpoints_smb :: Lens.Lens' SvmEndpoints (Prelude.Maybe SvmEndpoint)+svmEndpoints_smb = Lens.lens (\SvmEndpoints' {smb} -> smb) (\s@SvmEndpoints' {} a -> s {smb = a} :: SvmEndpoints)++instance Data.FromJSON SvmEndpoints where+  parseJSON =+    Data.withObject+      "SvmEndpoints"+      ( \x ->+          SvmEndpoints'+            Prelude.<$> (x Data..:? "Iscsi")+            Prelude.<*> (x Data..:? "Management")+            Prelude.<*> (x Data..:? "Nfs")+            Prelude.<*> (x Data..:? "Smb")+      )++instance Prelude.Hashable SvmEndpoints where+  hashWithSalt _salt SvmEndpoints' {..} =+    _salt+      `Prelude.hashWithSalt` iscsi+      `Prelude.hashWithSalt` management+      `Prelude.hashWithSalt` nfs+      `Prelude.hashWithSalt` smb++instance Prelude.NFData SvmEndpoints where+  rnf SvmEndpoints' {..} =+    Prelude.rnf iscsi+      `Prelude.seq` Prelude.rnf management+      `Prelude.seq` Prelude.rnf nfs+      `Prelude.seq` Prelude.rnf smb
+ gen/Amazonka/FSx/Types/Tag.hs view
@@ -0,0 +1,105 @@+{-# 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.Tag+-- 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.Tag 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++-- | Specifies a key-value pair for a resource tag.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | A value that specifies the @TagKey@, the name of the tag. Tag keys must+    -- be unique for the resource to which they are attached.+    key :: Prelude.Text,+    -- | A value that specifies the @TagValue@, the value assigned to the+    -- corresponding tag key. Tag values can be null and don\'t have to be+    -- unique in a tag set. For example, you can have a key-value pair in a tag+    -- set of @finances : April@ and also of @payroll : April@.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' 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:+--+-- 'key', 'tag_key' - A value that specifies the @TagKey@, the name of the tag. Tag keys must+-- be unique for the resource to which they are attached.+--+-- 'value', 'tag_value' - A value that specifies the @TagValue@, the value assigned to the+-- corresponding tag key. Tag values can be null and don\'t have to be+-- unique in a tag set. For example, you can have a key-value pair in a tag+-- set of @finances : April@ and also of @payroll : April@.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | A value that specifies the @TagKey@, the name of the tag. Tag keys must+-- be unique for the resource to which they are attached.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | A value that specifies the @TagValue@, the value assigned to the+-- corresponding tag key. Tag values can be null and don\'t have to be+-- unique in a tag set. For example, you can have a key-value pair in a tag+-- set of @finances : April@ and also of @payroll : April@.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Key" Data..= key),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/FSx/Types/TieringPolicy.hs view
@@ -0,0 +1,162 @@+{-# 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.TieringPolicy+-- 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.TieringPolicy 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.TieringPolicyName+import qualified Amazonka.Prelude as Prelude++-- | Describes the data tiering policy for an ONTAP volume. When enabled,+-- Amazon FSx for ONTAP\'s intelligent tiering automatically transitions a+-- volume\'s data between the file system\'s primary storage and capacity+-- pool storage based on your access patterns.+--+-- Valid tiering policies are the following:+--+-- -   @SNAPSHOT_ONLY@ - (Default value) moves cold snapshots to the+--     capacity pool storage tier.+--+-- -   @AUTO@ - moves cold user data and snapshots to the capacity pool+--     storage tier based on your access patterns.+--+-- -   @ALL@ - moves all user data blocks in both the active file system+--     and Snapshot copies to the storage pool tier.+--+-- -   @NONE@ - keeps a volume\'s data in the primary storage tier,+--     preventing it from being moved to the capacity pool tier.+--+-- /See:/ 'newTieringPolicy' smart constructor.+data TieringPolicy = TieringPolicy'+  { -- | Specifies the number of days that user data in a volume must remain+    -- inactive before it is considered \"cold\" and moved to the capacity+    -- pool. Used with the @AUTO@ and @SNAPSHOT_ONLY@ tiering policies. Enter a+    -- whole number between 2 and 183. Default values are 31 days for @AUTO@+    -- and 2 days for @SNAPSHOT_ONLY@.+    coolingPeriod :: Prelude.Maybe Prelude.Natural,+    -- | Specifies the tiering policy used to transition data. Default value is+    -- @SNAPSHOT_ONLY@.+    --+    -- -   @SNAPSHOT_ONLY@ - moves cold snapshots to the capacity pool storage+    --     tier.+    --+    -- -   @AUTO@ - moves cold user data and snapshots to the capacity pool+    --     storage tier based on your access patterns.+    --+    -- -   @ALL@ - moves all user data blocks in both the active file system+    --     and Snapshot copies to the storage pool tier.+    --+    -- -   @NONE@ - keeps a volume\'s data in the primary storage tier,+    --     preventing it from being moved to the capacity pool tier.+    name :: Prelude.Maybe TieringPolicyName+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TieringPolicy' 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:+--+-- 'coolingPeriod', 'tieringPolicy_coolingPeriod' - Specifies the number of days that user data in a volume must remain+-- inactive before it is considered \"cold\" and moved to the capacity+-- pool. Used with the @AUTO@ and @SNAPSHOT_ONLY@ tiering policies. Enter a+-- whole number between 2 and 183. Default values are 31 days for @AUTO@+-- and 2 days for @SNAPSHOT_ONLY@.+--+-- 'name', 'tieringPolicy_name' - Specifies the tiering policy used to transition data. Default value is+-- @SNAPSHOT_ONLY@.+--+-- -   @SNAPSHOT_ONLY@ - moves cold snapshots to the capacity pool storage+--     tier.+--+-- -   @AUTO@ - moves cold user data and snapshots to the capacity pool+--     storage tier based on your access patterns.+--+-- -   @ALL@ - moves all user data blocks in both the active file system+--     and Snapshot copies to the storage pool tier.+--+-- -   @NONE@ - keeps a volume\'s data in the primary storage tier,+--     preventing it from being moved to the capacity pool tier.+newTieringPolicy ::+  TieringPolicy+newTieringPolicy =+  TieringPolicy'+    { coolingPeriod = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | Specifies the number of days that user data in a volume must remain+-- inactive before it is considered \"cold\" and moved to the capacity+-- pool. Used with the @AUTO@ and @SNAPSHOT_ONLY@ tiering policies. Enter a+-- whole number between 2 and 183. Default values are 31 days for @AUTO@+-- and 2 days for @SNAPSHOT_ONLY@.+tieringPolicy_coolingPeriod :: Lens.Lens' TieringPolicy (Prelude.Maybe Prelude.Natural)+tieringPolicy_coolingPeriod = Lens.lens (\TieringPolicy' {coolingPeriod} -> coolingPeriod) (\s@TieringPolicy' {} a -> s {coolingPeriod = a} :: TieringPolicy)++-- | Specifies the tiering policy used to transition data. Default value is+-- @SNAPSHOT_ONLY@.+--+-- -   @SNAPSHOT_ONLY@ - moves cold snapshots to the capacity pool storage+--     tier.+--+-- -   @AUTO@ - moves cold user data and snapshots to the capacity pool+--     storage tier based on your access patterns.+--+-- -   @ALL@ - moves all user data blocks in both the active file system+--     and Snapshot copies to the storage pool tier.+--+-- -   @NONE@ - keeps a volume\'s data in the primary storage tier,+--     preventing it from being moved to the capacity pool tier.+tieringPolicy_name :: Lens.Lens' TieringPolicy (Prelude.Maybe TieringPolicyName)+tieringPolicy_name = Lens.lens (\TieringPolicy' {name} -> name) (\s@TieringPolicy' {} a -> s {name = a} :: TieringPolicy)++instance Data.FromJSON TieringPolicy where+  parseJSON =+    Data.withObject+      "TieringPolicy"+      ( \x ->+          TieringPolicy'+            Prelude.<$> (x Data..:? "CoolingPeriod")+            Prelude.<*> (x Data..:? "Name")+      )++instance Prelude.Hashable TieringPolicy where+  hashWithSalt _salt TieringPolicy' {..} =+    _salt+      `Prelude.hashWithSalt` coolingPeriod+      `Prelude.hashWithSalt` name++instance Prelude.NFData TieringPolicy where+  rnf TieringPolicy' {..} =+    Prelude.rnf coolingPeriod+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON TieringPolicy where+  toJSON TieringPolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CoolingPeriod" Data..=) Prelude.<$> coolingPeriod,+            ("Name" Data..=) Prelude.<$> name+          ]+      )
+ gen/Amazonka/FSx/Types/TieringPolicyName.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.TieringPolicyName+-- 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.TieringPolicyName+  ( TieringPolicyName+      ( ..,+        TieringPolicyName_ALL,+        TieringPolicyName_AUTO,+        TieringPolicyName_NONE,+        TieringPolicyName_SNAPSHOT_ONLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TieringPolicyName = TieringPolicyName'+  { fromTieringPolicyName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern TieringPolicyName_ALL :: TieringPolicyName+pattern TieringPolicyName_ALL = TieringPolicyName' "ALL"++pattern TieringPolicyName_AUTO :: TieringPolicyName+pattern TieringPolicyName_AUTO = TieringPolicyName' "AUTO"++pattern TieringPolicyName_NONE :: TieringPolicyName+pattern TieringPolicyName_NONE = TieringPolicyName' "NONE"++pattern TieringPolicyName_SNAPSHOT_ONLY :: TieringPolicyName+pattern TieringPolicyName_SNAPSHOT_ONLY = TieringPolicyName' "SNAPSHOT_ONLY"++{-# COMPLETE+  TieringPolicyName_ALL,+  TieringPolicyName_AUTO,+  TieringPolicyName_NONE,+  TieringPolicyName_SNAPSHOT_ONLY,+  TieringPolicyName'+  #-}
+ gen/Amazonka/FSx/Types/UpdateFileCacheLustreConfiguration.hs view
@@ -0,0 +1,83 @@+{-# 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.UpdateFileCacheLustreConfiguration+-- 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.UpdateFileCacheLustreConfiguration 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++-- | The configuration update for an Amazon File Cache resource.+--+-- /See:/ 'newUpdateFileCacheLustreConfiguration' smart constructor.+data UpdateFileCacheLustreConfiguration = UpdateFileCacheLustreConfiguration'+  { weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileCacheLustreConfiguration' 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:+--+-- 'weeklyMaintenanceStartTime', 'updateFileCacheLustreConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+newUpdateFileCacheLustreConfiguration ::+  UpdateFileCacheLustreConfiguration+newUpdateFileCacheLustreConfiguration =+  UpdateFileCacheLustreConfiguration'+    { weeklyMaintenanceStartTime =+        Prelude.Nothing+    }++-- | Undocumented member.+updateFileCacheLustreConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' UpdateFileCacheLustreConfiguration (Prelude.Maybe Prelude.Text)+updateFileCacheLustreConfiguration_weeklyMaintenanceStartTime = Lens.lens (\UpdateFileCacheLustreConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@UpdateFileCacheLustreConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: UpdateFileCacheLustreConfiguration)++instance+  Prelude.Hashable+    UpdateFileCacheLustreConfiguration+  where+  hashWithSalt+    _salt+    UpdateFileCacheLustreConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance+  Prelude.NFData+    UpdateFileCacheLustreConfiguration+  where+  rnf UpdateFileCacheLustreConfiguration' {..} =+    Prelude.rnf weeklyMaintenanceStartTime++instance+  Data.ToJSON+    UpdateFileCacheLustreConfiguration+  where+  toJSON UpdateFileCacheLustreConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime+          ]+      )
+ gen/Amazonka/FSx/Types/UpdateFileSystemLustreConfiguration.hs view
@@ -0,0 +1,304 @@+{-# 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+          ]+      )
+ gen/Amazonka/FSx/Types/UpdateFileSystemOntapConfiguration.hs view
@@ -0,0 +1,213 @@+{-# 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.UpdateFileSystemOntapConfiguration+-- 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.UpdateFileSystemOntapConfiguration 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.DiskIopsConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration updates for an Amazon FSx for NetApp ONTAP file+-- system.+--+-- /See:/ 'newUpdateFileSystemOntapConfiguration' smart constructor.+data UpdateFileSystemOntapConfiguration = UpdateFileSystemOntapConfiguration'+  { -- | (Multi-AZ only) A list of IDs of new virtual private cloud (VPC) route+    -- tables to associate (add) with your Amazon FSx for NetApp ONTAP file+    -- system.+    addRouteTableIds :: Prelude.Maybe [Prelude.Text],+    automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | The SSD IOPS (input\/output operations per second) configuration for an+    -- Amazon FSx for NetApp ONTAP file system. The default is 3 IOPS per GB of+    -- storage capacity, but you can provision additional IOPS per GB of+    -- storage. The configuration consists of an IOPS mode (@AUTOMATIC@ or+    -- @USER_PROVISIONED@), and in the case of @USER_PROVISIONED@ IOPS, the+    -- total number of SSD IOPS provisioned.+    diskIopsConfiguration :: Prelude.Maybe DiskIopsConfiguration,+    -- | The ONTAP administrative password for the @fsxadmin@ user.+    fsxAdminPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | (Multi-AZ only) A list of IDs of existing virtual private cloud (VPC)+    -- route tables to disassociate (remove) from your Amazon FSx for NetApp+    -- ONTAP file system. You can use the API operation to retrieve the list of+    -- VPC route table IDs for a file system.+    removeRouteTableIds :: Prelude.Maybe [Prelude.Text],+    -- | Specifies the throughput of an FSx for NetApp ONTAP file system,+    -- measured in megabytes per second (MBps). Valid values are 128, 256, 512,+    -- 1024, 2048, and 4096 MBps.+    throughputCapacity :: Prelude.Maybe Prelude.Natural,+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileSystemOntapConfiguration' 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:+--+-- 'addRouteTableIds', 'updateFileSystemOntapConfiguration_addRouteTableIds' - (Multi-AZ only) A list of IDs of new virtual private cloud (VPC) route+-- tables to associate (add) with your Amazon FSx for NetApp ONTAP file+-- system.+--+-- 'automaticBackupRetentionDays', 'updateFileSystemOntapConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'dailyAutomaticBackupStartTime', 'updateFileSystemOntapConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'diskIopsConfiguration', 'updateFileSystemOntapConfiguration_diskIopsConfiguration' - The SSD IOPS (input\/output operations per second) configuration for an+-- Amazon FSx for NetApp ONTAP file system. The default is 3 IOPS per GB of+-- storage capacity, but you can provision additional IOPS per GB of+-- storage. The configuration consists of an IOPS mode (@AUTOMATIC@ or+-- @USER_PROVISIONED@), and in the case of @USER_PROVISIONED@ IOPS, the+-- total number of SSD IOPS provisioned.+--+-- 'fsxAdminPassword', 'updateFileSystemOntapConfiguration_fsxAdminPassword' - The ONTAP administrative password for the @fsxadmin@ user.+--+-- 'removeRouteTableIds', 'updateFileSystemOntapConfiguration_removeRouteTableIds' - (Multi-AZ only) A list of IDs of existing virtual private cloud (VPC)+-- route tables to disassociate (remove) from your Amazon FSx for NetApp+-- ONTAP file system. You can use the API operation to retrieve the list of+-- VPC route table IDs for a file system.+--+-- 'throughputCapacity', 'updateFileSystemOntapConfiguration_throughputCapacity' - Specifies the throughput of an FSx for NetApp ONTAP file system,+-- measured in megabytes per second (MBps). Valid values are 128, 256, 512,+-- 1024, 2048, and 4096 MBps.+--+-- 'weeklyMaintenanceStartTime', 'updateFileSystemOntapConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+newUpdateFileSystemOntapConfiguration ::+  UpdateFileSystemOntapConfiguration+newUpdateFileSystemOntapConfiguration =+  UpdateFileSystemOntapConfiguration'+    { addRouteTableIds =+        Prelude.Nothing,+      automaticBackupRetentionDays =+        Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      diskIopsConfiguration = Prelude.Nothing,+      fsxAdminPassword = Prelude.Nothing,+      removeRouteTableIds = Prelude.Nothing,+      throughputCapacity = Prelude.Nothing,+      weeklyMaintenanceStartTime =+        Prelude.Nothing+    }++-- | (Multi-AZ only) A list of IDs of new virtual private cloud (VPC) route+-- tables to associate (add) with your Amazon FSx for NetApp ONTAP file+-- system.+updateFileSystemOntapConfiguration_addRouteTableIds :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe [Prelude.Text])+updateFileSystemOntapConfiguration_addRouteTableIds = Lens.lens (\UpdateFileSystemOntapConfiguration' {addRouteTableIds} -> addRouteTableIds) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {addRouteTableIds = a} :: UpdateFileSystemOntapConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+updateFileSystemOntapConfiguration_automaticBackupRetentionDays :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Natural)+updateFileSystemOntapConfiguration_automaticBackupRetentionDays = Lens.lens (\UpdateFileSystemOntapConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: UpdateFileSystemOntapConfiguration)++-- | Undocumented member.+updateFileSystemOntapConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+updateFileSystemOntapConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\UpdateFileSystemOntapConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: UpdateFileSystemOntapConfiguration)++-- | The SSD IOPS (input\/output operations per second) configuration for an+-- Amazon FSx for NetApp ONTAP file system. The default is 3 IOPS per GB of+-- storage capacity, but you can provision additional IOPS per GB of+-- storage. The configuration consists of an IOPS mode (@AUTOMATIC@ or+-- @USER_PROVISIONED@), and in the case of @USER_PROVISIONED@ IOPS, the+-- total number of SSD IOPS provisioned.+updateFileSystemOntapConfiguration_diskIopsConfiguration :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe DiskIopsConfiguration)+updateFileSystemOntapConfiguration_diskIopsConfiguration = Lens.lens (\UpdateFileSystemOntapConfiguration' {diskIopsConfiguration} -> diskIopsConfiguration) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {diskIopsConfiguration = a} :: UpdateFileSystemOntapConfiguration)++-- | The ONTAP administrative password for the @fsxadmin@ user.+updateFileSystemOntapConfiguration_fsxAdminPassword :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+updateFileSystemOntapConfiguration_fsxAdminPassword = Lens.lens (\UpdateFileSystemOntapConfiguration' {fsxAdminPassword} -> fsxAdminPassword) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {fsxAdminPassword = a} :: UpdateFileSystemOntapConfiguration) Prelude.. Lens.mapping Data._Sensitive++-- | (Multi-AZ only) A list of IDs of existing virtual private cloud (VPC)+-- route tables to disassociate (remove) from your Amazon FSx for NetApp+-- ONTAP file system. You can use the API operation to retrieve the list of+-- VPC route table IDs for a file system.+updateFileSystemOntapConfiguration_removeRouteTableIds :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe [Prelude.Text])+updateFileSystemOntapConfiguration_removeRouteTableIds = Lens.lens (\UpdateFileSystemOntapConfiguration' {removeRouteTableIds} -> removeRouteTableIds) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {removeRouteTableIds = a} :: UpdateFileSystemOntapConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the throughput of an FSx for NetApp ONTAP file system,+-- measured in megabytes per second (MBps). Valid values are 128, 256, 512,+-- 1024, 2048, and 4096 MBps.+updateFileSystemOntapConfiguration_throughputCapacity :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Natural)+updateFileSystemOntapConfiguration_throughputCapacity = Lens.lens (\UpdateFileSystemOntapConfiguration' {throughputCapacity} -> throughputCapacity) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {throughputCapacity = a} :: UpdateFileSystemOntapConfiguration)++-- | Undocumented member.+updateFileSystemOntapConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' UpdateFileSystemOntapConfiguration (Prelude.Maybe Prelude.Text)+updateFileSystemOntapConfiguration_weeklyMaintenanceStartTime = Lens.lens (\UpdateFileSystemOntapConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@UpdateFileSystemOntapConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: UpdateFileSystemOntapConfiguration)++instance+  Prelude.Hashable+    UpdateFileSystemOntapConfiguration+  where+  hashWithSalt+    _salt+    UpdateFileSystemOntapConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` addRouteTableIds+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` diskIopsConfiguration+        `Prelude.hashWithSalt` fsxAdminPassword+        `Prelude.hashWithSalt` removeRouteTableIds+        `Prelude.hashWithSalt` throughputCapacity+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance+  Prelude.NFData+    UpdateFileSystemOntapConfiguration+  where+  rnf UpdateFileSystemOntapConfiguration' {..} =+    Prelude.rnf addRouteTableIds+      `Prelude.seq` Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf diskIopsConfiguration+      `Prelude.seq` Prelude.rnf fsxAdminPassword+      `Prelude.seq` Prelude.rnf removeRouteTableIds+      `Prelude.seq` Prelude.rnf throughputCapacity+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime++instance+  Data.ToJSON+    UpdateFileSystemOntapConfiguration+  where+  toJSON UpdateFileSystemOntapConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AddRouteTableIds" Data..=)+              Prelude.<$> addRouteTableIds,+            ("AutomaticBackupRetentionDays" Data..=)+              Prelude.<$> automaticBackupRetentionDays,+            ("DailyAutomaticBackupStartTime" Data..=)+              Prelude.<$> dailyAutomaticBackupStartTime,+            ("DiskIopsConfiguration" Data..=)+              Prelude.<$> diskIopsConfiguration,+            ("FsxAdminPassword" Data..=)+              Prelude.<$> fsxAdminPassword,+            ("RemoveRouteTableIds" Data..=)+              Prelude.<$> removeRouteTableIds,+            ("ThroughputCapacity" Data..=)+              Prelude.<$> throughputCapacity,+            ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime+          ]+      )
+ gen/Amazonka/FSx/Types/UpdateFileSystemOpenZFSConfiguration.hs view
@@ -0,0 +1,225 @@+{-# 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.UpdateFileSystemOpenZFSConfiguration+-- 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.UpdateFileSystemOpenZFSConfiguration 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.DiskIopsConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration updates for an Amazon FSx for OpenZFS file system.+--+-- /See:/ 'newUpdateFileSystemOpenZFSConfiguration' smart constructor.+data UpdateFileSystemOpenZFSConfiguration = UpdateFileSystemOpenZFSConfiguration'+  { automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | A Boolean value indicating whether tags for the file system should be+    -- copied to backups. This value defaults to @false@. If it\'s set to+    -- @true@, all tags for the file system are copied to all automatic and+    -- user-initiated backups where the user doesn\'t specify tags. If this+    -- value is @true@ and you specify one or more tags, only the specified+    -- tags are copied to backups. If you specify one or more tags when+    -- creating a user-initiated backup, no tags are copied from the file+    -- system, regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value indicating whether tags for the volume should be copied+    -- to snapshots. This value defaults to @false@. If it\'s set to @true@,+    -- all tags for the volume are copied to snapshots where the user doesn\'t+    -- specify tags. If this value is @true@ and you specify one or more tags,+    -- only the specified tags are copied to snapshots. If you specify one or+    -- more tags when creating the snapshot, no tags are copied from the+    -- volume, regardless of this value.+    copyTagsToVolumes :: Prelude.Maybe Prelude.Bool,+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    diskIopsConfiguration :: Prelude.Maybe DiskIopsConfiguration,+    -- | The throughput of an Amazon FSx for OpenZFS file system, measured in+    -- megabytes per second
 (MB\/s). Valid values depend on the DeploymentType+    -- you choose, as follows:+    --+    -- -   For @SINGLE_AZ_1@, valid values are 64, 128, 256, 512, 1024, 2048,+    --     3072, or 4096 MB\/s.+    --+    -- -   For @SINGLE_AZ_2@, valid values are 160, 320, 640, 1280, 2560, 3840,+    --     5120, 7680, or 10240 MB\/s.+    throughputCapacity :: Prelude.Maybe Prelude.Natural,+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileSystemOpenZFSConfiguration' 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:+--+-- 'automaticBackupRetentionDays', 'updateFileSystemOpenZFSConfiguration_automaticBackupRetentionDays' - Undocumented member.+--+-- 'copyTagsToBackups', 'updateFileSystemOpenZFSConfiguration_copyTagsToBackups' - A Boolean value indicating whether tags for the file system should be+-- copied to backups. This value defaults to @false@. If it\'s set to+-- @true@, all tags for the file system are copied to all automatic and+-- user-initiated backups where the user doesn\'t specify tags. If this+-- value is @true@ and you specify one or more tags, only the specified+-- tags are copied to backups. If you specify one or more tags when+-- creating a user-initiated backup, no tags are copied from the file+-- system, regardless of this value.+--+-- 'copyTagsToVolumes', 'updateFileSystemOpenZFSConfiguration_copyTagsToVolumes' - A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@ and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+--+-- 'dailyAutomaticBackupStartTime', 'updateFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime' - Undocumented member.+--+-- 'diskIopsConfiguration', 'updateFileSystemOpenZFSConfiguration_diskIopsConfiguration' - Undocumented member.+--+-- 'throughputCapacity', 'updateFileSystemOpenZFSConfiguration_throughputCapacity' - The throughput of an Amazon FSx for OpenZFS file system, measured in+-- megabytes per second
 (MB\/s). Valid values depend on the DeploymentType+-- you choose, as follows:+--+-- -   For @SINGLE_AZ_1@, valid values are 64, 128, 256, 512, 1024, 2048,+--     3072, or 4096 MB\/s.+--+-- -   For @SINGLE_AZ_2@, valid values are 160, 320, 640, 1280, 2560, 3840,+--     5120, 7680, or 10240 MB\/s.+--+-- 'weeklyMaintenanceStartTime', 'updateFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime' - Undocumented member.+newUpdateFileSystemOpenZFSConfiguration ::+  UpdateFileSystemOpenZFSConfiguration+newUpdateFileSystemOpenZFSConfiguration =+  UpdateFileSystemOpenZFSConfiguration'+    { automaticBackupRetentionDays =+        Prelude.Nothing,+      copyTagsToBackups = Prelude.Nothing,+      copyTagsToVolumes = Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      diskIopsConfiguration =+        Prelude.Nothing,+      throughputCapacity = Prelude.Nothing,+      weeklyMaintenanceStartTime =+        Prelude.Nothing+    }++-- | Undocumented member.+updateFileSystemOpenZFSConfiguration_automaticBackupRetentionDays :: Lens.Lens' UpdateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Natural)+updateFileSystemOpenZFSConfiguration_automaticBackupRetentionDays = Lens.lens (\UpdateFileSystemOpenZFSConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@UpdateFileSystemOpenZFSConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: UpdateFileSystemOpenZFSConfiguration)++-- | A Boolean value indicating whether tags for the file system should be+-- copied to backups. This value defaults to @false@. If it\'s set to+-- @true@, all tags for the file system are copied to all automatic and+-- user-initiated backups where the user doesn\'t specify tags. If this+-- value is @true@ and you specify one or more tags, only the specified+-- tags are copied to backups. If you specify one or more tags when+-- creating a user-initiated backup, no tags are copied from the file+-- system, regardless of this value.+updateFileSystemOpenZFSConfiguration_copyTagsToBackups :: Lens.Lens' UpdateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Bool)+updateFileSystemOpenZFSConfiguration_copyTagsToBackups = Lens.lens (\UpdateFileSystemOpenZFSConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@UpdateFileSystemOpenZFSConfiguration' {} a -> s {copyTagsToBackups = a} :: UpdateFileSystemOpenZFSConfiguration)++-- | A Boolean value indicating whether tags for the volume should be copied+-- to snapshots. This value defaults to @false@. If it\'s set to @true@,+-- all tags for the volume are copied to snapshots where the user doesn\'t+-- specify tags. If this value is @true@ and you specify one or more tags,+-- only the specified tags are copied to snapshots. If you specify one or+-- more tags when creating the snapshot, no tags are copied from the+-- volume, regardless of this value.+updateFileSystemOpenZFSConfiguration_copyTagsToVolumes :: Lens.Lens' UpdateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Bool)+updateFileSystemOpenZFSConfiguration_copyTagsToVolumes = Lens.lens (\UpdateFileSystemOpenZFSConfiguration' {copyTagsToVolumes} -> copyTagsToVolumes) (\s@UpdateFileSystemOpenZFSConfiguration' {} a -> s {copyTagsToVolumes = a} :: UpdateFileSystemOpenZFSConfiguration)++-- | Undocumented member.+updateFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' UpdateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Text)+updateFileSystemOpenZFSConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\UpdateFileSystemOpenZFSConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@UpdateFileSystemOpenZFSConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: UpdateFileSystemOpenZFSConfiguration)++-- | Undocumented member.+updateFileSystemOpenZFSConfiguration_diskIopsConfiguration :: Lens.Lens' UpdateFileSystemOpenZFSConfiguration (Prelude.Maybe DiskIopsConfiguration)+updateFileSystemOpenZFSConfiguration_diskIopsConfiguration = Lens.lens (\UpdateFileSystemOpenZFSConfiguration' {diskIopsConfiguration} -> diskIopsConfiguration) (\s@UpdateFileSystemOpenZFSConfiguration' {} a -> s {diskIopsConfiguration = a} :: UpdateFileSystemOpenZFSConfiguration)++-- | The throughput of an Amazon FSx for OpenZFS file system, measured in+-- megabytes per second
 (MB\/s). Valid values depend on the DeploymentType+-- you choose, as follows:+--+-- -   For @SINGLE_AZ_1@, valid values are 64, 128, 256, 512, 1024, 2048,+--     3072, or 4096 MB\/s.+--+-- -   For @SINGLE_AZ_2@, valid values are 160, 320, 640, 1280, 2560, 3840,+--     5120, 7680, or 10240 MB\/s.+updateFileSystemOpenZFSConfiguration_throughputCapacity :: Lens.Lens' UpdateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Natural)+updateFileSystemOpenZFSConfiguration_throughputCapacity = Lens.lens (\UpdateFileSystemOpenZFSConfiguration' {throughputCapacity} -> throughputCapacity) (\s@UpdateFileSystemOpenZFSConfiguration' {} a -> s {throughputCapacity = a} :: UpdateFileSystemOpenZFSConfiguration)++-- | Undocumented member.+updateFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' UpdateFileSystemOpenZFSConfiguration (Prelude.Maybe Prelude.Text)+updateFileSystemOpenZFSConfiguration_weeklyMaintenanceStartTime = Lens.lens (\UpdateFileSystemOpenZFSConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@UpdateFileSystemOpenZFSConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: UpdateFileSystemOpenZFSConfiguration)++instance+  Prelude.Hashable+    UpdateFileSystemOpenZFSConfiguration+  where+  hashWithSalt+    _salt+    UpdateFileSystemOpenZFSConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` copyTagsToVolumes+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` diskIopsConfiguration+        `Prelude.hashWithSalt` throughputCapacity+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance+  Prelude.NFData+    UpdateFileSystemOpenZFSConfiguration+  where+  rnf UpdateFileSystemOpenZFSConfiguration' {..} =+    Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf copyTagsToVolumes+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf diskIopsConfiguration+      `Prelude.seq` Prelude.rnf throughputCapacity+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime++instance+  Data.ToJSON+    UpdateFileSystemOpenZFSConfiguration+  where+  toJSON UpdateFileSystemOpenZFSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AutomaticBackupRetentionDays" Data..=)+              Prelude.<$> automaticBackupRetentionDays,+            ("CopyTagsToBackups" Data..=)+              Prelude.<$> copyTagsToBackups,+            ("CopyTagsToVolumes" Data..=)+              Prelude.<$> copyTagsToVolumes,+            ("DailyAutomaticBackupStartTime" Data..=)+              Prelude.<$> dailyAutomaticBackupStartTime,+            ("DiskIopsConfiguration" Data..=)+              Prelude.<$> diskIopsConfiguration,+            ("ThroughputCapacity" Data..=)+              Prelude.<$> throughputCapacity,+            ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime+          ]+      )
+ gen/Amazonka/FSx/Types/UpdateFileSystemWindowsConfiguration.hs view
@@ -0,0 +1,205 @@+{-# 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.UpdateFileSystemWindowsConfiguration+-- 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.UpdateFileSystemWindowsConfiguration 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.SelfManagedActiveDirectoryConfigurationUpdates+import Amazonka.FSx.Types.WindowsAuditLogCreateConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Updates the configuration for an existing Amazon FSx for Windows File+-- Server file system. Amazon FSx only overwrites existing properties with+-- non-null values provided in the request.+--+-- /See:/ 'newUpdateFileSystemWindowsConfiguration' smart constructor.+data UpdateFileSystemWindowsConfiguration = UpdateFileSystemWindowsConfiguration'+  { -- | The configuration that Amazon FSx for Windows File Server uses to audit+    -- and log user accesses of files, folders, and file shares on the Amazon+    -- FSx for Windows File Server file system..+    auditLogConfiguration :: Prelude.Maybe WindowsAuditLogCreateConfiguration,+    -- | The number of days to retain automatic daily backups. Setting this to+    -- zero (0) disables automatic daily backups. You can retain automatic+    -- daily backups for a maximum of 90 days. For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#automatic-backups Working with Automatic Daily Backups>.+    automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | The preferred time to start the daily automatic backup, in the UTC time+    -- zone, for example, @02:00@+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | The configuration Amazon FSx uses to join the Windows File Server+    -- instance to the self-managed Microsoft AD directory. You cannot make a+    -- self-managed Microsoft AD update request if there is an existing+    -- self-managed Microsoft AD update request in progress.+    selfManagedActiveDirectoryConfiguration :: Prelude.Maybe SelfManagedActiveDirectoryConfigurationUpdates,+    -- | Sets the target value for a file system\'s throughput capacity, in+    -- MB\/s, that you are updating the file system to. Valid values are 8, 16,+    -- 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity+    -- update request if there is an existing throughput capacity update+    -- request in progress. For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-throughput-capacity.html Managing Throughput Capacity>.+    throughputCapacity :: Prelude.Maybe Prelude.Natural,+    -- | The preferred start time to perform weekly maintenance, formatted+    -- d:HH:MM in the UTC time zone. Where d is the weekday number, from 1+    -- through 7, with 1 = Monday and 7 = Sunday.+    weeklyMaintenanceStartTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileSystemWindowsConfiguration' 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:+--+-- 'auditLogConfiguration', 'updateFileSystemWindowsConfiguration_auditLogConfiguration' - The configuration that Amazon FSx for Windows File Server uses to audit+-- and log user accesses of files, folders, and file shares on the Amazon+-- FSx for Windows File Server file system..+--+-- 'automaticBackupRetentionDays', 'updateFileSystemWindowsConfiguration_automaticBackupRetentionDays' - The number of days to retain automatic daily backups. Setting this to+-- zero (0) disables automatic daily backups. You can retain automatic+-- daily backups for a maximum of 90 days. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#automatic-backups Working with Automatic Daily Backups>.+--+-- 'dailyAutomaticBackupStartTime', 'updateFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime' - The preferred time to start the daily automatic backup, in the UTC time+-- zone, for example, @02:00@+--+-- 'selfManagedActiveDirectoryConfiguration', 'updateFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration' - The configuration Amazon FSx uses to join the Windows File Server+-- instance to the self-managed Microsoft AD directory. You cannot make a+-- self-managed Microsoft AD update request if there is an existing+-- self-managed Microsoft AD update request in progress.+--+-- 'throughputCapacity', 'updateFileSystemWindowsConfiguration_throughputCapacity' - Sets the target value for a file system\'s throughput capacity, in+-- MB\/s, that you are updating the file system to. Valid values are 8, 16,+-- 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity+-- update request if there is an existing throughput capacity update+-- request in progress. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-throughput-capacity.html Managing Throughput Capacity>.+--+-- 'weeklyMaintenanceStartTime', 'updateFileSystemWindowsConfiguration_weeklyMaintenanceStartTime' - The preferred start time to perform weekly maintenance, formatted+-- d:HH:MM in the UTC time zone. Where d is the weekday number, from 1+-- through 7, with 1 = Monday and 7 = Sunday.+newUpdateFileSystemWindowsConfiguration ::+  UpdateFileSystemWindowsConfiguration+newUpdateFileSystemWindowsConfiguration =+  UpdateFileSystemWindowsConfiguration'+    { auditLogConfiguration =+        Prelude.Nothing,+      automaticBackupRetentionDays =+        Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      selfManagedActiveDirectoryConfiguration =+        Prelude.Nothing,+      throughputCapacity = Prelude.Nothing,+      weeklyMaintenanceStartTime =+        Prelude.Nothing+    }++-- | The configuration that Amazon FSx for Windows File Server uses to audit+-- and log user accesses of files, folders, and file shares on the Amazon+-- FSx for Windows File Server file system..+updateFileSystemWindowsConfiguration_auditLogConfiguration :: Lens.Lens' UpdateFileSystemWindowsConfiguration (Prelude.Maybe WindowsAuditLogCreateConfiguration)+updateFileSystemWindowsConfiguration_auditLogConfiguration = Lens.lens (\UpdateFileSystemWindowsConfiguration' {auditLogConfiguration} -> auditLogConfiguration) (\s@UpdateFileSystemWindowsConfiguration' {} a -> s {auditLogConfiguration = a} :: UpdateFileSystemWindowsConfiguration)++-- | The number of days to retain automatic daily backups. Setting this to+-- zero (0) disables automatic daily backups. You can retain automatic+-- daily backups for a maximum of 90 days. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#automatic-backups Working with Automatic Daily Backups>.+updateFileSystemWindowsConfiguration_automaticBackupRetentionDays :: Lens.Lens' UpdateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Natural)+updateFileSystemWindowsConfiguration_automaticBackupRetentionDays = Lens.lens (\UpdateFileSystemWindowsConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@UpdateFileSystemWindowsConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: UpdateFileSystemWindowsConfiguration)++-- | The preferred time to start the daily automatic backup, in the UTC time+-- zone, for example, @02:00@+updateFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' UpdateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Text)+updateFileSystemWindowsConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\UpdateFileSystemWindowsConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@UpdateFileSystemWindowsConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: UpdateFileSystemWindowsConfiguration)++-- | The configuration Amazon FSx uses to join the Windows File Server+-- instance to the self-managed Microsoft AD directory. You cannot make a+-- self-managed Microsoft AD update request if there is an existing+-- self-managed Microsoft AD update request in progress.+updateFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration :: Lens.Lens' UpdateFileSystemWindowsConfiguration (Prelude.Maybe SelfManagedActiveDirectoryConfigurationUpdates)+updateFileSystemWindowsConfiguration_selfManagedActiveDirectoryConfiguration = Lens.lens (\UpdateFileSystemWindowsConfiguration' {selfManagedActiveDirectoryConfiguration} -> selfManagedActiveDirectoryConfiguration) (\s@UpdateFileSystemWindowsConfiguration' {} a -> s {selfManagedActiveDirectoryConfiguration = a} :: UpdateFileSystemWindowsConfiguration)++-- | Sets the target value for a file system\'s throughput capacity, in+-- MB\/s, that you are updating the file system to. Valid values are 8, 16,+-- 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity+-- update request if there is an existing throughput capacity update+-- request in progress. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-throughput-capacity.html Managing Throughput Capacity>.+updateFileSystemWindowsConfiguration_throughputCapacity :: Lens.Lens' UpdateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Natural)+updateFileSystemWindowsConfiguration_throughputCapacity = Lens.lens (\UpdateFileSystemWindowsConfiguration' {throughputCapacity} -> throughputCapacity) (\s@UpdateFileSystemWindowsConfiguration' {} a -> s {throughputCapacity = a} :: UpdateFileSystemWindowsConfiguration)++-- | The preferred start time to perform weekly maintenance, formatted+-- d:HH:MM in the UTC time zone. Where d is the weekday number, from 1+-- through 7, with 1 = Monday and 7 = Sunday.+updateFileSystemWindowsConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' UpdateFileSystemWindowsConfiguration (Prelude.Maybe Prelude.Text)+updateFileSystemWindowsConfiguration_weeklyMaintenanceStartTime = Lens.lens (\UpdateFileSystemWindowsConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@UpdateFileSystemWindowsConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: UpdateFileSystemWindowsConfiguration)++instance+  Prelude.Hashable+    UpdateFileSystemWindowsConfiguration+  where+  hashWithSalt+    _salt+    UpdateFileSystemWindowsConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` auditLogConfiguration+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` selfManagedActiveDirectoryConfiguration+        `Prelude.hashWithSalt` throughputCapacity+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance+  Prelude.NFData+    UpdateFileSystemWindowsConfiguration+  where+  rnf UpdateFileSystemWindowsConfiguration' {..} =+    Prelude.rnf auditLogConfiguration+      `Prelude.seq` Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf selfManagedActiveDirectoryConfiguration+      `Prelude.seq` Prelude.rnf throughputCapacity+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime++instance+  Data.ToJSON+    UpdateFileSystemWindowsConfiguration+  where+  toJSON UpdateFileSystemWindowsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AuditLogConfiguration" Data..=)+              Prelude.<$> auditLogConfiguration,+            ("AutomaticBackupRetentionDays" Data..=)+              Prelude.<$> automaticBackupRetentionDays,+            ("DailyAutomaticBackupStartTime" Data..=)+              Prelude.<$> dailyAutomaticBackupStartTime,+            ("SelfManagedActiveDirectoryConfiguration" Data..=)+              Prelude.<$> selfManagedActiveDirectoryConfiguration,+            ("ThroughputCapacity" Data..=)+              Prelude.<$> throughputCapacity,+            ("WeeklyMaintenanceStartTime" Data..=)+              Prelude.<$> weeklyMaintenanceStartTime+          ]+      )
+ gen/Amazonka/FSx/Types/UpdateOntapVolumeConfiguration.hs view
@@ -0,0 +1,249 @@+{-# 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.UpdateOntapVolumeConfiguration+-- 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.UpdateOntapVolumeConfiguration 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.SecurityStyle+import Amazonka.FSx.Types.TieringPolicy+import qualified Amazonka.Prelude as Prelude++-- | Used to specify changes to the ONTAP configuration for the volume you+-- are updating.+--+-- /See:/ 'newUpdateOntapVolumeConfiguration' smart constructor.+data UpdateOntapVolumeConfiguration = UpdateOntapVolumeConfiguration'+  { -- | A boolean flag indicating whether tags for the volume should be copied+    -- to backups. This value defaults to false. If it\'s set to true, all tags+    -- for the volume are copied to all automatic and user-initiated backups+    -- where the user doesn\'t specify tags. If this value is true, and you+    -- specify one or more tags, only the specified tags are copied to backups.+    -- If you specify one or more tags when creating a user-initiated backup,+    -- no tags are copied from the volume, regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the location in the SVM\'s namespace where the volume is+    -- mounted. The @JunctionPath@ must have a leading forward slash, such as+    -- @\/vol3@.+    junctionPath :: Prelude.Maybe Prelude.Text,+    -- | The security style for the volume, which can be @UNIX@. @NTFS@, or+    -- @MIXED@.+    securityStyle :: Prelude.Maybe SecurityStyle,+    -- | Specifies the size of the volume in megabytes.+    sizeInMegabytes :: Prelude.Maybe Prelude.Natural,+    -- | Specifies the snapshot policy for the volume. There are three built-in+    -- snapshot policies:+    --+    -- -   @default@: This is the default policy. A maximum of six hourly+    --     snapshots taken five minutes past the hour. A maximum of two daily+    --     snapshots taken Monday through Saturday at 10 minutes after+    --     midnight. A maximum of two weekly snapshots taken every Sunday at 15+    --     minutes after midnight.+    --+    -- -   @default-1weekly@: This policy is the same as the @default@ policy+    --     except that it only retains one snapshot from the weekly schedule.+    --+    -- -   @none@: This policy does not take any snapshots. This policy can be+    --     assigned to volumes to prevent automatic snapshots from being taken.+    --+    -- You can also provide the name of a custom policy that you created with+    -- the ONTAP CLI or REST API.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+    -- in the /Amazon FSx for NetApp ONTAP User Guide/.+    snapshotPolicy :: Prelude.Maybe Prelude.Text,+    -- | Default is @false@. Set to true to enable the deduplication,+    -- compression, and compaction storage efficiency features on the volume.+    storageEfficiencyEnabled :: Prelude.Maybe Prelude.Bool,+    -- | Update the volume\'s data tiering policy.+    tieringPolicy :: Prelude.Maybe TieringPolicy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateOntapVolumeConfiguration' 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:+--+-- 'copyTagsToBackups', 'updateOntapVolumeConfiguration_copyTagsToBackups' - A boolean flag indicating whether tags for the volume should be copied+-- to backups. This value defaults to false. If it\'s set to true, all tags+-- for the volume are copied to all automatic and user-initiated backups+-- where the user doesn\'t specify tags. If this value is true, and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the volume, regardless of this value.+--+-- 'junctionPath', 'updateOntapVolumeConfiguration_junctionPath' - Specifies the location in the SVM\'s namespace where the volume is+-- mounted. The @JunctionPath@ must have a leading forward slash, such as+-- @\/vol3@.+--+-- 'securityStyle', 'updateOntapVolumeConfiguration_securityStyle' - The security style for the volume, which can be @UNIX@. @NTFS@, or+-- @MIXED@.+--+-- 'sizeInMegabytes', 'updateOntapVolumeConfiguration_sizeInMegabytes' - Specifies the size of the volume in megabytes.+--+-- 'snapshotPolicy', 'updateOntapVolumeConfiguration_snapshotPolicy' - Specifies the snapshot policy for the volume. There are three built-in+-- snapshot policies:+--+-- -   @default@: This is the default policy. A maximum of six hourly+--     snapshots taken five minutes past the hour. A maximum of two daily+--     snapshots taken Monday through Saturday at 10 minutes after+--     midnight. A maximum of two weekly snapshots taken every Sunday at 15+--     minutes after midnight.+--+-- -   @default-1weekly@: This policy is the same as the @default@ policy+--     except that it only retains one snapshot from the weekly schedule.+--+-- -   @none@: This policy does not take any snapshots. This policy can be+--     assigned to volumes to prevent automatic snapshots from being taken.+--+-- You can also provide the name of a custom policy that you created with+-- the ONTAP CLI or REST API.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+--+-- 'storageEfficiencyEnabled', 'updateOntapVolumeConfiguration_storageEfficiencyEnabled' - Default is @false@. Set to true to enable the deduplication,+-- compression, and compaction storage efficiency features on the volume.+--+-- 'tieringPolicy', 'updateOntapVolumeConfiguration_tieringPolicy' - Update the volume\'s data tiering policy.+newUpdateOntapVolumeConfiguration ::+  UpdateOntapVolumeConfiguration+newUpdateOntapVolumeConfiguration =+  UpdateOntapVolumeConfiguration'+    { copyTagsToBackups =+        Prelude.Nothing,+      junctionPath = Prelude.Nothing,+      securityStyle = Prelude.Nothing,+      sizeInMegabytes = Prelude.Nothing,+      snapshotPolicy = Prelude.Nothing,+      storageEfficiencyEnabled = Prelude.Nothing,+      tieringPolicy = Prelude.Nothing+    }++-- | A boolean flag indicating whether tags for the volume should be copied+-- to backups. This value defaults to false. If it\'s set to true, all tags+-- for the volume are copied to all automatic and user-initiated backups+-- where the user doesn\'t specify tags. If this value is true, and you+-- specify one or more tags, only the specified tags are copied to backups.+-- If you specify one or more tags when creating a user-initiated backup,+-- no tags are copied from the volume, regardless of this value.+updateOntapVolumeConfiguration_copyTagsToBackups :: Lens.Lens' UpdateOntapVolumeConfiguration (Prelude.Maybe Prelude.Bool)+updateOntapVolumeConfiguration_copyTagsToBackups = Lens.lens (\UpdateOntapVolumeConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@UpdateOntapVolumeConfiguration' {} a -> s {copyTagsToBackups = a} :: UpdateOntapVolumeConfiguration)++-- | Specifies the location in the SVM\'s namespace where the volume is+-- mounted. The @JunctionPath@ must have a leading forward slash, such as+-- @\/vol3@.+updateOntapVolumeConfiguration_junctionPath :: Lens.Lens' UpdateOntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+updateOntapVolumeConfiguration_junctionPath = Lens.lens (\UpdateOntapVolumeConfiguration' {junctionPath} -> junctionPath) (\s@UpdateOntapVolumeConfiguration' {} a -> s {junctionPath = a} :: UpdateOntapVolumeConfiguration)++-- | The security style for the volume, which can be @UNIX@. @NTFS@, or+-- @MIXED@.+updateOntapVolumeConfiguration_securityStyle :: Lens.Lens' UpdateOntapVolumeConfiguration (Prelude.Maybe SecurityStyle)+updateOntapVolumeConfiguration_securityStyle = Lens.lens (\UpdateOntapVolumeConfiguration' {securityStyle} -> securityStyle) (\s@UpdateOntapVolumeConfiguration' {} a -> s {securityStyle = a} :: UpdateOntapVolumeConfiguration)++-- | Specifies the size of the volume in megabytes.+updateOntapVolumeConfiguration_sizeInMegabytes :: Lens.Lens' UpdateOntapVolumeConfiguration (Prelude.Maybe Prelude.Natural)+updateOntapVolumeConfiguration_sizeInMegabytes = Lens.lens (\UpdateOntapVolumeConfiguration' {sizeInMegabytes} -> sizeInMegabytes) (\s@UpdateOntapVolumeConfiguration' {} a -> s {sizeInMegabytes = a} :: UpdateOntapVolumeConfiguration)++-- | Specifies the snapshot policy for the volume. There are three built-in+-- snapshot policies:+--+-- -   @default@: This is the default policy. A maximum of six hourly+--     snapshots taken five minutes past the hour. A maximum of two daily+--     snapshots taken Monday through Saturday at 10 minutes after+--     midnight. A maximum of two weekly snapshots taken every Sunday at 15+--     minutes after midnight.+--+-- -   @default-1weekly@: This policy is the same as the @default@ policy+--     except that it only retains one snapshot from the weekly schedule.+--+-- -   @none@: This policy does not take any snapshots. This policy can be+--     assigned to volumes to prevent automatic snapshots from being taken.+--+-- You can also provide the name of a custom policy that you created with+-- the ONTAP CLI or REST API.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/snapshots-ontap.html#snapshot-policies Snapshot policies>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+updateOntapVolumeConfiguration_snapshotPolicy :: Lens.Lens' UpdateOntapVolumeConfiguration (Prelude.Maybe Prelude.Text)+updateOntapVolumeConfiguration_snapshotPolicy = Lens.lens (\UpdateOntapVolumeConfiguration' {snapshotPolicy} -> snapshotPolicy) (\s@UpdateOntapVolumeConfiguration' {} a -> s {snapshotPolicy = a} :: UpdateOntapVolumeConfiguration)++-- | Default is @false@. Set to true to enable the deduplication,+-- compression, and compaction storage efficiency features on the volume.+updateOntapVolumeConfiguration_storageEfficiencyEnabled :: Lens.Lens' UpdateOntapVolumeConfiguration (Prelude.Maybe Prelude.Bool)+updateOntapVolumeConfiguration_storageEfficiencyEnabled = Lens.lens (\UpdateOntapVolumeConfiguration' {storageEfficiencyEnabled} -> storageEfficiencyEnabled) (\s@UpdateOntapVolumeConfiguration' {} a -> s {storageEfficiencyEnabled = a} :: UpdateOntapVolumeConfiguration)++-- | Update the volume\'s data tiering policy.+updateOntapVolumeConfiguration_tieringPolicy :: Lens.Lens' UpdateOntapVolumeConfiguration (Prelude.Maybe TieringPolicy)+updateOntapVolumeConfiguration_tieringPolicy = Lens.lens (\UpdateOntapVolumeConfiguration' {tieringPolicy} -> tieringPolicy) (\s@UpdateOntapVolumeConfiguration' {} a -> s {tieringPolicy = a} :: UpdateOntapVolumeConfiguration)++instance+  Prelude.Hashable+    UpdateOntapVolumeConfiguration+  where+  hashWithSalt+    _salt+    UpdateOntapVolumeConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` junctionPath+        `Prelude.hashWithSalt` securityStyle+        `Prelude.hashWithSalt` sizeInMegabytes+        `Prelude.hashWithSalt` snapshotPolicy+        `Prelude.hashWithSalt` storageEfficiencyEnabled+        `Prelude.hashWithSalt` tieringPolicy++instance+  Prelude.NFData+    UpdateOntapVolumeConfiguration+  where+  rnf UpdateOntapVolumeConfiguration' {..} =+    Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf junctionPath+      `Prelude.seq` Prelude.rnf securityStyle+      `Prelude.seq` Prelude.rnf sizeInMegabytes+      `Prelude.seq` Prelude.rnf snapshotPolicy+      `Prelude.seq` Prelude.rnf storageEfficiencyEnabled+      `Prelude.seq` Prelude.rnf tieringPolicy++instance Data.ToJSON UpdateOntapVolumeConfiguration where+  toJSON UpdateOntapVolumeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CopyTagsToBackups" Data..=)+              Prelude.<$> copyTagsToBackups,+            ("JunctionPath" Data..=) Prelude.<$> junctionPath,+            ("SecurityStyle" Data..=) Prelude.<$> securityStyle,+            ("SizeInMegabytes" Data..=)+              Prelude.<$> sizeInMegabytes,+            ("SnapshotPolicy" Data..=)+              Prelude.<$> snapshotPolicy,+            ("StorageEfficiencyEnabled" Data..=)+              Prelude.<$> storageEfficiencyEnabled,+            ("TieringPolicy" Data..=) Prelude.<$> tieringPolicy+          ]+      )
+ gen/Amazonka/FSx/Types/UpdateOpenZFSVolumeConfiguration.hs view
@@ -0,0 +1,242 @@+{-# 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.UpdateOpenZFSVolumeConfiguration+-- 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.UpdateOpenZFSVolumeConfiguration 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.OpenZFSDataCompressionType+import Amazonka.FSx.Types.OpenZFSNfsExport+import Amazonka.FSx.Types.OpenZFSUserOrGroupQuota+import qualified Amazonka.Prelude as Prelude++-- | Used to specify changes to the OpenZFS configuration for the volume that+-- you are updating.+--+-- /See:/ 'newUpdateOpenZFSVolumeConfiguration' smart constructor.+data UpdateOpenZFSVolumeConfiguration = UpdateOpenZFSVolumeConfiguration'+  { -- | Specifies the method used to compress the data on the volume. The+    -- compression type is @NONE@ by default.+    --+    -- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+    --     default.+    --+    -- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+    --     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+    --     better compression ratio to minimize on-disk storage utilization.+    --+    -- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+    --     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+    --     delivers higher write throughput speeds.+    dataCompressionType :: Prelude.Maybe OpenZFSDataCompressionType,+    -- | The configuration object for mounting a Network File System (NFS) file+    -- system.+    nfsExports :: Prelude.Maybe [OpenZFSNfsExport],+    -- | A Boolean value indicating whether the volume is read-only.+    readOnly :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the record size of an OpenZFS volume, in kibibytes (KiB).+    -- Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The+    -- default is 128 KiB. Most workloads should use the default record size.+    -- Database workflows can benefit from a smaller record size, while+    -- streaming workflows can benefit from a larger record size. For+    -- additional guidance on when to set a custom record size, see+    -- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+    -- in the /Amazon FSx for OpenZFS User Guide/.+    recordSizeKiB :: Prelude.Maybe Prelude.Natural,+    -- | The maximum amount of storage in gibibytes (GiB) that the volume can use+    -- from its parent. You can specify a quota larger than the storage on the+    -- parent volume. You can specify a value of @-1@ to unset a volume\'s+    -- storage capacity quota.+    storageCapacityQuotaGiB :: Prelude.Maybe Prelude.Int,+    -- | The amount of storage in gibibytes (GiB) to reserve from the parent+    -- volume. You can\'t reserve more storage than the parent volume has+    -- reserved. You can specify a value of @-1@ to unset a volume\'s storage+    -- capacity reservation.+    storageCapacityReservationGiB :: Prelude.Maybe Prelude.Int,+    -- | An object specifying how much storage users or groups can use on the+    -- volume.+    userAndGroupQuotas :: Prelude.Maybe [OpenZFSUserOrGroupQuota]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateOpenZFSVolumeConfiguration' 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:+--+-- 'dataCompressionType', 'updateOpenZFSVolumeConfiguration_dataCompressionType' - Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+--     better compression ratio to minimize on-disk storage utilization.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+--     delivers higher write throughput speeds.+--+-- 'nfsExports', 'updateOpenZFSVolumeConfiguration_nfsExports' - The configuration object for mounting a Network File System (NFS) file+-- system.+--+-- 'readOnly', 'updateOpenZFSVolumeConfiguration_readOnly' - A Boolean value indicating whether the volume is read-only.+--+-- 'recordSizeKiB', 'updateOpenZFSVolumeConfiguration_recordSizeKiB' - Specifies the record size of an OpenZFS volume, in kibibytes (KiB).+-- Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The+-- default is 128 KiB. Most workloads should use the default record size.+-- Database workflows can benefit from a smaller record size, while+-- streaming workflows can benefit from a larger record size. For+-- additional guidance on when to set a custom record size, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+-- in the /Amazon FSx for OpenZFS User Guide/.+--+-- 'storageCapacityQuotaGiB', 'updateOpenZFSVolumeConfiguration_storageCapacityQuotaGiB' - The maximum amount of storage in gibibytes (GiB) that the volume can use+-- from its parent. You can specify a quota larger than the storage on the+-- parent volume. You can specify a value of @-1@ to unset a volume\'s+-- storage capacity quota.+--+-- 'storageCapacityReservationGiB', 'updateOpenZFSVolumeConfiguration_storageCapacityReservationGiB' - The amount of storage in gibibytes (GiB) to reserve from the parent+-- volume. You can\'t reserve more storage than the parent volume has+-- reserved. You can specify a value of @-1@ to unset a volume\'s storage+-- capacity reservation.+--+-- 'userAndGroupQuotas', 'updateOpenZFSVolumeConfiguration_userAndGroupQuotas' - An object specifying how much storage users or groups can use on the+-- volume.+newUpdateOpenZFSVolumeConfiguration ::+  UpdateOpenZFSVolumeConfiguration+newUpdateOpenZFSVolumeConfiguration =+  UpdateOpenZFSVolumeConfiguration'+    { dataCompressionType =+        Prelude.Nothing,+      nfsExports = Prelude.Nothing,+      readOnly = Prelude.Nothing,+      recordSizeKiB = Prelude.Nothing,+      storageCapacityQuotaGiB = Prelude.Nothing,+      storageCapacityReservationGiB =+        Prelude.Nothing,+      userAndGroupQuotas = Prelude.Nothing+    }++-- | Specifies the method used to compress the data on the volume. The+-- compression type is @NONE@ by default.+--+-- -   @NONE@ - Doesn\'t compress the data on the volume. @NONE@ is the+--     default.+--+-- -   @ZSTD@ - Compresses the data in the volume using the Zstandard+--     (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a+--     better compression ratio to minimize on-disk storage utilization.+--+-- -   @LZ4@ - Compresses the data in the volume using the LZ4 compression+--     algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and+--     delivers higher write throughput speeds.+updateOpenZFSVolumeConfiguration_dataCompressionType :: Lens.Lens' UpdateOpenZFSVolumeConfiguration (Prelude.Maybe OpenZFSDataCompressionType)+updateOpenZFSVolumeConfiguration_dataCompressionType = Lens.lens (\UpdateOpenZFSVolumeConfiguration' {dataCompressionType} -> dataCompressionType) (\s@UpdateOpenZFSVolumeConfiguration' {} a -> s {dataCompressionType = a} :: UpdateOpenZFSVolumeConfiguration)++-- | The configuration object for mounting a Network File System (NFS) file+-- system.+updateOpenZFSVolumeConfiguration_nfsExports :: Lens.Lens' UpdateOpenZFSVolumeConfiguration (Prelude.Maybe [OpenZFSNfsExport])+updateOpenZFSVolumeConfiguration_nfsExports = Lens.lens (\UpdateOpenZFSVolumeConfiguration' {nfsExports} -> nfsExports) (\s@UpdateOpenZFSVolumeConfiguration' {} a -> s {nfsExports = a} :: UpdateOpenZFSVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean value indicating whether the volume is read-only.+updateOpenZFSVolumeConfiguration_readOnly :: Lens.Lens' UpdateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Bool)+updateOpenZFSVolumeConfiguration_readOnly = Lens.lens (\UpdateOpenZFSVolumeConfiguration' {readOnly} -> readOnly) (\s@UpdateOpenZFSVolumeConfiguration' {} a -> s {readOnly = a} :: UpdateOpenZFSVolumeConfiguration)++-- | Specifies the record size of an OpenZFS volume, in kibibytes (KiB).+-- Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024 KiB. The+-- default is 128 KiB. Most workloads should use the default record size.+-- Database workflows can benefit from a smaller record size, while+-- streaming workflows can benefit from a larger record size. For+-- additional guidance on when to set a custom record size, see+-- <https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#performance-tips-zfs Tips for maximizing performance>+-- in the /Amazon FSx for OpenZFS User Guide/.+updateOpenZFSVolumeConfiguration_recordSizeKiB :: Lens.Lens' UpdateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Natural)+updateOpenZFSVolumeConfiguration_recordSizeKiB = Lens.lens (\UpdateOpenZFSVolumeConfiguration' {recordSizeKiB} -> recordSizeKiB) (\s@UpdateOpenZFSVolumeConfiguration' {} a -> s {recordSizeKiB = a} :: UpdateOpenZFSVolumeConfiguration)++-- | The maximum amount of storage in gibibytes (GiB) that the volume can use+-- from its parent. You can specify a quota larger than the storage on the+-- parent volume. You can specify a value of @-1@ to unset a volume\'s+-- storage capacity quota.+updateOpenZFSVolumeConfiguration_storageCapacityQuotaGiB :: Lens.Lens' UpdateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Int)+updateOpenZFSVolumeConfiguration_storageCapacityQuotaGiB = Lens.lens (\UpdateOpenZFSVolumeConfiguration' {storageCapacityQuotaGiB} -> storageCapacityQuotaGiB) (\s@UpdateOpenZFSVolumeConfiguration' {} a -> s {storageCapacityQuotaGiB = a} :: UpdateOpenZFSVolumeConfiguration)++-- | The amount of storage in gibibytes (GiB) to reserve from the parent+-- volume. You can\'t reserve more storage than the parent volume has+-- reserved. You can specify a value of @-1@ to unset a volume\'s storage+-- capacity reservation.+updateOpenZFSVolumeConfiguration_storageCapacityReservationGiB :: Lens.Lens' UpdateOpenZFSVolumeConfiguration (Prelude.Maybe Prelude.Int)+updateOpenZFSVolumeConfiguration_storageCapacityReservationGiB = Lens.lens (\UpdateOpenZFSVolumeConfiguration' {storageCapacityReservationGiB} -> storageCapacityReservationGiB) (\s@UpdateOpenZFSVolumeConfiguration' {} a -> s {storageCapacityReservationGiB = a} :: UpdateOpenZFSVolumeConfiguration)++-- | An object specifying how much storage users or groups can use on the+-- volume.+updateOpenZFSVolumeConfiguration_userAndGroupQuotas :: Lens.Lens' UpdateOpenZFSVolumeConfiguration (Prelude.Maybe [OpenZFSUserOrGroupQuota])+updateOpenZFSVolumeConfiguration_userAndGroupQuotas = Lens.lens (\UpdateOpenZFSVolumeConfiguration' {userAndGroupQuotas} -> userAndGroupQuotas) (\s@UpdateOpenZFSVolumeConfiguration' {} a -> s {userAndGroupQuotas = a} :: UpdateOpenZFSVolumeConfiguration) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    UpdateOpenZFSVolumeConfiguration+  where+  hashWithSalt+    _salt+    UpdateOpenZFSVolumeConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` dataCompressionType+        `Prelude.hashWithSalt` nfsExports+        `Prelude.hashWithSalt` readOnly+        `Prelude.hashWithSalt` recordSizeKiB+        `Prelude.hashWithSalt` storageCapacityQuotaGiB+        `Prelude.hashWithSalt` storageCapacityReservationGiB+        `Prelude.hashWithSalt` userAndGroupQuotas++instance+  Prelude.NFData+    UpdateOpenZFSVolumeConfiguration+  where+  rnf UpdateOpenZFSVolumeConfiguration' {..} =+    Prelude.rnf dataCompressionType+      `Prelude.seq` Prelude.rnf nfsExports+      `Prelude.seq` Prelude.rnf readOnly+      `Prelude.seq` Prelude.rnf recordSizeKiB+      `Prelude.seq` Prelude.rnf storageCapacityQuotaGiB+      `Prelude.seq` Prelude.rnf storageCapacityReservationGiB+      `Prelude.seq` Prelude.rnf userAndGroupQuotas++instance Data.ToJSON UpdateOpenZFSVolumeConfiguration where+  toJSON UpdateOpenZFSVolumeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataCompressionType" Data..=)+              Prelude.<$> dataCompressionType,+            ("NfsExports" Data..=) Prelude.<$> nfsExports,+            ("ReadOnly" Data..=) Prelude.<$> readOnly,+            ("RecordSizeKiB" Data..=) Prelude.<$> recordSizeKiB,+            ("StorageCapacityQuotaGiB" Data..=)+              Prelude.<$> storageCapacityQuotaGiB,+            ("StorageCapacityReservationGiB" Data..=)+              Prelude.<$> storageCapacityReservationGiB,+            ("UserAndGroupQuotas" Data..=)+              Prelude.<$> userAndGroupQuotas+          ]+      )
+ gen/Amazonka/FSx/Types/UpdateSvmActiveDirectoryConfiguration.hs view
@@ -0,0 +1,86 @@+{-# 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.UpdateSvmActiveDirectoryConfiguration+-- 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.UpdateSvmActiveDirectoryConfiguration 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.SelfManagedActiveDirectoryConfigurationUpdates+import qualified Amazonka.Prelude as Prelude++-- | Updates the Microsoft Active Directory (AD) configuration of an SVM+-- joined to an AD. Please note, account credentials are not returned in+-- the response payload.+--+-- /See:/ 'newUpdateSvmActiveDirectoryConfiguration' smart constructor.+data UpdateSvmActiveDirectoryConfiguration = UpdateSvmActiveDirectoryConfiguration'+  { selfManagedActiveDirectoryConfiguration :: Prelude.Maybe SelfManagedActiveDirectoryConfigurationUpdates+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSvmActiveDirectoryConfiguration' 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:+--+-- 'selfManagedActiveDirectoryConfiguration', 'updateSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration' - Undocumented member.+newUpdateSvmActiveDirectoryConfiguration ::+  UpdateSvmActiveDirectoryConfiguration+newUpdateSvmActiveDirectoryConfiguration =+  UpdateSvmActiveDirectoryConfiguration'+    { selfManagedActiveDirectoryConfiguration =+        Prelude.Nothing+    }++-- | Undocumented member.+updateSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration :: Lens.Lens' UpdateSvmActiveDirectoryConfiguration (Prelude.Maybe SelfManagedActiveDirectoryConfigurationUpdates)+updateSvmActiveDirectoryConfiguration_selfManagedActiveDirectoryConfiguration = Lens.lens (\UpdateSvmActiveDirectoryConfiguration' {selfManagedActiveDirectoryConfiguration} -> selfManagedActiveDirectoryConfiguration) (\s@UpdateSvmActiveDirectoryConfiguration' {} a -> s {selfManagedActiveDirectoryConfiguration = a} :: UpdateSvmActiveDirectoryConfiguration)++instance+  Prelude.Hashable+    UpdateSvmActiveDirectoryConfiguration+  where+  hashWithSalt+    _salt+    UpdateSvmActiveDirectoryConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` selfManagedActiveDirectoryConfiguration++instance+  Prelude.NFData+    UpdateSvmActiveDirectoryConfiguration+  where+  rnf UpdateSvmActiveDirectoryConfiguration' {..} =+    Prelude.rnf selfManagedActiveDirectoryConfiguration++instance+  Data.ToJSON+    UpdateSvmActiveDirectoryConfiguration+  where+  toJSON UpdateSvmActiveDirectoryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SelfManagedActiveDirectoryConfiguration" Data..=)+              Prelude.<$> selfManagedActiveDirectoryConfiguration+          ]+      )
+ gen/Amazonka/FSx/Types/Volume.hs view
@@ -0,0 +1,258 @@+{-# 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.Volume+-- 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.Volume 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.LifecycleTransitionReason+import Amazonka.FSx.Types.OntapVolumeConfiguration+import Amazonka.FSx.Types.OpenZFSVolumeConfiguration+import Amazonka.FSx.Types.Tag+import Amazonka.FSx.Types.VolumeLifecycle+import Amazonka.FSx.Types.VolumeType+import qualified Amazonka.Prelude as Prelude++-- | Describes an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS+-- volume.+--+-- /See:/ 'newVolume' smart constructor.+data Volume = Volume'+  { -- | A list of administrative actions for the volume that are in process or+    -- waiting to be processed. Administrative actions describe changes to the+    -- volume that you have initiated using the @UpdateVolume@ action.+    administrativeActions :: Prelude.Maybe [AdministrativeAction],+    creationTime :: Prelude.Maybe Data.POSIX,+    fileSystemId :: Prelude.Maybe Prelude.Text,+    -- | The lifecycle status of the volume.+    --+    -- -   @AVAILABLE@ - The volume is fully available for use.+    --+    -- -   @CREATED@ - The volume has been created.+    --+    -- -   @CREATING@ - Amazon FSx is creating the new volume.+    --+    -- -   @DELETING@ - Amazon FSx is deleting an existing volume.+    --+    -- -   @FAILED@ - Amazon FSx was unable to create the volume.+    --+    -- -   @MISCONFIGURED@ - The volume is in a failed but recoverable state.+    --+    -- -   @PENDING@ - Amazon FSx hasn\'t started creating the volume.+    lifecycle :: Prelude.Maybe VolumeLifecycle,+    -- | The reason why the volume lifecycle status changed.+    lifecycleTransitionReason :: Prelude.Maybe LifecycleTransitionReason,+    -- | The name of the volume.+    name :: Prelude.Maybe Prelude.Text,+    ontapConfiguration :: Prelude.Maybe OntapVolumeConfiguration,+    -- | The configuration of an Amazon FSx for OpenZFS volume.+    openZFSConfiguration :: Prelude.Maybe OpenZFSVolumeConfiguration,+    resourceARN :: Prelude.Maybe Prelude.Text,+    tags :: Prelude.Maybe (Prelude.NonEmpty Tag),+    -- | The system-generated, unique ID of the volume.+    volumeId :: Prelude.Maybe Prelude.Text,+    -- | The type of the volume.+    volumeType :: Prelude.Maybe VolumeType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Volume' 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', 'volume_administrativeActions' - A list of administrative actions for the volume that are in process or+-- waiting to be processed. Administrative actions describe changes to the+-- volume that you have initiated using the @UpdateVolume@ action.+--+-- 'creationTime', 'volume_creationTime' - Undocumented member.+--+-- 'fileSystemId', 'volume_fileSystemId' - Undocumented member.+--+-- 'lifecycle', 'volume_lifecycle' - The lifecycle status of the volume.+--+-- -   @AVAILABLE@ - The volume is fully available for use.+--+-- -   @CREATED@ - The volume has been created.+--+-- -   @CREATING@ - Amazon FSx is creating the new volume.+--+-- -   @DELETING@ - Amazon FSx is deleting an existing volume.+--+-- -   @FAILED@ - Amazon FSx was unable to create the volume.+--+-- -   @MISCONFIGURED@ - The volume is in a failed but recoverable state.+--+-- -   @PENDING@ - Amazon FSx hasn\'t started creating the volume.+--+-- 'lifecycleTransitionReason', 'volume_lifecycleTransitionReason' - The reason why the volume lifecycle status changed.+--+-- 'name', 'volume_name' - The name of the volume.+--+-- 'ontapConfiguration', 'volume_ontapConfiguration' - Undocumented member.+--+-- 'openZFSConfiguration', 'volume_openZFSConfiguration' - The configuration of an Amazon FSx for OpenZFS volume.+--+-- 'resourceARN', 'volume_resourceARN' - Undocumented member.+--+-- 'tags', 'volume_tags' - Undocumented member.+--+-- 'volumeId', 'volume_volumeId' - The system-generated, unique ID of the volume.+--+-- 'volumeType', 'volume_volumeType' - The type of the volume.+newVolume ::+  Volume+newVolume =+  Volume'+    { administrativeActions = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      fileSystemId = Prelude.Nothing,+      lifecycle = Prelude.Nothing,+      lifecycleTransitionReason = Prelude.Nothing,+      name = Prelude.Nothing,+      ontapConfiguration = Prelude.Nothing,+      openZFSConfiguration = Prelude.Nothing,+      resourceARN = Prelude.Nothing,+      tags = Prelude.Nothing,+      volumeId = Prelude.Nothing,+      volumeType = Prelude.Nothing+    }++-- | A list of administrative actions for the volume that are in process or+-- waiting to be processed. Administrative actions describe changes to the+-- volume that you have initiated using the @UpdateVolume@ action.+volume_administrativeActions :: Lens.Lens' Volume (Prelude.Maybe [AdministrativeAction])+volume_administrativeActions = Lens.lens (\Volume' {administrativeActions} -> administrativeActions) (\s@Volume' {} a -> s {administrativeActions = a} :: Volume) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+volume_creationTime :: Lens.Lens' Volume (Prelude.Maybe Prelude.UTCTime)+volume_creationTime = Lens.lens (\Volume' {creationTime} -> creationTime) (\s@Volume' {} a -> s {creationTime = a} :: Volume) Prelude.. Lens.mapping Data._Time++-- | Undocumented member.+volume_fileSystemId :: Lens.Lens' Volume (Prelude.Maybe Prelude.Text)+volume_fileSystemId = Lens.lens (\Volume' {fileSystemId} -> fileSystemId) (\s@Volume' {} a -> s {fileSystemId = a} :: Volume)++-- | The lifecycle status of the volume.+--+-- -   @AVAILABLE@ - The volume is fully available for use.+--+-- -   @CREATED@ - The volume has been created.+--+-- -   @CREATING@ - Amazon FSx is creating the new volume.+--+-- -   @DELETING@ - Amazon FSx is deleting an existing volume.+--+-- -   @FAILED@ - Amazon FSx was unable to create the volume.+--+-- -   @MISCONFIGURED@ - The volume is in a failed but recoverable state.+--+-- -   @PENDING@ - Amazon FSx hasn\'t started creating the volume.+volume_lifecycle :: Lens.Lens' Volume (Prelude.Maybe VolumeLifecycle)+volume_lifecycle = Lens.lens (\Volume' {lifecycle} -> lifecycle) (\s@Volume' {} a -> s {lifecycle = a} :: Volume)++-- | The reason why the volume lifecycle status changed.+volume_lifecycleTransitionReason :: Lens.Lens' Volume (Prelude.Maybe LifecycleTransitionReason)+volume_lifecycleTransitionReason = Lens.lens (\Volume' {lifecycleTransitionReason} -> lifecycleTransitionReason) (\s@Volume' {} a -> s {lifecycleTransitionReason = a} :: Volume)++-- | The name of the volume.+volume_name :: Lens.Lens' Volume (Prelude.Maybe Prelude.Text)+volume_name = Lens.lens (\Volume' {name} -> name) (\s@Volume' {} a -> s {name = a} :: Volume)++-- | Undocumented member.+volume_ontapConfiguration :: Lens.Lens' Volume (Prelude.Maybe OntapVolumeConfiguration)+volume_ontapConfiguration = Lens.lens (\Volume' {ontapConfiguration} -> ontapConfiguration) (\s@Volume' {} a -> s {ontapConfiguration = a} :: Volume)++-- | The configuration of an Amazon FSx for OpenZFS volume.+volume_openZFSConfiguration :: Lens.Lens' Volume (Prelude.Maybe OpenZFSVolumeConfiguration)+volume_openZFSConfiguration = Lens.lens (\Volume' {openZFSConfiguration} -> openZFSConfiguration) (\s@Volume' {} a -> s {openZFSConfiguration = a} :: Volume)++-- | Undocumented member.+volume_resourceARN :: Lens.Lens' Volume (Prelude.Maybe Prelude.Text)+volume_resourceARN = Lens.lens (\Volume' {resourceARN} -> resourceARN) (\s@Volume' {} a -> s {resourceARN = a} :: Volume)++-- | Undocumented member.+volume_tags :: Lens.Lens' Volume (Prelude.Maybe (Prelude.NonEmpty Tag))+volume_tags = Lens.lens (\Volume' {tags} -> tags) (\s@Volume' {} a -> s {tags = a} :: Volume) Prelude.. Lens.mapping Lens.coerced++-- | The system-generated, unique ID of the volume.+volume_volumeId :: Lens.Lens' Volume (Prelude.Maybe Prelude.Text)+volume_volumeId = Lens.lens (\Volume' {volumeId} -> volumeId) (\s@Volume' {} a -> s {volumeId = a} :: Volume)++-- | The type of the volume.+volume_volumeType :: Lens.Lens' Volume (Prelude.Maybe VolumeType)+volume_volumeType = Lens.lens (\Volume' {volumeType} -> volumeType) (\s@Volume' {} a -> s {volumeType = a} :: Volume)++instance Data.FromJSON Volume where+  parseJSON =+    Data.withObject+      "Volume"+      ( \x ->+          Volume'+            Prelude.<$> ( x+                            Data..:? "AdministrativeActions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "FileSystemId")+            Prelude.<*> (x Data..:? "Lifecycle")+            Prelude.<*> (x Data..:? "LifecycleTransitionReason")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "OntapConfiguration")+            Prelude.<*> (x Data..:? "OpenZFSConfiguration")+            Prelude.<*> (x Data..:? "ResourceARN")+            Prelude.<*> (x Data..:? "Tags")+            Prelude.<*> (x Data..:? "VolumeId")+            Prelude.<*> (x Data..:? "VolumeType")+      )++instance Prelude.Hashable Volume where+  hashWithSalt _salt Volume' {..} =+    _salt+      `Prelude.hashWithSalt` administrativeActions+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` lifecycle+      `Prelude.hashWithSalt` lifecycleTransitionReason+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` ontapConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` volumeId+      `Prelude.hashWithSalt` volumeType++instance Prelude.NFData Volume where+  rnf Volume' {..} =+    Prelude.rnf administrativeActions+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf lifecycle+      `Prelude.seq` Prelude.rnf lifecycleTransitionReason+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf ontapConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf volumeId+      `Prelude.seq` Prelude.rnf volumeType
+ gen/Amazonka/FSx/Types/Volume.hs-boot view
@@ -0,0 +1,31 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.Volume+-- 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.Volume where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data Volume++instance Prelude.Eq Volume++instance Prelude.Read Volume++instance Prelude.Show Volume++instance Prelude.Generic Volume++instance Data.FromJSON Volume++instance Prelude.NFData Volume++instance Prelude.Hashable Volume
+ gen/Amazonka/FSx/Types/VolumeFilter.hs view
@@ -0,0 +1,88 @@+{-# 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.VolumeFilter+-- 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.VolumeFilter 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.VolumeFilterName+import qualified Amazonka.Prelude as Prelude++-- | A filter used to restrict the results of describe calls for Amazon FSx+-- for NetApp ONTAP or Amazon FSx for OpenZFS volumes. You can use multiple+-- filters to return results that meet all applied filter requirements.+--+-- /See:/ 'newVolumeFilter' smart constructor.+data VolumeFilter = VolumeFilter'+  { -- | The name for this filter.+    name :: Prelude.Maybe VolumeFilterName,+    -- | The values of the filter. These are all the values for any of the+    -- applied filters.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VolumeFilter' 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:+--+-- 'name', 'volumeFilter_name' - The name for this filter.+--+-- 'values', 'volumeFilter_values' - The values of the filter. These are all the values for any of the+-- applied filters.+newVolumeFilter ::+  VolumeFilter+newVolumeFilter =+  VolumeFilter'+    { name = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The name for this filter.+volumeFilter_name :: Lens.Lens' VolumeFilter (Prelude.Maybe VolumeFilterName)+volumeFilter_name = Lens.lens (\VolumeFilter' {name} -> name) (\s@VolumeFilter' {} a -> s {name = a} :: VolumeFilter)++-- | The values of the filter. These are all the values for any of the+-- applied filters.+volumeFilter_values :: Lens.Lens' VolumeFilter (Prelude.Maybe [Prelude.Text])+volumeFilter_values = Lens.lens (\VolumeFilter' {values} -> values) (\s@VolumeFilter' {} a -> s {values = a} :: VolumeFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable VolumeFilter where+  hashWithSalt _salt VolumeFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData VolumeFilter where+  rnf VolumeFilter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON VolumeFilter where+  toJSON VolumeFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/FSx/Types/VolumeFilterName.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.VolumeFilterName+-- 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.VolumeFilterName+  ( VolumeFilterName+      ( ..,+        VolumeFilterName_File_system_id,+        VolumeFilterName_Storage_virtual_machine_id+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VolumeFilterName = VolumeFilterName'+  { fromVolumeFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VolumeFilterName_File_system_id :: VolumeFilterName+pattern VolumeFilterName_File_system_id = VolumeFilterName' "file-system-id"++pattern VolumeFilterName_Storage_virtual_machine_id :: VolumeFilterName+pattern VolumeFilterName_Storage_virtual_machine_id = VolumeFilterName' "storage-virtual-machine-id"++{-# COMPLETE+  VolumeFilterName_File_system_id,+  VolumeFilterName_Storage_virtual_machine_id,+  VolumeFilterName'+  #-}
+ gen/Amazonka/FSx/Types/VolumeLifecycle.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.VolumeLifecycle+-- 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.VolumeLifecycle+  ( VolumeLifecycle+      ( ..,+        VolumeLifecycle_AVAILABLE,+        VolumeLifecycle_CREATED,+        VolumeLifecycle_CREATING,+        VolumeLifecycle_DELETING,+        VolumeLifecycle_FAILED,+        VolumeLifecycle_MISCONFIGURED,+        VolumeLifecycle_PENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VolumeLifecycle = VolumeLifecycle'+  { fromVolumeLifecycle ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VolumeLifecycle_AVAILABLE :: VolumeLifecycle+pattern VolumeLifecycle_AVAILABLE = VolumeLifecycle' "AVAILABLE"++pattern VolumeLifecycle_CREATED :: VolumeLifecycle+pattern VolumeLifecycle_CREATED = VolumeLifecycle' "CREATED"++pattern VolumeLifecycle_CREATING :: VolumeLifecycle+pattern VolumeLifecycle_CREATING = VolumeLifecycle' "CREATING"++pattern VolumeLifecycle_DELETING :: VolumeLifecycle+pattern VolumeLifecycle_DELETING = VolumeLifecycle' "DELETING"++pattern VolumeLifecycle_FAILED :: VolumeLifecycle+pattern VolumeLifecycle_FAILED = VolumeLifecycle' "FAILED"++pattern VolumeLifecycle_MISCONFIGURED :: VolumeLifecycle+pattern VolumeLifecycle_MISCONFIGURED = VolumeLifecycle' "MISCONFIGURED"++pattern VolumeLifecycle_PENDING :: VolumeLifecycle+pattern VolumeLifecycle_PENDING = VolumeLifecycle' "PENDING"++{-# COMPLETE+  VolumeLifecycle_AVAILABLE,+  VolumeLifecycle_CREATED,+  VolumeLifecycle_CREATING,+  VolumeLifecycle_DELETING,+  VolumeLifecycle_FAILED,+  VolumeLifecycle_MISCONFIGURED,+  VolumeLifecycle_PENDING,+  VolumeLifecycle'+  #-}
+ gen/Amazonka/FSx/Types/VolumeType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.VolumeType+-- 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.VolumeType+  ( VolumeType+      ( ..,+        VolumeType_ONTAP,+        VolumeType_OPENZFS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VolumeType = VolumeType'+  { fromVolumeType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VolumeType_ONTAP :: VolumeType+pattern VolumeType_ONTAP = VolumeType' "ONTAP"++pattern VolumeType_OPENZFS :: VolumeType+pattern VolumeType_OPENZFS = VolumeType' "OPENZFS"++{-# COMPLETE+  VolumeType_ONTAP,+  VolumeType_OPENZFS,+  VolumeType'+  #-}
+ gen/Amazonka/FSx/Types/WindowsAccessAuditLogLevel.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.WindowsAccessAuditLogLevel+-- 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.WindowsAccessAuditLogLevel+  ( WindowsAccessAuditLogLevel+      ( ..,+        WindowsAccessAuditLogLevel_DISABLED,+        WindowsAccessAuditLogLevel_FAILURE_ONLY,+        WindowsAccessAuditLogLevel_SUCCESS_AND_FAILURE,+        WindowsAccessAuditLogLevel_SUCCESS_ONLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WindowsAccessAuditLogLevel = WindowsAccessAuditLogLevel'+  { fromWindowsAccessAuditLogLevel ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern WindowsAccessAuditLogLevel_DISABLED :: WindowsAccessAuditLogLevel+pattern WindowsAccessAuditLogLevel_DISABLED = WindowsAccessAuditLogLevel' "DISABLED"++pattern WindowsAccessAuditLogLevel_FAILURE_ONLY :: WindowsAccessAuditLogLevel+pattern WindowsAccessAuditLogLevel_FAILURE_ONLY = WindowsAccessAuditLogLevel' "FAILURE_ONLY"++pattern WindowsAccessAuditLogLevel_SUCCESS_AND_FAILURE :: WindowsAccessAuditLogLevel+pattern WindowsAccessAuditLogLevel_SUCCESS_AND_FAILURE = WindowsAccessAuditLogLevel' "SUCCESS_AND_FAILURE"++pattern WindowsAccessAuditLogLevel_SUCCESS_ONLY :: WindowsAccessAuditLogLevel+pattern WindowsAccessAuditLogLevel_SUCCESS_ONLY = WindowsAccessAuditLogLevel' "SUCCESS_ONLY"++{-# COMPLETE+  WindowsAccessAuditLogLevel_DISABLED,+  WindowsAccessAuditLogLevel_FAILURE_ONLY,+  WindowsAccessAuditLogLevel_SUCCESS_AND_FAILURE,+  WindowsAccessAuditLogLevel_SUCCESS_ONLY,+  WindowsAccessAuditLogLevel'+  #-}
+ gen/Amazonka/FSx/Types/WindowsAuditLogConfiguration.hs view
@@ -0,0 +1,214 @@+{-# 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.WindowsAuditLogConfiguration+-- 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.WindowsAuditLogConfiguration 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.WindowsAccessAuditLogLevel+import qualified Amazonka.Prelude as Prelude++-- | The configuration that Amazon FSx for Windows File Server uses to audit+-- and log user accesses of files, folders, and file shares on the Amazon+-- FSx for Windows File Server file system. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/file-access-auditing.html File access auditing>.+--+-- /See:/ 'newWindowsAuditLogConfiguration' smart constructor.+data WindowsAuditLogConfiguration = WindowsAuditLogConfiguration'+  { -- | The Amazon Resource Name (ARN) for the destination of the audit logs.+    -- The destination can be any Amazon CloudWatch Logs log group ARN or+    -- Amazon Kinesis Data Firehose delivery stream ARN.+    --+    -- The name of the Amazon CloudWatch Logs log group must begin with the+    -- @\/aws\/fsx@ prefix. The name of the Amazon Kinesis Data Firehouse+    -- delivery stream must begin with the @aws-fsx@ prefix.+    --+    -- The destination ARN (either CloudWatch Logs log group or Kinesis Data+    -- Firehose delivery stream) must be in the same Amazon Web Services+    -- partition, Amazon Web Services Region, and Amazon Web Services account+    -- as your Amazon FSx file system.+    auditLogDestination :: Prelude.Maybe Prelude.Text,+    -- | Sets which attempt type is logged by Amazon FSx for file and folder+    -- accesses.+    --+    -- -   @SUCCESS_ONLY@ - only successful attempts to access files or folders+    --     are logged.+    --+    -- -   @FAILURE_ONLY@ - only failed attempts to access files or folders are+    --     logged.+    --+    -- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+    --     to access files or folders are logged.+    --+    -- -   @DISABLED@ - access auditing of files and folders is turned off.+    fileAccessAuditLogLevel :: WindowsAccessAuditLogLevel,+    -- | Sets which attempt type is logged by Amazon FSx for file share accesses.+    --+    -- -   @SUCCESS_ONLY@ - only successful attempts to access file shares are+    --     logged.+    --+    -- -   @FAILURE_ONLY@ - only failed attempts to access file shares are+    --     logged.+    --+    -- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+    --     to access file shares are logged.+    --+    -- -   @DISABLED@ - access auditing of file shares is turned off.+    fileShareAccessAuditLogLevel :: WindowsAccessAuditLogLevel+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WindowsAuditLogConfiguration' 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:+--+-- 'auditLogDestination', 'windowsAuditLogConfiguration_auditLogDestination' - The Amazon Resource Name (ARN) for the destination of the audit logs.+-- The destination can be any Amazon CloudWatch Logs log group ARN or+-- Amazon Kinesis Data Firehose delivery stream ARN.+--+-- The name of the Amazon CloudWatch Logs log group must begin with the+-- @\/aws\/fsx@ prefix. The name of the Amazon Kinesis Data Firehouse+-- delivery stream must begin with the @aws-fsx@ prefix.+--+-- The destination ARN (either CloudWatch Logs log group or Kinesis Data+-- Firehose delivery stream) must be in the same Amazon Web Services+-- partition, Amazon Web Services Region, and Amazon Web Services account+-- as your Amazon FSx file system.+--+-- 'fileAccessAuditLogLevel', 'windowsAuditLogConfiguration_fileAccessAuditLogLevel' - Sets which attempt type is logged by Amazon FSx for file and folder+-- accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access files or folders+--     are logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access files or folders are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access files or folders are logged.+--+-- -   @DISABLED@ - access auditing of files and folders is turned off.+--+-- 'fileShareAccessAuditLogLevel', 'windowsAuditLogConfiguration_fileShareAccessAuditLogLevel' - Sets which attempt type is logged by Amazon FSx for file share accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access file shares are+--     logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access file shares are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access file shares are logged.+--+-- -   @DISABLED@ - access auditing of file shares is turned off.+newWindowsAuditLogConfiguration ::+  -- | 'fileAccessAuditLogLevel'+  WindowsAccessAuditLogLevel ->+  -- | 'fileShareAccessAuditLogLevel'+  WindowsAccessAuditLogLevel ->+  WindowsAuditLogConfiguration+newWindowsAuditLogConfiguration+  pFileAccessAuditLogLevel_+  pFileShareAccessAuditLogLevel_ =+    WindowsAuditLogConfiguration'+      { auditLogDestination =+          Prelude.Nothing,+        fileAccessAuditLogLevel =+          pFileAccessAuditLogLevel_,+        fileShareAccessAuditLogLevel =+          pFileShareAccessAuditLogLevel_+      }++-- | The Amazon Resource Name (ARN) for the destination of the audit logs.+-- The destination can be any Amazon CloudWatch Logs log group ARN or+-- Amazon Kinesis Data Firehose delivery stream ARN.+--+-- The name of the Amazon CloudWatch Logs log group must begin with the+-- @\/aws\/fsx@ prefix. The name of the Amazon Kinesis Data Firehouse+-- delivery stream must begin with the @aws-fsx@ prefix.+--+-- The destination ARN (either CloudWatch Logs log group or Kinesis Data+-- Firehose delivery stream) must be in the same Amazon Web Services+-- partition, Amazon Web Services Region, and Amazon Web Services account+-- as your Amazon FSx file system.+windowsAuditLogConfiguration_auditLogDestination :: Lens.Lens' WindowsAuditLogConfiguration (Prelude.Maybe Prelude.Text)+windowsAuditLogConfiguration_auditLogDestination = Lens.lens (\WindowsAuditLogConfiguration' {auditLogDestination} -> auditLogDestination) (\s@WindowsAuditLogConfiguration' {} a -> s {auditLogDestination = a} :: WindowsAuditLogConfiguration)++-- | Sets which attempt type is logged by Amazon FSx for file and folder+-- accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access files or folders+--     are logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access files or folders are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access files or folders are logged.+--+-- -   @DISABLED@ - access auditing of files and folders is turned off.+windowsAuditLogConfiguration_fileAccessAuditLogLevel :: Lens.Lens' WindowsAuditLogConfiguration WindowsAccessAuditLogLevel+windowsAuditLogConfiguration_fileAccessAuditLogLevel = Lens.lens (\WindowsAuditLogConfiguration' {fileAccessAuditLogLevel} -> fileAccessAuditLogLevel) (\s@WindowsAuditLogConfiguration' {} a -> s {fileAccessAuditLogLevel = a} :: WindowsAuditLogConfiguration)++-- | Sets which attempt type is logged by Amazon FSx for file share accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access file shares are+--     logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access file shares are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access file shares are logged.+--+-- -   @DISABLED@ - access auditing of file shares is turned off.+windowsAuditLogConfiguration_fileShareAccessAuditLogLevel :: Lens.Lens' WindowsAuditLogConfiguration WindowsAccessAuditLogLevel+windowsAuditLogConfiguration_fileShareAccessAuditLogLevel = Lens.lens (\WindowsAuditLogConfiguration' {fileShareAccessAuditLogLevel} -> fileShareAccessAuditLogLevel) (\s@WindowsAuditLogConfiguration' {} a -> s {fileShareAccessAuditLogLevel = a} :: WindowsAuditLogConfiguration)++instance Data.FromJSON WindowsAuditLogConfiguration where+  parseJSON =+    Data.withObject+      "WindowsAuditLogConfiguration"+      ( \x ->+          WindowsAuditLogConfiguration'+            Prelude.<$> (x Data..:? "AuditLogDestination")+            Prelude.<*> (x Data..: "FileAccessAuditLogLevel")+            Prelude.<*> (x Data..: "FileShareAccessAuditLogLevel")+      )++instance+  Prelude.Hashable+    WindowsAuditLogConfiguration+  where+  hashWithSalt _salt WindowsAuditLogConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` auditLogDestination+      `Prelude.hashWithSalt` fileAccessAuditLogLevel+      `Prelude.hashWithSalt` fileShareAccessAuditLogLevel++instance Prelude.NFData WindowsAuditLogConfiguration where+  rnf WindowsAuditLogConfiguration' {..} =+    Prelude.rnf auditLogDestination+      `Prelude.seq` Prelude.rnf fileAccessAuditLogLevel+      `Prelude.seq` Prelude.rnf fileShareAccessAuditLogLevel
+ gen/Amazonka/FSx/Types/WindowsAuditLogCreateConfiguration.hs view
@@ -0,0 +1,268 @@+{-# 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.WindowsAuditLogCreateConfiguration+-- 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.WindowsAuditLogCreateConfiguration 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.WindowsAccessAuditLogLevel+import qualified Amazonka.Prelude as Prelude++-- | The Windows file access auditing configuration used when creating or+-- updating an Amazon FSx for Windows File Server file system.+--+-- /See:/ 'newWindowsAuditLogCreateConfiguration' smart constructor.+data WindowsAuditLogCreateConfiguration = WindowsAuditLogCreateConfiguration'+  { -- | The Amazon Resource Name (ARN) that specifies the destination of the+    -- audit logs.+    --+    -- The destination can be any Amazon CloudWatch Logs log group ARN or+    -- Amazon Kinesis Data Firehose delivery stream ARN, with the following+    -- requirements:+    --+    -- -   The destination ARN that you provide (either CloudWatch Logs log+    --     group or Kinesis Data Firehose delivery stream) must be in the same+    --     Amazon Web Services partition, Amazon Web Services Region, and+    --     Amazon Web Services account as your Amazon FSx file system.+    --+    -- -   The name of the Amazon CloudWatch Logs log group must begin with the+    --     @\/aws\/fsx@ prefix. The name of the Amazon Kinesis Data Firehouse+    --     delivery stream must begin with the @aws-fsx@ prefix.+    --+    -- -   If you do not provide a destination in @AuditLogDestination@, Amazon+    --     FSx will create and use a log stream in the CloudWatch Logs+    --     @\/aws\/fsx\/windows@ log group.+    --+    -- -   If @AuditLogDestination@ is provided and the resource does not+    --     exist, the request will fail with a @BadRequest@ error.+    --+    -- -   If @FileAccessAuditLogLevel@ and @FileShareAccessAuditLogLevel@ are+    --     both set to @DISABLED@, you cannot specify a destination in+    --     @AuditLogDestination@.+    auditLogDestination :: Prelude.Maybe Prelude.Text,+    -- | Sets which attempt type is logged by Amazon FSx for file and folder+    -- accesses.+    --+    -- -   @SUCCESS_ONLY@ - only successful attempts to access files or folders+    --     are logged.+    --+    -- -   @FAILURE_ONLY@ - only failed attempts to access files or folders are+    --     logged.+    --+    -- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+    --     to access files or folders are logged.+    --+    -- -   @DISABLED@ - access auditing of files and folders is turned off.+    fileAccessAuditLogLevel :: WindowsAccessAuditLogLevel,+    -- | Sets which attempt type is logged by Amazon FSx for file share accesses.+    --+    -- -   @SUCCESS_ONLY@ - only successful attempts to access file shares are+    --     logged.+    --+    -- -   @FAILURE_ONLY@ - only failed attempts to access file shares are+    --     logged.+    --+    -- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+    --     to access file shares are logged.+    --+    -- -   @DISABLED@ - access auditing of file shares is turned off.+    fileShareAccessAuditLogLevel :: WindowsAccessAuditLogLevel+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WindowsAuditLogCreateConfiguration' 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:+--+-- 'auditLogDestination', 'windowsAuditLogCreateConfiguration_auditLogDestination' - The Amazon Resource Name (ARN) that specifies the destination of the+-- audit logs.+--+-- The destination can be any Amazon CloudWatch Logs log group ARN or+-- Amazon Kinesis Data Firehose delivery stream ARN, with the following+-- requirements:+--+-- -   The destination ARN that you provide (either CloudWatch Logs log+--     group or Kinesis Data Firehose delivery stream) must be in the same+--     Amazon Web Services partition, Amazon Web Services Region, and+--     Amazon Web Services account as your Amazon FSx file system.+--+-- -   The name of the Amazon CloudWatch Logs log group must begin with the+--     @\/aws\/fsx@ prefix. The name of the Amazon Kinesis Data Firehouse+--     delivery stream must begin with the @aws-fsx@ prefix.+--+-- -   If you do not provide a destination in @AuditLogDestination@, Amazon+--     FSx will create and use a log stream in the CloudWatch Logs+--     @\/aws\/fsx\/windows@ log group.+--+-- -   If @AuditLogDestination@ is provided and the resource does not+--     exist, the request will fail with a @BadRequest@ error.+--+-- -   If @FileAccessAuditLogLevel@ and @FileShareAccessAuditLogLevel@ are+--     both set to @DISABLED@, you cannot specify a destination in+--     @AuditLogDestination@.+--+-- 'fileAccessAuditLogLevel', 'windowsAuditLogCreateConfiguration_fileAccessAuditLogLevel' - Sets which attempt type is logged by Amazon FSx for file and folder+-- accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access files or folders+--     are logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access files or folders are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access files or folders are logged.+--+-- -   @DISABLED@ - access auditing of files and folders is turned off.+--+-- 'fileShareAccessAuditLogLevel', 'windowsAuditLogCreateConfiguration_fileShareAccessAuditLogLevel' - Sets which attempt type is logged by Amazon FSx for file share accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access file shares are+--     logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access file shares are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access file shares are logged.+--+-- -   @DISABLED@ - access auditing of file shares is turned off.+newWindowsAuditLogCreateConfiguration ::+  -- | 'fileAccessAuditLogLevel'+  WindowsAccessAuditLogLevel ->+  -- | 'fileShareAccessAuditLogLevel'+  WindowsAccessAuditLogLevel ->+  WindowsAuditLogCreateConfiguration+newWindowsAuditLogCreateConfiguration+  pFileAccessAuditLogLevel_+  pFileShareAccessAuditLogLevel_ =+    WindowsAuditLogCreateConfiguration'+      { auditLogDestination =+          Prelude.Nothing,+        fileAccessAuditLogLevel =+          pFileAccessAuditLogLevel_,+        fileShareAccessAuditLogLevel =+          pFileShareAccessAuditLogLevel_+      }++-- | The Amazon Resource Name (ARN) that specifies the destination of the+-- audit logs.+--+-- The destination can be any Amazon CloudWatch Logs log group ARN or+-- Amazon Kinesis Data Firehose delivery stream ARN, with the following+-- requirements:+--+-- -   The destination ARN that you provide (either CloudWatch Logs log+--     group or Kinesis Data Firehose delivery stream) must be in the same+--     Amazon Web Services partition, Amazon Web Services Region, and+--     Amazon Web Services account as your Amazon FSx file system.+--+-- -   The name of the Amazon CloudWatch Logs log group must begin with the+--     @\/aws\/fsx@ prefix. The name of the Amazon Kinesis Data Firehouse+--     delivery stream must begin with the @aws-fsx@ prefix.+--+-- -   If you do not provide a destination in @AuditLogDestination@, Amazon+--     FSx will create and use a log stream in the CloudWatch Logs+--     @\/aws\/fsx\/windows@ log group.+--+-- -   If @AuditLogDestination@ is provided and the resource does not+--     exist, the request will fail with a @BadRequest@ error.+--+-- -   If @FileAccessAuditLogLevel@ and @FileShareAccessAuditLogLevel@ are+--     both set to @DISABLED@, you cannot specify a destination in+--     @AuditLogDestination@.+windowsAuditLogCreateConfiguration_auditLogDestination :: Lens.Lens' WindowsAuditLogCreateConfiguration (Prelude.Maybe Prelude.Text)+windowsAuditLogCreateConfiguration_auditLogDestination = Lens.lens (\WindowsAuditLogCreateConfiguration' {auditLogDestination} -> auditLogDestination) (\s@WindowsAuditLogCreateConfiguration' {} a -> s {auditLogDestination = a} :: WindowsAuditLogCreateConfiguration)++-- | Sets which attempt type is logged by Amazon FSx for file and folder+-- accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access files or folders+--     are logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access files or folders are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access files or folders are logged.+--+-- -   @DISABLED@ - access auditing of files and folders is turned off.+windowsAuditLogCreateConfiguration_fileAccessAuditLogLevel :: Lens.Lens' WindowsAuditLogCreateConfiguration WindowsAccessAuditLogLevel+windowsAuditLogCreateConfiguration_fileAccessAuditLogLevel = Lens.lens (\WindowsAuditLogCreateConfiguration' {fileAccessAuditLogLevel} -> fileAccessAuditLogLevel) (\s@WindowsAuditLogCreateConfiguration' {} a -> s {fileAccessAuditLogLevel = a} :: WindowsAuditLogCreateConfiguration)++-- | Sets which attempt type is logged by Amazon FSx for file share accesses.+--+-- -   @SUCCESS_ONLY@ - only successful attempts to access file shares are+--     logged.+--+-- -   @FAILURE_ONLY@ - only failed attempts to access file shares are+--     logged.+--+-- -   @SUCCESS_AND_FAILURE@ - both successful attempts and failed attempts+--     to access file shares are logged.+--+-- -   @DISABLED@ - access auditing of file shares is turned off.+windowsAuditLogCreateConfiguration_fileShareAccessAuditLogLevel :: Lens.Lens' WindowsAuditLogCreateConfiguration WindowsAccessAuditLogLevel+windowsAuditLogCreateConfiguration_fileShareAccessAuditLogLevel = Lens.lens (\WindowsAuditLogCreateConfiguration' {fileShareAccessAuditLogLevel} -> fileShareAccessAuditLogLevel) (\s@WindowsAuditLogCreateConfiguration' {} a -> s {fileShareAccessAuditLogLevel = a} :: WindowsAuditLogCreateConfiguration)++instance+  Prelude.Hashable+    WindowsAuditLogCreateConfiguration+  where+  hashWithSalt+    _salt+    WindowsAuditLogCreateConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` auditLogDestination+        `Prelude.hashWithSalt` fileAccessAuditLogLevel+        `Prelude.hashWithSalt` fileShareAccessAuditLogLevel++instance+  Prelude.NFData+    WindowsAuditLogCreateConfiguration+  where+  rnf WindowsAuditLogCreateConfiguration' {..} =+    Prelude.rnf auditLogDestination+      `Prelude.seq` Prelude.rnf fileAccessAuditLogLevel+      `Prelude.seq` Prelude.rnf fileShareAccessAuditLogLevel++instance+  Data.ToJSON+    WindowsAuditLogCreateConfiguration+  where+  toJSON WindowsAuditLogCreateConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AuditLogDestination" Data..=)+              Prelude.<$> auditLogDestination,+            Prelude.Just+              ( "FileAccessAuditLogLevel"+                  Data..= fileAccessAuditLogLevel+              ),+            Prelude.Just+              ( "FileShareAccessAuditLogLevel"+                  Data..= fileShareAccessAuditLogLevel+              )+          ]+      )
+ gen/Amazonka/FSx/Types/WindowsDeploymentType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Types.WindowsDeploymentType+-- 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.WindowsDeploymentType+  ( WindowsDeploymentType+      ( ..,+        WindowsDeploymentType_MULTI_AZ_1,+        WindowsDeploymentType_SINGLE_AZ_1,+        WindowsDeploymentType_SINGLE_AZ_2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WindowsDeploymentType = WindowsDeploymentType'+  { fromWindowsDeploymentType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern WindowsDeploymentType_MULTI_AZ_1 :: WindowsDeploymentType+pattern WindowsDeploymentType_MULTI_AZ_1 = WindowsDeploymentType' "MULTI_AZ_1"++pattern WindowsDeploymentType_SINGLE_AZ_1 :: WindowsDeploymentType+pattern WindowsDeploymentType_SINGLE_AZ_1 = WindowsDeploymentType' "SINGLE_AZ_1"++pattern WindowsDeploymentType_SINGLE_AZ_2 :: WindowsDeploymentType+pattern WindowsDeploymentType_SINGLE_AZ_2 = WindowsDeploymentType' "SINGLE_AZ_2"++{-# COMPLETE+  WindowsDeploymentType_MULTI_AZ_1,+  WindowsDeploymentType_SINGLE_AZ_1,+  WindowsDeploymentType_SINGLE_AZ_2,+  WindowsDeploymentType'+  #-}
+ gen/Amazonka/FSx/Types/WindowsFileSystemConfiguration.hs view
@@ -0,0 +1,426 @@+{-# 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.WindowsFileSystemConfiguration+-- 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.WindowsFileSystemConfiguration 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.Alias+import Amazonka.FSx.Types.FileSystemMaintenanceOperation+import Amazonka.FSx.Types.SelfManagedActiveDirectoryAttributes+import Amazonka.FSx.Types.WindowsAuditLogConfiguration+import Amazonka.FSx.Types.WindowsDeploymentType+import qualified Amazonka.Prelude as Prelude++-- | The configuration for this Microsoft Windows file system.+--+-- /See:/ 'newWindowsFileSystemConfiguration' smart constructor.+data WindowsFileSystemConfiguration = WindowsFileSystemConfiguration'+  { -- | The ID for an existing Amazon Web Services Managed Microsoft Active+    -- Directory instance that the file system is joined to.+    activeDirectoryId :: Prelude.Maybe Prelude.Text,+    aliases :: Prelude.Maybe [Alias],+    -- | The configuration that Amazon FSx for Windows File Server uses to audit+    -- and log user accesses of files, folders, and file shares on the Amazon+    -- FSx for Windows File Server file system.+    auditLogConfiguration :: Prelude.Maybe WindowsAuditLogConfiguration,+    -- | The number of days to retain automatic backups. Setting this to 0+    -- disables automatic backups. You can retain automatic backups for a+    -- maximum of 90 days.+    automaticBackupRetentionDays :: Prelude.Maybe Prelude.Natural,+    -- | A boolean flag indicating whether tags on the file system should be+    -- copied to backups. This value defaults to false. If it\'s set to true,+    -- all tags on the file system are copied to all automatic backups and any+    -- user-initiated backups where the user doesn\'t specify any tags. If this+    -- value is true, and you specify one or more tags, only the specified tags+    -- are copied to backups. If you specify one or more tags when creating a+    -- user-initiated backup, no tags are copied from the file system,+    -- regardless of this value.+    copyTagsToBackups :: Prelude.Maybe Prelude.Bool,+    -- | The preferred time to take daily automatic backups, in the UTC time+    -- zone.+    dailyAutomaticBackupStartTime :: Prelude.Maybe Prelude.Text,+    -- | Specifies the file system deployment type, valid values are the+    -- following:+    --+    -- -   @MULTI_AZ_1@ - Specifies a high availability file system that is+    --     configured for Multi-AZ redundancy to tolerate temporary+    --     Availability Zone (AZ) unavailability, and supports SSD and HDD+    --     storage.+    --+    -- -   @SINGLE_AZ_1@ - (Default) Specifies a file system that is configured+    --     for single AZ redundancy, only supports SSD storage.+    --+    -- -   @SINGLE_AZ_2@ - Latest generation Single AZ file system. Specifies a+    --     file system that is configured for single AZ redundancy and supports+    --     SSD and HDD storage.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Single-AZ and Multi-AZ File Systems>.+    deploymentType :: Prelude.Maybe WindowsDeploymentType,+    -- | The list of maintenance operations in progress for this file system.+    maintenanceOperationsInProgress :: Prelude.Maybe [FileSystemMaintenanceOperation],+    -- | For @MULTI_AZ_1@ deployment types, the IP address of the primary, or+    -- preferred, file server.+    --+    -- Use this IP address when mounting the file system on Linux SMB clients+    -- or Windows SMB clients that are not joined to a Microsoft Active+    -- Directory. Applicable for all Windows file system deployment types. This+    -- IP address is temporarily unavailable when the file system is undergoing+    -- maintenance. For Linux and Windows SMB clients that are joined to an+    -- Active Directory, use the file system\'s DNSName instead. For more+    -- information on mapping and mounting file shares, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/accessing-file-shares.html Accessing File Shares>.+    preferredFileServerIp :: Prelude.Maybe Prelude.Text,+    -- | For @MULTI_AZ_1@ deployment types, it specifies the ID of the subnet+    -- where the preferred file server is located. Must be one of the two+    -- subnet IDs specified in @SubnetIds@ property. Amazon FSx serves traffic+    -- from this subnet except in the event of a failover to the secondary file+    -- server.+    --+    -- For @SINGLE_AZ_1@ and @SINGLE_AZ_2@ deployment types, this value is the+    -- same as that for @SubnetIDs@. For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html#single-multi-az-resources Availability and durability: Single-AZ and Multi-AZ file systems>.+    preferredSubnetId :: Prelude.Maybe Prelude.Text,+    -- | For @MULTI_AZ_1@ deployment types, use this endpoint when performing+    -- administrative tasks on the file system using Amazon FSx Remote+    -- PowerShell.+    --+    -- For @SINGLE_AZ_1@ and @SINGLE_AZ_2@ deployment types, this is the DNS+    -- name of the file system.+    --+    -- This endpoint is temporarily unavailable when the file system is+    -- undergoing maintenance.+    remoteAdministrationEndpoint :: Prelude.Maybe Prelude.Text,+    selfManagedActiveDirectoryConfiguration :: Prelude.Maybe SelfManagedActiveDirectoryAttributes,+    -- | The throughput of the Amazon FSx file system, measured in megabytes per+    -- second.+    throughputCapacity :: Prelude.Maybe Prelude.Natural,+    -- | 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 'WindowsFileSystemConfiguration' 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:+--+-- 'activeDirectoryId', 'windowsFileSystemConfiguration_activeDirectoryId' - The ID for an existing Amazon Web Services Managed Microsoft Active+-- Directory instance that the file system is joined to.+--+-- 'aliases', 'windowsFileSystemConfiguration_aliases' - Undocumented member.+--+-- 'auditLogConfiguration', 'windowsFileSystemConfiguration_auditLogConfiguration' - The configuration that Amazon FSx for Windows File Server uses to audit+-- and log user accesses of files, folders, and file shares on the Amazon+-- FSx for Windows File Server file system.+--+-- 'automaticBackupRetentionDays', 'windowsFileSystemConfiguration_automaticBackupRetentionDays' - The number of days to retain automatic backups. Setting this to 0+-- disables automatic backups. You can retain automatic backups for a+-- maximum of 90 days.+--+-- 'copyTagsToBackups', 'windowsFileSystemConfiguration_copyTagsToBackups' - A boolean flag indicating whether tags on the file system should be+-- copied to backups. This value defaults to false. If it\'s set to true,+-- all tags on the file system are copied to all automatic backups and any+-- user-initiated backups where the user doesn\'t specify any tags. If this+-- value is true, and you specify one or more tags, only the specified tags+-- are copied to backups. If you specify one or more tags when creating a+-- user-initiated backup, no tags are copied from the file system,+-- regardless of this value.+--+-- 'dailyAutomaticBackupStartTime', 'windowsFileSystemConfiguration_dailyAutomaticBackupStartTime' - The preferred time to take daily automatic backups, in the UTC time+-- zone.+--+-- 'deploymentType', 'windowsFileSystemConfiguration_deploymentType' - Specifies the file system deployment type, valid values are the+-- following:+--+-- -   @MULTI_AZ_1@ - Specifies a high availability file system that is+--     configured for Multi-AZ redundancy to tolerate temporary+--     Availability Zone (AZ) unavailability, and supports SSD and HDD+--     storage.+--+-- -   @SINGLE_AZ_1@ - (Default) Specifies a file system that is configured+--     for single AZ redundancy, only supports SSD storage.+--+-- -   @SINGLE_AZ_2@ - Latest generation Single AZ file system. Specifies a+--     file system that is configured for single AZ redundancy and supports+--     SSD and HDD storage.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Single-AZ and Multi-AZ File Systems>.+--+-- 'maintenanceOperationsInProgress', 'windowsFileSystemConfiguration_maintenanceOperationsInProgress' - The list of maintenance operations in progress for this file system.+--+-- 'preferredFileServerIp', 'windowsFileSystemConfiguration_preferredFileServerIp' - For @MULTI_AZ_1@ deployment types, the IP address of the primary, or+-- preferred, file server.+--+-- Use this IP address when mounting the file system on Linux SMB clients+-- or Windows SMB clients that are not joined to a Microsoft Active+-- Directory. Applicable for all Windows file system deployment types. This+-- IP address is temporarily unavailable when the file system is undergoing+-- maintenance. For Linux and Windows SMB clients that are joined to an+-- Active Directory, use the file system\'s DNSName instead. For more+-- information on mapping and mounting file shares, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/accessing-file-shares.html Accessing File Shares>.+--+-- 'preferredSubnetId', 'windowsFileSystemConfiguration_preferredSubnetId' - For @MULTI_AZ_1@ deployment types, it specifies the ID of the subnet+-- where the preferred file server is located. Must be one of the two+-- subnet IDs specified in @SubnetIds@ property. Amazon FSx serves traffic+-- from this subnet except in the event of a failover to the secondary file+-- server.+--+-- For @SINGLE_AZ_1@ and @SINGLE_AZ_2@ deployment types, this value is the+-- same as that for @SubnetIDs@. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html#single-multi-az-resources Availability and durability: Single-AZ and Multi-AZ file systems>.+--+-- 'remoteAdministrationEndpoint', 'windowsFileSystemConfiguration_remoteAdministrationEndpoint' - For @MULTI_AZ_1@ deployment types, use this endpoint when performing+-- administrative tasks on the file system using Amazon FSx Remote+-- PowerShell.+--+-- For @SINGLE_AZ_1@ and @SINGLE_AZ_2@ deployment types, this is the DNS+-- name of the file system.+--+-- This endpoint is temporarily unavailable when the file system is+-- undergoing maintenance.+--+-- 'selfManagedActiveDirectoryConfiguration', 'windowsFileSystemConfiguration_selfManagedActiveDirectoryConfiguration' - Undocumented member.+--+-- 'throughputCapacity', 'windowsFileSystemConfiguration_throughputCapacity' - The throughput of the Amazon FSx file system, measured in megabytes per+-- second.+--+-- 'weeklyMaintenanceStartTime', 'windowsFileSystemConfiguration_weeklyMaintenanceStartTime' - 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.+newWindowsFileSystemConfiguration ::+  WindowsFileSystemConfiguration+newWindowsFileSystemConfiguration =+  WindowsFileSystemConfiguration'+    { activeDirectoryId =+        Prelude.Nothing,+      aliases = Prelude.Nothing,+      auditLogConfiguration = Prelude.Nothing,+      automaticBackupRetentionDays =+        Prelude.Nothing,+      copyTagsToBackups = Prelude.Nothing,+      dailyAutomaticBackupStartTime =+        Prelude.Nothing,+      deploymentType = Prelude.Nothing,+      maintenanceOperationsInProgress =+        Prelude.Nothing,+      preferredFileServerIp = Prelude.Nothing,+      preferredSubnetId = Prelude.Nothing,+      remoteAdministrationEndpoint =+        Prelude.Nothing,+      selfManagedActiveDirectoryConfiguration =+        Prelude.Nothing,+      throughputCapacity = Prelude.Nothing,+      weeklyMaintenanceStartTime =+        Prelude.Nothing+    }++-- | The ID for an existing Amazon Web Services Managed Microsoft Active+-- Directory instance that the file system is joined to.+windowsFileSystemConfiguration_activeDirectoryId :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Text)+windowsFileSystemConfiguration_activeDirectoryId = Lens.lens (\WindowsFileSystemConfiguration' {activeDirectoryId} -> activeDirectoryId) (\s@WindowsFileSystemConfiguration' {} a -> s {activeDirectoryId = a} :: WindowsFileSystemConfiguration)++-- | Undocumented member.+windowsFileSystemConfiguration_aliases :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe [Alias])+windowsFileSystemConfiguration_aliases = Lens.lens (\WindowsFileSystemConfiguration' {aliases} -> aliases) (\s@WindowsFileSystemConfiguration' {} a -> s {aliases = a} :: WindowsFileSystemConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The configuration that Amazon FSx for Windows File Server uses to audit+-- and log user accesses of files, folders, and file shares on the Amazon+-- FSx for Windows File Server file system.+windowsFileSystemConfiguration_auditLogConfiguration :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe WindowsAuditLogConfiguration)+windowsFileSystemConfiguration_auditLogConfiguration = Lens.lens (\WindowsFileSystemConfiguration' {auditLogConfiguration} -> auditLogConfiguration) (\s@WindowsFileSystemConfiguration' {} a -> s {auditLogConfiguration = a} :: WindowsFileSystemConfiguration)++-- | The number of days to retain automatic backups. Setting this to 0+-- disables automatic backups. You can retain automatic backups for a+-- maximum of 90 days.+windowsFileSystemConfiguration_automaticBackupRetentionDays :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+windowsFileSystemConfiguration_automaticBackupRetentionDays = Lens.lens (\WindowsFileSystemConfiguration' {automaticBackupRetentionDays} -> automaticBackupRetentionDays) (\s@WindowsFileSystemConfiguration' {} a -> s {automaticBackupRetentionDays = a} :: WindowsFileSystemConfiguration)++-- | A boolean flag indicating whether tags on the file system should be+-- copied to backups. This value defaults to false. If it\'s set to true,+-- all tags on the file system are copied to all automatic backups and any+-- user-initiated backups where the user doesn\'t specify any tags. If this+-- value is true, and you specify one or more tags, only the specified tags+-- are copied to backups. If you specify one or more tags when creating a+-- user-initiated backup, no tags are copied from the file system,+-- regardless of this value.+windowsFileSystemConfiguration_copyTagsToBackups :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Bool)+windowsFileSystemConfiguration_copyTagsToBackups = Lens.lens (\WindowsFileSystemConfiguration' {copyTagsToBackups} -> copyTagsToBackups) (\s@WindowsFileSystemConfiguration' {} a -> s {copyTagsToBackups = a} :: WindowsFileSystemConfiguration)++-- | The preferred time to take daily automatic backups, in the UTC time+-- zone.+windowsFileSystemConfiguration_dailyAutomaticBackupStartTime :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Text)+windowsFileSystemConfiguration_dailyAutomaticBackupStartTime = Lens.lens (\WindowsFileSystemConfiguration' {dailyAutomaticBackupStartTime} -> dailyAutomaticBackupStartTime) (\s@WindowsFileSystemConfiguration' {} a -> s {dailyAutomaticBackupStartTime = a} :: WindowsFileSystemConfiguration)++-- | Specifies the file system deployment type, valid values are the+-- following:+--+-- -   @MULTI_AZ_1@ - Specifies a high availability file system that is+--     configured for Multi-AZ redundancy to tolerate temporary+--     Availability Zone (AZ) unavailability, and supports SSD and HDD+--     storage.+--+-- -   @SINGLE_AZ_1@ - (Default) Specifies a file system that is configured+--     for single AZ redundancy, only supports SSD storage.+--+-- -   @SINGLE_AZ_2@ - Latest generation Single AZ file system. Specifies a+--     file system that is configured for single AZ redundancy and supports+--     SSD and HDD storage.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html Single-AZ and Multi-AZ File Systems>.+windowsFileSystemConfiguration_deploymentType :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe WindowsDeploymentType)+windowsFileSystemConfiguration_deploymentType = Lens.lens (\WindowsFileSystemConfiguration' {deploymentType} -> deploymentType) (\s@WindowsFileSystemConfiguration' {} a -> s {deploymentType = a} :: WindowsFileSystemConfiguration)++-- | The list of maintenance operations in progress for this file system.+windowsFileSystemConfiguration_maintenanceOperationsInProgress :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe [FileSystemMaintenanceOperation])+windowsFileSystemConfiguration_maintenanceOperationsInProgress = Lens.lens (\WindowsFileSystemConfiguration' {maintenanceOperationsInProgress} -> maintenanceOperationsInProgress) (\s@WindowsFileSystemConfiguration' {} a -> s {maintenanceOperationsInProgress = a} :: WindowsFileSystemConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | For @MULTI_AZ_1@ deployment types, the IP address of the primary, or+-- preferred, file server.+--+-- Use this IP address when mounting the file system on Linux SMB clients+-- or Windows SMB clients that are not joined to a Microsoft Active+-- Directory. Applicable for all Windows file system deployment types. This+-- IP address is temporarily unavailable when the file system is undergoing+-- maintenance. For Linux and Windows SMB clients that are joined to an+-- Active Directory, use the file system\'s DNSName instead. For more+-- information on mapping and mounting file shares, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/accessing-file-shares.html Accessing File Shares>.+windowsFileSystemConfiguration_preferredFileServerIp :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Text)+windowsFileSystemConfiguration_preferredFileServerIp = Lens.lens (\WindowsFileSystemConfiguration' {preferredFileServerIp} -> preferredFileServerIp) (\s@WindowsFileSystemConfiguration' {} a -> s {preferredFileServerIp = a} :: WindowsFileSystemConfiguration)++-- | For @MULTI_AZ_1@ deployment types, it specifies the ID of the subnet+-- where the preferred file server is located. Must be one of the two+-- subnet IDs specified in @SubnetIds@ property. Amazon FSx serves traffic+-- from this subnet except in the event of a failover to the secondary file+-- server.+--+-- For @SINGLE_AZ_1@ and @SINGLE_AZ_2@ deployment types, this value is the+-- same as that for @SubnetIDs@. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/high-availability-multiAZ.html#single-multi-az-resources Availability and durability: Single-AZ and Multi-AZ file systems>.+windowsFileSystemConfiguration_preferredSubnetId :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Text)+windowsFileSystemConfiguration_preferredSubnetId = Lens.lens (\WindowsFileSystemConfiguration' {preferredSubnetId} -> preferredSubnetId) (\s@WindowsFileSystemConfiguration' {} a -> s {preferredSubnetId = a} :: WindowsFileSystemConfiguration)++-- | For @MULTI_AZ_1@ deployment types, use this endpoint when performing+-- administrative tasks on the file system using Amazon FSx Remote+-- PowerShell.+--+-- For @SINGLE_AZ_1@ and @SINGLE_AZ_2@ deployment types, this is the DNS+-- name of the file system.+--+-- This endpoint is temporarily unavailable when the file system is+-- undergoing maintenance.+windowsFileSystemConfiguration_remoteAdministrationEndpoint :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Text)+windowsFileSystemConfiguration_remoteAdministrationEndpoint = Lens.lens (\WindowsFileSystemConfiguration' {remoteAdministrationEndpoint} -> remoteAdministrationEndpoint) (\s@WindowsFileSystemConfiguration' {} a -> s {remoteAdministrationEndpoint = a} :: WindowsFileSystemConfiguration)++-- | Undocumented member.+windowsFileSystemConfiguration_selfManagedActiveDirectoryConfiguration :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe SelfManagedActiveDirectoryAttributes)+windowsFileSystemConfiguration_selfManagedActiveDirectoryConfiguration = Lens.lens (\WindowsFileSystemConfiguration' {selfManagedActiveDirectoryConfiguration} -> selfManagedActiveDirectoryConfiguration) (\s@WindowsFileSystemConfiguration' {} a -> s {selfManagedActiveDirectoryConfiguration = a} :: WindowsFileSystemConfiguration)++-- | The throughput of the Amazon FSx file system, measured in megabytes per+-- second.+windowsFileSystemConfiguration_throughputCapacity :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Natural)+windowsFileSystemConfiguration_throughputCapacity = Lens.lens (\WindowsFileSystemConfiguration' {throughputCapacity} -> throughputCapacity) (\s@WindowsFileSystemConfiguration' {} a -> s {throughputCapacity = a} :: WindowsFileSystemConfiguration)++-- | 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.+windowsFileSystemConfiguration_weeklyMaintenanceStartTime :: Lens.Lens' WindowsFileSystemConfiguration (Prelude.Maybe Prelude.Text)+windowsFileSystemConfiguration_weeklyMaintenanceStartTime = Lens.lens (\WindowsFileSystemConfiguration' {weeklyMaintenanceStartTime} -> weeklyMaintenanceStartTime) (\s@WindowsFileSystemConfiguration' {} a -> s {weeklyMaintenanceStartTime = a} :: WindowsFileSystemConfiguration)++instance Data.FromJSON WindowsFileSystemConfiguration where+  parseJSON =+    Data.withObject+      "WindowsFileSystemConfiguration"+      ( \x ->+          WindowsFileSystemConfiguration'+            Prelude.<$> (x Data..:? "ActiveDirectoryId")+            Prelude.<*> (x Data..:? "Aliases" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "AuditLogConfiguration")+            Prelude.<*> (x Data..:? "AutomaticBackupRetentionDays")+            Prelude.<*> (x Data..:? "CopyTagsToBackups")+            Prelude.<*> (x Data..:? "DailyAutomaticBackupStartTime")+            Prelude.<*> (x Data..:? "DeploymentType")+            Prelude.<*> ( x+                            Data..:? "MaintenanceOperationsInProgress"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "PreferredFileServerIp")+            Prelude.<*> (x Data..:? "PreferredSubnetId")+            Prelude.<*> (x Data..:? "RemoteAdministrationEndpoint")+            Prelude.<*> ( x+                            Data..:? "SelfManagedActiveDirectoryConfiguration"+                        )+            Prelude.<*> (x Data..:? "ThroughputCapacity")+            Prelude.<*> (x Data..:? "WeeklyMaintenanceStartTime")+      )++instance+  Prelude.Hashable+    WindowsFileSystemConfiguration+  where+  hashWithSalt+    _salt+    WindowsFileSystemConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` activeDirectoryId+        `Prelude.hashWithSalt` aliases+        `Prelude.hashWithSalt` auditLogConfiguration+        `Prelude.hashWithSalt` automaticBackupRetentionDays+        `Prelude.hashWithSalt` copyTagsToBackups+        `Prelude.hashWithSalt` dailyAutomaticBackupStartTime+        `Prelude.hashWithSalt` deploymentType+        `Prelude.hashWithSalt` maintenanceOperationsInProgress+        `Prelude.hashWithSalt` preferredFileServerIp+        `Prelude.hashWithSalt` preferredSubnetId+        `Prelude.hashWithSalt` remoteAdministrationEndpoint+        `Prelude.hashWithSalt` selfManagedActiveDirectoryConfiguration+        `Prelude.hashWithSalt` throughputCapacity+        `Prelude.hashWithSalt` weeklyMaintenanceStartTime++instance+  Prelude.NFData+    WindowsFileSystemConfiguration+  where+  rnf WindowsFileSystemConfiguration' {..} =+    Prelude.rnf activeDirectoryId+      `Prelude.seq` Prelude.rnf aliases+      `Prelude.seq` Prelude.rnf auditLogConfiguration+      `Prelude.seq` Prelude.rnf automaticBackupRetentionDays+      `Prelude.seq` Prelude.rnf copyTagsToBackups+      `Prelude.seq` Prelude.rnf dailyAutomaticBackupStartTime+      `Prelude.seq` Prelude.rnf deploymentType+      `Prelude.seq` Prelude.rnf maintenanceOperationsInProgress+      `Prelude.seq` Prelude.rnf preferredFileServerIp+      `Prelude.seq` Prelude.rnf preferredSubnetId+      `Prelude.seq` Prelude.rnf remoteAdministrationEndpoint+      `Prelude.seq` Prelude.rnf+        selfManagedActiveDirectoryConfiguration+      `Prelude.seq` Prelude.rnf throughputCapacity+      `Prelude.seq` Prelude.rnf weeklyMaintenanceStartTime
+ gen/Amazonka/FSx/UntagResource.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This action removes a tag from an Amazon FSx resource.+module Amazonka.FSx.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceARN,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for @UntagResource@ action.+--+-- /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The ARN of the Amazon FSx resource to untag.+    resourceARN :: Prelude.Text,+    -- | A list of keys of tags on the resource to untag. In case the tag key+    -- doesn\'t exist, the call will still succeed to be idempotent.+    tagKeys :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' 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:+--+-- 'resourceARN', 'untagResource_resourceARN' - The ARN of the Amazon FSx resource to untag.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of keys of tags on the resource to untag. In case the tag key+-- doesn\'t exist, the call will still succeed to be idempotent.+newUntagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  -- | 'tagKeys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceARN_ pTagKeys_ =+  UntagResource'+    { resourceARN = pResourceARN_,+      tagKeys = Lens.coerced Lens.# pTagKeys_+    }++-- | The ARN of the Amazon FSx resource to untag.+untagResource_resourceARN :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceARN = Lens.lens (\UntagResource' {resourceARN} -> resourceARN) (\s@UntagResource' {} a -> s {resourceARN = a} :: UntagResource)++-- | A list of keys of tags on the resource to untag. In case the tag key+-- doesn\'t exist, the call will still succeed to be idempotent.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.UntagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UntagResource where+  toJSON UntagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("TagKeys" Data..= tagKeys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for @UntagResource@ action.+--+-- /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' 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:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/FSx/UpdateDataRepositoryAssociation.hs view
@@ -0,0 +1,274 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.UpdateDataRepositoryAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the configuration of an existing data repository association on+-- an Amazon FSx for Lustre file system. Data repository associations are+-- supported only for file systems with the @Persistent_2@ deployment type.+module Amazonka.FSx.UpdateDataRepositoryAssociation+  ( -- * Creating a Request+    UpdateDataRepositoryAssociation (..),+    newUpdateDataRepositoryAssociation,++    -- * Request Lenses+    updateDataRepositoryAssociation_clientRequestToken,+    updateDataRepositoryAssociation_importedFileChunkSize,+    updateDataRepositoryAssociation_s3,+    updateDataRepositoryAssociation_associationId,++    -- * Destructuring the Response+    UpdateDataRepositoryAssociationResponse (..),+    newUpdateDataRepositoryAssociationResponse,++    -- * Response Lenses+    updateDataRepositoryAssociationResponse_association,+    updateDataRepositoryAssociationResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDataRepositoryAssociation' smart constructor.+data UpdateDataRepositoryAssociation = UpdateDataRepositoryAssociation'+  { clientRequestToken :: 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.+    importedFileChunkSize :: Prelude.Maybe Prelude.Natural,+    -- | The configuration for an Amazon S3 data repository linked to an Amazon+    -- FSx Lustre file system with a data repository association. The+    -- configuration defines which file events (new, changed, or deleted files+    -- or directories) are automatically imported from the linked data+    -- repository to the file system or automatically exported from the file+    -- system to the data repository.+    s3 :: Prelude.Maybe S3DataRepositoryConfiguration,+    -- | The ID of the data repository association that you are updating.+    associationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDataRepositoryAssociation' 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:+--+-- 'clientRequestToken', 'updateDataRepositoryAssociation_clientRequestToken' - Undocumented member.+--+-- 'importedFileChunkSize', 'updateDataRepositoryAssociation_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.+--+-- 's3', 'updateDataRepositoryAssociation_s3' - The configuration for an Amazon S3 data repository linked to an Amazon+-- FSx Lustre file system with a data repository association. The+-- configuration defines which file events (new, changed, or deleted files+-- or directories) are automatically imported from the linked data+-- repository to the file system or automatically exported from the file+-- system to the data repository.+--+-- 'associationId', 'updateDataRepositoryAssociation_associationId' - The ID of the data repository association that you are updating.+newUpdateDataRepositoryAssociation ::+  -- | 'associationId'+  Prelude.Text ->+  UpdateDataRepositoryAssociation+newUpdateDataRepositoryAssociation pAssociationId_ =+  UpdateDataRepositoryAssociation'+    { clientRequestToken =+        Prelude.Nothing,+      importedFileChunkSize = Prelude.Nothing,+      s3 = Prelude.Nothing,+      associationId = pAssociationId_+    }++-- | Undocumented member.+updateDataRepositoryAssociation_clientRequestToken :: Lens.Lens' UpdateDataRepositoryAssociation (Prelude.Maybe Prelude.Text)+updateDataRepositoryAssociation_clientRequestToken = Lens.lens (\UpdateDataRepositoryAssociation' {clientRequestToken} -> clientRequestToken) (\s@UpdateDataRepositoryAssociation' {} a -> s {clientRequestToken = a} :: UpdateDataRepositoryAssociation)++-- | 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.+updateDataRepositoryAssociation_importedFileChunkSize :: Lens.Lens' UpdateDataRepositoryAssociation (Prelude.Maybe Prelude.Natural)+updateDataRepositoryAssociation_importedFileChunkSize = Lens.lens (\UpdateDataRepositoryAssociation' {importedFileChunkSize} -> importedFileChunkSize) (\s@UpdateDataRepositoryAssociation' {} a -> s {importedFileChunkSize = a} :: UpdateDataRepositoryAssociation)++-- | The configuration for an Amazon S3 data repository linked to an Amazon+-- FSx Lustre file system with a data repository association. The+-- configuration defines which file events (new, changed, or deleted files+-- or directories) are automatically imported from the linked data+-- repository to the file system or automatically exported from the file+-- system to the data repository.+updateDataRepositoryAssociation_s3 :: Lens.Lens' UpdateDataRepositoryAssociation (Prelude.Maybe S3DataRepositoryConfiguration)+updateDataRepositoryAssociation_s3 = Lens.lens (\UpdateDataRepositoryAssociation' {s3} -> s3) (\s@UpdateDataRepositoryAssociation' {} a -> s {s3 = a} :: UpdateDataRepositoryAssociation)++-- | The ID of the data repository association that you are updating.+updateDataRepositoryAssociation_associationId :: Lens.Lens' UpdateDataRepositoryAssociation Prelude.Text+updateDataRepositoryAssociation_associationId = Lens.lens (\UpdateDataRepositoryAssociation' {associationId} -> associationId) (\s@UpdateDataRepositoryAssociation' {} a -> s {associationId = a} :: UpdateDataRepositoryAssociation)++instance+  Core.AWSRequest+    UpdateDataRepositoryAssociation+  where+  type+    AWSResponse UpdateDataRepositoryAssociation =+      UpdateDataRepositoryAssociationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDataRepositoryAssociationResponse'+            Prelude.<$> (x Data..?> "Association")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateDataRepositoryAssociation+  where+  hashWithSalt+    _salt+    UpdateDataRepositoryAssociation' {..} =+      _salt+        `Prelude.hashWithSalt` clientRequestToken+        `Prelude.hashWithSalt` importedFileChunkSize+        `Prelude.hashWithSalt` s3+        `Prelude.hashWithSalt` associationId++instance+  Prelude.NFData+    UpdateDataRepositoryAssociation+  where+  rnf UpdateDataRepositoryAssociation' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf importedFileChunkSize+      `Prelude.seq` Prelude.rnf s3+      `Prelude.seq` Prelude.rnf associationId++instance+  Data.ToHeaders+    UpdateDataRepositoryAssociation+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.UpdateDataRepositoryAssociation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDataRepositoryAssociation where+  toJSON UpdateDataRepositoryAssociation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("ImportedFileChunkSize" Data..=)+              Prelude.<$> importedFileChunkSize,+            ("S3" Data..=) Prelude.<$> s3,+            Prelude.Just+              ("AssociationId" Data..= associationId)+          ]+      )++instance Data.ToPath UpdateDataRepositoryAssociation where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateDataRepositoryAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDataRepositoryAssociationResponse' smart constructor.+data UpdateDataRepositoryAssociationResponse = UpdateDataRepositoryAssociationResponse'+  { -- | The response object returned after the data repository association is+    -- updated.+    association :: Prelude.Maybe DataRepositoryAssociation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDataRepositoryAssociationResponse' 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:+--+-- 'association', 'updateDataRepositoryAssociationResponse_association' - The response object returned after the data repository association is+-- updated.+--+-- 'httpStatus', 'updateDataRepositoryAssociationResponse_httpStatus' - The response's http status code.+newUpdateDataRepositoryAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDataRepositoryAssociationResponse+newUpdateDataRepositoryAssociationResponse+  pHttpStatus_ =+    UpdateDataRepositoryAssociationResponse'+      { association =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The response object returned after the data repository association is+-- updated.+updateDataRepositoryAssociationResponse_association :: Lens.Lens' UpdateDataRepositoryAssociationResponse (Prelude.Maybe DataRepositoryAssociation)+updateDataRepositoryAssociationResponse_association = Lens.lens (\UpdateDataRepositoryAssociationResponse' {association} -> association) (\s@UpdateDataRepositoryAssociationResponse' {} a -> s {association = a} :: UpdateDataRepositoryAssociationResponse)++-- | The response's http status code.+updateDataRepositoryAssociationResponse_httpStatus :: Lens.Lens' UpdateDataRepositoryAssociationResponse Prelude.Int+updateDataRepositoryAssociationResponse_httpStatus = Lens.lens (\UpdateDataRepositoryAssociationResponse' {httpStatus} -> httpStatus) (\s@UpdateDataRepositoryAssociationResponse' {} a -> s {httpStatus = a} :: UpdateDataRepositoryAssociationResponse)++instance+  Prelude.NFData+    UpdateDataRepositoryAssociationResponse+  where+  rnf UpdateDataRepositoryAssociationResponse' {..} =+    Prelude.rnf association+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/UpdateFileCache.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.UpdateFileCache+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the configuration of an existing Amazon File Cache resource. You+-- can update multiple properties in a single request.+module Amazonka.FSx.UpdateFileCache+  ( -- * Creating a Request+    UpdateFileCache (..),+    newUpdateFileCache,++    -- * Request Lenses+    updateFileCache_clientRequestToken,+    updateFileCache_lustreConfiguration,+    updateFileCache_fileCacheId,++    -- * Destructuring the Response+    UpdateFileCacheResponse (..),+    newUpdateFileCacheResponse,++    -- * Response Lenses+    updateFileCacheResponse_fileCache,+    updateFileCacheResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateFileCache' smart constructor.+data UpdateFileCache = UpdateFileCache'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The configuration updates for an Amazon File Cache resource.+    lustreConfiguration :: Prelude.Maybe UpdateFileCacheLustreConfiguration,+    -- | The ID of the cache that you are updating.+    fileCacheId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileCache' 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:+--+-- 'clientRequestToken', 'updateFileCache_clientRequestToken' - Undocumented member.+--+-- 'lustreConfiguration', 'updateFileCache_lustreConfiguration' - The configuration updates for an Amazon File Cache resource.+--+-- 'fileCacheId', 'updateFileCache_fileCacheId' - The ID of the cache that you are updating.+newUpdateFileCache ::+  -- | 'fileCacheId'+  Prelude.Text ->+  UpdateFileCache+newUpdateFileCache pFileCacheId_ =+  UpdateFileCache'+    { clientRequestToken =+        Prelude.Nothing,+      lustreConfiguration = Prelude.Nothing,+      fileCacheId = pFileCacheId_+    }++-- | Undocumented member.+updateFileCache_clientRequestToken :: Lens.Lens' UpdateFileCache (Prelude.Maybe Prelude.Text)+updateFileCache_clientRequestToken = Lens.lens (\UpdateFileCache' {clientRequestToken} -> clientRequestToken) (\s@UpdateFileCache' {} a -> s {clientRequestToken = a} :: UpdateFileCache)++-- | The configuration updates for an Amazon File Cache resource.+updateFileCache_lustreConfiguration :: Lens.Lens' UpdateFileCache (Prelude.Maybe UpdateFileCacheLustreConfiguration)+updateFileCache_lustreConfiguration = Lens.lens (\UpdateFileCache' {lustreConfiguration} -> lustreConfiguration) (\s@UpdateFileCache' {} a -> s {lustreConfiguration = a} :: UpdateFileCache)++-- | The ID of the cache that you are updating.+updateFileCache_fileCacheId :: Lens.Lens' UpdateFileCache Prelude.Text+updateFileCache_fileCacheId = Lens.lens (\UpdateFileCache' {fileCacheId} -> fileCacheId) (\s@UpdateFileCache' {} a -> s {fileCacheId = a} :: UpdateFileCache)++instance Core.AWSRequest UpdateFileCache where+  type+    AWSResponse UpdateFileCache =+      UpdateFileCacheResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFileCacheResponse'+            Prelude.<$> (x Data..?> "FileCache")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFileCache where+  hashWithSalt _salt UpdateFileCache' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` fileCacheId++instance Prelude.NFData UpdateFileCache where+  rnf UpdateFileCache' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf fileCacheId++instance Data.ToHeaders UpdateFileCache where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.UpdateFileCache" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFileCache where+  toJSON UpdateFileCache' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("LustreConfiguration" Data..=)+              Prelude.<$> lustreConfiguration,+            Prelude.Just ("FileCacheId" Data..= fileCacheId)+          ]+      )++instance Data.ToPath UpdateFileCache where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateFileCache where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFileCacheResponse' smart constructor.+data UpdateFileCacheResponse = UpdateFileCacheResponse'+  { -- | A description of the cache that was updated.+    fileCache :: Prelude.Maybe FileCache,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileCacheResponse' 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:+--+-- 'fileCache', 'updateFileCacheResponse_fileCache' - A description of the cache that was updated.+--+-- 'httpStatus', 'updateFileCacheResponse_httpStatus' - The response's http status code.+newUpdateFileCacheResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFileCacheResponse+newUpdateFileCacheResponse pHttpStatus_ =+  UpdateFileCacheResponse'+    { fileCache =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A description of the cache that was updated.+updateFileCacheResponse_fileCache :: Lens.Lens' UpdateFileCacheResponse (Prelude.Maybe FileCache)+updateFileCacheResponse_fileCache = Lens.lens (\UpdateFileCacheResponse' {fileCache} -> fileCache) (\s@UpdateFileCacheResponse' {} a -> s {fileCache = a} :: UpdateFileCacheResponse)++-- | The response's http status code.+updateFileCacheResponse_httpStatus :: Lens.Lens' UpdateFileCacheResponse Prelude.Int+updateFileCacheResponse_httpStatus = Lens.lens (\UpdateFileCacheResponse' {httpStatus} -> httpStatus) (\s@UpdateFileCacheResponse' {} a -> s {httpStatus = a} :: UpdateFileCacheResponse)++instance Prelude.NFData UpdateFileCacheResponse where+  rnf UpdateFileCacheResponse' {..} =+    Prelude.rnf fileCache+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/UpdateFileSystem.hs view
@@ -0,0 +1,456 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.UpdateFileSystem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use this operation to update the configuration of an existing Amazon FSx+-- file system. You can update multiple properties in a single request.+--+-- For Amazon FSx for Windows File Server file systems, you can update the+-- following properties:+--+-- -   @AuditLogConfiguration@+--+-- -   @AutomaticBackupRetentionDays@+--+-- -   @DailyAutomaticBackupStartTime@+--+-- -   @SelfManagedActiveDirectoryConfiguration@+--+-- -   @StorageCapacity@+--+-- -   @ThroughputCapacity@+--+-- -   @WeeklyMaintenanceStartTime@+--+-- For Amazon FSx for Lustre file systems, you can update the following+-- properties:+--+-- -   @AutoImportPolicy@+--+-- -   @AutomaticBackupRetentionDays@+--+-- -   @DailyAutomaticBackupStartTime@+--+-- -   @DataCompressionType@+--+-- -   @LustreRootSquashConfiguration@+--+-- -   @StorageCapacity@+--+-- -   @WeeklyMaintenanceStartTime@+--+-- For Amazon FSx for NetApp ONTAP file systems, you can update the+-- following properties:+--+-- -   @AutomaticBackupRetentionDays@+--+-- -   @DailyAutomaticBackupStartTime@+--+-- -   @DiskIopsConfiguration@+--+-- -   @FsxAdminPassword@+--+-- -   @StorageCapacity@+--+-- -   @ThroughputCapacity@+--+-- -   @WeeklyMaintenanceStartTime@+--+-- For the Amazon FSx for OpenZFS file systems, you can update the+-- following properties:+--+-- -   @AutomaticBackupRetentionDays@+--+-- -   @CopyTagsToBackups@+--+-- -   @CopyTagsToVolumes@+--+-- -   @DailyAutomaticBackupStartTime@+--+-- -   @ThroughputCapacity@+--+-- -   @WeeklyMaintenanceStartTime@+module Amazonka.FSx.UpdateFileSystem+  ( -- * Creating a Request+    UpdateFileSystem (..),+    newUpdateFileSystem,++    -- * Request Lenses+    updateFileSystem_clientRequestToken,+    updateFileSystem_lustreConfiguration,+    updateFileSystem_ontapConfiguration,+    updateFileSystem_openZFSConfiguration,+    updateFileSystem_storageCapacity,+    updateFileSystem_windowsConfiguration,+    updateFileSystem_fileSystemId,++    -- * Destructuring the Response+    UpdateFileSystemResponse (..),+    newUpdateFileSystemResponse,++    -- * Response Lenses+    updateFileSystemResponse_fileSystem,+    updateFileSystemResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The request object for the @UpdateFileSystem@ operation.+--+-- /See:/ 'newUpdateFileSystem' smart constructor.+data UpdateFileSystem = UpdateFileSystem'+  { -- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+    -- idempotent updates. This string is automatically filled on your behalf+    -- when you use the Command Line Interface (CLI) or an Amazon Web Services+    -- SDK.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    lustreConfiguration :: Prelude.Maybe UpdateFileSystemLustreConfiguration,+    ontapConfiguration :: Prelude.Maybe UpdateFileSystemOntapConfiguration,+    -- | The configuration updates for an Amazon FSx for OpenZFS file system.+    openZFSConfiguration :: Prelude.Maybe UpdateFileSystemOpenZFSConfiguration,+    -- | Use this parameter to increase the storage capacity of an Amazon FSx for+    -- Windows File Server, Amazon FSx for Lustre, or Amazon FSx for NetApp+    -- ONTAP file system. Specifies the storage capacity target value, in GiB,+    -- to increase the storage capacity for the file system that you\'re+    -- updating.+    --+    -- You can\'t make a storage capacity increase request if there is an+    -- existing storage capacity increase request in progress.+    --+    -- For Windows file systems, the storage capacity target value must be at+    -- least 10 percent greater than the current storage capacity value. To+    -- increase storage capacity, the file system must have at least 16 MBps of+    -- throughput capacity. For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html Managing storage capacity>+    -- in the /Amazon FSx for Windows File Server User Guide/.+    --+    -- For Lustre file systems, the storage capacity target value can be the+    -- following:+    --+    -- -   For @SCRATCH_2@, @PERSISTENT_1@, and @PERSISTENT_2 SSD@ deployment+    --     types, valid values are in multiples of 2400 GiB. The value must be+    --     greater than the current storage capacity.+    --+    -- -   For @PERSISTENT HDD@ file systems, valid values are multiples of+    --     6000 GiB for 12-MBps throughput per TiB file systems and multiples+    --     of 1800 GiB for 40-MBps throughput per TiB file systems. The values+    --     must be greater than the current storage capacity.+    --+    -- -   For @SCRATCH_1@ file systems, you can\'t increase the storage+    --     capacity.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html Managing storage and throughput capacity>+    -- in the /Amazon FSx for Lustre User Guide/.+    --+    -- For ONTAP file systems, the storage capacity target value must be at+    -- least 10 percent greater than the current storage capacity value. For+    -- more information, see+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-storage-capacity.html Managing storage capacity and provisioned IOPS>+    -- in the /Amazon FSx for NetApp ONTAP User Guide/.+    storageCapacity :: Prelude.Maybe Prelude.Natural,+    -- | The configuration updates for an Amazon FSx for Windows File Server file+    -- system.+    windowsConfiguration :: Prelude.Maybe UpdateFileSystemWindowsConfiguration,+    -- | The ID of the file system that you are updating.+    fileSystemId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileSystem' 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:+--+-- 'clientRequestToken', 'updateFileSystem_clientRequestToken' - A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent updates. This string is automatically filled on your behalf+-- when you use the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+--+-- 'lustreConfiguration', 'updateFileSystem_lustreConfiguration' - Undocumented member.+--+-- 'ontapConfiguration', 'updateFileSystem_ontapConfiguration' - Undocumented member.+--+-- 'openZFSConfiguration', 'updateFileSystem_openZFSConfiguration' - The configuration updates for an Amazon FSx for OpenZFS file system.+--+-- 'storageCapacity', 'updateFileSystem_storageCapacity' - Use this parameter to increase the storage capacity of an Amazon FSx for+-- Windows File Server, Amazon FSx for Lustre, or Amazon FSx for NetApp+-- ONTAP file system. Specifies the storage capacity target value, in GiB,+-- to increase the storage capacity for the file system that you\'re+-- updating.+--+-- You can\'t make a storage capacity increase request if there is an+-- existing storage capacity increase request in progress.+--+-- For Windows file systems, the storage capacity target value must be at+-- least 10 percent greater than the current storage capacity value. To+-- increase storage capacity, the file system must have at least 16 MBps of+-- throughput capacity. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html Managing storage capacity>+-- in the /Amazon FSx for Windows File Server User Guide/.+--+-- For Lustre file systems, the storage capacity target value can be the+-- following:+--+-- -   For @SCRATCH_2@, @PERSISTENT_1@, and @PERSISTENT_2 SSD@ deployment+--     types, valid values are in multiples of 2400 GiB. The value must be+--     greater than the current storage capacity.+--+-- -   For @PERSISTENT HDD@ file systems, valid values are multiples of+--     6000 GiB for 12-MBps throughput per TiB file systems and multiples+--     of 1800 GiB for 40-MBps throughput per TiB file systems. The values+--     must be greater than the current storage capacity.+--+-- -   For @SCRATCH_1@ file systems, you can\'t increase the storage+--     capacity.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html Managing storage and throughput capacity>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- For ONTAP file systems, the storage capacity target value must be at+-- least 10 percent greater than the current storage capacity value. For+-- more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-storage-capacity.html Managing storage capacity and provisioned IOPS>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+--+-- 'windowsConfiguration', 'updateFileSystem_windowsConfiguration' - The configuration updates for an Amazon FSx for Windows File Server file+-- system.+--+-- 'fileSystemId', 'updateFileSystem_fileSystemId' - The ID of the file system that you are updating.+newUpdateFileSystem ::+  -- | 'fileSystemId'+  Prelude.Text ->+  UpdateFileSystem+newUpdateFileSystem pFileSystemId_ =+  UpdateFileSystem'+    { clientRequestToken =+        Prelude.Nothing,+      lustreConfiguration = Prelude.Nothing,+      ontapConfiguration = Prelude.Nothing,+      openZFSConfiguration = Prelude.Nothing,+      storageCapacity = Prelude.Nothing,+      windowsConfiguration = Prelude.Nothing,+      fileSystemId = pFileSystemId_+    }++-- | A string of up to 64 ASCII characters that Amazon FSx uses to ensure+-- idempotent updates. This string is automatically filled on your behalf+-- when you use the Command Line Interface (CLI) or an Amazon Web Services+-- SDK.+updateFileSystem_clientRequestToken :: Lens.Lens' UpdateFileSystem (Prelude.Maybe Prelude.Text)+updateFileSystem_clientRequestToken = Lens.lens (\UpdateFileSystem' {clientRequestToken} -> clientRequestToken) (\s@UpdateFileSystem' {} a -> s {clientRequestToken = a} :: UpdateFileSystem)++-- | Undocumented member.+updateFileSystem_lustreConfiguration :: Lens.Lens' UpdateFileSystem (Prelude.Maybe UpdateFileSystemLustreConfiguration)+updateFileSystem_lustreConfiguration = Lens.lens (\UpdateFileSystem' {lustreConfiguration} -> lustreConfiguration) (\s@UpdateFileSystem' {} a -> s {lustreConfiguration = a} :: UpdateFileSystem)++-- | Undocumented member.+updateFileSystem_ontapConfiguration :: Lens.Lens' UpdateFileSystem (Prelude.Maybe UpdateFileSystemOntapConfiguration)+updateFileSystem_ontapConfiguration = Lens.lens (\UpdateFileSystem' {ontapConfiguration} -> ontapConfiguration) (\s@UpdateFileSystem' {} a -> s {ontapConfiguration = a} :: UpdateFileSystem)++-- | The configuration updates for an Amazon FSx for OpenZFS file system.+updateFileSystem_openZFSConfiguration :: Lens.Lens' UpdateFileSystem (Prelude.Maybe UpdateFileSystemOpenZFSConfiguration)+updateFileSystem_openZFSConfiguration = Lens.lens (\UpdateFileSystem' {openZFSConfiguration} -> openZFSConfiguration) (\s@UpdateFileSystem' {} a -> s {openZFSConfiguration = a} :: UpdateFileSystem)++-- | Use this parameter to increase the storage capacity of an Amazon FSx for+-- Windows File Server, Amazon FSx for Lustre, or Amazon FSx for NetApp+-- ONTAP file system. Specifies the storage capacity target value, in GiB,+-- to increase the storage capacity for the file system that you\'re+-- updating.+--+-- You can\'t make a storage capacity increase request if there is an+-- existing storage capacity increase request in progress.+--+-- For Windows file systems, the storage capacity target value must be at+-- least 10 percent greater than the current storage capacity value. To+-- increase storage capacity, the file system must have at least 16 MBps of+-- throughput capacity. For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-storage-capacity.html Managing storage capacity>+-- in the /Amazon FSx for Windows File Server User Guide/.+--+-- For Lustre file systems, the storage capacity target value can be the+-- following:+--+-- -   For @SCRATCH_2@, @PERSISTENT_1@, and @PERSISTENT_2 SSD@ deployment+--     types, valid values are in multiples of 2400 GiB. The value must be+--     greater than the current storage capacity.+--+-- -   For @PERSISTENT HDD@ file systems, valid values are multiples of+--     6000 GiB for 12-MBps throughput per TiB file systems and multiples+--     of 1800 GiB for 40-MBps throughput per TiB file systems. The values+--     must be greater than the current storage capacity.+--+-- -   For @SCRATCH_1@ file systems, you can\'t increase the storage+--     capacity.+--+-- For more information, see+-- <https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html Managing storage and throughput capacity>+-- in the /Amazon FSx for Lustre User Guide/.+--+-- For ONTAP file systems, the storage capacity target value must be at+-- least 10 percent greater than the current storage capacity value. For+-- more information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-storage-capacity.html Managing storage capacity and provisioned IOPS>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+updateFileSystem_storageCapacity :: Lens.Lens' UpdateFileSystem (Prelude.Maybe Prelude.Natural)+updateFileSystem_storageCapacity = Lens.lens (\UpdateFileSystem' {storageCapacity} -> storageCapacity) (\s@UpdateFileSystem' {} a -> s {storageCapacity = a} :: UpdateFileSystem)++-- | The configuration updates for an Amazon FSx for Windows File Server file+-- system.+updateFileSystem_windowsConfiguration :: Lens.Lens' UpdateFileSystem (Prelude.Maybe UpdateFileSystemWindowsConfiguration)+updateFileSystem_windowsConfiguration = Lens.lens (\UpdateFileSystem' {windowsConfiguration} -> windowsConfiguration) (\s@UpdateFileSystem' {} a -> s {windowsConfiguration = a} :: UpdateFileSystem)++-- | The ID of the file system that you are updating.+updateFileSystem_fileSystemId :: Lens.Lens' UpdateFileSystem Prelude.Text+updateFileSystem_fileSystemId = Lens.lens (\UpdateFileSystem' {fileSystemId} -> fileSystemId) (\s@UpdateFileSystem' {} a -> s {fileSystemId = a} :: UpdateFileSystem)++instance Core.AWSRequest UpdateFileSystem where+  type+    AWSResponse UpdateFileSystem =+      UpdateFileSystemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFileSystemResponse'+            Prelude.<$> (x Data..?> "FileSystem")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFileSystem where+  hashWithSalt _salt UpdateFileSystem' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` lustreConfiguration+      `Prelude.hashWithSalt` ontapConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` storageCapacity+      `Prelude.hashWithSalt` windowsConfiguration+      `Prelude.hashWithSalt` fileSystemId++instance Prelude.NFData UpdateFileSystem where+  rnf UpdateFileSystem' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf lustreConfiguration+      `Prelude.seq` Prelude.rnf ontapConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf storageCapacity+      `Prelude.seq` Prelude.rnf windowsConfiguration+      `Prelude.seq` Prelude.rnf fileSystemId++instance Data.ToHeaders UpdateFileSystem where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.UpdateFileSystem" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFileSystem where+  toJSON UpdateFileSystem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("LustreConfiguration" Data..=)+              Prelude.<$> lustreConfiguration,+            ("OntapConfiguration" Data..=)+              Prelude.<$> ontapConfiguration,+            ("OpenZFSConfiguration" Data..=)+              Prelude.<$> openZFSConfiguration,+            ("StorageCapacity" Data..=)+              Prelude.<$> storageCapacity,+            ("WindowsConfiguration" Data..=)+              Prelude.<$> windowsConfiguration,+            Prelude.Just ("FileSystemId" Data..= fileSystemId)+          ]+      )++instance Data.ToPath UpdateFileSystem where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateFileSystem where+  toQuery = Prelude.const Prelude.mempty++-- | The response object for the @UpdateFileSystem@ operation.+--+-- /See:/ 'newUpdateFileSystemResponse' smart constructor.+data UpdateFileSystemResponse = UpdateFileSystemResponse'+  { -- | A description of the file system that was updated.+    fileSystem :: Prelude.Maybe FileSystem,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFileSystemResponse' 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:+--+-- 'fileSystem', 'updateFileSystemResponse_fileSystem' - A description of the file system that was updated.+--+-- 'httpStatus', 'updateFileSystemResponse_httpStatus' - The response's http status code.+newUpdateFileSystemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFileSystemResponse+newUpdateFileSystemResponse pHttpStatus_ =+  UpdateFileSystemResponse'+    { fileSystem =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A description of the file system that was updated.+updateFileSystemResponse_fileSystem :: Lens.Lens' UpdateFileSystemResponse (Prelude.Maybe FileSystem)+updateFileSystemResponse_fileSystem = Lens.lens (\UpdateFileSystemResponse' {fileSystem} -> fileSystem) (\s@UpdateFileSystemResponse' {} a -> s {fileSystem = a} :: UpdateFileSystemResponse)++-- | The response's http status code.+updateFileSystemResponse_httpStatus :: Lens.Lens' UpdateFileSystemResponse Prelude.Int+updateFileSystemResponse_httpStatus = Lens.lens (\UpdateFileSystemResponse' {httpStatus} -> httpStatus) (\s@UpdateFileSystemResponse' {} a -> s {httpStatus = a} :: UpdateFileSystemResponse)++instance Prelude.NFData UpdateFileSystemResponse where+  rnf UpdateFileSystemResponse' {..} =+    Prelude.rnf fileSystem+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/UpdateSnapshot.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.UpdateSnapshot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the name of an Amazon FSx for OpenZFS snapshot.+module Amazonka.FSx.UpdateSnapshot+  ( -- * Creating a Request+    UpdateSnapshot (..),+    newUpdateSnapshot,++    -- * Request Lenses+    updateSnapshot_clientRequestToken,+    updateSnapshot_name,+    updateSnapshot_snapshotId,++    -- * Destructuring the Response+    UpdateSnapshotResponse (..),+    newUpdateSnapshotResponse,++    -- * Response Lenses+    updateSnapshotResponse_snapshot,+    updateSnapshotResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSnapshot' smart constructor.+data UpdateSnapshot = UpdateSnapshot'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the snapshot to update.+    name :: Prelude.Text,+    -- | The ID of the snapshot that you want to update, in the format+    -- @fsvolsnap-0123456789abcdef0@.+    snapshotId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSnapshot' 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:+--+-- 'clientRequestToken', 'updateSnapshot_clientRequestToken' - Undocumented member.+--+-- 'name', 'updateSnapshot_name' - The name of the snapshot to update.+--+-- 'snapshotId', 'updateSnapshot_snapshotId' - The ID of the snapshot that you want to update, in the format+-- @fsvolsnap-0123456789abcdef0@.+newUpdateSnapshot ::+  -- | 'name'+  Prelude.Text ->+  -- | 'snapshotId'+  Prelude.Text ->+  UpdateSnapshot+newUpdateSnapshot pName_ pSnapshotId_ =+  UpdateSnapshot'+    { clientRequestToken =+        Prelude.Nothing,+      name = pName_,+      snapshotId = pSnapshotId_+    }++-- | Undocumented member.+updateSnapshot_clientRequestToken :: Lens.Lens' UpdateSnapshot (Prelude.Maybe Prelude.Text)+updateSnapshot_clientRequestToken = Lens.lens (\UpdateSnapshot' {clientRequestToken} -> clientRequestToken) (\s@UpdateSnapshot' {} a -> s {clientRequestToken = a} :: UpdateSnapshot)++-- | The name of the snapshot to update.+updateSnapshot_name :: Lens.Lens' UpdateSnapshot Prelude.Text+updateSnapshot_name = Lens.lens (\UpdateSnapshot' {name} -> name) (\s@UpdateSnapshot' {} a -> s {name = a} :: UpdateSnapshot)++-- | The ID of the snapshot that you want to update, in the format+-- @fsvolsnap-0123456789abcdef0@.+updateSnapshot_snapshotId :: Lens.Lens' UpdateSnapshot Prelude.Text+updateSnapshot_snapshotId = Lens.lens (\UpdateSnapshot' {snapshotId} -> snapshotId) (\s@UpdateSnapshot' {} a -> s {snapshotId = a} :: UpdateSnapshot)++instance Core.AWSRequest UpdateSnapshot where+  type+    AWSResponse UpdateSnapshot =+      UpdateSnapshotResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSnapshotResponse'+            Prelude.<$> (x Data..?> "Snapshot")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateSnapshot where+  hashWithSalt _salt UpdateSnapshot' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` snapshotId++instance Prelude.NFData UpdateSnapshot where+  rnf UpdateSnapshot' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf snapshotId++instance Data.ToHeaders UpdateSnapshot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.UpdateSnapshot" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSnapshot where+  toJSON UpdateSnapshot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("SnapshotId" Data..= snapshotId)+          ]+      )++instance Data.ToPath UpdateSnapshot where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateSnapshot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSnapshotResponse' smart constructor.+data UpdateSnapshotResponse = UpdateSnapshotResponse'+  { -- | Returned after a successful @UpdateSnapshot@ operation, describing the+    -- snapshot that you updated.+    snapshot :: Prelude.Maybe Snapshot,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSnapshotResponse' 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:+--+-- 'snapshot', 'updateSnapshotResponse_snapshot' - Returned after a successful @UpdateSnapshot@ operation, describing the+-- snapshot that you updated.+--+-- 'httpStatus', 'updateSnapshotResponse_httpStatus' - The response's http status code.+newUpdateSnapshotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSnapshotResponse+newUpdateSnapshotResponse pHttpStatus_ =+  UpdateSnapshotResponse'+    { snapshot = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Returned after a successful @UpdateSnapshot@ operation, describing the+-- snapshot that you updated.+updateSnapshotResponse_snapshot :: Lens.Lens' UpdateSnapshotResponse (Prelude.Maybe Snapshot)+updateSnapshotResponse_snapshot = Lens.lens (\UpdateSnapshotResponse' {snapshot} -> snapshot) (\s@UpdateSnapshotResponse' {} a -> s {snapshot = a} :: UpdateSnapshotResponse)++-- | The response's http status code.+updateSnapshotResponse_httpStatus :: Lens.Lens' UpdateSnapshotResponse Prelude.Int+updateSnapshotResponse_httpStatus = Lens.lens (\UpdateSnapshotResponse' {httpStatus} -> httpStatus) (\s@UpdateSnapshotResponse' {} a -> s {httpStatus = a} :: UpdateSnapshotResponse)++instance Prelude.NFData UpdateSnapshotResponse where+  rnf UpdateSnapshotResponse' {..} =+    Prelude.rnf snapshot+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/UpdateStorageVirtualMachine.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.UpdateStorageVirtualMachine+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an Amazon FSx for ONTAP storage virtual machine (SVM).+module Amazonka.FSx.UpdateStorageVirtualMachine+  ( -- * Creating a Request+    UpdateStorageVirtualMachine (..),+    newUpdateStorageVirtualMachine,++    -- * Request Lenses+    updateStorageVirtualMachine_activeDirectoryConfiguration,+    updateStorageVirtualMachine_clientRequestToken,+    updateStorageVirtualMachine_svmAdminPassword,+    updateStorageVirtualMachine_storageVirtualMachineId,++    -- * Destructuring the Response+    UpdateStorageVirtualMachineResponse (..),+    newUpdateStorageVirtualMachineResponse,++    -- * Response Lenses+    updateStorageVirtualMachineResponse_storageVirtualMachine,+    updateStorageVirtualMachineResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateStorageVirtualMachine' smart constructor.+data UpdateStorageVirtualMachine = UpdateStorageVirtualMachine'+  { -- | Updates the Microsoft Active Directory (AD) configuration for an SVM+    -- that is joined to an AD.+    activeDirectoryConfiguration :: Prelude.Maybe UpdateSvmActiveDirectoryConfiguration,+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | Enter a new SvmAdminPassword if you are updating it.+    svmAdminPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The ID of the SVM that you want to update, in the format+    -- @svm-0123456789abcdef0@.+    storageVirtualMachineId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStorageVirtualMachine' 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:+--+-- 'activeDirectoryConfiguration', 'updateStorageVirtualMachine_activeDirectoryConfiguration' - Updates the Microsoft Active Directory (AD) configuration for an SVM+-- that is joined to an AD.+--+-- 'clientRequestToken', 'updateStorageVirtualMachine_clientRequestToken' - Undocumented member.+--+-- 'svmAdminPassword', 'updateStorageVirtualMachine_svmAdminPassword' - Enter a new SvmAdminPassword if you are updating it.+--+-- 'storageVirtualMachineId', 'updateStorageVirtualMachine_storageVirtualMachineId' - The ID of the SVM that you want to update, in the format+-- @svm-0123456789abcdef0@.+newUpdateStorageVirtualMachine ::+  -- | 'storageVirtualMachineId'+  Prelude.Text ->+  UpdateStorageVirtualMachine+newUpdateStorageVirtualMachine+  pStorageVirtualMachineId_ =+    UpdateStorageVirtualMachine'+      { activeDirectoryConfiguration =+          Prelude.Nothing,+        clientRequestToken = Prelude.Nothing,+        svmAdminPassword = Prelude.Nothing,+        storageVirtualMachineId =+          pStorageVirtualMachineId_+      }++-- | Updates the Microsoft Active Directory (AD) configuration for an SVM+-- that is joined to an AD.+updateStorageVirtualMachine_activeDirectoryConfiguration :: Lens.Lens' UpdateStorageVirtualMachine (Prelude.Maybe UpdateSvmActiveDirectoryConfiguration)+updateStorageVirtualMachine_activeDirectoryConfiguration = Lens.lens (\UpdateStorageVirtualMachine' {activeDirectoryConfiguration} -> activeDirectoryConfiguration) (\s@UpdateStorageVirtualMachine' {} a -> s {activeDirectoryConfiguration = a} :: UpdateStorageVirtualMachine)++-- | Undocumented member.+updateStorageVirtualMachine_clientRequestToken :: Lens.Lens' UpdateStorageVirtualMachine (Prelude.Maybe Prelude.Text)+updateStorageVirtualMachine_clientRequestToken = Lens.lens (\UpdateStorageVirtualMachine' {clientRequestToken} -> clientRequestToken) (\s@UpdateStorageVirtualMachine' {} a -> s {clientRequestToken = a} :: UpdateStorageVirtualMachine)++-- | Enter a new SvmAdminPassword if you are updating it.+updateStorageVirtualMachine_svmAdminPassword :: Lens.Lens' UpdateStorageVirtualMachine (Prelude.Maybe Prelude.Text)+updateStorageVirtualMachine_svmAdminPassword = Lens.lens (\UpdateStorageVirtualMachine' {svmAdminPassword} -> svmAdminPassword) (\s@UpdateStorageVirtualMachine' {} a -> s {svmAdminPassword = a} :: UpdateStorageVirtualMachine) Prelude.. Lens.mapping Data._Sensitive++-- | The ID of the SVM that you want to update, in the format+-- @svm-0123456789abcdef0@.+updateStorageVirtualMachine_storageVirtualMachineId :: Lens.Lens' UpdateStorageVirtualMachine Prelude.Text+updateStorageVirtualMachine_storageVirtualMachineId = Lens.lens (\UpdateStorageVirtualMachine' {storageVirtualMachineId} -> storageVirtualMachineId) (\s@UpdateStorageVirtualMachine' {} a -> s {storageVirtualMachineId = a} :: UpdateStorageVirtualMachine)++instance Core.AWSRequest UpdateStorageVirtualMachine where+  type+    AWSResponse UpdateStorageVirtualMachine =+      UpdateStorageVirtualMachineResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateStorageVirtualMachineResponse'+            Prelude.<$> (x Data..?> "StorageVirtualMachine")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateStorageVirtualMachine where+  hashWithSalt _salt UpdateStorageVirtualMachine' {..} =+    _salt+      `Prelude.hashWithSalt` activeDirectoryConfiguration+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` svmAdminPassword+      `Prelude.hashWithSalt` storageVirtualMachineId++instance Prelude.NFData UpdateStorageVirtualMachine where+  rnf UpdateStorageVirtualMachine' {..} =+    Prelude.rnf activeDirectoryConfiguration+      `Prelude.seq` Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf svmAdminPassword+      `Prelude.seq` Prelude.rnf storageVirtualMachineId++instance Data.ToHeaders UpdateStorageVirtualMachine where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.UpdateStorageVirtualMachine" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateStorageVirtualMachine where+  toJSON UpdateStorageVirtualMachine' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ActiveDirectoryConfiguration" Data..=)+              Prelude.<$> activeDirectoryConfiguration,+            ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("SvmAdminPassword" Data..=)+              Prelude.<$> svmAdminPassword,+            Prelude.Just+              ( "StorageVirtualMachineId"+                  Data..= storageVirtualMachineId+              )+          ]+      )++instance Data.ToPath UpdateStorageVirtualMachine where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateStorageVirtualMachine where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateStorageVirtualMachineResponse' smart constructor.+data UpdateStorageVirtualMachineResponse = UpdateStorageVirtualMachineResponse'+  { storageVirtualMachine :: Prelude.Maybe StorageVirtualMachine,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStorageVirtualMachineResponse' 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:+--+-- 'storageVirtualMachine', 'updateStorageVirtualMachineResponse_storageVirtualMachine' - Undocumented member.+--+-- 'httpStatus', 'updateStorageVirtualMachineResponse_httpStatus' - The response's http status code.+newUpdateStorageVirtualMachineResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateStorageVirtualMachineResponse+newUpdateStorageVirtualMachineResponse pHttpStatus_ =+  UpdateStorageVirtualMachineResponse'+    { storageVirtualMachine =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+updateStorageVirtualMachineResponse_storageVirtualMachine :: Lens.Lens' UpdateStorageVirtualMachineResponse (Prelude.Maybe StorageVirtualMachine)+updateStorageVirtualMachineResponse_storageVirtualMachine = Lens.lens (\UpdateStorageVirtualMachineResponse' {storageVirtualMachine} -> storageVirtualMachine) (\s@UpdateStorageVirtualMachineResponse' {} a -> s {storageVirtualMachine = a} :: UpdateStorageVirtualMachineResponse)++-- | The response's http status code.+updateStorageVirtualMachineResponse_httpStatus :: Lens.Lens' UpdateStorageVirtualMachineResponse Prelude.Int+updateStorageVirtualMachineResponse_httpStatus = Lens.lens (\UpdateStorageVirtualMachineResponse' {httpStatus} -> httpStatus) (\s@UpdateStorageVirtualMachineResponse' {} a -> s {httpStatus = a} :: UpdateStorageVirtualMachineResponse)++instance+  Prelude.NFData+    UpdateStorageVirtualMachineResponse+  where+  rnf UpdateStorageVirtualMachineResponse' {..} =+    Prelude.rnf storageVirtualMachine+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/UpdateVolume.hs view
@@ -0,0 +1,240 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# 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.UpdateVolume+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the configuration of an Amazon FSx for NetApp ONTAP or Amazon+-- FSx for OpenZFS volume.+module Amazonka.FSx.UpdateVolume+  ( -- * Creating a Request+    UpdateVolume (..),+    newUpdateVolume,++    -- * Request Lenses+    updateVolume_clientRequestToken,+    updateVolume_name,+    updateVolume_ontapConfiguration,+    updateVolume_openZFSConfiguration,+    updateVolume_volumeId,++    -- * Destructuring the Response+    UpdateVolumeResponse (..),+    newUpdateVolumeResponse,++    -- * Response Lenses+    updateVolumeResponse_volume,+    updateVolumeResponse_httpStatus,+  )+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+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateVolume' smart constructor.+data UpdateVolume = UpdateVolume'+  { clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the OpenZFS volume. OpenZFS root volumes are automatically+    -- named @FSX@. Child volume names must be unique among their parent+    -- volume\'s children. The name of the volume is part of the mount string+    -- for the OpenZFS volume.+    name :: Prelude.Maybe Prelude.Text,+    -- | The configuration of the ONTAP volume that you are updating.+    ontapConfiguration :: Prelude.Maybe UpdateOntapVolumeConfiguration,+    -- | The configuration of the OpenZFS volume that you are updating.+    openZFSConfiguration :: Prelude.Maybe UpdateOpenZFSVolumeConfiguration,+    -- | The ID of the volume that you want to update, in the format+    -- @fsvol-0123456789abcdef0@.+    volumeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVolume' 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:+--+-- 'clientRequestToken', 'updateVolume_clientRequestToken' - Undocumented member.+--+-- 'name', 'updateVolume_name' - The name of the OpenZFS volume. OpenZFS root volumes are automatically+-- named @FSX@. Child volume names must be unique among their parent+-- volume\'s children. The name of the volume is part of the mount string+-- for the OpenZFS volume.+--+-- 'ontapConfiguration', 'updateVolume_ontapConfiguration' - The configuration of the ONTAP volume that you are updating.+--+-- 'openZFSConfiguration', 'updateVolume_openZFSConfiguration' - The configuration of the OpenZFS volume that you are updating.+--+-- 'volumeId', 'updateVolume_volumeId' - The ID of the volume that you want to update, in the format+-- @fsvol-0123456789abcdef0@.+newUpdateVolume ::+  -- | 'volumeId'+  Prelude.Text ->+  UpdateVolume+newUpdateVolume pVolumeId_ =+  UpdateVolume'+    { clientRequestToken = Prelude.Nothing,+      name = Prelude.Nothing,+      ontapConfiguration = Prelude.Nothing,+      openZFSConfiguration = Prelude.Nothing,+      volumeId = pVolumeId_+    }++-- | Undocumented member.+updateVolume_clientRequestToken :: Lens.Lens' UpdateVolume (Prelude.Maybe Prelude.Text)+updateVolume_clientRequestToken = Lens.lens (\UpdateVolume' {clientRequestToken} -> clientRequestToken) (\s@UpdateVolume' {} a -> s {clientRequestToken = a} :: UpdateVolume)++-- | The name of the OpenZFS volume. OpenZFS root volumes are automatically+-- named @FSX@. Child volume names must be unique among their parent+-- volume\'s children. The name of the volume is part of the mount string+-- for the OpenZFS volume.+updateVolume_name :: Lens.Lens' UpdateVolume (Prelude.Maybe Prelude.Text)+updateVolume_name = Lens.lens (\UpdateVolume' {name} -> name) (\s@UpdateVolume' {} a -> s {name = a} :: UpdateVolume)++-- | The configuration of the ONTAP volume that you are updating.+updateVolume_ontapConfiguration :: Lens.Lens' UpdateVolume (Prelude.Maybe UpdateOntapVolumeConfiguration)+updateVolume_ontapConfiguration = Lens.lens (\UpdateVolume' {ontapConfiguration} -> ontapConfiguration) (\s@UpdateVolume' {} a -> s {ontapConfiguration = a} :: UpdateVolume)++-- | The configuration of the OpenZFS volume that you are updating.+updateVolume_openZFSConfiguration :: Lens.Lens' UpdateVolume (Prelude.Maybe UpdateOpenZFSVolumeConfiguration)+updateVolume_openZFSConfiguration = Lens.lens (\UpdateVolume' {openZFSConfiguration} -> openZFSConfiguration) (\s@UpdateVolume' {} a -> s {openZFSConfiguration = a} :: UpdateVolume)++-- | The ID of the volume that you want to update, in the format+-- @fsvol-0123456789abcdef0@.+updateVolume_volumeId :: Lens.Lens' UpdateVolume Prelude.Text+updateVolume_volumeId = Lens.lens (\UpdateVolume' {volumeId} -> volumeId) (\s@UpdateVolume' {} a -> s {volumeId = a} :: UpdateVolume)++instance Core.AWSRequest UpdateVolume where+  type AWSResponse UpdateVolume = UpdateVolumeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateVolumeResponse'+            Prelude.<$> (x Data..?> "Volume")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateVolume where+  hashWithSalt _salt UpdateVolume' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` ontapConfiguration+      `Prelude.hashWithSalt` openZFSConfiguration+      `Prelude.hashWithSalt` volumeId++instance Prelude.NFData UpdateVolume where+  rnf UpdateVolume' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf ontapConfiguration+      `Prelude.seq` Prelude.rnf openZFSConfiguration+      `Prelude.seq` Prelude.rnf volumeId++instance Data.ToHeaders UpdateVolume where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSSimbaAPIService_v20180301.UpdateVolume" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateVolume where+  toJSON UpdateVolume' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("Name" Data..=) Prelude.<$> name,+            ("OntapConfiguration" Data..=)+              Prelude.<$> ontapConfiguration,+            ("OpenZFSConfiguration" Data..=)+              Prelude.<$> openZFSConfiguration,+            Prelude.Just ("VolumeId" Data..= volumeId)+          ]+      )++instance Data.ToPath UpdateVolume where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateVolume where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateVolumeResponse' smart constructor.+data UpdateVolumeResponse = UpdateVolumeResponse'+  { -- | A description of the volume just updated. Returned after a successful+    -- @UpdateVolume@ API operation.+    volume :: Prelude.Maybe Volume,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVolumeResponse' 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:+--+-- 'volume', 'updateVolumeResponse_volume' - A description of the volume just updated. Returned after a successful+-- @UpdateVolume@ API operation.+--+-- 'httpStatus', 'updateVolumeResponse_httpStatus' - The response's http status code.+newUpdateVolumeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateVolumeResponse+newUpdateVolumeResponse pHttpStatus_ =+  UpdateVolumeResponse'+    { volume = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A description of the volume just updated. Returned after a successful+-- @UpdateVolume@ API operation.+updateVolumeResponse_volume :: Lens.Lens' UpdateVolumeResponse (Prelude.Maybe Volume)+updateVolumeResponse_volume = Lens.lens (\UpdateVolumeResponse' {volume} -> volume) (\s@UpdateVolumeResponse' {} a -> s {volume = a} :: UpdateVolumeResponse)++-- | The response's http status code.+updateVolumeResponse_httpStatus :: Lens.Lens' UpdateVolumeResponse Prelude.Int+updateVolumeResponse_httpStatus = Lens.lens (\UpdateVolumeResponse' {httpStatus} -> httpStatus) (\s@UpdateVolumeResponse' {} a -> s {httpStatus = a} :: UpdateVolumeResponse)++instance Prelude.NFData UpdateVolumeResponse where+  rnf UpdateVolumeResponse' {..} =+    Prelude.rnf volume+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/FSx/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.FSx.Waiters+-- 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.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.FSx.Lens+import Amazonka.FSx.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- 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 Main (main) where++import Test.Amazonka.FSx+import Test.Amazonka.FSx.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "FSx"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/FSx.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.FSx+-- 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 Test.Amazonka.FSx+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/FSx/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.FSx.Internal+-- 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 Test.Amazonka.FSx.Internal where
+ test/Test/Amazonka/Gen/FSx.hs view
@@ -0,0 +1,858 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.FSx+-- 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 Test.Amazonka.Gen.FSx where++import Amazonka.FSx+import qualified Data.Proxy as Proxy+import Test.Amazonka.FSx.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestAssociateFileSystemAliases $+--             newAssociateFileSystemAliases+--+--         , requestCancelDataRepositoryTask $+--             newCancelDataRepositoryTask+--+--         , requestCopyBackup $+--             newCopyBackup+--+--         , requestCreateBackup $+--             newCreateBackup+--+--         , requestCreateDataRepositoryAssociation $+--             newCreateDataRepositoryAssociation+--+--         , requestCreateDataRepositoryTask $+--             newCreateDataRepositoryTask+--+--         , requestCreateFileCache $+--             newCreateFileCache+--+--         , requestCreateFileSystem $+--             newCreateFileSystem+--+--         , requestCreateFileSystemFromBackup $+--             newCreateFileSystemFromBackup+--+--         , requestCreateSnapshot $+--             newCreateSnapshot+--+--         , requestCreateStorageVirtualMachine $+--             newCreateStorageVirtualMachine+--+--         , requestCreateVolume $+--             newCreateVolume+--+--         , requestCreateVolumeFromBackup $+--             newCreateVolumeFromBackup+--+--         , requestDeleteBackup $+--             newDeleteBackup+--+--         , requestDeleteDataRepositoryAssociation $+--             newDeleteDataRepositoryAssociation+--+--         , requestDeleteFileCache $+--             newDeleteFileCache+--+--         , requestDeleteFileSystem $+--             newDeleteFileSystem+--+--         , requestDeleteSnapshot $+--             newDeleteSnapshot+--+--         , requestDeleteStorageVirtualMachine $+--             newDeleteStorageVirtualMachine+--+--         , requestDeleteVolume $+--             newDeleteVolume+--+--         , requestDescribeBackups $+--             newDescribeBackups+--+--         , requestDescribeDataRepositoryAssociations $+--             newDescribeDataRepositoryAssociations+--+--         , requestDescribeDataRepositoryTasks $+--             newDescribeDataRepositoryTasks+--+--         , requestDescribeFileCaches $+--             newDescribeFileCaches+--+--         , requestDescribeFileSystemAliases $+--             newDescribeFileSystemAliases+--+--         , requestDescribeFileSystems $+--             newDescribeFileSystems+--+--         , requestDescribeSnapshots $+--             newDescribeSnapshots+--+--         , requestDescribeStorageVirtualMachines $+--             newDescribeStorageVirtualMachines+--+--         , requestDescribeVolumes $+--             newDescribeVolumes+--+--         , requestDisassociateFileSystemAliases $+--             newDisassociateFileSystemAliases+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestReleaseFileSystemNfsV3Locks $+--             newReleaseFileSystemNfsV3Locks+--+--         , requestRestoreVolumeFromSnapshot $+--             newRestoreVolumeFromSnapshot+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateDataRepositoryAssociation $+--             newUpdateDataRepositoryAssociation+--+--         , requestUpdateFileCache $+--             newUpdateFileCache+--+--         , requestUpdateFileSystem $+--             newUpdateFileSystem+--+--         , requestUpdateSnapshot $+--             newUpdateSnapshot+--+--         , requestUpdateStorageVirtualMachine $+--             newUpdateStorageVirtualMachine+--+--         , requestUpdateVolume $+--             newUpdateVolume+--+--           ]++--     , testGroup "response"+--         [ responseAssociateFileSystemAliases $+--             newAssociateFileSystemAliasesResponse+--+--         , responseCancelDataRepositoryTask $+--             newCancelDataRepositoryTaskResponse+--+--         , responseCopyBackup $+--             newCopyBackupResponse+--+--         , responseCreateBackup $+--             newCreateBackupResponse+--+--         , responseCreateDataRepositoryAssociation $+--             newCreateDataRepositoryAssociationResponse+--+--         , responseCreateDataRepositoryTask $+--             newCreateDataRepositoryTaskResponse+--+--         , responseCreateFileCache $+--             newCreateFileCacheResponse+--+--         , responseCreateFileSystem $+--             newCreateFileSystemResponse+--+--         , responseCreateFileSystemFromBackup $+--             newCreateFileSystemFromBackupResponse+--+--         , responseCreateSnapshot $+--             newCreateSnapshotResponse+--+--         , responseCreateStorageVirtualMachine $+--             newCreateStorageVirtualMachineResponse+--+--         , responseCreateVolume $+--             newCreateVolumeResponse+--+--         , responseCreateVolumeFromBackup $+--             newCreateVolumeFromBackupResponse+--+--         , responseDeleteBackup $+--             newDeleteBackupResponse+--+--         , responseDeleteDataRepositoryAssociation $+--             newDeleteDataRepositoryAssociationResponse+--+--         , responseDeleteFileCache $+--             newDeleteFileCacheResponse+--+--         , responseDeleteFileSystem $+--             newDeleteFileSystemResponse+--+--         , responseDeleteSnapshot $+--             newDeleteSnapshotResponse+--+--         , responseDeleteStorageVirtualMachine $+--             newDeleteStorageVirtualMachineResponse+--+--         , responseDeleteVolume $+--             newDeleteVolumeResponse+--+--         , responseDescribeBackups $+--             newDescribeBackupsResponse+--+--         , responseDescribeDataRepositoryAssociations $+--             newDescribeDataRepositoryAssociationsResponse+--+--         , responseDescribeDataRepositoryTasks $+--             newDescribeDataRepositoryTasksResponse+--+--         , responseDescribeFileCaches $+--             newDescribeFileCachesResponse+--+--         , responseDescribeFileSystemAliases $+--             newDescribeFileSystemAliasesResponse+--+--         , responseDescribeFileSystems $+--             newDescribeFileSystemsResponse+--+--         , responseDescribeSnapshots $+--             newDescribeSnapshotsResponse+--+--         , responseDescribeStorageVirtualMachines $+--             newDescribeStorageVirtualMachinesResponse+--+--         , responseDescribeVolumes $+--             newDescribeVolumesResponse+--+--         , responseDisassociateFileSystemAliases $+--             newDisassociateFileSystemAliasesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseReleaseFileSystemNfsV3Locks $+--             newReleaseFileSystemNfsV3LocksResponse+--+--         , responseRestoreVolumeFromSnapshot $+--             newRestoreVolumeFromSnapshotResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateDataRepositoryAssociation $+--             newUpdateDataRepositoryAssociationResponse+--+--         , responseUpdateFileCache $+--             newUpdateFileCacheResponse+--+--         , responseUpdateFileSystem $+--             newUpdateFileSystemResponse+--+--         , responseUpdateSnapshot $+--             newUpdateSnapshotResponse+--+--         , responseUpdateStorageVirtualMachine $+--             newUpdateStorageVirtualMachineResponse+--+--         , responseUpdateVolume $+--             newUpdateVolumeResponse+--+--           ]+--     ]++-- Requests++requestAssociateFileSystemAliases :: AssociateFileSystemAliases -> TestTree+requestAssociateFileSystemAliases =+  req+    "AssociateFileSystemAliases"+    "fixture/AssociateFileSystemAliases.yaml"++requestCancelDataRepositoryTask :: CancelDataRepositoryTask -> TestTree+requestCancelDataRepositoryTask =+  req+    "CancelDataRepositoryTask"+    "fixture/CancelDataRepositoryTask.yaml"++requestCopyBackup :: CopyBackup -> TestTree+requestCopyBackup =+  req+    "CopyBackup"+    "fixture/CopyBackup.yaml"++requestCreateBackup :: CreateBackup -> TestTree+requestCreateBackup =+  req+    "CreateBackup"+    "fixture/CreateBackup.yaml"++requestCreateDataRepositoryAssociation :: CreateDataRepositoryAssociation -> TestTree+requestCreateDataRepositoryAssociation =+  req+    "CreateDataRepositoryAssociation"+    "fixture/CreateDataRepositoryAssociation.yaml"++requestCreateDataRepositoryTask :: CreateDataRepositoryTask -> TestTree+requestCreateDataRepositoryTask =+  req+    "CreateDataRepositoryTask"+    "fixture/CreateDataRepositoryTask.yaml"++requestCreateFileCache :: CreateFileCache -> TestTree+requestCreateFileCache =+  req+    "CreateFileCache"+    "fixture/CreateFileCache.yaml"++requestCreateFileSystem :: CreateFileSystem -> TestTree+requestCreateFileSystem =+  req+    "CreateFileSystem"+    "fixture/CreateFileSystem.yaml"++requestCreateFileSystemFromBackup :: CreateFileSystemFromBackup -> TestTree+requestCreateFileSystemFromBackup =+  req+    "CreateFileSystemFromBackup"+    "fixture/CreateFileSystemFromBackup.yaml"++requestCreateSnapshot :: CreateSnapshot -> TestTree+requestCreateSnapshot =+  req+    "CreateSnapshot"+    "fixture/CreateSnapshot.yaml"++requestCreateStorageVirtualMachine :: CreateStorageVirtualMachine -> TestTree+requestCreateStorageVirtualMachine =+  req+    "CreateStorageVirtualMachine"+    "fixture/CreateStorageVirtualMachine.yaml"++requestCreateVolume :: CreateVolume -> TestTree+requestCreateVolume =+  req+    "CreateVolume"+    "fixture/CreateVolume.yaml"++requestCreateVolumeFromBackup :: CreateVolumeFromBackup -> TestTree+requestCreateVolumeFromBackup =+  req+    "CreateVolumeFromBackup"+    "fixture/CreateVolumeFromBackup.yaml"++requestDeleteBackup :: DeleteBackup -> TestTree+requestDeleteBackup =+  req+    "DeleteBackup"+    "fixture/DeleteBackup.yaml"++requestDeleteDataRepositoryAssociation :: DeleteDataRepositoryAssociation -> TestTree+requestDeleteDataRepositoryAssociation =+  req+    "DeleteDataRepositoryAssociation"+    "fixture/DeleteDataRepositoryAssociation.yaml"++requestDeleteFileCache :: DeleteFileCache -> TestTree+requestDeleteFileCache =+  req+    "DeleteFileCache"+    "fixture/DeleteFileCache.yaml"++requestDeleteFileSystem :: DeleteFileSystem -> TestTree+requestDeleteFileSystem =+  req+    "DeleteFileSystem"+    "fixture/DeleteFileSystem.yaml"++requestDeleteSnapshot :: DeleteSnapshot -> TestTree+requestDeleteSnapshot =+  req+    "DeleteSnapshot"+    "fixture/DeleteSnapshot.yaml"++requestDeleteStorageVirtualMachine :: DeleteStorageVirtualMachine -> TestTree+requestDeleteStorageVirtualMachine =+  req+    "DeleteStorageVirtualMachine"+    "fixture/DeleteStorageVirtualMachine.yaml"++requestDeleteVolume :: DeleteVolume -> TestTree+requestDeleteVolume =+  req+    "DeleteVolume"+    "fixture/DeleteVolume.yaml"++requestDescribeBackups :: DescribeBackups -> TestTree+requestDescribeBackups =+  req+    "DescribeBackups"+    "fixture/DescribeBackups.yaml"++requestDescribeDataRepositoryAssociations :: DescribeDataRepositoryAssociations -> TestTree+requestDescribeDataRepositoryAssociations =+  req+    "DescribeDataRepositoryAssociations"+    "fixture/DescribeDataRepositoryAssociations.yaml"++requestDescribeDataRepositoryTasks :: DescribeDataRepositoryTasks -> TestTree+requestDescribeDataRepositoryTasks =+  req+    "DescribeDataRepositoryTasks"+    "fixture/DescribeDataRepositoryTasks.yaml"++requestDescribeFileCaches :: DescribeFileCaches -> TestTree+requestDescribeFileCaches =+  req+    "DescribeFileCaches"+    "fixture/DescribeFileCaches.yaml"++requestDescribeFileSystemAliases :: DescribeFileSystemAliases -> TestTree+requestDescribeFileSystemAliases =+  req+    "DescribeFileSystemAliases"+    "fixture/DescribeFileSystemAliases.yaml"++requestDescribeFileSystems :: DescribeFileSystems -> TestTree+requestDescribeFileSystems =+  req+    "DescribeFileSystems"+    "fixture/DescribeFileSystems.yaml"++requestDescribeSnapshots :: DescribeSnapshots -> TestTree+requestDescribeSnapshots =+  req+    "DescribeSnapshots"+    "fixture/DescribeSnapshots.yaml"++requestDescribeStorageVirtualMachines :: DescribeStorageVirtualMachines -> TestTree+requestDescribeStorageVirtualMachines =+  req+    "DescribeStorageVirtualMachines"+    "fixture/DescribeStorageVirtualMachines.yaml"++requestDescribeVolumes :: DescribeVolumes -> TestTree+requestDescribeVolumes =+  req+    "DescribeVolumes"+    "fixture/DescribeVolumes.yaml"++requestDisassociateFileSystemAliases :: DisassociateFileSystemAliases -> TestTree+requestDisassociateFileSystemAliases =+  req+    "DisassociateFileSystemAliases"+    "fixture/DisassociateFileSystemAliases.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestReleaseFileSystemNfsV3Locks :: ReleaseFileSystemNfsV3Locks -> TestTree+requestReleaseFileSystemNfsV3Locks =+  req+    "ReleaseFileSystemNfsV3Locks"+    "fixture/ReleaseFileSystemNfsV3Locks.yaml"++requestRestoreVolumeFromSnapshot :: RestoreVolumeFromSnapshot -> TestTree+requestRestoreVolumeFromSnapshot =+  req+    "RestoreVolumeFromSnapshot"+    "fixture/RestoreVolumeFromSnapshot.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateDataRepositoryAssociation :: UpdateDataRepositoryAssociation -> TestTree+requestUpdateDataRepositoryAssociation =+  req+    "UpdateDataRepositoryAssociation"+    "fixture/UpdateDataRepositoryAssociation.yaml"++requestUpdateFileCache :: UpdateFileCache -> TestTree+requestUpdateFileCache =+  req+    "UpdateFileCache"+    "fixture/UpdateFileCache.yaml"++requestUpdateFileSystem :: UpdateFileSystem -> TestTree+requestUpdateFileSystem =+  req+    "UpdateFileSystem"+    "fixture/UpdateFileSystem.yaml"++requestUpdateSnapshot :: UpdateSnapshot -> TestTree+requestUpdateSnapshot =+  req+    "UpdateSnapshot"+    "fixture/UpdateSnapshot.yaml"++requestUpdateStorageVirtualMachine :: UpdateStorageVirtualMachine -> TestTree+requestUpdateStorageVirtualMachine =+  req+    "UpdateStorageVirtualMachine"+    "fixture/UpdateStorageVirtualMachine.yaml"++requestUpdateVolume :: UpdateVolume -> TestTree+requestUpdateVolume =+  req+    "UpdateVolume"+    "fixture/UpdateVolume.yaml"++-- Responses++responseAssociateFileSystemAliases :: AssociateFileSystemAliasesResponse -> TestTree+responseAssociateFileSystemAliases =+  res+    "AssociateFileSystemAliasesResponse"+    "fixture/AssociateFileSystemAliasesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateFileSystemAliases)++responseCancelDataRepositoryTask :: CancelDataRepositoryTaskResponse -> TestTree+responseCancelDataRepositoryTask =+  res+    "CancelDataRepositoryTaskResponse"+    "fixture/CancelDataRepositoryTaskResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelDataRepositoryTask)++responseCopyBackup :: CopyBackupResponse -> TestTree+responseCopyBackup =+  res+    "CopyBackupResponse"+    "fixture/CopyBackupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CopyBackup)++responseCreateBackup :: CreateBackupResponse -> TestTree+responseCreateBackup =+  res+    "CreateBackupResponse"+    "fixture/CreateBackupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBackup)++responseCreateDataRepositoryAssociation :: CreateDataRepositoryAssociationResponse -> TestTree+responseCreateDataRepositoryAssociation =+  res+    "CreateDataRepositoryAssociationResponse"+    "fixture/CreateDataRepositoryAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataRepositoryAssociation)++responseCreateDataRepositoryTask :: CreateDataRepositoryTaskResponse -> TestTree+responseCreateDataRepositoryTask =+  res+    "CreateDataRepositoryTaskResponse"+    "fixture/CreateDataRepositoryTaskResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataRepositoryTask)++responseCreateFileCache :: CreateFileCacheResponse -> TestTree+responseCreateFileCache =+  res+    "CreateFileCacheResponse"+    "fixture/CreateFileCacheResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFileCache)++responseCreateFileSystem :: CreateFileSystemResponse -> TestTree+responseCreateFileSystem =+  res+    "CreateFileSystemResponse"+    "fixture/CreateFileSystemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFileSystem)++responseCreateFileSystemFromBackup :: CreateFileSystemFromBackupResponse -> TestTree+responseCreateFileSystemFromBackup =+  res+    "CreateFileSystemFromBackupResponse"+    "fixture/CreateFileSystemFromBackupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFileSystemFromBackup)++responseCreateSnapshot :: CreateSnapshotResponse -> TestTree+responseCreateSnapshot =+  res+    "CreateSnapshotResponse"+    "fixture/CreateSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSnapshot)++responseCreateStorageVirtualMachine :: CreateStorageVirtualMachineResponse -> TestTree+responseCreateStorageVirtualMachine =+  res+    "CreateStorageVirtualMachineResponse"+    "fixture/CreateStorageVirtualMachineResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateStorageVirtualMachine)++responseCreateVolume :: CreateVolumeResponse -> TestTree+responseCreateVolume =+  res+    "CreateVolumeResponse"+    "fixture/CreateVolumeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVolume)++responseCreateVolumeFromBackup :: CreateVolumeFromBackupResponse -> TestTree+responseCreateVolumeFromBackup =+  res+    "CreateVolumeFromBackupResponse"+    "fixture/CreateVolumeFromBackupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVolumeFromBackup)++responseDeleteBackup :: DeleteBackupResponse -> TestTree+responseDeleteBackup =+  res+    "DeleteBackupResponse"+    "fixture/DeleteBackupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBackup)++responseDeleteDataRepositoryAssociation :: DeleteDataRepositoryAssociationResponse -> TestTree+responseDeleteDataRepositoryAssociation =+  res+    "DeleteDataRepositoryAssociationResponse"+    "fixture/DeleteDataRepositoryAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataRepositoryAssociation)++responseDeleteFileCache :: DeleteFileCacheResponse -> TestTree+responseDeleteFileCache =+  res+    "DeleteFileCacheResponse"+    "fixture/DeleteFileCacheResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteFileCache)++responseDeleteFileSystem :: DeleteFileSystemResponse -> TestTree+responseDeleteFileSystem =+  res+    "DeleteFileSystemResponse"+    "fixture/DeleteFileSystemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteFileSystem)++responseDeleteSnapshot :: DeleteSnapshotResponse -> TestTree+responseDeleteSnapshot =+  res+    "DeleteSnapshotResponse"+    "fixture/DeleteSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSnapshot)++responseDeleteStorageVirtualMachine :: DeleteStorageVirtualMachineResponse -> TestTree+responseDeleteStorageVirtualMachine =+  res+    "DeleteStorageVirtualMachineResponse"+    "fixture/DeleteStorageVirtualMachineResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteStorageVirtualMachine)++responseDeleteVolume :: DeleteVolumeResponse -> TestTree+responseDeleteVolume =+  res+    "DeleteVolumeResponse"+    "fixture/DeleteVolumeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVolume)++responseDescribeBackups :: DescribeBackupsResponse -> TestTree+responseDescribeBackups =+  res+    "DescribeBackupsResponse"+    "fixture/DescribeBackupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBackups)++responseDescribeDataRepositoryAssociations :: DescribeDataRepositoryAssociationsResponse -> TestTree+responseDescribeDataRepositoryAssociations =+  res+    "DescribeDataRepositoryAssociationsResponse"+    "fixture/DescribeDataRepositoryAssociationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDataRepositoryAssociations)++responseDescribeDataRepositoryTasks :: DescribeDataRepositoryTasksResponse -> TestTree+responseDescribeDataRepositoryTasks =+  res+    "DescribeDataRepositoryTasksResponse"+    "fixture/DescribeDataRepositoryTasksResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDataRepositoryTasks)++responseDescribeFileCaches :: DescribeFileCachesResponse -> TestTree+responseDescribeFileCaches =+  res+    "DescribeFileCachesResponse"+    "fixture/DescribeFileCachesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeFileCaches)++responseDescribeFileSystemAliases :: DescribeFileSystemAliasesResponse -> TestTree+responseDescribeFileSystemAliases =+  res+    "DescribeFileSystemAliasesResponse"+    "fixture/DescribeFileSystemAliasesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeFileSystemAliases)++responseDescribeFileSystems :: DescribeFileSystemsResponse -> TestTree+responseDescribeFileSystems =+  res+    "DescribeFileSystemsResponse"+    "fixture/DescribeFileSystemsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeFileSystems)++responseDescribeSnapshots :: DescribeSnapshotsResponse -> TestTree+responseDescribeSnapshots =+  res+    "DescribeSnapshotsResponse"+    "fixture/DescribeSnapshotsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSnapshots)++responseDescribeStorageVirtualMachines :: DescribeStorageVirtualMachinesResponse -> TestTree+responseDescribeStorageVirtualMachines =+  res+    "DescribeStorageVirtualMachinesResponse"+    "fixture/DescribeStorageVirtualMachinesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeStorageVirtualMachines)++responseDescribeVolumes :: DescribeVolumesResponse -> TestTree+responseDescribeVolumes =+  res+    "DescribeVolumesResponse"+    "fixture/DescribeVolumesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeVolumes)++responseDisassociateFileSystemAliases :: DisassociateFileSystemAliasesResponse -> TestTree+responseDisassociateFileSystemAliases =+  res+    "DisassociateFileSystemAliasesResponse"+    "fixture/DisassociateFileSystemAliasesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateFileSystemAliases)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseReleaseFileSystemNfsV3Locks :: ReleaseFileSystemNfsV3LocksResponse -> TestTree+responseReleaseFileSystemNfsV3Locks =+  res+    "ReleaseFileSystemNfsV3LocksResponse"+    "fixture/ReleaseFileSystemNfsV3LocksResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ReleaseFileSystemNfsV3Locks)++responseRestoreVolumeFromSnapshot :: RestoreVolumeFromSnapshotResponse -> TestTree+responseRestoreVolumeFromSnapshot =+  res+    "RestoreVolumeFromSnapshotResponse"+    "fixture/RestoreVolumeFromSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RestoreVolumeFromSnapshot)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateDataRepositoryAssociation :: UpdateDataRepositoryAssociationResponse -> TestTree+responseUpdateDataRepositoryAssociation =+  res+    "UpdateDataRepositoryAssociationResponse"+    "fixture/UpdateDataRepositoryAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDataRepositoryAssociation)++responseUpdateFileCache :: UpdateFileCacheResponse -> TestTree+responseUpdateFileCache =+  res+    "UpdateFileCacheResponse"+    "fixture/UpdateFileCacheResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFileCache)++responseUpdateFileSystem :: UpdateFileSystemResponse -> TestTree+responseUpdateFileSystem =+  res+    "UpdateFileSystemResponse"+    "fixture/UpdateFileSystemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFileSystem)++responseUpdateSnapshot :: UpdateSnapshotResponse -> TestTree+responseUpdateSnapshot =+  res+    "UpdateSnapshotResponse"+    "fixture/UpdateSnapshotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSnapshot)++responseUpdateStorageVirtualMachine :: UpdateStorageVirtualMachineResponse -> TestTree+responseUpdateStorageVirtualMachine =+  res+    "UpdateStorageVirtualMachineResponse"+    "fixture/UpdateStorageVirtualMachineResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateStorageVirtualMachine)++responseUpdateVolume :: UpdateVolumeResponse -> TestTree+responseUpdateVolume =+  res+    "UpdateVolumeResponse"+    "fixture/UpdateVolumeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateVolume)