packages feed

amazonka-datasync (empty) → 2.0

raw patch · 197 files changed

+21476/−0 lines, 197 filesdep +amazonka-coredep +amazonka-datasyncdep +amazonka-test

Dependencies added: amazonka-core, amazonka-datasync, 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 DataSync SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-11-09@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-datasync)+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.DataSync](http://hackage.haskell.org/package/amazonka-datasync/docs/Amazonka-DataSync.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-datasync` 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-datasync.cabal view
@@ -0,0 +1,180 @@+cabal-version:      2.2+name:               amazonka-datasync+version:            2.0+synopsis:           Amazon DataSync 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-11-09@ 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.DataSync.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.DataSync" 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-datasync++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.DataSync+    Amazonka.DataSync.CancelTaskExecution+    Amazonka.DataSync.CreateAgent+    Amazonka.DataSync.CreateLocationEfs+    Amazonka.DataSync.CreateLocationFsxLustre+    Amazonka.DataSync.CreateLocationFsxOntap+    Amazonka.DataSync.CreateLocationFsxOpenZfs+    Amazonka.DataSync.CreateLocationFsxWindows+    Amazonka.DataSync.CreateLocationHdfs+    Amazonka.DataSync.CreateLocationNfs+    Amazonka.DataSync.CreateLocationObjectStorage+    Amazonka.DataSync.CreateLocationS3+    Amazonka.DataSync.CreateLocationSmb+    Amazonka.DataSync.CreateTask+    Amazonka.DataSync.DeleteAgent+    Amazonka.DataSync.DeleteLocation+    Amazonka.DataSync.DeleteTask+    Amazonka.DataSync.DescribeAgent+    Amazonka.DataSync.DescribeLocationEfs+    Amazonka.DataSync.DescribeLocationFsxLustre+    Amazonka.DataSync.DescribeLocationFsxOntap+    Amazonka.DataSync.DescribeLocationFsxOpenZfs+    Amazonka.DataSync.DescribeLocationFsxWindows+    Amazonka.DataSync.DescribeLocationHdfs+    Amazonka.DataSync.DescribeLocationNfs+    Amazonka.DataSync.DescribeLocationObjectStorage+    Amazonka.DataSync.DescribeLocationS3+    Amazonka.DataSync.DescribeLocationSmb+    Amazonka.DataSync.DescribeTask+    Amazonka.DataSync.DescribeTaskExecution+    Amazonka.DataSync.Lens+    Amazonka.DataSync.ListAgents+    Amazonka.DataSync.ListLocations+    Amazonka.DataSync.ListTagsForResource+    Amazonka.DataSync.ListTaskExecutions+    Amazonka.DataSync.ListTasks+    Amazonka.DataSync.StartTaskExecution+    Amazonka.DataSync.TagResource+    Amazonka.DataSync.Types+    Amazonka.DataSync.Types.AgentListEntry+    Amazonka.DataSync.Types.AgentStatus+    Amazonka.DataSync.Types.Atime+    Amazonka.DataSync.Types.Ec2Config+    Amazonka.DataSync.Types.EfsInTransitEncryption+    Amazonka.DataSync.Types.EndpointType+    Amazonka.DataSync.Types.FilterRule+    Amazonka.DataSync.Types.FilterType+    Amazonka.DataSync.Types.FsxProtocol+    Amazonka.DataSync.Types.FsxProtocolNfs+    Amazonka.DataSync.Types.FsxProtocolSmb+    Amazonka.DataSync.Types.Gid+    Amazonka.DataSync.Types.HdfsAuthenticationType+    Amazonka.DataSync.Types.HdfsDataTransferProtection+    Amazonka.DataSync.Types.HdfsNameNode+    Amazonka.DataSync.Types.HdfsRpcProtection+    Amazonka.DataSync.Types.LocationFilter+    Amazonka.DataSync.Types.LocationFilterName+    Amazonka.DataSync.Types.LocationListEntry+    Amazonka.DataSync.Types.LogLevel+    Amazonka.DataSync.Types.Mtime+    Amazonka.DataSync.Types.NfsMountOptions+    Amazonka.DataSync.Types.NfsVersion+    Amazonka.DataSync.Types.ObjectStorageServerProtocol+    Amazonka.DataSync.Types.ObjectTags+    Amazonka.DataSync.Types.OnPremConfig+    Amazonka.DataSync.Types.Operator+    Amazonka.DataSync.Types.Options+    Amazonka.DataSync.Types.OverwriteMode+    Amazonka.DataSync.Types.PhaseStatus+    Amazonka.DataSync.Types.PosixPermissions+    Amazonka.DataSync.Types.PreserveDeletedFiles+    Amazonka.DataSync.Types.PreserveDevices+    Amazonka.DataSync.Types.PrivateLinkConfig+    Amazonka.DataSync.Types.QopConfiguration+    Amazonka.DataSync.Types.S3Config+    Amazonka.DataSync.Types.S3StorageClass+    Amazonka.DataSync.Types.SmbMountOptions+    Amazonka.DataSync.Types.SmbSecurityDescriptorCopyFlags+    Amazonka.DataSync.Types.SmbVersion+    Amazonka.DataSync.Types.TagListEntry+    Amazonka.DataSync.Types.TaskExecutionListEntry+    Amazonka.DataSync.Types.TaskExecutionResultDetail+    Amazonka.DataSync.Types.TaskExecutionStatus+    Amazonka.DataSync.Types.TaskFilter+    Amazonka.DataSync.Types.TaskFilterName+    Amazonka.DataSync.Types.TaskListEntry+    Amazonka.DataSync.Types.TaskQueueing+    Amazonka.DataSync.Types.TaskSchedule+    Amazonka.DataSync.Types.TaskStatus+    Amazonka.DataSync.Types.TransferMode+    Amazonka.DataSync.Types.Uid+    Amazonka.DataSync.Types.VerifyMode+    Amazonka.DataSync.UntagResource+    Amazonka.DataSync.UpdateAgent+    Amazonka.DataSync.UpdateLocationHdfs+    Amazonka.DataSync.UpdateLocationNfs+    Amazonka.DataSync.UpdateLocationObjectStorage+    Amazonka.DataSync.UpdateLocationSmb+    Amazonka.DataSync.UpdateTask+    Amazonka.DataSync.UpdateTaskExecution+    Amazonka.DataSync.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-datasync-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.DataSync+    Test.Amazonka.DataSync.Internal+    Test.Amazonka.Gen.DataSync++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-datasync+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CancelTaskExecution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CancelTaskExecutionResponse.proto view
+ fixture/CreateAgent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateAgentResponse.proto view
+ fixture/CreateLocationEfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationEfsResponse.proto view
+ fixture/CreateLocationFsxLustre.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationFsxLustreResponse.proto view
+ fixture/CreateLocationFsxOntap.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationFsxOntapResponse.proto view
+ fixture/CreateLocationFsxOpenZfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationFsxOpenZfsResponse.proto view
+ fixture/CreateLocationFsxWindows.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationFsxWindowsResponse.proto view
+ fixture/CreateLocationHdfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationHdfsResponse.proto view
+ fixture/CreateLocationNfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationNfsResponse.proto view
+ fixture/CreateLocationObjectStorage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationObjectStorageResponse.proto view
+ fixture/CreateLocationS3.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationS3Response.proto view
+ fixture/CreateLocationSmb.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateLocationSmbResponse.proto view
+ fixture/CreateTask.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/CreateTaskResponse.proto view
+ fixture/DeleteAgent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DeleteAgentResponse.proto view
+ fixture/DeleteLocation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DeleteLocationResponse.proto view
+ fixture/DeleteTask.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DeleteTaskResponse.proto view
+ fixture/DescribeAgent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeAgentResponse.proto view
+ fixture/DescribeLocationEfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationEfsResponse.proto view
+ fixture/DescribeLocationFsxLustre.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationFsxLustreResponse.proto view
+ fixture/DescribeLocationFsxOntap.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationFsxOntapResponse.proto view
+ fixture/DescribeLocationFsxOpenZfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationFsxOpenZfsResponse.proto view
+ fixture/DescribeLocationFsxWindows.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationFsxWindowsResponse.proto view
+ fixture/DescribeLocationHdfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationHdfsResponse.proto view
+ fixture/DescribeLocationNfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationNfsResponse.proto view
+ fixture/DescribeLocationObjectStorage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationObjectStorageResponse.proto view
+ fixture/DescribeLocationS3.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationS3Response.proto view
+ fixture/DescribeLocationSmb.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeLocationSmbResponse.proto view
+ fixture/DescribeTask.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeTaskExecution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/DescribeTaskExecutionResponse.proto view
+ fixture/DescribeTaskResponse.proto view
+ fixture/ListAgents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/ListAgentsResponse.proto view
+ fixture/ListLocations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/ListLocationsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/ListTaskExecutions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/ListTaskExecutionsResponse.proto view
+ fixture/ListTasks.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/ListTasksResponse.proto view
+ fixture/StartTaskExecution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/StartTaskExecutionResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateAgent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateAgentResponse.proto view
+ fixture/UpdateLocationHdfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateLocationHdfsResponse.proto view
+ fixture/UpdateLocationNfs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateLocationNfsResponse.proto view
+ fixture/UpdateLocationObjectStorage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateLocationObjectStorageResponse.proto view
+ fixture/UpdateLocationSmb.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateLocationSmbResponse.proto view
+ fixture/UpdateTask.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateTaskExecution.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/datasync/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  datasync.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/UpdateTaskExecutionResponse.proto view
+ fixture/UpdateTaskResponse.proto view
+ gen/Amazonka/DataSync.hs view
@@ -0,0 +1,566 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.DataSync+-- 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-11-09@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- DataSync+--+-- DataSync is a managed data transfer service that makes it simpler for+-- you to automate moving data between on-premises storage and Amazon Web+-- Services storage services. You also can use DataSync to transfer data+-- between other cloud providers and Amazon Web Services storage services.+--+-- This API interface reference includes documentation for using DataSync+-- programmatically. For complete information, see the+-- /<https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html DataSync User Guide>/+-- .+module Amazonka.DataSync+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** InternalException+    _InternalException,++    -- ** InvalidRequestException+    _InvalidRequestException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CancelTaskExecution+    CancelTaskExecution (CancelTaskExecution'),+    newCancelTaskExecution,+    CancelTaskExecutionResponse (CancelTaskExecutionResponse'),+    newCancelTaskExecutionResponse,++    -- ** CreateAgent+    CreateAgent (CreateAgent'),+    newCreateAgent,+    CreateAgentResponse (CreateAgentResponse'),+    newCreateAgentResponse,++    -- ** CreateLocationEfs+    CreateLocationEfs (CreateLocationEfs'),+    newCreateLocationEfs,+    CreateLocationEfsResponse (CreateLocationEfsResponse'),+    newCreateLocationEfsResponse,++    -- ** CreateLocationFsxLustre+    CreateLocationFsxLustre (CreateLocationFsxLustre'),+    newCreateLocationFsxLustre,+    CreateLocationFsxLustreResponse (CreateLocationFsxLustreResponse'),+    newCreateLocationFsxLustreResponse,++    -- ** CreateLocationFsxOntap+    CreateLocationFsxOntap (CreateLocationFsxOntap'),+    newCreateLocationFsxOntap,+    CreateLocationFsxOntapResponse (CreateLocationFsxOntapResponse'),+    newCreateLocationFsxOntapResponse,++    -- ** CreateLocationFsxOpenZfs+    CreateLocationFsxOpenZfs (CreateLocationFsxOpenZfs'),+    newCreateLocationFsxOpenZfs,+    CreateLocationFsxOpenZfsResponse (CreateLocationFsxOpenZfsResponse'),+    newCreateLocationFsxOpenZfsResponse,++    -- ** CreateLocationFsxWindows+    CreateLocationFsxWindows (CreateLocationFsxWindows'),+    newCreateLocationFsxWindows,+    CreateLocationFsxWindowsResponse (CreateLocationFsxWindowsResponse'),+    newCreateLocationFsxWindowsResponse,++    -- ** CreateLocationHdfs+    CreateLocationHdfs (CreateLocationHdfs'),+    newCreateLocationHdfs,+    CreateLocationHdfsResponse (CreateLocationHdfsResponse'),+    newCreateLocationHdfsResponse,++    -- ** CreateLocationNfs+    CreateLocationNfs (CreateLocationNfs'),+    newCreateLocationNfs,+    CreateLocationNfsResponse (CreateLocationNfsResponse'),+    newCreateLocationNfsResponse,++    -- ** CreateLocationObjectStorage+    CreateLocationObjectStorage (CreateLocationObjectStorage'),+    newCreateLocationObjectStorage,+    CreateLocationObjectStorageResponse (CreateLocationObjectStorageResponse'),+    newCreateLocationObjectStorageResponse,++    -- ** CreateLocationS3+    CreateLocationS3 (CreateLocationS3'),+    newCreateLocationS3,+    CreateLocationS3Response (CreateLocationS3Response'),+    newCreateLocationS3Response,++    -- ** CreateLocationSmb+    CreateLocationSmb (CreateLocationSmb'),+    newCreateLocationSmb,+    CreateLocationSmbResponse (CreateLocationSmbResponse'),+    newCreateLocationSmbResponse,++    -- ** CreateTask+    CreateTask (CreateTask'),+    newCreateTask,+    CreateTaskResponse (CreateTaskResponse'),+    newCreateTaskResponse,++    -- ** DeleteAgent+    DeleteAgent (DeleteAgent'),+    newDeleteAgent,+    DeleteAgentResponse (DeleteAgentResponse'),+    newDeleteAgentResponse,++    -- ** DeleteLocation+    DeleteLocation (DeleteLocation'),+    newDeleteLocation,+    DeleteLocationResponse (DeleteLocationResponse'),+    newDeleteLocationResponse,++    -- ** DeleteTask+    DeleteTask (DeleteTask'),+    newDeleteTask,+    DeleteTaskResponse (DeleteTaskResponse'),+    newDeleteTaskResponse,++    -- ** DescribeAgent+    DescribeAgent (DescribeAgent'),+    newDescribeAgent,+    DescribeAgentResponse (DescribeAgentResponse'),+    newDescribeAgentResponse,++    -- ** DescribeLocationEfs+    DescribeLocationEfs (DescribeLocationEfs'),+    newDescribeLocationEfs,+    DescribeLocationEfsResponse (DescribeLocationEfsResponse'),+    newDescribeLocationEfsResponse,++    -- ** DescribeLocationFsxLustre+    DescribeLocationFsxLustre (DescribeLocationFsxLustre'),+    newDescribeLocationFsxLustre,+    DescribeLocationFsxLustreResponse (DescribeLocationFsxLustreResponse'),+    newDescribeLocationFsxLustreResponse,++    -- ** DescribeLocationFsxOntap+    DescribeLocationFsxOntap (DescribeLocationFsxOntap'),+    newDescribeLocationFsxOntap,+    DescribeLocationFsxOntapResponse (DescribeLocationFsxOntapResponse'),+    newDescribeLocationFsxOntapResponse,++    -- ** DescribeLocationFsxOpenZfs+    DescribeLocationFsxOpenZfs (DescribeLocationFsxOpenZfs'),+    newDescribeLocationFsxOpenZfs,+    DescribeLocationFsxOpenZfsResponse (DescribeLocationFsxOpenZfsResponse'),+    newDescribeLocationFsxOpenZfsResponse,++    -- ** DescribeLocationFsxWindows+    DescribeLocationFsxWindows (DescribeLocationFsxWindows'),+    newDescribeLocationFsxWindows,+    DescribeLocationFsxWindowsResponse (DescribeLocationFsxWindowsResponse'),+    newDescribeLocationFsxWindowsResponse,++    -- ** DescribeLocationHdfs+    DescribeLocationHdfs (DescribeLocationHdfs'),+    newDescribeLocationHdfs,+    DescribeLocationHdfsResponse (DescribeLocationHdfsResponse'),+    newDescribeLocationHdfsResponse,++    -- ** DescribeLocationNfs+    DescribeLocationNfs (DescribeLocationNfs'),+    newDescribeLocationNfs,+    DescribeLocationNfsResponse (DescribeLocationNfsResponse'),+    newDescribeLocationNfsResponse,++    -- ** DescribeLocationObjectStorage+    DescribeLocationObjectStorage (DescribeLocationObjectStorage'),+    newDescribeLocationObjectStorage,+    DescribeLocationObjectStorageResponse (DescribeLocationObjectStorageResponse'),+    newDescribeLocationObjectStorageResponse,++    -- ** DescribeLocationS3+    DescribeLocationS3 (DescribeLocationS3'),+    newDescribeLocationS3,+    DescribeLocationS3Response (DescribeLocationS3Response'),+    newDescribeLocationS3Response,++    -- ** DescribeLocationSmb+    DescribeLocationSmb (DescribeLocationSmb'),+    newDescribeLocationSmb,+    DescribeLocationSmbResponse (DescribeLocationSmbResponse'),+    newDescribeLocationSmbResponse,++    -- ** DescribeTask+    DescribeTask (DescribeTask'),+    newDescribeTask,+    DescribeTaskResponse (DescribeTaskResponse'),+    newDescribeTaskResponse,++    -- ** DescribeTaskExecution+    DescribeTaskExecution (DescribeTaskExecution'),+    newDescribeTaskExecution,+    DescribeTaskExecutionResponse (DescribeTaskExecutionResponse'),+    newDescribeTaskExecutionResponse,++    -- ** ListAgents (Paginated)+    ListAgents (ListAgents'),+    newListAgents,+    ListAgentsResponse (ListAgentsResponse'),+    newListAgentsResponse,++    -- ** ListLocations (Paginated)+    ListLocations (ListLocations'),+    newListLocations,+    ListLocationsResponse (ListLocationsResponse'),+    newListLocationsResponse,++    -- ** ListTagsForResource (Paginated)+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListTaskExecutions (Paginated)+    ListTaskExecutions (ListTaskExecutions'),+    newListTaskExecutions,+    ListTaskExecutionsResponse (ListTaskExecutionsResponse'),+    newListTaskExecutionsResponse,++    -- ** ListTasks (Paginated)+    ListTasks (ListTasks'),+    newListTasks,+    ListTasksResponse (ListTasksResponse'),+    newListTasksResponse,++    -- ** StartTaskExecution+    StartTaskExecution (StartTaskExecution'),+    newStartTaskExecution,+    StartTaskExecutionResponse (StartTaskExecutionResponse'),+    newStartTaskExecutionResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAgent+    UpdateAgent (UpdateAgent'),+    newUpdateAgent,+    UpdateAgentResponse (UpdateAgentResponse'),+    newUpdateAgentResponse,++    -- ** UpdateLocationHdfs+    UpdateLocationHdfs (UpdateLocationHdfs'),+    newUpdateLocationHdfs,+    UpdateLocationHdfsResponse (UpdateLocationHdfsResponse'),+    newUpdateLocationHdfsResponse,++    -- ** UpdateLocationNfs+    UpdateLocationNfs (UpdateLocationNfs'),+    newUpdateLocationNfs,+    UpdateLocationNfsResponse (UpdateLocationNfsResponse'),+    newUpdateLocationNfsResponse,++    -- ** UpdateLocationObjectStorage+    UpdateLocationObjectStorage (UpdateLocationObjectStorage'),+    newUpdateLocationObjectStorage,+    UpdateLocationObjectStorageResponse (UpdateLocationObjectStorageResponse'),+    newUpdateLocationObjectStorageResponse,++    -- ** UpdateLocationSmb+    UpdateLocationSmb (UpdateLocationSmb'),+    newUpdateLocationSmb,+    UpdateLocationSmbResponse (UpdateLocationSmbResponse'),+    newUpdateLocationSmbResponse,++    -- ** UpdateTask+    UpdateTask (UpdateTask'),+    newUpdateTask,+    UpdateTaskResponse (UpdateTaskResponse'),+    newUpdateTaskResponse,++    -- ** UpdateTaskExecution+    UpdateTaskExecution (UpdateTaskExecution'),+    newUpdateTaskExecution,+    UpdateTaskExecutionResponse (UpdateTaskExecutionResponse'),+    newUpdateTaskExecutionResponse,++    -- * Types++    -- ** AgentStatus+    AgentStatus (..),++    -- ** Atime+    Atime (..),++    -- ** EfsInTransitEncryption+    EfsInTransitEncryption (..),++    -- ** EndpointType+    EndpointType (..),++    -- ** FilterType+    FilterType (..),++    -- ** Gid+    Gid (..),++    -- ** HdfsAuthenticationType+    HdfsAuthenticationType (..),++    -- ** HdfsDataTransferProtection+    HdfsDataTransferProtection (..),++    -- ** HdfsRpcProtection+    HdfsRpcProtection (..),++    -- ** LocationFilterName+    LocationFilterName (..),++    -- ** LogLevel+    LogLevel (..),++    -- ** Mtime+    Mtime (..),++    -- ** NfsVersion+    NfsVersion (..),++    -- ** ObjectStorageServerProtocol+    ObjectStorageServerProtocol (..),++    -- ** ObjectTags+    ObjectTags (..),++    -- ** Operator+    Operator (..),++    -- ** OverwriteMode+    OverwriteMode (..),++    -- ** PhaseStatus+    PhaseStatus (..),++    -- ** PosixPermissions+    PosixPermissions (..),++    -- ** PreserveDeletedFiles+    PreserveDeletedFiles (..),++    -- ** PreserveDevices+    PreserveDevices (..),++    -- ** S3StorageClass+    S3StorageClass (..),++    -- ** SmbSecurityDescriptorCopyFlags+    SmbSecurityDescriptorCopyFlags (..),++    -- ** SmbVersion+    SmbVersion (..),++    -- ** TaskExecutionStatus+    TaskExecutionStatus (..),++    -- ** TaskFilterName+    TaskFilterName (..),++    -- ** TaskQueueing+    TaskQueueing (..),++    -- ** TaskStatus+    TaskStatus (..),++    -- ** TransferMode+    TransferMode (..),++    -- ** Uid+    Uid (..),++    -- ** VerifyMode+    VerifyMode (..),++    -- ** AgentListEntry+    AgentListEntry (AgentListEntry'),+    newAgentListEntry,++    -- ** Ec2Config+    Ec2Config (Ec2Config'),+    newEc2Config,++    -- ** FilterRule+    FilterRule (FilterRule'),+    newFilterRule,++    -- ** FsxProtocol+    FsxProtocol (FsxProtocol'),+    newFsxProtocol,++    -- ** FsxProtocolNfs+    FsxProtocolNfs (FsxProtocolNfs'),+    newFsxProtocolNfs,++    -- ** FsxProtocolSmb+    FsxProtocolSmb (FsxProtocolSmb'),+    newFsxProtocolSmb,++    -- ** HdfsNameNode+    HdfsNameNode (HdfsNameNode'),+    newHdfsNameNode,++    -- ** LocationFilter+    LocationFilter (LocationFilter'),+    newLocationFilter,++    -- ** LocationListEntry+    LocationListEntry (LocationListEntry'),+    newLocationListEntry,++    -- ** NfsMountOptions+    NfsMountOptions (NfsMountOptions'),+    newNfsMountOptions,++    -- ** OnPremConfig+    OnPremConfig (OnPremConfig'),+    newOnPremConfig,++    -- ** Options+    Options (Options'),+    newOptions,++    -- ** PrivateLinkConfig+    PrivateLinkConfig (PrivateLinkConfig'),+    newPrivateLinkConfig,++    -- ** QopConfiguration+    QopConfiguration (QopConfiguration'),+    newQopConfiguration,++    -- ** S3Config+    S3Config (S3Config'),+    newS3Config,++    -- ** SmbMountOptions+    SmbMountOptions (SmbMountOptions'),+    newSmbMountOptions,++    -- ** TagListEntry+    TagListEntry (TagListEntry'),+    newTagListEntry,++    -- ** TaskExecutionListEntry+    TaskExecutionListEntry (TaskExecutionListEntry'),+    newTaskExecutionListEntry,++    -- ** TaskExecutionResultDetail+    TaskExecutionResultDetail (TaskExecutionResultDetail'),+    newTaskExecutionResultDetail,++    -- ** TaskFilter+    TaskFilter (TaskFilter'),+    newTaskFilter,++    -- ** TaskListEntry+    TaskListEntry (TaskListEntry'),+    newTaskListEntry,++    -- ** TaskSchedule+    TaskSchedule (TaskSchedule'),+    newTaskSchedule,+  )+where++import Amazonka.DataSync.CancelTaskExecution+import Amazonka.DataSync.CreateAgent+import Amazonka.DataSync.CreateLocationEfs+import Amazonka.DataSync.CreateLocationFsxLustre+import Amazonka.DataSync.CreateLocationFsxOntap+import Amazonka.DataSync.CreateLocationFsxOpenZfs+import Amazonka.DataSync.CreateLocationFsxWindows+import Amazonka.DataSync.CreateLocationHdfs+import Amazonka.DataSync.CreateLocationNfs+import Amazonka.DataSync.CreateLocationObjectStorage+import Amazonka.DataSync.CreateLocationS3+import Amazonka.DataSync.CreateLocationSmb+import Amazonka.DataSync.CreateTask+import Amazonka.DataSync.DeleteAgent+import Amazonka.DataSync.DeleteLocation+import Amazonka.DataSync.DeleteTask+import Amazonka.DataSync.DescribeAgent+import Amazonka.DataSync.DescribeLocationEfs+import Amazonka.DataSync.DescribeLocationFsxLustre+import Amazonka.DataSync.DescribeLocationFsxOntap+import Amazonka.DataSync.DescribeLocationFsxOpenZfs+import Amazonka.DataSync.DescribeLocationFsxWindows+import Amazonka.DataSync.DescribeLocationHdfs+import Amazonka.DataSync.DescribeLocationNfs+import Amazonka.DataSync.DescribeLocationObjectStorage+import Amazonka.DataSync.DescribeLocationS3+import Amazonka.DataSync.DescribeLocationSmb+import Amazonka.DataSync.DescribeTask+import Amazonka.DataSync.DescribeTaskExecution+import Amazonka.DataSync.Lens+import Amazonka.DataSync.ListAgents+import Amazonka.DataSync.ListLocations+import Amazonka.DataSync.ListTagsForResource+import Amazonka.DataSync.ListTaskExecutions+import Amazonka.DataSync.ListTasks+import Amazonka.DataSync.StartTaskExecution+import Amazonka.DataSync.TagResource+import Amazonka.DataSync.Types+import Amazonka.DataSync.UntagResource+import Amazonka.DataSync.UpdateAgent+import Amazonka.DataSync.UpdateLocationHdfs+import Amazonka.DataSync.UpdateLocationNfs+import Amazonka.DataSync.UpdateLocationObjectStorage+import Amazonka.DataSync.UpdateLocationSmb+import Amazonka.DataSync.UpdateTask+import Amazonka.DataSync.UpdateTaskExecution+import Amazonka.DataSync.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 'DataSync'.++-- $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/DataSync/CancelTaskExecution.hs view
@@ -0,0 +1,173 @@+{-# 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.DataSync.CancelTaskExecution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops an DataSync task execution that\'s in progress. The transfer of+-- some files are abruptly interrupted. File contents that\'re transferred+-- to the destination might be incomplete or inconsistent with the source+-- files.+--+-- However, if you start a new task execution using the same task and allow+-- it to finish, file content on the destination will be complete and+-- consistent. This applies to other unexpected failures that interrupt a+-- task execution. In all of these cases, DataSync successfully completes+-- the transfer when you start the next task execution.+module Amazonka.DataSync.CancelTaskExecution+  ( -- * Creating a Request+    CancelTaskExecution (..),+    newCancelTaskExecution,++    -- * Request Lenses+    cancelTaskExecution_taskExecutionArn,++    -- * Destructuring the Response+    CancelTaskExecutionResponse (..),+    newCancelTaskExecutionResponse,++    -- * Response Lenses+    cancelTaskExecutionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CancelTaskExecutionRequest+--+-- /See:/ 'newCancelTaskExecution' smart constructor.+data CancelTaskExecution = CancelTaskExecution'+  { -- | The Amazon Resource Name (ARN) of the task execution to stop.+    taskExecutionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelTaskExecution' 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:+--+-- 'taskExecutionArn', 'cancelTaskExecution_taskExecutionArn' - The Amazon Resource Name (ARN) of the task execution to stop.+newCancelTaskExecution ::+  -- | 'taskExecutionArn'+  Prelude.Text ->+  CancelTaskExecution+newCancelTaskExecution pTaskExecutionArn_ =+  CancelTaskExecution'+    { taskExecutionArn =+        pTaskExecutionArn_+    }++-- | The Amazon Resource Name (ARN) of the task execution to stop.+cancelTaskExecution_taskExecutionArn :: Lens.Lens' CancelTaskExecution Prelude.Text+cancelTaskExecution_taskExecutionArn = Lens.lens (\CancelTaskExecution' {taskExecutionArn} -> taskExecutionArn) (\s@CancelTaskExecution' {} a -> s {taskExecutionArn = a} :: CancelTaskExecution)++instance Core.AWSRequest CancelTaskExecution where+  type+    AWSResponse CancelTaskExecution =+      CancelTaskExecutionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CancelTaskExecutionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CancelTaskExecution where+  hashWithSalt _salt CancelTaskExecution' {..} =+    _salt `Prelude.hashWithSalt` taskExecutionArn++instance Prelude.NFData CancelTaskExecution where+  rnf CancelTaskExecution' {..} =+    Prelude.rnf taskExecutionArn++instance Data.ToHeaders CancelTaskExecution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CancelTaskExecution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CancelTaskExecution where+  toJSON CancelTaskExecution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("TaskExecutionArn" Data..= taskExecutionArn)+          ]+      )++instance Data.ToPath CancelTaskExecution where+  toPath = Prelude.const "/"++instance Data.ToQuery CancelTaskExecution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCancelTaskExecutionResponse' smart constructor.+data CancelTaskExecutionResponse = CancelTaskExecutionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelTaskExecutionResponse' 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', 'cancelTaskExecutionResponse_httpStatus' - The response's http status code.+newCancelTaskExecutionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CancelTaskExecutionResponse+newCancelTaskExecutionResponse pHttpStatus_ =+  CancelTaskExecutionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+cancelTaskExecutionResponse_httpStatus :: Lens.Lens' CancelTaskExecutionResponse Prelude.Int+cancelTaskExecutionResponse_httpStatus = Lens.lens (\CancelTaskExecutionResponse' {httpStatus} -> httpStatus) (\s@CancelTaskExecutionResponse' {} a -> s {httpStatus = a} :: CancelTaskExecutionResponse)++instance Prelude.NFData CancelTaskExecutionResponse where+  rnf CancelTaskExecutionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateAgent.hs view
@@ -0,0 +1,366 @@+{-# 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.DataSync.CreateAgent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Activates an DataSync agent that you have deployed in your storage+-- environment. The activation process associates your agent with your+-- account. In the activation process, you specify information such as the+-- Amazon Web Services Region that you want to activate the agent in. You+-- activate the agent in the Amazon Web Services Region where your target+-- locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in+-- this Amazon Web Services Region.+--+-- You can activate the agent in a VPC (virtual private cloud) or provide+-- the agent access to a VPC endpoint so you can run tasks without going+-- over the public internet.+--+-- You can use an agent for more than one location. If a task uses multiple+-- agents, all of them need to have status AVAILABLE for the task to run.+-- If you use multiple agents for a source location, the status of all the+-- agents must be AVAILABLE for the task to run.+--+-- Agents are automatically updated by Amazon Web Services on a regular+-- basis, using a mechanism that ensures minimal interruption to your+-- tasks.+module Amazonka.DataSync.CreateAgent+  ( -- * Creating a Request+    CreateAgent (..),+    newCreateAgent,++    -- * Request Lenses+    createAgent_agentName,+    createAgent_securityGroupArns,+    createAgent_subnetArns,+    createAgent_tags,+    createAgent_vpcEndpointId,+    createAgent_activationKey,++    -- * Destructuring the Response+    CreateAgentResponse (..),+    newCreateAgentResponse,++    -- * Response Lenses+    createAgentResponse_agentArn,+    createAgentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CreateAgentRequest+--+-- /See:/ 'newCreateAgent' smart constructor.+data CreateAgent = CreateAgent'+  { -- | The name you configured for your agent. This value is a text reference+    -- that is used to identify the agent in the console.+    agentName :: Prelude.Maybe Prelude.Text,+    -- | The ARNs of the security groups used to protect your data transfer task+    -- subnets. See+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns SecurityGroupArns>.+    securityGroupArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The Amazon Resource Names (ARNs) of the subnets in which DataSync will+    -- create elastic network interfaces for each data transfer task. The agent+    -- that runs a task must be private. When you start a task that is+    -- associated with an agent created in a VPC, or one that has access to an+    -- IP address in a VPC, then the task is also private. In this case,+    -- DataSync creates four network interfaces for each task in your subnet.+    -- For a data transfer to work, the agent must be able to route to all+    -- these four network interfaces.+    subnetArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The key-value pair that represents the tag that you want to associate+    -- with the agent. The value can be an empty string. This value helps you+    -- manage, filter, and search for your agents.+    --+    -- Valid characters for key and value are letters, spaces, and numbers+    -- representable in UTF-8 format, and the following special characters: + -+    -- = . _ : \/ \@.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The ID of the VPC (virtual private cloud) endpoint that the agent has+    -- access to. This is the client-side VPC endpoint, also called a+    -- PrivateLink. If you don\'t have a PrivateLink VPC endpoint, see+    -- <https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service Creating a VPC Endpoint Service Configuration>+    -- in the Amazon VPC User Guide.+    --+    -- VPC endpoint ID looks like this: @vpce-01234d5aff67890e1@.+    vpcEndpointId :: Prelude.Maybe Prelude.Text,+    -- | Your agent activation key. You can get the activation key either by+    -- sending an HTTP GET request with redirects that enable you to get the+    -- agent IP address (port 80). Alternatively, you can get it from the+    -- DataSync console.+    --+    -- The redirect URL returned in the response provides you the activation+    -- key for your agent in the query string parameter @activationKey@. It+    -- might also include other activation-related parameters; however, these+    -- are merely defaults. The arguments you pass to this API call determine+    -- the actual configuration of your agent.+    --+    -- For more information, see Activating an Agent in the /DataSync User+    -- Guide./+    activationKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAgent' 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:+--+-- 'agentName', 'createAgent_agentName' - The name you configured for your agent. This value is a text reference+-- that is used to identify the agent in the console.+--+-- 'securityGroupArns', 'createAgent_securityGroupArns' - The ARNs of the security groups used to protect your data transfer task+-- subnets. See+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns SecurityGroupArns>.+--+-- 'subnetArns', 'createAgent_subnetArns' - The Amazon Resource Names (ARNs) of the subnets in which DataSync will+-- create elastic network interfaces for each data transfer task. The agent+-- that runs a task must be private. When you start a task that is+-- associated with an agent created in a VPC, or one that has access to an+-- IP address in a VPC, then the task is also private. In this case,+-- DataSync creates four network interfaces for each task in your subnet.+-- For a data transfer to work, the agent must be able to route to all+-- these four network interfaces.+--+-- 'tags', 'createAgent_tags' - The key-value pair that represents the tag that you want to associate+-- with the agent. The value can be an empty string. This value helps you+-- manage, filter, and search for your agents.+--+-- Valid characters for key and value are letters, spaces, and numbers+-- representable in UTF-8 format, and the following special characters: + -+-- = . _ : \/ \@.+--+-- 'vpcEndpointId', 'createAgent_vpcEndpointId' - The ID of the VPC (virtual private cloud) endpoint that the agent has+-- access to. This is the client-side VPC endpoint, also called a+-- PrivateLink. If you don\'t have a PrivateLink VPC endpoint, see+-- <https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service Creating a VPC Endpoint Service Configuration>+-- in the Amazon VPC User Guide.+--+-- VPC endpoint ID looks like this: @vpce-01234d5aff67890e1@.+--+-- 'activationKey', 'createAgent_activationKey' - Your agent activation key. You can get the activation key either by+-- sending an HTTP GET request with redirects that enable you to get the+-- agent IP address (port 80). Alternatively, you can get it from the+-- DataSync console.+--+-- The redirect URL returned in the response provides you the activation+-- key for your agent in the query string parameter @activationKey@. It+-- might also include other activation-related parameters; however, these+-- are merely defaults. The arguments you pass to this API call determine+-- the actual configuration of your agent.+--+-- For more information, see Activating an Agent in the /DataSync User+-- Guide./+newCreateAgent ::+  -- | 'activationKey'+  Prelude.Text ->+  CreateAgent+newCreateAgent pActivationKey_ =+  CreateAgent'+    { agentName = Prelude.Nothing,+      securityGroupArns = Prelude.Nothing,+      subnetArns = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcEndpointId = Prelude.Nothing,+      activationKey = pActivationKey_+    }++-- | The name you configured for your agent. This value is a text reference+-- that is used to identify the agent in the console.+createAgent_agentName :: Lens.Lens' CreateAgent (Prelude.Maybe Prelude.Text)+createAgent_agentName = Lens.lens (\CreateAgent' {agentName} -> agentName) (\s@CreateAgent' {} a -> s {agentName = a} :: CreateAgent)++-- | The ARNs of the security groups used to protect your data transfer task+-- subnets. See+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_Ec2Config.html#DataSync-Type-Ec2Config-SecurityGroupArns SecurityGroupArns>.+createAgent_securityGroupArns :: Lens.Lens' CreateAgent (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createAgent_securityGroupArns = Lens.lens (\CreateAgent' {securityGroupArns} -> securityGroupArns) (\s@CreateAgent' {} a -> s {securityGroupArns = a} :: CreateAgent) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Names (ARNs) of the subnets in which DataSync will+-- create elastic network interfaces for each data transfer task. The agent+-- that runs a task must be private. When you start a task that is+-- associated with an agent created in a VPC, or one that has access to an+-- IP address in a VPC, then the task is also private. In this case,+-- DataSync creates four network interfaces for each task in your subnet.+-- For a data transfer to work, the agent must be able to route to all+-- these four network interfaces.+createAgent_subnetArns :: Lens.Lens' CreateAgent (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createAgent_subnetArns = Lens.lens (\CreateAgent' {subnetArns} -> subnetArns) (\s@CreateAgent' {} a -> s {subnetArns = a} :: CreateAgent) Prelude.. Lens.mapping Lens.coerced++-- | The key-value pair that represents the tag that you want to associate+-- with the agent. The value can be an empty string. This value helps you+-- manage, filter, and search for your agents.+--+-- Valid characters for key and value are letters, spaces, and numbers+-- representable in UTF-8 format, and the following special characters: + -+-- = . _ : \/ \@.+createAgent_tags :: Lens.Lens' CreateAgent (Prelude.Maybe [TagListEntry])+createAgent_tags = Lens.lens (\CreateAgent' {tags} -> tags) (\s@CreateAgent' {} a -> s {tags = a} :: CreateAgent) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the VPC (virtual private cloud) endpoint that the agent has+-- access to. This is the client-side VPC endpoint, also called a+-- PrivateLink. If you don\'t have a PrivateLink VPC endpoint, see+-- <https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service Creating a VPC Endpoint Service Configuration>+-- in the Amazon VPC User Guide.+--+-- VPC endpoint ID looks like this: @vpce-01234d5aff67890e1@.+createAgent_vpcEndpointId :: Lens.Lens' CreateAgent (Prelude.Maybe Prelude.Text)+createAgent_vpcEndpointId = Lens.lens (\CreateAgent' {vpcEndpointId} -> vpcEndpointId) (\s@CreateAgent' {} a -> s {vpcEndpointId = a} :: CreateAgent)++-- | Your agent activation key. You can get the activation key either by+-- sending an HTTP GET request with redirects that enable you to get the+-- agent IP address (port 80). Alternatively, you can get it from the+-- DataSync console.+--+-- The redirect URL returned in the response provides you the activation+-- key for your agent in the query string parameter @activationKey@. It+-- might also include other activation-related parameters; however, these+-- are merely defaults. The arguments you pass to this API call determine+-- the actual configuration of your agent.+--+-- For more information, see Activating an Agent in the /DataSync User+-- Guide./+createAgent_activationKey :: Lens.Lens' CreateAgent Prelude.Text+createAgent_activationKey = Lens.lens (\CreateAgent' {activationKey} -> activationKey) (\s@CreateAgent' {} a -> s {activationKey = a} :: CreateAgent)++instance Core.AWSRequest CreateAgent where+  type AWSResponse CreateAgent = CreateAgentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAgentResponse'+            Prelude.<$> (x Data..?> "AgentArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateAgent where+  hashWithSalt _salt CreateAgent' {..} =+    _salt+      `Prelude.hashWithSalt` agentName+      `Prelude.hashWithSalt` securityGroupArns+      `Prelude.hashWithSalt` subnetArns+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcEndpointId+      `Prelude.hashWithSalt` activationKey++instance Prelude.NFData CreateAgent where+  rnf CreateAgent' {..} =+    Prelude.rnf agentName+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf subnetArns+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcEndpointId+      `Prelude.seq` Prelude.rnf activationKey++instance Data.ToHeaders CreateAgent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.CreateAgent" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAgent where+  toJSON CreateAgent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AgentName" Data..=) Prelude.<$> agentName,+            ("SecurityGroupArns" Data..=)+              Prelude.<$> securityGroupArns,+            ("SubnetArns" Data..=) Prelude.<$> subnetArns,+            ("Tags" Data..=) Prelude.<$> tags,+            ("VpcEndpointId" Data..=) Prelude.<$> vpcEndpointId,+            Prelude.Just+              ("ActivationKey" Data..= activationKey)+          ]+      )++instance Data.ToPath CreateAgent where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateAgent where+  toQuery = Prelude.const Prelude.mempty++-- | CreateAgentResponse+--+-- /See:/ 'newCreateAgentResponse' smart constructor.+data CreateAgentResponse = CreateAgentResponse'+  { -- | The Amazon Resource Name (ARN) of the agent. Use the @ListAgents@+    -- operation to return a list of agents for your account and Amazon Web+    -- Services Region.+    agentArn :: 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 'CreateAgentResponse' 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:+--+-- 'agentArn', 'createAgentResponse_agentArn' - The Amazon Resource Name (ARN) of the agent. Use the @ListAgents@+-- operation to return a list of agents for your account and Amazon Web+-- Services Region.+--+-- 'httpStatus', 'createAgentResponse_httpStatus' - The response's http status code.+newCreateAgentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateAgentResponse+newCreateAgentResponse pHttpStatus_ =+  CreateAgentResponse'+    { agentArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the agent. Use the @ListAgents@+-- operation to return a list of agents for your account and Amazon Web+-- Services Region.+createAgentResponse_agentArn :: Lens.Lens' CreateAgentResponse (Prelude.Maybe Prelude.Text)+createAgentResponse_agentArn = Lens.lens (\CreateAgentResponse' {agentArn} -> agentArn) (\s@CreateAgentResponse' {} a -> s {agentArn = a} :: CreateAgentResponse)++-- | The response's http status code.+createAgentResponse_httpStatus :: Lens.Lens' CreateAgentResponse Prelude.Int+createAgentResponse_httpStatus = Lens.lens (\CreateAgentResponse' {httpStatus} -> httpStatus) (\s@CreateAgentResponse' {} a -> s {httpStatus = a} :: CreateAgentResponse)++instance Prelude.NFData CreateAgentResponse where+  rnf CreateAgentResponse' {..} =+    Prelude.rnf agentArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationEfs.hs view
@@ -0,0 +1,321 @@+{-# 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.DataSync.CreateLocationEfs+-- 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 endpoint for an Amazon EFS file system that DataSync can+-- access for a transfer. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-efs-location.html Creating a location for Amazon EFS>.+module Amazonka.DataSync.CreateLocationEfs+  ( -- * Creating a Request+    CreateLocationEfs (..),+    newCreateLocationEfs,++    -- * Request Lenses+    createLocationEfs_accessPointArn,+    createLocationEfs_fileSystemAccessRoleArn,+    createLocationEfs_inTransitEncryption,+    createLocationEfs_subdirectory,+    createLocationEfs_tags,+    createLocationEfs_efsFilesystemArn,+    createLocationEfs_ec2Config,++    -- * Destructuring the Response+    CreateLocationEfsResponse (..),+    newCreateLocationEfsResponse,++    -- * Response Lenses+    createLocationEfsResponse_locationArn,+    createLocationEfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CreateLocationEfsRequest+--+-- /See:/ 'newCreateLocationEfs' smart constructor.+data CreateLocationEfs = CreateLocationEfs'+  { -- | Specifies the Amazon Resource Name (ARN) of the access point that+    -- DataSync uses to access the Amazon EFS file system.+    accessPointArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies an Identity and Access Management (IAM) role that DataSync+    -- assumes when mounting the Amazon EFS file system.+    fileSystemAccessRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether you want DataSync to use Transport Layer Security+    -- (TLS) 1.2 encryption when it copies data to or from the Amazon EFS file+    -- system.+    --+    -- If you specify an access point using @AccessPointArn@ or an IAM role+    -- using @FileSystemAccessRoleArn@, you must set this parameter to+    -- @TLS1_2@.+    inTransitEncryption :: Prelude.Maybe EfsInTransitEncryption,+    -- | Specifies a mount path for your Amazon EFS file system. This is where+    -- DataSync reads or writes data (depending on if this is a source or+    -- destination location). By default, DataSync uses the root directory, but+    -- you can also include subdirectories.+    --+    -- You must specify a value with forward slashes (for example,+    -- @\/path\/to\/folder@).+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | Specifies the key-value pair that represents a tag that you want to add+    -- to the resource. The value can be an empty string. This value helps you+    -- manage, filter, and search for your resources. We recommend that you+    -- create a name tag for your location.+    tags :: Prelude.Maybe [TagListEntry],+    -- | Specifies the ARN for the Amazon EFS file system.+    efsFilesystemArn :: Prelude.Text,+    -- | Specifies the subnet and security groups DataSync uses to access your+    -- Amazon EFS file system.+    ec2Config :: Ec2Config+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationEfs' 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:+--+-- 'accessPointArn', 'createLocationEfs_accessPointArn' - Specifies the Amazon Resource Name (ARN) of the access point that+-- DataSync uses to access the Amazon EFS file system.+--+-- 'fileSystemAccessRoleArn', 'createLocationEfs_fileSystemAccessRoleArn' - Specifies an Identity and Access Management (IAM) role that DataSync+-- assumes when mounting the Amazon EFS file system.+--+-- 'inTransitEncryption', 'createLocationEfs_inTransitEncryption' - Specifies whether you want DataSync to use Transport Layer Security+-- (TLS) 1.2 encryption when it copies data to or from the Amazon EFS file+-- system.+--+-- If you specify an access point using @AccessPointArn@ or an IAM role+-- using @FileSystemAccessRoleArn@, you must set this parameter to+-- @TLS1_2@.+--+-- 'subdirectory', 'createLocationEfs_subdirectory' - Specifies a mount path for your Amazon EFS file system. This is where+-- DataSync reads or writes data (depending on if this is a source or+-- destination location). By default, DataSync uses the root directory, but+-- you can also include subdirectories.+--+-- You must specify a value with forward slashes (for example,+-- @\/path\/to\/folder@).+--+-- 'tags', 'createLocationEfs_tags' - Specifies the key-value pair that represents a tag that you want to add+-- to the resource. The value can be an empty string. This value helps you+-- manage, filter, and search for your resources. We recommend that you+-- create a name tag for your location.+--+-- 'efsFilesystemArn', 'createLocationEfs_efsFilesystemArn' - Specifies the ARN for the Amazon EFS file system.+--+-- 'ec2Config', 'createLocationEfs_ec2Config' - Specifies the subnet and security groups DataSync uses to access your+-- Amazon EFS file system.+newCreateLocationEfs ::+  -- | 'efsFilesystemArn'+  Prelude.Text ->+  -- | 'ec2Config'+  Ec2Config ->+  CreateLocationEfs+newCreateLocationEfs pEfsFilesystemArn_ pEc2Config_ =+  CreateLocationEfs'+    { accessPointArn =+        Prelude.Nothing,+      fileSystemAccessRoleArn = Prelude.Nothing,+      inTransitEncryption = Prelude.Nothing,+      subdirectory = Prelude.Nothing,+      tags = Prelude.Nothing,+      efsFilesystemArn = pEfsFilesystemArn_,+      ec2Config = pEc2Config_+    }++-- | Specifies the Amazon Resource Name (ARN) of the access point that+-- DataSync uses to access the Amazon EFS file system.+createLocationEfs_accessPointArn :: Lens.Lens' CreateLocationEfs (Prelude.Maybe Prelude.Text)+createLocationEfs_accessPointArn = Lens.lens (\CreateLocationEfs' {accessPointArn} -> accessPointArn) (\s@CreateLocationEfs' {} a -> s {accessPointArn = a} :: CreateLocationEfs)++-- | Specifies an Identity and Access Management (IAM) role that DataSync+-- assumes when mounting the Amazon EFS file system.+createLocationEfs_fileSystemAccessRoleArn :: Lens.Lens' CreateLocationEfs (Prelude.Maybe Prelude.Text)+createLocationEfs_fileSystemAccessRoleArn = Lens.lens (\CreateLocationEfs' {fileSystemAccessRoleArn} -> fileSystemAccessRoleArn) (\s@CreateLocationEfs' {} a -> s {fileSystemAccessRoleArn = a} :: CreateLocationEfs)++-- | Specifies whether you want DataSync to use Transport Layer Security+-- (TLS) 1.2 encryption when it copies data to or from the Amazon EFS file+-- system.+--+-- If you specify an access point using @AccessPointArn@ or an IAM role+-- using @FileSystemAccessRoleArn@, you must set this parameter to+-- @TLS1_2@.+createLocationEfs_inTransitEncryption :: Lens.Lens' CreateLocationEfs (Prelude.Maybe EfsInTransitEncryption)+createLocationEfs_inTransitEncryption = Lens.lens (\CreateLocationEfs' {inTransitEncryption} -> inTransitEncryption) (\s@CreateLocationEfs' {} a -> s {inTransitEncryption = a} :: CreateLocationEfs)++-- | Specifies a mount path for your Amazon EFS file system. This is where+-- DataSync reads or writes data (depending on if this is a source or+-- destination location). By default, DataSync uses the root directory, but+-- you can also include subdirectories.+--+-- You must specify a value with forward slashes (for example,+-- @\/path\/to\/folder@).+createLocationEfs_subdirectory :: Lens.Lens' CreateLocationEfs (Prelude.Maybe Prelude.Text)+createLocationEfs_subdirectory = Lens.lens (\CreateLocationEfs' {subdirectory} -> subdirectory) (\s@CreateLocationEfs' {} a -> s {subdirectory = a} :: CreateLocationEfs)++-- | Specifies the key-value pair that represents a tag that you want to add+-- to the resource. The value can be an empty string. This value helps you+-- manage, filter, and search for your resources. We recommend that you+-- create a name tag for your location.+createLocationEfs_tags :: Lens.Lens' CreateLocationEfs (Prelude.Maybe [TagListEntry])+createLocationEfs_tags = Lens.lens (\CreateLocationEfs' {tags} -> tags) (\s@CreateLocationEfs' {} a -> s {tags = a} :: CreateLocationEfs) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the ARN for the Amazon EFS file system.+createLocationEfs_efsFilesystemArn :: Lens.Lens' CreateLocationEfs Prelude.Text+createLocationEfs_efsFilesystemArn = Lens.lens (\CreateLocationEfs' {efsFilesystemArn} -> efsFilesystemArn) (\s@CreateLocationEfs' {} a -> s {efsFilesystemArn = a} :: CreateLocationEfs)++-- | Specifies the subnet and security groups DataSync uses to access your+-- Amazon EFS file system.+createLocationEfs_ec2Config :: Lens.Lens' CreateLocationEfs Ec2Config+createLocationEfs_ec2Config = Lens.lens (\CreateLocationEfs' {ec2Config} -> ec2Config) (\s@CreateLocationEfs' {} a -> s {ec2Config = a} :: CreateLocationEfs)++instance Core.AWSRequest CreateLocationEfs where+  type+    AWSResponse CreateLocationEfs =+      CreateLocationEfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationEfsResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationEfs where+  hashWithSalt _salt CreateLocationEfs' {..} =+    _salt+      `Prelude.hashWithSalt` accessPointArn+      `Prelude.hashWithSalt` fileSystemAccessRoleArn+      `Prelude.hashWithSalt` inTransitEncryption+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` efsFilesystemArn+      `Prelude.hashWithSalt` ec2Config++instance Prelude.NFData CreateLocationEfs where+  rnf CreateLocationEfs' {..} =+    Prelude.rnf accessPointArn+      `Prelude.seq` Prelude.rnf fileSystemAccessRoleArn+      `Prelude.seq` Prelude.rnf inTransitEncryption+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf efsFilesystemArn+      `Prelude.seq` Prelude.rnf ec2Config++instance Data.ToHeaders CreateLocationEfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationEfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationEfs where+  toJSON CreateLocationEfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessPointArn" Data..=)+              Prelude.<$> accessPointArn,+            ("FileSystemAccessRoleArn" Data..=)+              Prelude.<$> fileSystemAccessRoleArn,+            ("InTransitEncryption" Data..=)+              Prelude.<$> inTransitEncryption,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("EfsFilesystemArn" Data..= efsFilesystemArn),+            Prelude.Just ("Ec2Config" Data..= ec2Config)+          ]+      )++instance Data.ToPath CreateLocationEfs where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationEfs where+  toQuery = Prelude.const Prelude.mempty++-- | CreateLocationEfs+--+-- /See:/ 'newCreateLocationEfsResponse' smart constructor.+data CreateLocationEfsResponse = CreateLocationEfsResponse'+  { -- | The Amazon Resource Name (ARN) of the Amazon EFS file system location+    -- that you create.+    locationArn :: 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 'CreateLocationEfsResponse' 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:+--+-- 'locationArn', 'createLocationEfsResponse_locationArn' - The Amazon Resource Name (ARN) of the Amazon EFS file system location+-- that you create.+--+-- 'httpStatus', 'createLocationEfsResponse_httpStatus' - The response's http status code.+newCreateLocationEfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationEfsResponse+newCreateLocationEfsResponse pHttpStatus_ =+  CreateLocationEfsResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the Amazon EFS file system location+-- that you create.+createLocationEfsResponse_locationArn :: Lens.Lens' CreateLocationEfsResponse (Prelude.Maybe Prelude.Text)+createLocationEfsResponse_locationArn = Lens.lens (\CreateLocationEfsResponse' {locationArn} -> locationArn) (\s@CreateLocationEfsResponse' {} a -> s {locationArn = a} :: CreateLocationEfsResponse)++-- | The response's http status code.+createLocationEfsResponse_httpStatus :: Lens.Lens' CreateLocationEfsResponse Prelude.Int+createLocationEfsResponse_httpStatus = Lens.lens (\CreateLocationEfsResponse' {httpStatus} -> httpStatus) (\s@CreateLocationEfsResponse' {} a -> s {httpStatus = a} :: CreateLocationEfsResponse)++instance Prelude.NFData CreateLocationEfsResponse where+  rnf CreateLocationEfsResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationFsxLustre.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.DataSync.CreateLocationFsxLustre+-- 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 endpoint for an Amazon FSx for Lustre file system.+module Amazonka.DataSync.CreateLocationFsxLustre+  ( -- * Creating a Request+    CreateLocationFsxLustre (..),+    newCreateLocationFsxLustre,++    -- * Request Lenses+    createLocationFsxLustre_subdirectory,+    createLocationFsxLustre_tags,+    createLocationFsxLustre_fsxFilesystemArn,+    createLocationFsxLustre_securityGroupArns,++    -- * Destructuring the Response+    CreateLocationFsxLustreResponse (..),+    newCreateLocationFsxLustreResponse,++    -- * Response Lenses+    createLocationFsxLustreResponse_locationArn,+    createLocationFsxLustreResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLocationFsxLustre' smart constructor.+data CreateLocationFsxLustre = CreateLocationFsxLustre'+  { -- | A subdirectory in the location\'s path. This subdirectory in the FSx for+    -- Lustre file system is used to read data from the FSx for Lustre source+    -- location or write data to the FSx for Lustre destination.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | The key-value pair that represents a tag that you want to add to the+    -- resource. The value can be an empty string. This value helps you manage,+    -- filter, and search for your resources. We recommend that you create a+    -- name tag for your location.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The Amazon Resource Name (ARN) for the FSx for Lustre file system.+    fsxFilesystemArn :: Prelude.Text,+    -- | The Amazon Resource Names (ARNs) of the security groups that are used to+    -- configure the FSx for Lustre file system.+    securityGroupArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationFsxLustre' 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:+--+-- 'subdirectory', 'createLocationFsxLustre_subdirectory' - A subdirectory in the location\'s path. This subdirectory in the FSx for+-- Lustre file system is used to read data from the FSx for Lustre source+-- location or write data to the FSx for Lustre destination.+--+-- 'tags', 'createLocationFsxLustre_tags' - The key-value pair that represents a tag that you want to add to the+-- resource. The value can be an empty string. This value helps you manage,+-- filter, and search for your resources. We recommend that you create a+-- name tag for your location.+--+-- 'fsxFilesystemArn', 'createLocationFsxLustre_fsxFilesystemArn' - The Amazon Resource Name (ARN) for the FSx for Lustre file system.+--+-- 'securityGroupArns', 'createLocationFsxLustre_securityGroupArns' - The Amazon Resource Names (ARNs) of the security groups that are used to+-- configure the FSx for Lustre file system.+newCreateLocationFsxLustre ::+  -- | 'fsxFilesystemArn'+  Prelude.Text ->+  -- | 'securityGroupArns'+  Prelude.NonEmpty Prelude.Text ->+  CreateLocationFsxLustre+newCreateLocationFsxLustre+  pFsxFilesystemArn_+  pSecurityGroupArns_ =+    CreateLocationFsxLustre'+      { subdirectory =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        fsxFilesystemArn = pFsxFilesystemArn_,+        securityGroupArns =+          Lens.coerced Lens.# pSecurityGroupArns_+      }++-- | A subdirectory in the location\'s path. This subdirectory in the FSx for+-- Lustre file system is used to read data from the FSx for Lustre source+-- location or write data to the FSx for Lustre destination.+createLocationFsxLustre_subdirectory :: Lens.Lens' CreateLocationFsxLustre (Prelude.Maybe Prelude.Text)+createLocationFsxLustre_subdirectory = Lens.lens (\CreateLocationFsxLustre' {subdirectory} -> subdirectory) (\s@CreateLocationFsxLustre' {} a -> s {subdirectory = a} :: CreateLocationFsxLustre)++-- | The key-value pair that represents a tag that you want to add to the+-- resource. The value can be an empty string. This value helps you manage,+-- filter, and search for your resources. We recommend that you create a+-- name tag for your location.+createLocationFsxLustre_tags :: Lens.Lens' CreateLocationFsxLustre (Prelude.Maybe [TagListEntry])+createLocationFsxLustre_tags = Lens.lens (\CreateLocationFsxLustre' {tags} -> tags) (\s@CreateLocationFsxLustre' {} a -> s {tags = a} :: CreateLocationFsxLustre) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) for the FSx for Lustre file system.+createLocationFsxLustre_fsxFilesystemArn :: Lens.Lens' CreateLocationFsxLustre Prelude.Text+createLocationFsxLustre_fsxFilesystemArn = Lens.lens (\CreateLocationFsxLustre' {fsxFilesystemArn} -> fsxFilesystemArn) (\s@CreateLocationFsxLustre' {} a -> s {fsxFilesystemArn = a} :: CreateLocationFsxLustre)++-- | The Amazon Resource Names (ARNs) of the security groups that are used to+-- configure the FSx for Lustre file system.+createLocationFsxLustre_securityGroupArns :: Lens.Lens' CreateLocationFsxLustre (Prelude.NonEmpty Prelude.Text)+createLocationFsxLustre_securityGroupArns = Lens.lens (\CreateLocationFsxLustre' {securityGroupArns} -> securityGroupArns) (\s@CreateLocationFsxLustre' {} a -> s {securityGroupArns = a} :: CreateLocationFsxLustre) Prelude.. Lens.coerced++instance Core.AWSRequest CreateLocationFsxLustre where+  type+    AWSResponse CreateLocationFsxLustre =+      CreateLocationFsxLustreResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationFsxLustreResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationFsxLustre where+  hashWithSalt _salt CreateLocationFsxLustre' {..} =+    _salt+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` fsxFilesystemArn+      `Prelude.hashWithSalt` securityGroupArns++instance Prelude.NFData CreateLocationFsxLustre where+  rnf CreateLocationFsxLustre' {..} =+    Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf fsxFilesystemArn+      `Prelude.seq` Prelude.rnf securityGroupArns++instance Data.ToHeaders CreateLocationFsxLustre where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationFsxLustre" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationFsxLustre where+  toJSON CreateLocationFsxLustre' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("FsxFilesystemArn" Data..= fsxFilesystemArn),+            Prelude.Just+              ("SecurityGroupArns" Data..= securityGroupArns)+          ]+      )++instance Data.ToPath CreateLocationFsxLustre where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationFsxLustre where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLocationFsxLustreResponse' smart constructor.+data CreateLocationFsxLustreResponse = CreateLocationFsxLustreResponse'+  { -- | The Amazon Resource Name (ARN) of the FSx for Lustre file system+    -- location that\'s created.+    locationArn :: 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 'CreateLocationFsxLustreResponse' 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:+--+-- 'locationArn', 'createLocationFsxLustreResponse_locationArn' - The Amazon Resource Name (ARN) of the FSx for Lustre file system+-- location that\'s created.+--+-- 'httpStatus', 'createLocationFsxLustreResponse_httpStatus' - The response's http status code.+newCreateLocationFsxLustreResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationFsxLustreResponse+newCreateLocationFsxLustreResponse pHttpStatus_ =+  CreateLocationFsxLustreResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the FSx for Lustre file system+-- location that\'s created.+createLocationFsxLustreResponse_locationArn :: Lens.Lens' CreateLocationFsxLustreResponse (Prelude.Maybe Prelude.Text)+createLocationFsxLustreResponse_locationArn = Lens.lens (\CreateLocationFsxLustreResponse' {locationArn} -> locationArn) (\s@CreateLocationFsxLustreResponse' {} a -> s {locationArn = a} :: CreateLocationFsxLustreResponse)++-- | The response's http status code.+createLocationFsxLustreResponse_httpStatus :: Lens.Lens' CreateLocationFsxLustreResponse Prelude.Int+createLocationFsxLustreResponse_httpStatus = Lens.lens (\CreateLocationFsxLustreResponse' {httpStatus} -> httpStatus) (\s@CreateLocationFsxLustreResponse' {} a -> s {httpStatus = a} :: CreateLocationFsxLustreResponse)++instance+  Prelude.NFData+    CreateLocationFsxLustreResponse+  where+  rnf CreateLocationFsxLustreResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationFsxOntap.hs view
@@ -0,0 +1,306 @@+{-# 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.DataSync.CreateLocationFsxOntap+-- 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 endpoint for an Amazon FSx for NetApp ONTAP file system that+-- DataSync can access for a transfer. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-ontap-location.html Creating a location for FSx for ONTAP>.+module Amazonka.DataSync.CreateLocationFsxOntap+  ( -- * Creating a Request+    CreateLocationFsxOntap (..),+    newCreateLocationFsxOntap,++    -- * Request Lenses+    createLocationFsxOntap_subdirectory,+    createLocationFsxOntap_tags,+    createLocationFsxOntap_protocol,+    createLocationFsxOntap_securityGroupArns,+    createLocationFsxOntap_storageVirtualMachineArn,++    -- * Destructuring the Response+    CreateLocationFsxOntapResponse (..),+    newCreateLocationFsxOntapResponse,++    -- * Response Lenses+    createLocationFsxOntapResponse_locationArn,+    createLocationFsxOntapResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLocationFsxOntap' smart constructor.+data CreateLocationFsxOntap = CreateLocationFsxOntap'+  { -- | Specifies the junction path (also known as a mount point) in the SVM+    -- volume where you\'re copying data to or from (for example, @\/vol1@).+    --+    -- Don\'t specify a junction path in the SVM\'s root volume. For more+    -- information, see+    -- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html Managing FSx for ONTAP storage virtual machines>+    -- in the /Amazon FSx for NetApp ONTAP User Guide/.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | Specifies labels that help you categorize, filter, and search for your+    -- Amazon Web Services resources. We recommend creating at least a name tag+    -- for your location.+    tags :: Prelude.Maybe [TagListEntry],+    protocol :: FsxProtocol,+    -- | Specifies the Amazon EC2 security groups that provide access to your+    -- file system\'s preferred subnet.+    --+    -- The security groups must allow outbound traffic on the following ports+    -- (depending on the protocol you use):+    --+    -- -   __Network File System (NFS)__: TCP ports 111, 635, and 2049+    --+    -- -   __Server Message Block (SMB)__: TCP port 445+    --+    -- Your file system\'s security groups must also allow inbound traffic on+    -- the same ports.+    securityGroupArns :: Prelude.NonEmpty Prelude.Text,+    -- | Specifies the ARN of the storage virtual machine (SVM) on your file+    -- system where you\'re copying data to or from.+    storageVirtualMachineArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationFsxOntap' 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:+--+-- 'subdirectory', 'createLocationFsxOntap_subdirectory' - Specifies the junction path (also known as a mount point) in the SVM+-- volume where you\'re copying data to or from (for example, @\/vol1@).+--+-- Don\'t specify a junction path in the SVM\'s root volume. For more+-- information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html Managing FSx for ONTAP storage virtual machines>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+--+-- 'tags', 'createLocationFsxOntap_tags' - Specifies labels that help you categorize, filter, and search for your+-- Amazon Web Services resources. We recommend creating at least a name tag+-- for your location.+--+-- 'protocol', 'createLocationFsxOntap_protocol' - Undocumented member.+--+-- 'securityGroupArns', 'createLocationFsxOntap_securityGroupArns' - Specifies the Amazon EC2 security groups that provide access to your+-- file system\'s preferred subnet.+--+-- The security groups must allow outbound traffic on the following ports+-- (depending on the protocol you use):+--+-- -   __Network File System (NFS)__: TCP ports 111, 635, and 2049+--+-- -   __Server Message Block (SMB)__: TCP port 445+--+-- Your file system\'s security groups must also allow inbound traffic on+-- the same ports.+--+-- 'storageVirtualMachineArn', 'createLocationFsxOntap_storageVirtualMachineArn' - Specifies the ARN of the storage virtual machine (SVM) on your file+-- system where you\'re copying data to or from.+newCreateLocationFsxOntap ::+  -- | 'protocol'+  FsxProtocol ->+  -- | 'securityGroupArns'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'storageVirtualMachineArn'+  Prelude.Text ->+  CreateLocationFsxOntap+newCreateLocationFsxOntap+  pProtocol_+  pSecurityGroupArns_+  pStorageVirtualMachineArn_ =+    CreateLocationFsxOntap'+      { subdirectory =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        protocol = pProtocol_,+        securityGroupArns =+          Lens.coerced Lens.# pSecurityGroupArns_,+        storageVirtualMachineArn =+          pStorageVirtualMachineArn_+      }++-- | Specifies the junction path (also known as a mount point) in the SVM+-- volume where you\'re copying data to or from (for example, @\/vol1@).+--+-- Don\'t specify a junction path in the SVM\'s root volume. For more+-- information, see+-- <https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html Managing FSx for ONTAP storage virtual machines>+-- in the /Amazon FSx for NetApp ONTAP User Guide/.+createLocationFsxOntap_subdirectory :: Lens.Lens' CreateLocationFsxOntap (Prelude.Maybe Prelude.Text)+createLocationFsxOntap_subdirectory = Lens.lens (\CreateLocationFsxOntap' {subdirectory} -> subdirectory) (\s@CreateLocationFsxOntap' {} a -> s {subdirectory = a} :: CreateLocationFsxOntap)++-- | Specifies labels that help you categorize, filter, and search for your+-- Amazon Web Services resources. We recommend creating at least a name tag+-- for your location.+createLocationFsxOntap_tags :: Lens.Lens' CreateLocationFsxOntap (Prelude.Maybe [TagListEntry])+createLocationFsxOntap_tags = Lens.lens (\CreateLocationFsxOntap' {tags} -> tags) (\s@CreateLocationFsxOntap' {} a -> s {tags = a} :: CreateLocationFsxOntap) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createLocationFsxOntap_protocol :: Lens.Lens' CreateLocationFsxOntap FsxProtocol+createLocationFsxOntap_protocol = Lens.lens (\CreateLocationFsxOntap' {protocol} -> protocol) (\s@CreateLocationFsxOntap' {} a -> s {protocol = a} :: CreateLocationFsxOntap)++-- | Specifies the Amazon EC2 security groups that provide access to your+-- file system\'s preferred subnet.+--+-- The security groups must allow outbound traffic on the following ports+-- (depending on the protocol you use):+--+-- -   __Network File System (NFS)__: TCP ports 111, 635, and 2049+--+-- -   __Server Message Block (SMB)__: TCP port 445+--+-- Your file system\'s security groups must also allow inbound traffic on+-- the same ports.+createLocationFsxOntap_securityGroupArns :: Lens.Lens' CreateLocationFsxOntap (Prelude.NonEmpty Prelude.Text)+createLocationFsxOntap_securityGroupArns = Lens.lens (\CreateLocationFsxOntap' {securityGroupArns} -> securityGroupArns) (\s@CreateLocationFsxOntap' {} a -> s {securityGroupArns = a} :: CreateLocationFsxOntap) Prelude.. Lens.coerced++-- | Specifies the ARN of the storage virtual machine (SVM) on your file+-- system where you\'re copying data to or from.+createLocationFsxOntap_storageVirtualMachineArn :: Lens.Lens' CreateLocationFsxOntap Prelude.Text+createLocationFsxOntap_storageVirtualMachineArn = Lens.lens (\CreateLocationFsxOntap' {storageVirtualMachineArn} -> storageVirtualMachineArn) (\s@CreateLocationFsxOntap' {} a -> s {storageVirtualMachineArn = a} :: CreateLocationFsxOntap)++instance Core.AWSRequest CreateLocationFsxOntap where+  type+    AWSResponse CreateLocationFsxOntap =+      CreateLocationFsxOntapResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationFsxOntapResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationFsxOntap where+  hashWithSalt _salt CreateLocationFsxOntap' {..} =+    _salt+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` protocol+      `Prelude.hashWithSalt` securityGroupArns+      `Prelude.hashWithSalt` storageVirtualMachineArn++instance Prelude.NFData CreateLocationFsxOntap where+  rnf CreateLocationFsxOntap' {..} =+    Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf protocol+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf storageVirtualMachineArn++instance Data.ToHeaders CreateLocationFsxOntap where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationFsxOntap" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationFsxOntap where+  toJSON CreateLocationFsxOntap' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Protocol" Data..= protocol),+            Prelude.Just+              ("SecurityGroupArns" Data..= securityGroupArns),+            Prelude.Just+              ( "StorageVirtualMachineArn"+                  Data..= storageVirtualMachineArn+              )+          ]+      )++instance Data.ToPath CreateLocationFsxOntap where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationFsxOntap where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLocationFsxOntapResponse' smart constructor.+data CreateLocationFsxOntapResponse = CreateLocationFsxOntapResponse'+  { -- | Specifies the ARN of the FSx for ONTAP file system location that you+    -- create.+    locationArn :: 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 'CreateLocationFsxOntapResponse' 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:+--+-- 'locationArn', 'createLocationFsxOntapResponse_locationArn' - Specifies the ARN of the FSx for ONTAP file system location that you+-- create.+--+-- 'httpStatus', 'createLocationFsxOntapResponse_httpStatus' - The response's http status code.+newCreateLocationFsxOntapResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationFsxOntapResponse+newCreateLocationFsxOntapResponse pHttpStatus_ =+  CreateLocationFsxOntapResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies the ARN of the FSx for ONTAP file system location that you+-- create.+createLocationFsxOntapResponse_locationArn :: Lens.Lens' CreateLocationFsxOntapResponse (Prelude.Maybe Prelude.Text)+createLocationFsxOntapResponse_locationArn = Lens.lens (\CreateLocationFsxOntapResponse' {locationArn} -> locationArn) (\s@CreateLocationFsxOntapResponse' {} a -> s {locationArn = a} :: CreateLocationFsxOntapResponse)++-- | The response's http status code.+createLocationFsxOntapResponse_httpStatus :: Lens.Lens' CreateLocationFsxOntapResponse Prelude.Int+createLocationFsxOntapResponse_httpStatus = Lens.lens (\CreateLocationFsxOntapResponse' {httpStatus} -> httpStatus) (\s@CreateLocationFsxOntapResponse' {} a -> s {httpStatus = a} :: CreateLocationFsxOntapResponse)++instance+  Prelude.NFData+    CreateLocationFsxOntapResponse+  where+  rnf CreateLocationFsxOntapResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationFsxOpenZfs.hs view
@@ -0,0 +1,262 @@+{-# 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.DataSync.CreateLocationFsxOpenZfs+-- 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 endpoint for an Amazon FSx for OpenZFS file system that+-- DataSync can access for a transfer. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-openzfs-location.html Creating a location for FSx for OpenZFS>.+--+-- Request parameters related to @SMB@ aren\'t supported with the+-- @CreateLocationFsxOpenZfs@ operation.+module Amazonka.DataSync.CreateLocationFsxOpenZfs+  ( -- * Creating a Request+    CreateLocationFsxOpenZfs (..),+    newCreateLocationFsxOpenZfs,++    -- * Request Lenses+    createLocationFsxOpenZfs_subdirectory,+    createLocationFsxOpenZfs_tags,+    createLocationFsxOpenZfs_fsxFilesystemArn,+    createLocationFsxOpenZfs_protocol,+    createLocationFsxOpenZfs_securityGroupArns,++    -- * Destructuring the Response+    CreateLocationFsxOpenZfsResponse (..),+    newCreateLocationFsxOpenZfsResponse,++    -- * Response Lenses+    createLocationFsxOpenZfsResponse_locationArn,+    createLocationFsxOpenZfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLocationFsxOpenZfs' smart constructor.+data CreateLocationFsxOpenZfs = CreateLocationFsxOpenZfs'+  { -- | A subdirectory in the location\'s path that must begin with @\/fsx@.+    -- DataSync uses this subdirectory to read or write data (depending on+    -- whether the file system is a source or destination location).+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | The key-value pair that represents a tag that you want to add to the+    -- resource. The value can be an empty string. This value helps you manage,+    -- filter, and search for your resources. We recommend that you create a+    -- name tag for your location.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The Amazon Resource Name (ARN) of the FSx for OpenZFS file system.+    fsxFilesystemArn :: Prelude.Text,+    -- | The type of protocol that DataSync uses to access your file system.+    protocol :: FsxProtocol,+    -- | The ARNs of the security groups that are used to configure the FSx for+    -- OpenZFS file system.+    securityGroupArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationFsxOpenZfs' 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:+--+-- 'subdirectory', 'createLocationFsxOpenZfs_subdirectory' - A subdirectory in the location\'s path that must begin with @\/fsx@.+-- DataSync uses this subdirectory to read or write data (depending on+-- whether the file system is a source or destination location).+--+-- 'tags', 'createLocationFsxOpenZfs_tags' - The key-value pair that represents a tag that you want to add to the+-- resource. The value can be an empty string. This value helps you manage,+-- filter, and search for your resources. We recommend that you create a+-- name tag for your location.+--+-- 'fsxFilesystemArn', 'createLocationFsxOpenZfs_fsxFilesystemArn' - The Amazon Resource Name (ARN) of the FSx for OpenZFS file system.+--+-- 'protocol', 'createLocationFsxOpenZfs_protocol' - The type of protocol that DataSync uses to access your file system.+--+-- 'securityGroupArns', 'createLocationFsxOpenZfs_securityGroupArns' - The ARNs of the security groups that are used to configure the FSx for+-- OpenZFS file system.+newCreateLocationFsxOpenZfs ::+  -- | 'fsxFilesystemArn'+  Prelude.Text ->+  -- | 'protocol'+  FsxProtocol ->+  -- | 'securityGroupArns'+  Prelude.NonEmpty Prelude.Text ->+  CreateLocationFsxOpenZfs+newCreateLocationFsxOpenZfs+  pFsxFilesystemArn_+  pProtocol_+  pSecurityGroupArns_ =+    CreateLocationFsxOpenZfs'+      { subdirectory =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        fsxFilesystemArn = pFsxFilesystemArn_,+        protocol = pProtocol_,+        securityGroupArns =+          Lens.coerced Lens.# pSecurityGroupArns_+      }++-- | A subdirectory in the location\'s path that must begin with @\/fsx@.+-- DataSync uses this subdirectory to read or write data (depending on+-- whether the file system is a source or destination location).+createLocationFsxOpenZfs_subdirectory :: Lens.Lens' CreateLocationFsxOpenZfs (Prelude.Maybe Prelude.Text)+createLocationFsxOpenZfs_subdirectory = Lens.lens (\CreateLocationFsxOpenZfs' {subdirectory} -> subdirectory) (\s@CreateLocationFsxOpenZfs' {} a -> s {subdirectory = a} :: CreateLocationFsxOpenZfs)++-- | The key-value pair that represents a tag that you want to add to the+-- resource. The value can be an empty string. This value helps you manage,+-- filter, and search for your resources. We recommend that you create a+-- name tag for your location.+createLocationFsxOpenZfs_tags :: Lens.Lens' CreateLocationFsxOpenZfs (Prelude.Maybe [TagListEntry])+createLocationFsxOpenZfs_tags = Lens.lens (\CreateLocationFsxOpenZfs' {tags} -> tags) (\s@CreateLocationFsxOpenZfs' {} a -> s {tags = a} :: CreateLocationFsxOpenZfs) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the FSx for OpenZFS file system.+createLocationFsxOpenZfs_fsxFilesystemArn :: Lens.Lens' CreateLocationFsxOpenZfs Prelude.Text+createLocationFsxOpenZfs_fsxFilesystemArn = Lens.lens (\CreateLocationFsxOpenZfs' {fsxFilesystemArn} -> fsxFilesystemArn) (\s@CreateLocationFsxOpenZfs' {} a -> s {fsxFilesystemArn = a} :: CreateLocationFsxOpenZfs)++-- | The type of protocol that DataSync uses to access your file system.+createLocationFsxOpenZfs_protocol :: Lens.Lens' CreateLocationFsxOpenZfs FsxProtocol+createLocationFsxOpenZfs_protocol = Lens.lens (\CreateLocationFsxOpenZfs' {protocol} -> protocol) (\s@CreateLocationFsxOpenZfs' {} a -> s {protocol = a} :: CreateLocationFsxOpenZfs)++-- | The ARNs of the security groups that are used to configure the FSx for+-- OpenZFS file system.+createLocationFsxOpenZfs_securityGroupArns :: Lens.Lens' CreateLocationFsxOpenZfs (Prelude.NonEmpty Prelude.Text)+createLocationFsxOpenZfs_securityGroupArns = Lens.lens (\CreateLocationFsxOpenZfs' {securityGroupArns} -> securityGroupArns) (\s@CreateLocationFsxOpenZfs' {} a -> s {securityGroupArns = a} :: CreateLocationFsxOpenZfs) Prelude.. Lens.coerced++instance Core.AWSRequest CreateLocationFsxOpenZfs where+  type+    AWSResponse CreateLocationFsxOpenZfs =+      CreateLocationFsxOpenZfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationFsxOpenZfsResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationFsxOpenZfs where+  hashWithSalt _salt CreateLocationFsxOpenZfs' {..} =+    _salt+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` fsxFilesystemArn+      `Prelude.hashWithSalt` protocol+      `Prelude.hashWithSalt` securityGroupArns++instance Prelude.NFData CreateLocationFsxOpenZfs where+  rnf CreateLocationFsxOpenZfs' {..} =+    Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf fsxFilesystemArn+      `Prelude.seq` Prelude.rnf protocol+      `Prelude.seq` Prelude.rnf securityGroupArns++instance Data.ToHeaders CreateLocationFsxOpenZfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationFsxOpenZfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationFsxOpenZfs where+  toJSON CreateLocationFsxOpenZfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("FsxFilesystemArn" Data..= fsxFilesystemArn),+            Prelude.Just ("Protocol" Data..= protocol),+            Prelude.Just+              ("SecurityGroupArns" Data..= securityGroupArns)+          ]+      )++instance Data.ToPath CreateLocationFsxOpenZfs where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationFsxOpenZfs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLocationFsxOpenZfsResponse' smart constructor.+data CreateLocationFsxOpenZfsResponse = CreateLocationFsxOpenZfsResponse'+  { -- | The ARN of the FSx for OpenZFS file system location that you created.+    locationArn :: 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 'CreateLocationFsxOpenZfsResponse' 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:+--+-- 'locationArn', 'createLocationFsxOpenZfsResponse_locationArn' - The ARN of the FSx for OpenZFS file system location that you created.+--+-- 'httpStatus', 'createLocationFsxOpenZfsResponse_httpStatus' - The response's http status code.+newCreateLocationFsxOpenZfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationFsxOpenZfsResponse+newCreateLocationFsxOpenZfsResponse pHttpStatus_ =+  CreateLocationFsxOpenZfsResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the FSx for OpenZFS file system location that you created.+createLocationFsxOpenZfsResponse_locationArn :: Lens.Lens' CreateLocationFsxOpenZfsResponse (Prelude.Maybe Prelude.Text)+createLocationFsxOpenZfsResponse_locationArn = Lens.lens (\CreateLocationFsxOpenZfsResponse' {locationArn} -> locationArn) (\s@CreateLocationFsxOpenZfsResponse' {} a -> s {locationArn = a} :: CreateLocationFsxOpenZfsResponse)++-- | The response's http status code.+createLocationFsxOpenZfsResponse_httpStatus :: Lens.Lens' CreateLocationFsxOpenZfsResponse Prelude.Int+createLocationFsxOpenZfsResponse_httpStatus = Lens.lens (\CreateLocationFsxOpenZfsResponse' {httpStatus} -> httpStatus) (\s@CreateLocationFsxOpenZfsResponse' {} a -> s {httpStatus = a} :: CreateLocationFsxOpenZfsResponse)++instance+  Prelude.NFData+    CreateLocationFsxOpenZfsResponse+  where+  rnf CreateLocationFsxOpenZfsResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationFsxWindows.hs view
@@ -0,0 +1,337 @@+{-# 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.DataSync.CreateLocationFsxWindows+-- 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 endpoint for an Amazon FSx for Windows File Server file+-- system.+module Amazonka.DataSync.CreateLocationFsxWindows+  ( -- * Creating a Request+    CreateLocationFsxWindows (..),+    newCreateLocationFsxWindows,++    -- * Request Lenses+    createLocationFsxWindows_domain,+    createLocationFsxWindows_subdirectory,+    createLocationFsxWindows_tags,+    createLocationFsxWindows_fsxFilesystemArn,+    createLocationFsxWindows_securityGroupArns,+    createLocationFsxWindows_user,+    createLocationFsxWindows_password,++    -- * Destructuring the Response+    CreateLocationFsxWindowsResponse (..),+    newCreateLocationFsxWindowsResponse,++    -- * Response Lenses+    createLocationFsxWindowsResponse_locationArn,+    createLocationFsxWindowsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLocationFsxWindows' smart constructor.+data CreateLocationFsxWindows = CreateLocationFsxWindows'+  { -- | Specifies the name of the Windows domain that the FSx for Windows File+    -- Server belongs to.+    domain :: Prelude.Maybe Prelude.Text,+    -- | Specifies a mount path for your file system using forward slashes. This+    -- is where DataSync reads or writes data (depending on if this is a source+    -- or destination location).+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | Specifies labels that help you categorize, filter, and search for your+    -- Amazon Web Services resources. We recommend creating at least a name tag+    -- for your location.+    tags :: Prelude.Maybe [TagListEntry],+    -- | Specifies the Amazon Resource Name (ARN) for the FSx for Windows File+    -- Server file system.+    fsxFilesystemArn :: Prelude.Text,+    -- | Specifies the ARNs of the security groups that provide access to your+    -- file system\'s preferred subnet.+    --+    -- If you choose a security group that doesn\'t allow connections from+    -- within itself, do one of the following:+    --+    -- -   Configure the security group to allow it to communicate within+    --     itself.+    --+    -- -   Choose a different security group that can communicate with the+    --     mount target\'s security group.+    securityGroupArns :: Prelude.NonEmpty Prelude.Text,+    -- | Specifies the user who has the permissions to access files and folders+    -- in the file system.+    --+    -- For information about choosing a user name that ensures sufficient+    -- permissions to files, folders, and metadata, see+    -- <create-fsx-location.html#FSxWuser user>.+    user :: Prelude.Text,+    -- | Specifies the password of the user who has the permissions to access+    -- files and folders in the file system.+    password :: Data.Sensitive Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationFsxWindows' 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:+--+-- 'domain', 'createLocationFsxWindows_domain' - Specifies the name of the Windows domain that the FSx for Windows File+-- Server belongs to.+--+-- 'subdirectory', 'createLocationFsxWindows_subdirectory' - Specifies a mount path for your file system using forward slashes. This+-- is where DataSync reads or writes data (depending on if this is a source+-- or destination location).+--+-- 'tags', 'createLocationFsxWindows_tags' - Specifies labels that help you categorize, filter, and search for your+-- Amazon Web Services resources. We recommend creating at least a name tag+-- for your location.+--+-- 'fsxFilesystemArn', 'createLocationFsxWindows_fsxFilesystemArn' - Specifies the Amazon Resource Name (ARN) for the FSx for Windows File+-- Server file system.+--+-- 'securityGroupArns', 'createLocationFsxWindows_securityGroupArns' - Specifies the ARNs of the security groups that provide access to your+-- file system\'s preferred subnet.+--+-- If you choose a security group that doesn\'t allow connections from+-- within itself, do one of the following:+--+-- -   Configure the security group to allow it to communicate within+--     itself.+--+-- -   Choose a different security group that can communicate with the+--     mount target\'s security group.+--+-- 'user', 'createLocationFsxWindows_user' - Specifies the user who has the permissions to access files and folders+-- in the file system.+--+-- For information about choosing a user name that ensures sufficient+-- permissions to files, folders, and metadata, see+-- <create-fsx-location.html#FSxWuser user>.+--+-- 'password', 'createLocationFsxWindows_password' - Specifies the password of the user who has the permissions to access+-- files and folders in the file system.+newCreateLocationFsxWindows ::+  -- | 'fsxFilesystemArn'+  Prelude.Text ->+  -- | 'securityGroupArns'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'user'+  Prelude.Text ->+  -- | 'password'+  Prelude.Text ->+  CreateLocationFsxWindows+newCreateLocationFsxWindows+  pFsxFilesystemArn_+  pSecurityGroupArns_+  pUser_+  pPassword_ =+    CreateLocationFsxWindows'+      { domain = Prelude.Nothing,+        subdirectory = Prelude.Nothing,+        tags = Prelude.Nothing,+        fsxFilesystemArn = pFsxFilesystemArn_,+        securityGroupArns =+          Lens.coerced Lens.# pSecurityGroupArns_,+        user = pUser_,+        password = Data._Sensitive Lens.# pPassword_+      }++-- | Specifies the name of the Windows domain that the FSx for Windows File+-- Server belongs to.+createLocationFsxWindows_domain :: Lens.Lens' CreateLocationFsxWindows (Prelude.Maybe Prelude.Text)+createLocationFsxWindows_domain = Lens.lens (\CreateLocationFsxWindows' {domain} -> domain) (\s@CreateLocationFsxWindows' {} a -> s {domain = a} :: CreateLocationFsxWindows)++-- | Specifies a mount path for your file system using forward slashes. This+-- is where DataSync reads or writes data (depending on if this is a source+-- or destination location).+createLocationFsxWindows_subdirectory :: Lens.Lens' CreateLocationFsxWindows (Prelude.Maybe Prelude.Text)+createLocationFsxWindows_subdirectory = Lens.lens (\CreateLocationFsxWindows' {subdirectory} -> subdirectory) (\s@CreateLocationFsxWindows' {} a -> s {subdirectory = a} :: CreateLocationFsxWindows)++-- | Specifies labels that help you categorize, filter, and search for your+-- Amazon Web Services resources. We recommend creating at least a name tag+-- for your location.+createLocationFsxWindows_tags :: Lens.Lens' CreateLocationFsxWindows (Prelude.Maybe [TagListEntry])+createLocationFsxWindows_tags = Lens.lens (\CreateLocationFsxWindows' {tags} -> tags) (\s@CreateLocationFsxWindows' {} a -> s {tags = a} :: CreateLocationFsxWindows) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the Amazon Resource Name (ARN) for the FSx for Windows File+-- Server file system.+createLocationFsxWindows_fsxFilesystemArn :: Lens.Lens' CreateLocationFsxWindows Prelude.Text+createLocationFsxWindows_fsxFilesystemArn = Lens.lens (\CreateLocationFsxWindows' {fsxFilesystemArn} -> fsxFilesystemArn) (\s@CreateLocationFsxWindows' {} a -> s {fsxFilesystemArn = a} :: CreateLocationFsxWindows)++-- | Specifies the ARNs of the security groups that provide access to your+-- file system\'s preferred subnet.+--+-- If you choose a security group that doesn\'t allow connections from+-- within itself, do one of the following:+--+-- -   Configure the security group to allow it to communicate within+--     itself.+--+-- -   Choose a different security group that can communicate with the+--     mount target\'s security group.+createLocationFsxWindows_securityGroupArns :: Lens.Lens' CreateLocationFsxWindows (Prelude.NonEmpty Prelude.Text)+createLocationFsxWindows_securityGroupArns = Lens.lens (\CreateLocationFsxWindows' {securityGroupArns} -> securityGroupArns) (\s@CreateLocationFsxWindows' {} a -> s {securityGroupArns = a} :: CreateLocationFsxWindows) Prelude.. Lens.coerced++-- | Specifies the user who has the permissions to access files and folders+-- in the file system.+--+-- For information about choosing a user name that ensures sufficient+-- permissions to files, folders, and metadata, see+-- <create-fsx-location.html#FSxWuser user>.+createLocationFsxWindows_user :: Lens.Lens' CreateLocationFsxWindows Prelude.Text+createLocationFsxWindows_user = Lens.lens (\CreateLocationFsxWindows' {user} -> user) (\s@CreateLocationFsxWindows' {} a -> s {user = a} :: CreateLocationFsxWindows)++-- | Specifies the password of the user who has the permissions to access+-- files and folders in the file system.+createLocationFsxWindows_password :: Lens.Lens' CreateLocationFsxWindows Prelude.Text+createLocationFsxWindows_password = Lens.lens (\CreateLocationFsxWindows' {password} -> password) (\s@CreateLocationFsxWindows' {} a -> s {password = a} :: CreateLocationFsxWindows) Prelude.. Data._Sensitive++instance Core.AWSRequest CreateLocationFsxWindows where+  type+    AWSResponse CreateLocationFsxWindows =+      CreateLocationFsxWindowsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationFsxWindowsResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationFsxWindows where+  hashWithSalt _salt CreateLocationFsxWindows' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` fsxFilesystemArn+      `Prelude.hashWithSalt` securityGroupArns+      `Prelude.hashWithSalt` user+      `Prelude.hashWithSalt` password++instance Prelude.NFData CreateLocationFsxWindows where+  rnf CreateLocationFsxWindows' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf fsxFilesystemArn+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf user+      `Prelude.seq` Prelude.rnf password++instance Data.ToHeaders CreateLocationFsxWindows where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationFsxWindows" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationFsxWindows where+  toJSON CreateLocationFsxWindows' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Domain" Data..=) Prelude.<$> domain,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("FsxFilesystemArn" Data..= fsxFilesystemArn),+            Prelude.Just+              ("SecurityGroupArns" Data..= securityGroupArns),+            Prelude.Just ("User" Data..= user),+            Prelude.Just ("Password" Data..= password)+          ]+      )++instance Data.ToPath CreateLocationFsxWindows where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationFsxWindows where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLocationFsxWindowsResponse' smart constructor.+data CreateLocationFsxWindowsResponse = CreateLocationFsxWindowsResponse'+  { -- | The ARN of the FSx for Windows File Server file system location you+    -- created.+    locationArn :: 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 'CreateLocationFsxWindowsResponse' 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:+--+-- 'locationArn', 'createLocationFsxWindowsResponse_locationArn' - The ARN of the FSx for Windows File Server file system location you+-- created.+--+-- 'httpStatus', 'createLocationFsxWindowsResponse_httpStatus' - The response's http status code.+newCreateLocationFsxWindowsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationFsxWindowsResponse+newCreateLocationFsxWindowsResponse pHttpStatus_ =+  CreateLocationFsxWindowsResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the FSx for Windows File Server file system location you+-- created.+createLocationFsxWindowsResponse_locationArn :: Lens.Lens' CreateLocationFsxWindowsResponse (Prelude.Maybe Prelude.Text)+createLocationFsxWindowsResponse_locationArn = Lens.lens (\CreateLocationFsxWindowsResponse' {locationArn} -> locationArn) (\s@CreateLocationFsxWindowsResponse' {} a -> s {locationArn = a} :: CreateLocationFsxWindowsResponse)++-- | The response's http status code.+createLocationFsxWindowsResponse_httpStatus :: Lens.Lens' CreateLocationFsxWindowsResponse Prelude.Int+createLocationFsxWindowsResponse_httpStatus = Lens.lens (\CreateLocationFsxWindowsResponse' {httpStatus} -> httpStatus) (\s@CreateLocationFsxWindowsResponse' {} a -> s {httpStatus = a} :: CreateLocationFsxWindowsResponse)++instance+  Prelude.NFData+    CreateLocationFsxWindowsResponse+  where+  rnf CreateLocationFsxWindowsResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationHdfs.hs view
@@ -0,0 +1,467 @@+{-# 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.DataSync.CreateLocationHdfs+-- 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 endpoint for a Hadoop Distributed File System (HDFS).+module Amazonka.DataSync.CreateLocationHdfs+  ( -- * Creating a Request+    CreateLocationHdfs (..),+    newCreateLocationHdfs,++    -- * Request Lenses+    createLocationHdfs_blockSize,+    createLocationHdfs_kerberosKeytab,+    createLocationHdfs_kerberosKrb5Conf,+    createLocationHdfs_kerberosPrincipal,+    createLocationHdfs_kmsKeyProviderUri,+    createLocationHdfs_qopConfiguration,+    createLocationHdfs_replicationFactor,+    createLocationHdfs_simpleUser,+    createLocationHdfs_subdirectory,+    createLocationHdfs_tags,+    createLocationHdfs_nameNodes,+    createLocationHdfs_authenticationType,+    createLocationHdfs_agentArns,++    -- * Destructuring the Response+    CreateLocationHdfsResponse (..),+    newCreateLocationHdfsResponse,++    -- * Response Lenses+    createLocationHdfsResponse_locationArn,+    createLocationHdfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLocationHdfs' smart constructor.+data CreateLocationHdfs = CreateLocationHdfs'+  { -- | The size of data blocks to write into the HDFS cluster. The block size+    -- must be a multiple of 512 bytes. The default block size is 128 mebibytes+    -- (MiB).+    blockSize :: Prelude.Maybe Prelude.Natural,+    -- | The Kerberos key table (keytab) that contains mappings between the+    -- defined Kerberos principal and the encrypted keys. You can load the+    -- keytab from a file by providing the file\'s address. If you\'re using+    -- the CLI, it performs base64 encoding for you. Otherwise, provide the+    -- base64-encoded text.+    --+    -- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+    -- required.+    kerberosKeytab :: Prelude.Maybe Data.Base64,+    -- | The @krb5.conf@ file that contains the Kerberos configuration+    -- information. You can load the @krb5.conf@ file by providing the file\'s+    -- address. If you\'re using the CLI, it performs the base64 encoding for+    -- you. Otherwise, provide the base64-encoded text.+    --+    -- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+    -- required.+    kerberosKrb5Conf :: Prelude.Maybe Data.Base64,+    -- | The Kerberos principal with access to the files and folders on the HDFS+    -- cluster.+    --+    -- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+    -- required.+    kerberosPrincipal :: Prelude.Maybe Prelude.Text,+    -- | The URI of the HDFS cluster\'s Key Management Server (KMS).+    kmsKeyProviderUri :: Prelude.Maybe Prelude.Text,+    -- | The Quality of Protection (QOP) configuration specifies the Remote+    -- Procedure Call (RPC) and data transfer protection settings configured on+    -- the Hadoop Distributed File System (HDFS) cluster. If @QopConfiguration@+    -- isn\'t specified, @RpcProtection@ and @DataTransferProtection@ default+    -- to @PRIVACY@. If you set @RpcProtection@ or @DataTransferProtection@,+    -- the other parameter assumes the same value.+    qopConfiguration :: Prelude.Maybe QopConfiguration,+    -- | The number of DataNodes to replicate the data to when writing to the+    -- HDFS cluster. By default, data is replicated to three DataNodes.+    replicationFactor :: Prelude.Maybe Prelude.Natural,+    -- | The user name used to identify the client on the host operating system.+    --+    -- If @SIMPLE@ is specified for @AuthenticationType@, this parameter is+    -- required.+    simpleUser :: Prelude.Maybe Prelude.Text,+    -- | A subdirectory in the HDFS cluster. This subdirectory is used to read+    -- data from or write data to the HDFS cluster. If the subdirectory isn\'t+    -- specified, it will default to @\/@.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | The key-value pair that represents the tag that you want to add to the+    -- location. The value can be an empty string. We recommend using tags to+    -- name your resources.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The NameNode that manages the HDFS namespace. The NameNode performs+    -- operations such as opening, closing, and renaming files and directories.+    -- The NameNode contains the information to map blocks of data to the+    -- DataNodes. You can use only one NameNode.+    nameNodes :: Prelude.NonEmpty HdfsNameNode,+    -- | The type of authentication used to determine the identity of the user.+    authenticationType :: HdfsAuthenticationType,+    -- | The Amazon Resource Names (ARNs) of the agents that are used to connect+    -- to the HDFS cluster.+    agentArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationHdfs' 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:+--+-- 'blockSize', 'createLocationHdfs_blockSize' - The size of data blocks to write into the HDFS cluster. The block size+-- must be a multiple of 512 bytes. The default block size is 128 mebibytes+-- (MiB).+--+-- 'kerberosKeytab', 'createLocationHdfs_kerberosKeytab' - The Kerberos key table (keytab) that contains mappings between the+-- defined Kerberos principal and the encrypted keys. You can load the+-- keytab from a file by providing the file\'s address. If you\'re using+-- the CLI, it performs base64 encoding for you. Otherwise, provide the+-- base64-encoded text.+--+-- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+-- required.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'kerberosKrb5Conf', 'createLocationHdfs_kerberosKrb5Conf' - The @krb5.conf@ file that contains the Kerberos configuration+-- information. You can load the @krb5.conf@ file by providing the file\'s+-- address. If you\'re using the CLI, it performs the base64 encoding for+-- you. Otherwise, provide the base64-encoded text.+--+-- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+-- required.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'kerberosPrincipal', 'createLocationHdfs_kerberosPrincipal' - The Kerberos principal with access to the files and folders on the HDFS+-- cluster.+--+-- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+-- required.+--+-- 'kmsKeyProviderUri', 'createLocationHdfs_kmsKeyProviderUri' - The URI of the HDFS cluster\'s Key Management Server (KMS).+--+-- 'qopConfiguration', 'createLocationHdfs_qopConfiguration' - The Quality of Protection (QOP) configuration specifies the Remote+-- Procedure Call (RPC) and data transfer protection settings configured on+-- the Hadoop Distributed File System (HDFS) cluster. If @QopConfiguration@+-- isn\'t specified, @RpcProtection@ and @DataTransferProtection@ default+-- to @PRIVACY@. If you set @RpcProtection@ or @DataTransferProtection@,+-- the other parameter assumes the same value.+--+-- 'replicationFactor', 'createLocationHdfs_replicationFactor' - The number of DataNodes to replicate the data to when writing to the+-- HDFS cluster. By default, data is replicated to three DataNodes.+--+-- 'simpleUser', 'createLocationHdfs_simpleUser' - The user name used to identify the client on the host operating system.+--+-- If @SIMPLE@ is specified for @AuthenticationType@, this parameter is+-- required.+--+-- 'subdirectory', 'createLocationHdfs_subdirectory' - A subdirectory in the HDFS cluster. This subdirectory is used to read+-- data from or write data to the HDFS cluster. If the subdirectory isn\'t+-- specified, it will default to @\/@.+--+-- 'tags', 'createLocationHdfs_tags' - The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+--+-- 'nameNodes', 'createLocationHdfs_nameNodes' - The NameNode that manages the HDFS namespace. The NameNode performs+-- operations such as opening, closing, and renaming files and directories.+-- The NameNode contains the information to map blocks of data to the+-- DataNodes. You can use only one NameNode.+--+-- 'authenticationType', 'createLocationHdfs_authenticationType' - The type of authentication used to determine the identity of the user.+--+-- 'agentArns', 'createLocationHdfs_agentArns' - The Amazon Resource Names (ARNs) of the agents that are used to connect+-- to the HDFS cluster.+newCreateLocationHdfs ::+  -- | 'nameNodes'+  Prelude.NonEmpty HdfsNameNode ->+  -- | 'authenticationType'+  HdfsAuthenticationType ->+  -- | 'agentArns'+  Prelude.NonEmpty Prelude.Text ->+  CreateLocationHdfs+newCreateLocationHdfs+  pNameNodes_+  pAuthenticationType_+  pAgentArns_ =+    CreateLocationHdfs'+      { blockSize = Prelude.Nothing,+        kerberosKeytab = Prelude.Nothing,+        kerberosKrb5Conf = Prelude.Nothing,+        kerberosPrincipal = Prelude.Nothing,+        kmsKeyProviderUri = Prelude.Nothing,+        qopConfiguration = Prelude.Nothing,+        replicationFactor = Prelude.Nothing,+        simpleUser = Prelude.Nothing,+        subdirectory = Prelude.Nothing,+        tags = Prelude.Nothing,+        nameNodes = Lens.coerced Lens.# pNameNodes_,+        authenticationType = pAuthenticationType_,+        agentArns = Lens.coerced Lens.# pAgentArns_+      }++-- | The size of data blocks to write into the HDFS cluster. The block size+-- must be a multiple of 512 bytes. The default block size is 128 mebibytes+-- (MiB).+createLocationHdfs_blockSize :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.Natural)+createLocationHdfs_blockSize = Lens.lens (\CreateLocationHdfs' {blockSize} -> blockSize) (\s@CreateLocationHdfs' {} a -> s {blockSize = a} :: CreateLocationHdfs)++-- | The Kerberos key table (keytab) that contains mappings between the+-- defined Kerberos principal and the encrypted keys. You can load the+-- keytab from a file by providing the file\'s address. If you\'re using+-- the CLI, it performs base64 encoding for you. Otherwise, provide the+-- base64-encoded text.+--+-- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+-- required.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+createLocationHdfs_kerberosKeytab :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.ByteString)+createLocationHdfs_kerberosKeytab = Lens.lens (\CreateLocationHdfs' {kerberosKeytab} -> kerberosKeytab) (\s@CreateLocationHdfs' {} a -> s {kerberosKeytab = a} :: CreateLocationHdfs) Prelude.. Lens.mapping Data._Base64++-- | The @krb5.conf@ file that contains the Kerberos configuration+-- information. You can load the @krb5.conf@ file by providing the file\'s+-- address. If you\'re using the CLI, it performs the base64 encoding for+-- you. Otherwise, provide the base64-encoded text.+--+-- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+-- required.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+createLocationHdfs_kerberosKrb5Conf :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.ByteString)+createLocationHdfs_kerberosKrb5Conf = Lens.lens (\CreateLocationHdfs' {kerberosKrb5Conf} -> kerberosKrb5Conf) (\s@CreateLocationHdfs' {} a -> s {kerberosKrb5Conf = a} :: CreateLocationHdfs) Prelude.. Lens.mapping Data._Base64++-- | The Kerberos principal with access to the files and folders on the HDFS+-- cluster.+--+-- If @KERBEROS@ is specified for @AuthenticationType@, this parameter is+-- required.+createLocationHdfs_kerberosPrincipal :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.Text)+createLocationHdfs_kerberosPrincipal = Lens.lens (\CreateLocationHdfs' {kerberosPrincipal} -> kerberosPrincipal) (\s@CreateLocationHdfs' {} a -> s {kerberosPrincipal = a} :: CreateLocationHdfs)++-- | The URI of the HDFS cluster\'s Key Management Server (KMS).+createLocationHdfs_kmsKeyProviderUri :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.Text)+createLocationHdfs_kmsKeyProviderUri = Lens.lens (\CreateLocationHdfs' {kmsKeyProviderUri} -> kmsKeyProviderUri) (\s@CreateLocationHdfs' {} a -> s {kmsKeyProviderUri = a} :: CreateLocationHdfs)++-- | The Quality of Protection (QOP) configuration specifies the Remote+-- Procedure Call (RPC) and data transfer protection settings configured on+-- the Hadoop Distributed File System (HDFS) cluster. If @QopConfiguration@+-- isn\'t specified, @RpcProtection@ and @DataTransferProtection@ default+-- to @PRIVACY@. If you set @RpcProtection@ or @DataTransferProtection@,+-- the other parameter assumes the same value.+createLocationHdfs_qopConfiguration :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe QopConfiguration)+createLocationHdfs_qopConfiguration = Lens.lens (\CreateLocationHdfs' {qopConfiguration} -> qopConfiguration) (\s@CreateLocationHdfs' {} a -> s {qopConfiguration = a} :: CreateLocationHdfs)++-- | The number of DataNodes to replicate the data to when writing to the+-- HDFS cluster. By default, data is replicated to three DataNodes.+createLocationHdfs_replicationFactor :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.Natural)+createLocationHdfs_replicationFactor = Lens.lens (\CreateLocationHdfs' {replicationFactor} -> replicationFactor) (\s@CreateLocationHdfs' {} a -> s {replicationFactor = a} :: CreateLocationHdfs)++-- | The user name used to identify the client on the host operating system.+--+-- If @SIMPLE@ is specified for @AuthenticationType@, this parameter is+-- required.+createLocationHdfs_simpleUser :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.Text)+createLocationHdfs_simpleUser = Lens.lens (\CreateLocationHdfs' {simpleUser} -> simpleUser) (\s@CreateLocationHdfs' {} a -> s {simpleUser = a} :: CreateLocationHdfs)++-- | A subdirectory in the HDFS cluster. This subdirectory is used to read+-- data from or write data to the HDFS cluster. If the subdirectory isn\'t+-- specified, it will default to @\/@.+createLocationHdfs_subdirectory :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe Prelude.Text)+createLocationHdfs_subdirectory = Lens.lens (\CreateLocationHdfs' {subdirectory} -> subdirectory) (\s@CreateLocationHdfs' {} a -> s {subdirectory = a} :: CreateLocationHdfs)++-- | The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+createLocationHdfs_tags :: Lens.Lens' CreateLocationHdfs (Prelude.Maybe [TagListEntry])+createLocationHdfs_tags = Lens.lens (\CreateLocationHdfs' {tags} -> tags) (\s@CreateLocationHdfs' {} a -> s {tags = a} :: CreateLocationHdfs) Prelude.. Lens.mapping Lens.coerced++-- | The NameNode that manages the HDFS namespace. The NameNode performs+-- operations such as opening, closing, and renaming files and directories.+-- The NameNode contains the information to map blocks of data to the+-- DataNodes. You can use only one NameNode.+createLocationHdfs_nameNodes :: Lens.Lens' CreateLocationHdfs (Prelude.NonEmpty HdfsNameNode)+createLocationHdfs_nameNodes = Lens.lens (\CreateLocationHdfs' {nameNodes} -> nameNodes) (\s@CreateLocationHdfs' {} a -> s {nameNodes = a} :: CreateLocationHdfs) Prelude.. Lens.coerced++-- | The type of authentication used to determine the identity of the user.+createLocationHdfs_authenticationType :: Lens.Lens' CreateLocationHdfs HdfsAuthenticationType+createLocationHdfs_authenticationType = Lens.lens (\CreateLocationHdfs' {authenticationType} -> authenticationType) (\s@CreateLocationHdfs' {} a -> s {authenticationType = a} :: CreateLocationHdfs)++-- | The Amazon Resource Names (ARNs) of the agents that are used to connect+-- to the HDFS cluster.+createLocationHdfs_agentArns :: Lens.Lens' CreateLocationHdfs (Prelude.NonEmpty Prelude.Text)+createLocationHdfs_agentArns = Lens.lens (\CreateLocationHdfs' {agentArns} -> agentArns) (\s@CreateLocationHdfs' {} a -> s {agentArns = a} :: CreateLocationHdfs) Prelude.. Lens.coerced++instance Core.AWSRequest CreateLocationHdfs where+  type+    AWSResponse CreateLocationHdfs =+      CreateLocationHdfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationHdfsResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationHdfs where+  hashWithSalt _salt CreateLocationHdfs' {..} =+    _salt+      `Prelude.hashWithSalt` blockSize+      `Prelude.hashWithSalt` kerberosKeytab+      `Prelude.hashWithSalt` kerberosKrb5Conf+      `Prelude.hashWithSalt` kerberosPrincipal+      `Prelude.hashWithSalt` kmsKeyProviderUri+      `Prelude.hashWithSalt` qopConfiguration+      `Prelude.hashWithSalt` replicationFactor+      `Prelude.hashWithSalt` simpleUser+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` nameNodes+      `Prelude.hashWithSalt` authenticationType+      `Prelude.hashWithSalt` agentArns++instance Prelude.NFData CreateLocationHdfs where+  rnf CreateLocationHdfs' {..} =+    Prelude.rnf blockSize+      `Prelude.seq` Prelude.rnf kerberosKeytab+      `Prelude.seq` Prelude.rnf kerberosKrb5Conf+      `Prelude.seq` Prelude.rnf kerberosPrincipal+      `Prelude.seq` Prelude.rnf kmsKeyProviderUri+      `Prelude.seq` Prelude.rnf qopConfiguration+      `Prelude.seq` Prelude.rnf replicationFactor+      `Prelude.seq` Prelude.rnf simpleUser+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf nameNodes+      `Prelude.seq` Prelude.rnf authenticationType+      `Prelude.seq` Prelude.rnf agentArns++instance Data.ToHeaders CreateLocationHdfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationHdfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationHdfs where+  toJSON CreateLocationHdfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BlockSize" Data..=) Prelude.<$> blockSize,+            ("KerberosKeytab" Data..=)+              Prelude.<$> kerberosKeytab,+            ("KerberosKrb5Conf" Data..=)+              Prelude.<$> kerberosKrb5Conf,+            ("KerberosPrincipal" Data..=)+              Prelude.<$> kerberosPrincipal,+            ("KmsKeyProviderUri" Data..=)+              Prelude.<$> kmsKeyProviderUri,+            ("QopConfiguration" Data..=)+              Prelude.<$> qopConfiguration,+            ("ReplicationFactor" Data..=)+              Prelude.<$> replicationFactor,+            ("SimpleUser" Data..=) Prelude.<$> simpleUser,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("NameNodes" Data..= nameNodes),+            Prelude.Just+              ("AuthenticationType" Data..= authenticationType),+            Prelude.Just ("AgentArns" Data..= agentArns)+          ]+      )++instance Data.ToPath CreateLocationHdfs where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationHdfs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLocationHdfsResponse' smart constructor.+data CreateLocationHdfsResponse = CreateLocationHdfsResponse'+  { -- | The ARN of the source HDFS cluster location that\'s created.+    locationArn :: 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 'CreateLocationHdfsResponse' 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:+--+-- 'locationArn', 'createLocationHdfsResponse_locationArn' - The ARN of the source HDFS cluster location that\'s created.+--+-- 'httpStatus', 'createLocationHdfsResponse_httpStatus' - The response's http status code.+newCreateLocationHdfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationHdfsResponse+newCreateLocationHdfsResponse pHttpStatus_ =+  CreateLocationHdfsResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the source HDFS cluster location that\'s created.+createLocationHdfsResponse_locationArn :: Lens.Lens' CreateLocationHdfsResponse (Prelude.Maybe Prelude.Text)+createLocationHdfsResponse_locationArn = Lens.lens (\CreateLocationHdfsResponse' {locationArn} -> locationArn) (\s@CreateLocationHdfsResponse' {} a -> s {locationArn = a} :: CreateLocationHdfsResponse)++-- | The response's http status code.+createLocationHdfsResponse_httpStatus :: Lens.Lens' CreateLocationHdfsResponse Prelude.Int+createLocationHdfsResponse_httpStatus = Lens.lens (\CreateLocationHdfsResponse' {httpStatus} -> httpStatus) (\s@CreateLocationHdfsResponse' {} a -> s {httpStatus = a} :: CreateLocationHdfsResponse)++instance Prelude.NFData CreateLocationHdfsResponse where+  rnf CreateLocationHdfsResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationNfs.hs view
@@ -0,0 +1,364 @@+{-# 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.DataSync.CreateLocationNfs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Defines a file system on a Network File System (NFS) server that can be+-- read from or written to.+module Amazonka.DataSync.CreateLocationNfs+  ( -- * Creating a Request+    CreateLocationNfs (..),+    newCreateLocationNfs,++    -- * Request Lenses+    createLocationNfs_mountOptions,+    createLocationNfs_tags,+    createLocationNfs_subdirectory,+    createLocationNfs_serverHostname,+    createLocationNfs_onPremConfig,++    -- * Destructuring the Response+    CreateLocationNfsResponse (..),+    newCreateLocationNfsResponse,++    -- * Response Lenses+    createLocationNfsResponse_locationArn,+    createLocationNfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CreateLocationNfsRequest+--+-- /See:/ 'newCreateLocationNfs' smart constructor.+data CreateLocationNfs = CreateLocationNfs'+  { -- | The NFS mount options that DataSync can use to mount your NFS share.+    mountOptions :: Prelude.Maybe NfsMountOptions,+    -- | The key-value pair that represents the tag that you want to add to the+    -- location. The value can be an empty string. We recommend using tags to+    -- name your resources.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The subdirectory in the NFS file system that is used to read data from+    -- the NFS source location or write data to the NFS destination. The NFS+    -- path should be a path that\'s exported by the NFS server, or a+    -- subdirectory of that path. The path should be such that it can be+    -- mounted by other NFS clients in your network.+    --+    -- To see all the paths exported by your NFS server, run+    -- \"@showmount -e nfs-server-name@\" from an NFS client that has access to+    -- your server. You can specify any directory that appears in the results,+    -- and any subdirectory of that directory. Ensure that the NFS export is+    -- accessible without Kerberos authentication.+    --+    -- To transfer all the data in the folder you specified, DataSync needs to+    -- have permissions to read all the data. To ensure this, either configure+    -- the NFS export with @no_root_squash,@ or ensure that the permissions for+    -- all of the files that you want DataSync allow read access for all users.+    -- Doing either enables the agent to read the files. For the agent to+    -- access directories, you must additionally enable all execute access.+    --+    -- If you are copying data to or from your Snowcone device, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+    -- for more information.+    --+    -- For information about NFS export configuration, see 18.7. The+    -- \/etc\/exports Configuration File in the Red Hat Enterprise Linux+    -- documentation.+    subdirectory :: Prelude.Text,+    -- | The name of the NFS server. This value is the IP address or Domain Name+    -- Service (DNS) name of the NFS server. An agent that is installed+    -- on-premises uses this hostname to mount the NFS server in a network.+    --+    -- If you are copying data to or from your Snowcone device, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+    -- for more information.+    --+    -- This name must either be DNS-compliant or must be an IP version 4 (IPv4)+    -- address.+    serverHostname :: Prelude.Text,+    -- | Contains a list of Amazon Resource Names (ARNs) of agents that are used+    -- to connect to an NFS server.+    --+    -- If you are copying data to or from your Snowcone device, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+    -- for more information.+    onPremConfig :: OnPremConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationNfs' 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:+--+-- 'mountOptions', 'createLocationNfs_mountOptions' - The NFS mount options that DataSync can use to mount your NFS share.+--+-- 'tags', 'createLocationNfs_tags' - The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+--+-- 'subdirectory', 'createLocationNfs_subdirectory' - The subdirectory in the NFS file system that is used to read data from+-- the NFS source location or write data to the NFS destination. The NFS+-- path should be a path that\'s exported by the NFS server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other NFS clients in your network.+--+-- To see all the paths exported by your NFS server, run+-- \"@showmount -e nfs-server-name@\" from an NFS client that has access to+-- your server. You can specify any directory that appears in the results,+-- and any subdirectory of that directory. Ensure that the NFS export is+-- accessible without Kerberos authentication.+--+-- To transfer all the data in the folder you specified, DataSync needs to+-- have permissions to read all the data. To ensure this, either configure+-- the NFS export with @no_root_squash,@ or ensure that the permissions for+-- all of the files that you want DataSync allow read access for all users.+-- Doing either enables the agent to read the files. For the agent to+-- access directories, you must additionally enable all execute access.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+--+-- For information about NFS export configuration, see 18.7. The+-- \/etc\/exports Configuration File in the Red Hat Enterprise Linux+-- documentation.+--+-- 'serverHostname', 'createLocationNfs_serverHostname' - The name of the NFS server. This value is the IP address or Domain Name+-- Service (DNS) name of the NFS server. An agent that is installed+-- on-premises uses this hostname to mount the NFS server in a network.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+--+-- This name must either be DNS-compliant or must be an IP version 4 (IPv4)+-- address.+--+-- 'onPremConfig', 'createLocationNfs_onPremConfig' - Contains a list of Amazon Resource Names (ARNs) of agents that are used+-- to connect to an NFS server.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+newCreateLocationNfs ::+  -- | 'subdirectory'+  Prelude.Text ->+  -- | 'serverHostname'+  Prelude.Text ->+  -- | 'onPremConfig'+  OnPremConfig ->+  CreateLocationNfs+newCreateLocationNfs+  pSubdirectory_+  pServerHostname_+  pOnPremConfig_ =+    CreateLocationNfs'+      { mountOptions = Prelude.Nothing,+        tags = Prelude.Nothing,+        subdirectory = pSubdirectory_,+        serverHostname = pServerHostname_,+        onPremConfig = pOnPremConfig_+      }++-- | The NFS mount options that DataSync can use to mount your NFS share.+createLocationNfs_mountOptions :: Lens.Lens' CreateLocationNfs (Prelude.Maybe NfsMountOptions)+createLocationNfs_mountOptions = Lens.lens (\CreateLocationNfs' {mountOptions} -> mountOptions) (\s@CreateLocationNfs' {} a -> s {mountOptions = a} :: CreateLocationNfs)++-- | The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+createLocationNfs_tags :: Lens.Lens' CreateLocationNfs (Prelude.Maybe [TagListEntry])+createLocationNfs_tags = Lens.lens (\CreateLocationNfs' {tags} -> tags) (\s@CreateLocationNfs' {} a -> s {tags = a} :: CreateLocationNfs) Prelude.. Lens.mapping Lens.coerced++-- | The subdirectory in the NFS file system that is used to read data from+-- the NFS source location or write data to the NFS destination. The NFS+-- path should be a path that\'s exported by the NFS server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other NFS clients in your network.+--+-- To see all the paths exported by your NFS server, run+-- \"@showmount -e nfs-server-name@\" from an NFS client that has access to+-- your server. You can specify any directory that appears in the results,+-- and any subdirectory of that directory. Ensure that the NFS export is+-- accessible without Kerberos authentication.+--+-- To transfer all the data in the folder you specified, DataSync needs to+-- have permissions to read all the data. To ensure this, either configure+-- the NFS export with @no_root_squash,@ or ensure that the permissions for+-- all of the files that you want DataSync allow read access for all users.+-- Doing either enables the agent to read the files. For the agent to+-- access directories, you must additionally enable all execute access.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+--+-- For information about NFS export configuration, see 18.7. The+-- \/etc\/exports Configuration File in the Red Hat Enterprise Linux+-- documentation.+createLocationNfs_subdirectory :: Lens.Lens' CreateLocationNfs Prelude.Text+createLocationNfs_subdirectory = Lens.lens (\CreateLocationNfs' {subdirectory} -> subdirectory) (\s@CreateLocationNfs' {} a -> s {subdirectory = a} :: CreateLocationNfs)++-- | The name of the NFS server. This value is the IP address or Domain Name+-- Service (DNS) name of the NFS server. An agent that is installed+-- on-premises uses this hostname to mount the NFS server in a network.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+--+-- This name must either be DNS-compliant or must be an IP version 4 (IPv4)+-- address.+createLocationNfs_serverHostname :: Lens.Lens' CreateLocationNfs Prelude.Text+createLocationNfs_serverHostname = Lens.lens (\CreateLocationNfs' {serverHostname} -> serverHostname) (\s@CreateLocationNfs' {} a -> s {serverHostname = a} :: CreateLocationNfs)++-- | Contains a list of Amazon Resource Names (ARNs) of agents that are used+-- to connect to an NFS server.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+createLocationNfs_onPremConfig :: Lens.Lens' CreateLocationNfs OnPremConfig+createLocationNfs_onPremConfig = Lens.lens (\CreateLocationNfs' {onPremConfig} -> onPremConfig) (\s@CreateLocationNfs' {} a -> s {onPremConfig = a} :: CreateLocationNfs)++instance Core.AWSRequest CreateLocationNfs where+  type+    AWSResponse CreateLocationNfs =+      CreateLocationNfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationNfsResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationNfs where+  hashWithSalt _salt CreateLocationNfs' {..} =+    _salt+      `Prelude.hashWithSalt` mountOptions+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` serverHostname+      `Prelude.hashWithSalt` onPremConfig++instance Prelude.NFData CreateLocationNfs where+  rnf CreateLocationNfs' {..} =+    Prelude.rnf mountOptions+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf serverHostname+      `Prelude.seq` Prelude.rnf onPremConfig++instance Data.ToHeaders CreateLocationNfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationNfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationNfs where+  toJSON CreateLocationNfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MountOptions" Data..=) Prelude.<$> mountOptions,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Subdirectory" Data..= subdirectory),+            Prelude.Just+              ("ServerHostname" Data..= serverHostname),+            Prelude.Just ("OnPremConfig" Data..= onPremConfig)+          ]+      )++instance Data.ToPath CreateLocationNfs where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationNfs where+  toQuery = Prelude.const Prelude.mempty++-- | CreateLocationNfsResponse+--+-- /See:/ 'newCreateLocationNfsResponse' smart constructor.+data CreateLocationNfsResponse = CreateLocationNfsResponse'+  { -- | The Amazon Resource Name (ARN) of the source NFS file system location+    -- that is created.+    locationArn :: 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 'CreateLocationNfsResponse' 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:+--+-- 'locationArn', 'createLocationNfsResponse_locationArn' - The Amazon Resource Name (ARN) of the source NFS file system location+-- that is created.+--+-- 'httpStatus', 'createLocationNfsResponse_httpStatus' - The response's http status code.+newCreateLocationNfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationNfsResponse+newCreateLocationNfsResponse pHttpStatus_ =+  CreateLocationNfsResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the source NFS file system location+-- that is created.+createLocationNfsResponse_locationArn :: Lens.Lens' CreateLocationNfsResponse (Prelude.Maybe Prelude.Text)+createLocationNfsResponse_locationArn = Lens.lens (\CreateLocationNfsResponse' {locationArn} -> locationArn) (\s@CreateLocationNfsResponse' {} a -> s {locationArn = a} :: CreateLocationNfsResponse)++-- | The response's http status code.+createLocationNfsResponse_httpStatus :: Lens.Lens' CreateLocationNfsResponse Prelude.Int+createLocationNfsResponse_httpStatus = Lens.lens (\CreateLocationNfsResponse' {httpStatus} -> httpStatus) (\s@CreateLocationNfsResponse' {} a -> s {httpStatus = a} :: CreateLocationNfsResponse)++instance Prelude.NFData CreateLocationNfsResponse where+  rnf CreateLocationNfsResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationObjectStorage.hs view
@@ -0,0 +1,372 @@+{-# 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.DataSync.CreateLocationObjectStorage+-- 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 endpoint for an object storage system that DataSync can+-- access for a transfer. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html Creating a location for object storage>.+module Amazonka.DataSync.CreateLocationObjectStorage+  ( -- * Creating a Request+    CreateLocationObjectStorage (..),+    newCreateLocationObjectStorage,++    -- * Request Lenses+    createLocationObjectStorage_accessKey,+    createLocationObjectStorage_secretKey,+    createLocationObjectStorage_serverCertificate,+    createLocationObjectStorage_serverPort,+    createLocationObjectStorage_serverProtocol,+    createLocationObjectStorage_subdirectory,+    createLocationObjectStorage_tags,+    createLocationObjectStorage_serverHostname,+    createLocationObjectStorage_bucketName,+    createLocationObjectStorage_agentArns,++    -- * Destructuring the Response+    CreateLocationObjectStorageResponse (..),+    newCreateLocationObjectStorageResponse,++    -- * Response Lenses+    createLocationObjectStorageResponse_locationArn,+    createLocationObjectStorageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CreateLocationObjectStorageRequest+--+-- /See:/ 'newCreateLocationObjectStorage' smart constructor.+data CreateLocationObjectStorage = CreateLocationObjectStorage'+  { -- | Specifies the access key (for example, a user name) if credentials are+    -- required to authenticate with the object storage server.+    accessKey :: Prelude.Maybe Prelude.Text,+    -- | Specifies the secret key (for example, a password) if credentials are+    -- required to authenticate with the object storage server.+    secretKey :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Specifies a certificate to authenticate with an object storage system+    -- that uses a private or self-signed certificate authority (CA). You must+    -- specify a Base64-encoded @.pem@ file (for example,+    -- @file:\/\/\/home\/user\/.ssh\/storage_sys_certificate.pem@). The+    -- certificate can be up to 32768 bytes (before Base64 encoding).+    --+    -- To use this parameter, configure @ServerProtocol@ to @HTTPS@.+    serverCertificate :: Prelude.Maybe Data.Base64,+    -- | Specifies the port that your object storage server accepts inbound+    -- network traffic on (for example, port 443).+    serverPort :: Prelude.Maybe Prelude.Natural,+    -- | Specifies the protocol that your object storage server uses to+    -- communicate.+    serverProtocol :: Prelude.Maybe ObjectStorageServerProtocol,+    -- | Specifies the object prefix for your object storage server. If this is a+    -- source location, DataSync only copies objects with this prefix. If this+    -- is a destination location, DataSync writes all objects with this prefix.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | Specifies the key-value pair that represents a tag that you want to add+    -- to the resource. Tags can help you manage, filter, and search for your+    -- resources. We recommend creating a name tag for your location.+    tags :: Prelude.Maybe [TagListEntry],+    -- | Specifies the domain name or IP address of the object storage server. A+    -- DataSync agent uses this hostname to mount the object storage server in+    -- a network.+    serverHostname :: Prelude.Text,+    -- | Specifies the name of the object storage bucket involved in the+    -- transfer.+    bucketName :: Prelude.Text,+    -- | Specifies the Amazon Resource Names (ARNs) of the DataSync agents that+    -- can securely connect with your location.+    agentArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationObjectStorage' 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:+--+-- 'accessKey', 'createLocationObjectStorage_accessKey' - Specifies the access key (for example, a user name) if credentials are+-- required to authenticate with the object storage server.+--+-- 'secretKey', 'createLocationObjectStorage_secretKey' - Specifies the secret key (for example, a password) if credentials are+-- required to authenticate with the object storage server.+--+-- 'serverCertificate', 'createLocationObjectStorage_serverCertificate' - Specifies a certificate to authenticate with an object storage system+-- that uses a private or self-signed certificate authority (CA). You must+-- specify a Base64-encoded @.pem@ file (for example,+-- @file:\/\/\/home\/user\/.ssh\/storage_sys_certificate.pem@). The+-- certificate can be up to 32768 bytes (before Base64 encoding).+--+-- To use this parameter, configure @ServerProtocol@ to @HTTPS@.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'serverPort', 'createLocationObjectStorage_serverPort' - Specifies the port that your object storage server accepts inbound+-- network traffic on (for example, port 443).+--+-- 'serverProtocol', 'createLocationObjectStorage_serverProtocol' - Specifies the protocol that your object storage server uses to+-- communicate.+--+-- 'subdirectory', 'createLocationObjectStorage_subdirectory' - Specifies the object prefix for your object storage server. If this is a+-- source location, DataSync only copies objects with this prefix. If this+-- is a destination location, DataSync writes all objects with this prefix.+--+-- 'tags', 'createLocationObjectStorage_tags' - Specifies the key-value pair that represents a tag that you want to add+-- to the resource. Tags can help you manage, filter, and search for your+-- resources. We recommend creating a name tag for your location.+--+-- 'serverHostname', 'createLocationObjectStorage_serverHostname' - Specifies the domain name or IP address of the object storage server. A+-- DataSync agent uses this hostname to mount the object storage server in+-- a network.+--+-- 'bucketName', 'createLocationObjectStorage_bucketName' - Specifies the name of the object storage bucket involved in the+-- transfer.+--+-- 'agentArns', 'createLocationObjectStorage_agentArns' - Specifies the Amazon Resource Names (ARNs) of the DataSync agents that+-- can securely connect with your location.+newCreateLocationObjectStorage ::+  -- | 'serverHostname'+  Prelude.Text ->+  -- | 'bucketName'+  Prelude.Text ->+  -- | 'agentArns'+  Prelude.NonEmpty Prelude.Text ->+  CreateLocationObjectStorage+newCreateLocationObjectStorage+  pServerHostname_+  pBucketName_+  pAgentArns_ =+    CreateLocationObjectStorage'+      { accessKey =+          Prelude.Nothing,+        secretKey = Prelude.Nothing,+        serverCertificate = Prelude.Nothing,+        serverPort = Prelude.Nothing,+        serverProtocol = Prelude.Nothing,+        subdirectory = Prelude.Nothing,+        tags = Prelude.Nothing,+        serverHostname = pServerHostname_,+        bucketName = pBucketName_,+        agentArns = Lens.coerced Lens.# pAgentArns_+      }++-- | Specifies the access key (for example, a user name) if credentials are+-- required to authenticate with the object storage server.+createLocationObjectStorage_accessKey :: Lens.Lens' CreateLocationObjectStorage (Prelude.Maybe Prelude.Text)+createLocationObjectStorage_accessKey = Lens.lens (\CreateLocationObjectStorage' {accessKey} -> accessKey) (\s@CreateLocationObjectStorage' {} a -> s {accessKey = a} :: CreateLocationObjectStorage)++-- | Specifies the secret key (for example, a password) if credentials are+-- required to authenticate with the object storage server.+createLocationObjectStorage_secretKey :: Lens.Lens' CreateLocationObjectStorage (Prelude.Maybe Prelude.Text)+createLocationObjectStorage_secretKey = Lens.lens (\CreateLocationObjectStorage' {secretKey} -> secretKey) (\s@CreateLocationObjectStorage' {} a -> s {secretKey = a} :: CreateLocationObjectStorage) Prelude.. Lens.mapping Data._Sensitive++-- | Specifies a certificate to authenticate with an object storage system+-- that uses a private or self-signed certificate authority (CA). You must+-- specify a Base64-encoded @.pem@ file (for example,+-- @file:\/\/\/home\/user\/.ssh\/storage_sys_certificate.pem@). The+-- certificate can be up to 32768 bytes (before Base64 encoding).+--+-- To use this parameter, configure @ServerProtocol@ to @HTTPS@.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+createLocationObjectStorage_serverCertificate :: Lens.Lens' CreateLocationObjectStorage (Prelude.Maybe Prelude.ByteString)+createLocationObjectStorage_serverCertificate = Lens.lens (\CreateLocationObjectStorage' {serverCertificate} -> serverCertificate) (\s@CreateLocationObjectStorage' {} a -> s {serverCertificate = a} :: CreateLocationObjectStorage) Prelude.. Lens.mapping Data._Base64++-- | Specifies the port that your object storage server accepts inbound+-- network traffic on (for example, port 443).+createLocationObjectStorage_serverPort :: Lens.Lens' CreateLocationObjectStorage (Prelude.Maybe Prelude.Natural)+createLocationObjectStorage_serverPort = Lens.lens (\CreateLocationObjectStorage' {serverPort} -> serverPort) (\s@CreateLocationObjectStorage' {} a -> s {serverPort = a} :: CreateLocationObjectStorage)++-- | Specifies the protocol that your object storage server uses to+-- communicate.+createLocationObjectStorage_serverProtocol :: Lens.Lens' CreateLocationObjectStorage (Prelude.Maybe ObjectStorageServerProtocol)+createLocationObjectStorage_serverProtocol = Lens.lens (\CreateLocationObjectStorage' {serverProtocol} -> serverProtocol) (\s@CreateLocationObjectStorage' {} a -> s {serverProtocol = a} :: CreateLocationObjectStorage)++-- | Specifies the object prefix for your object storage server. If this is a+-- source location, DataSync only copies objects with this prefix. If this+-- is a destination location, DataSync writes all objects with this prefix.+createLocationObjectStorage_subdirectory :: Lens.Lens' CreateLocationObjectStorage (Prelude.Maybe Prelude.Text)+createLocationObjectStorage_subdirectory = Lens.lens (\CreateLocationObjectStorage' {subdirectory} -> subdirectory) (\s@CreateLocationObjectStorage' {} a -> s {subdirectory = a} :: CreateLocationObjectStorage)++-- | Specifies the key-value pair that represents a tag that you want to add+-- to the resource. Tags can help you manage, filter, and search for your+-- resources. We recommend creating a name tag for your location.+createLocationObjectStorage_tags :: Lens.Lens' CreateLocationObjectStorage (Prelude.Maybe [TagListEntry])+createLocationObjectStorage_tags = Lens.lens (\CreateLocationObjectStorage' {tags} -> tags) (\s@CreateLocationObjectStorage' {} a -> s {tags = a} :: CreateLocationObjectStorage) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the domain name or IP address of the object storage server. A+-- DataSync agent uses this hostname to mount the object storage server in+-- a network.+createLocationObjectStorage_serverHostname :: Lens.Lens' CreateLocationObjectStorage Prelude.Text+createLocationObjectStorage_serverHostname = Lens.lens (\CreateLocationObjectStorage' {serverHostname} -> serverHostname) (\s@CreateLocationObjectStorage' {} a -> s {serverHostname = a} :: CreateLocationObjectStorage)++-- | Specifies the name of the object storage bucket involved in the+-- transfer.+createLocationObjectStorage_bucketName :: Lens.Lens' CreateLocationObjectStorage Prelude.Text+createLocationObjectStorage_bucketName = Lens.lens (\CreateLocationObjectStorage' {bucketName} -> bucketName) (\s@CreateLocationObjectStorage' {} a -> s {bucketName = a} :: CreateLocationObjectStorage)++-- | Specifies the Amazon Resource Names (ARNs) of the DataSync agents that+-- can securely connect with your location.+createLocationObjectStorage_agentArns :: Lens.Lens' CreateLocationObjectStorage (Prelude.NonEmpty Prelude.Text)+createLocationObjectStorage_agentArns = Lens.lens (\CreateLocationObjectStorage' {agentArns} -> agentArns) (\s@CreateLocationObjectStorage' {} a -> s {agentArns = a} :: CreateLocationObjectStorage) Prelude.. Lens.coerced++instance Core.AWSRequest CreateLocationObjectStorage where+  type+    AWSResponse CreateLocationObjectStorage =+      CreateLocationObjectStorageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationObjectStorageResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationObjectStorage where+  hashWithSalt _salt CreateLocationObjectStorage' {..} =+    _salt+      `Prelude.hashWithSalt` accessKey+      `Prelude.hashWithSalt` secretKey+      `Prelude.hashWithSalt` serverCertificate+      `Prelude.hashWithSalt` serverPort+      `Prelude.hashWithSalt` serverProtocol+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` serverHostname+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` agentArns++instance Prelude.NFData CreateLocationObjectStorage where+  rnf CreateLocationObjectStorage' {..} =+    Prelude.rnf accessKey+      `Prelude.seq` Prelude.rnf secretKey+      `Prelude.seq` Prelude.rnf serverCertificate+      `Prelude.seq` Prelude.rnf serverPort+      `Prelude.seq` Prelude.rnf serverProtocol+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf serverHostname+      `Prelude.seq` Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf agentArns++instance Data.ToHeaders CreateLocationObjectStorage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationObjectStorage" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationObjectStorage where+  toJSON CreateLocationObjectStorage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessKey" Data..=) Prelude.<$> accessKey,+            ("SecretKey" Data..=) Prelude.<$> secretKey,+            ("ServerCertificate" Data..=)+              Prelude.<$> serverCertificate,+            ("ServerPort" Data..=) Prelude.<$> serverPort,+            ("ServerProtocol" Data..=)+              Prelude.<$> serverProtocol,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("ServerHostname" Data..= serverHostname),+            Prelude.Just ("BucketName" Data..= bucketName),+            Prelude.Just ("AgentArns" Data..= agentArns)+          ]+      )++instance Data.ToPath CreateLocationObjectStorage where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationObjectStorage where+  toQuery = Prelude.const Prelude.mempty++-- | CreateLocationObjectStorageResponse+--+-- /See:/ 'newCreateLocationObjectStorageResponse' smart constructor.+data CreateLocationObjectStorageResponse = CreateLocationObjectStorageResponse'+  { -- | Specifies the ARN of the object storage system location that you create.+    locationArn :: 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 'CreateLocationObjectStorageResponse' 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:+--+-- 'locationArn', 'createLocationObjectStorageResponse_locationArn' - Specifies the ARN of the object storage system location that you create.+--+-- 'httpStatus', 'createLocationObjectStorageResponse_httpStatus' - The response's http status code.+newCreateLocationObjectStorageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationObjectStorageResponse+newCreateLocationObjectStorageResponse pHttpStatus_ =+  CreateLocationObjectStorageResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Specifies the ARN of the object storage system location that you create.+createLocationObjectStorageResponse_locationArn :: Lens.Lens' CreateLocationObjectStorageResponse (Prelude.Maybe Prelude.Text)+createLocationObjectStorageResponse_locationArn = Lens.lens (\CreateLocationObjectStorageResponse' {locationArn} -> locationArn) (\s@CreateLocationObjectStorageResponse' {} a -> s {locationArn = a} :: CreateLocationObjectStorageResponse)++-- | The response's http status code.+createLocationObjectStorageResponse_httpStatus :: Lens.Lens' CreateLocationObjectStorageResponse Prelude.Int+createLocationObjectStorageResponse_httpStatus = Lens.lens (\CreateLocationObjectStorageResponse' {httpStatus} -> httpStatus) (\s@CreateLocationObjectStorageResponse' {} a -> s {httpStatus = a} :: CreateLocationObjectStorageResponse)++instance+  Prelude.NFData+    CreateLocationObjectStorageResponse+  where+  rnf CreateLocationObjectStorageResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationS3.hs view
@@ -0,0 +1,306 @@+{-# 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.DataSync.CreateLocationS3+-- 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 endpoint for an Amazon S3 bucket that DataSync can access for+-- a transfer.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli Create an Amazon S3 location>+-- in the /DataSync User Guide/.+module Amazonka.DataSync.CreateLocationS3+  ( -- * Creating a Request+    CreateLocationS3 (..),+    newCreateLocationS3,++    -- * Request Lenses+    createLocationS3_agentArns,+    createLocationS3_s3StorageClass,+    createLocationS3_subdirectory,+    createLocationS3_tags,+    createLocationS3_s3BucketArn,+    createLocationS3_s3Config,++    -- * Destructuring the Response+    CreateLocationS3Response (..),+    newCreateLocationS3Response,++    -- * Response Lenses+    createLocationS3Response_locationArn,+    createLocationS3Response_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CreateLocationS3Request+--+-- /See:/ 'newCreateLocationS3' smart constructor.+data CreateLocationS3 = CreateLocationS3'+  { -- | If you\'re using DataSync on an Amazon Web Services Outpost, specify the+    -- Amazon Resource Names (ARNs) of the DataSync agents deployed on your+    -- Outpost. For more information about launching a DataSync agent on an+    -- Amazon Web Services Outpost, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent Deploy your DataSync agent on Outposts>.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The Amazon S3 storage class that you want to store your files in when+    -- this location is used as a task destination. For buckets in Amazon Web+    -- Services Regions, the storage class defaults to Standard. For buckets on+    -- Outposts, the storage class defaults to Amazon Web Services S3 Outposts.+    --+    -- For more information about S3 storage classes, see+    -- <http://aws.amazon.com/s3/storage-classes/ Amazon S3 Storage Classes>.+    -- Some storage classes have behaviors that can affect your S3 storage+    -- cost. For detailed information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with S3 storage classes in DataSync>.+    s3StorageClass :: Prelude.Maybe S3StorageClass,+    -- | A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3+    -- is used to read data from the S3 source location or write data to the S3+    -- destination.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | The key-value pair that represents the tag that you want to add to the+    -- location. The value can be an empty string. We recommend using tags to+    -- name your resources.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The ARN of the Amazon S3 bucket. If the bucket is on an Amazon Web+    -- Services Outpost, this must be an access point ARN.+    s3BucketArn :: Prelude.Text,+    s3Config :: S3Config+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationS3' 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:+--+-- 'agentArns', 'createLocationS3_agentArns' - If you\'re using DataSync on an Amazon Web Services Outpost, specify the+-- Amazon Resource Names (ARNs) of the DataSync agents deployed on your+-- Outpost. For more information about launching a DataSync agent on an+-- Amazon Web Services Outpost, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent Deploy your DataSync agent on Outposts>.+--+-- 's3StorageClass', 'createLocationS3_s3StorageClass' - The Amazon S3 storage class that you want to store your files in when+-- this location is used as a task destination. For buckets in Amazon Web+-- Services Regions, the storage class defaults to Standard. For buckets on+-- Outposts, the storage class defaults to Amazon Web Services S3 Outposts.+--+-- For more information about S3 storage classes, see+-- <http://aws.amazon.com/s3/storage-classes/ Amazon S3 Storage Classes>.+-- Some storage classes have behaviors that can affect your S3 storage+-- cost. For detailed information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with S3 storage classes in DataSync>.+--+-- 'subdirectory', 'createLocationS3_subdirectory' - A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3+-- is used to read data from the S3 source location or write data to the S3+-- destination.+--+-- 'tags', 'createLocationS3_tags' - The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+--+-- 's3BucketArn', 'createLocationS3_s3BucketArn' - The ARN of the Amazon S3 bucket. If the bucket is on an Amazon Web+-- Services Outpost, this must be an access point ARN.+--+-- 's3Config', 'createLocationS3_s3Config' - Undocumented member.+newCreateLocationS3 ::+  -- | 's3BucketArn'+  Prelude.Text ->+  -- | 's3Config'+  S3Config ->+  CreateLocationS3+newCreateLocationS3 pS3BucketArn_ pS3Config_ =+  CreateLocationS3'+    { agentArns = Prelude.Nothing,+      s3StorageClass = Prelude.Nothing,+      subdirectory = Prelude.Nothing,+      tags = Prelude.Nothing,+      s3BucketArn = pS3BucketArn_,+      s3Config = pS3Config_+    }++-- | If you\'re using DataSync on an Amazon Web Services Outpost, specify the+-- Amazon Resource Names (ARNs) of the DataSync agents deployed on your+-- Outpost. For more information about launching a DataSync agent on an+-- Amazon Web Services Outpost, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent Deploy your DataSync agent on Outposts>.+createLocationS3_agentArns :: Lens.Lens' CreateLocationS3 (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+createLocationS3_agentArns = Lens.lens (\CreateLocationS3' {agentArns} -> agentArns) (\s@CreateLocationS3' {} a -> s {agentArns = a} :: CreateLocationS3) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon S3 storage class that you want to store your files in when+-- this location is used as a task destination. For buckets in Amazon Web+-- Services Regions, the storage class defaults to Standard. For buckets on+-- Outposts, the storage class defaults to Amazon Web Services S3 Outposts.+--+-- For more information about S3 storage classes, see+-- <http://aws.amazon.com/s3/storage-classes/ Amazon S3 Storage Classes>.+-- Some storage classes have behaviors that can affect your S3 storage+-- cost. For detailed information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with S3 storage classes in DataSync>.+createLocationS3_s3StorageClass :: Lens.Lens' CreateLocationS3 (Prelude.Maybe S3StorageClass)+createLocationS3_s3StorageClass = Lens.lens (\CreateLocationS3' {s3StorageClass} -> s3StorageClass) (\s@CreateLocationS3' {} a -> s {s3StorageClass = a} :: CreateLocationS3)++-- | A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3+-- is used to read data from the S3 source location or write data to the S3+-- destination.+createLocationS3_subdirectory :: Lens.Lens' CreateLocationS3 (Prelude.Maybe Prelude.Text)+createLocationS3_subdirectory = Lens.lens (\CreateLocationS3' {subdirectory} -> subdirectory) (\s@CreateLocationS3' {} a -> s {subdirectory = a} :: CreateLocationS3)++-- | The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+createLocationS3_tags :: Lens.Lens' CreateLocationS3 (Prelude.Maybe [TagListEntry])+createLocationS3_tags = Lens.lens (\CreateLocationS3' {tags} -> tags) (\s@CreateLocationS3' {} a -> s {tags = a} :: CreateLocationS3) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the Amazon S3 bucket. If the bucket is on an Amazon Web+-- Services Outpost, this must be an access point ARN.+createLocationS3_s3BucketArn :: Lens.Lens' CreateLocationS3 Prelude.Text+createLocationS3_s3BucketArn = Lens.lens (\CreateLocationS3' {s3BucketArn} -> s3BucketArn) (\s@CreateLocationS3' {} a -> s {s3BucketArn = a} :: CreateLocationS3)++-- | Undocumented member.+createLocationS3_s3Config :: Lens.Lens' CreateLocationS3 S3Config+createLocationS3_s3Config = Lens.lens (\CreateLocationS3' {s3Config} -> s3Config) (\s@CreateLocationS3' {} a -> s {s3Config = a} :: CreateLocationS3)++instance Core.AWSRequest CreateLocationS3 where+  type+    AWSResponse CreateLocationS3 =+      CreateLocationS3Response+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationS3Response'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationS3 where+  hashWithSalt _salt CreateLocationS3' {..} =+    _salt+      `Prelude.hashWithSalt` agentArns+      `Prelude.hashWithSalt` s3StorageClass+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` s3BucketArn+      `Prelude.hashWithSalt` s3Config++instance Prelude.NFData CreateLocationS3 where+  rnf CreateLocationS3' {..} =+    Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf s3StorageClass+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf s3BucketArn+      `Prelude.seq` Prelude.rnf s3Config++instance Data.ToHeaders CreateLocationS3 where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationS3" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationS3 where+  toJSON CreateLocationS3' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AgentArns" Data..=) Prelude.<$> agentArns,+            ("S3StorageClass" Data..=)+              Prelude.<$> s3StorageClass,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("S3BucketArn" Data..= s3BucketArn),+            Prelude.Just ("S3Config" Data..= s3Config)+          ]+      )++instance Data.ToPath CreateLocationS3 where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationS3 where+  toQuery = Prelude.const Prelude.mempty++-- | CreateLocationS3Response+--+-- /See:/ 'newCreateLocationS3Response' smart constructor.+data CreateLocationS3Response = CreateLocationS3Response'+  { -- | The Amazon Resource Name (ARN) of the source Amazon S3 bucket location+    -- that is created.+    locationArn :: 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 'CreateLocationS3Response' 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:+--+-- 'locationArn', 'createLocationS3Response_locationArn' - The Amazon Resource Name (ARN) of the source Amazon S3 bucket location+-- that is created.+--+-- 'httpStatus', 'createLocationS3Response_httpStatus' - The response's http status code.+newCreateLocationS3Response ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationS3Response+newCreateLocationS3Response pHttpStatus_ =+  CreateLocationS3Response'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the source Amazon S3 bucket location+-- that is created.+createLocationS3Response_locationArn :: Lens.Lens' CreateLocationS3Response (Prelude.Maybe Prelude.Text)+createLocationS3Response_locationArn = Lens.lens (\CreateLocationS3Response' {locationArn} -> locationArn) (\s@CreateLocationS3Response' {} a -> s {locationArn = a} :: CreateLocationS3Response)++-- | The response's http status code.+createLocationS3Response_httpStatus :: Lens.Lens' CreateLocationS3Response Prelude.Int+createLocationS3Response_httpStatus = Lens.lens (\CreateLocationS3Response' {httpStatus} -> httpStatus) (\s@CreateLocationS3Response' {} a -> s {httpStatus = a} :: CreateLocationS3Response)++instance Prelude.NFData CreateLocationS3Response where+  rnf CreateLocationS3Response' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateLocationSmb.hs view
@@ -0,0 +1,379 @@+{-# 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.DataSync.CreateLocationSmb+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Defines a file system on a Server Message Block (SMB) server that can be+-- read from or written to.+module Amazonka.DataSync.CreateLocationSmb+  ( -- * Creating a Request+    CreateLocationSmb (..),+    newCreateLocationSmb,++    -- * Request Lenses+    createLocationSmb_domain,+    createLocationSmb_mountOptions,+    createLocationSmb_tags,+    createLocationSmb_subdirectory,+    createLocationSmb_serverHostname,+    createLocationSmb_user,+    createLocationSmb_password,+    createLocationSmb_agentArns,++    -- * Destructuring the Response+    CreateLocationSmbResponse (..),+    newCreateLocationSmbResponse,++    -- * Response Lenses+    createLocationSmbResponse_locationArn,+    createLocationSmbResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CreateLocationSmbRequest+--+-- /See:/ 'newCreateLocationSmb' smart constructor.+data CreateLocationSmb = CreateLocationSmb'+  { -- | The name of the Windows domain that the SMB server belongs to.+    domain :: Prelude.Maybe Prelude.Text,+    -- | The mount options used by DataSync to access the SMB server.+    mountOptions :: Prelude.Maybe SmbMountOptions,+    -- | The key-value pair that represents the tag that you want to add to the+    -- location. The value can be an empty string. We recommend using tags to+    -- name your resources.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The subdirectory in the SMB file system that is used to read data from+    -- the SMB source location or write data to the SMB destination. The SMB+    -- path should be a path that\'s exported by the SMB server, or a+    -- subdirectory of that path. The path should be such that it can be+    -- mounted by other SMB clients in your network.+    --+    -- @Subdirectory@ must be specified with forward slashes. For example,+    -- @\/path\/to\/folder@.+    --+    -- To transfer all the data in the folder you specified, DataSync needs to+    -- have permissions to mount the SMB share, as well as to access all the+    -- data in that share. To ensure this, either ensure that the+    -- user\/password specified belongs to the user who can mount the share,+    -- and who has the appropriate permissions for all of the files and+    -- directories that you want DataSync to access, or use credentials of a+    -- member of the Backup Operators group to mount the share. Doing either+    -- enables the agent to access the data. For the agent to access+    -- directories, you must additionally enable all execute access.+    subdirectory :: Prelude.Text,+    -- | The name of the SMB server. This value is the IP address or Domain Name+    -- Service (DNS) name of the SMB server. An agent that is installed+    -- on-premises uses this hostname to mount the SMB server in a network.+    --+    -- This name must either be DNS-compliant or must be an IP version 4 (IPv4)+    -- address.+    serverHostname :: Prelude.Text,+    -- | The user who can mount the share, has the permissions to access files+    -- and folders in the SMB share.+    --+    -- For information about choosing a user name that ensures sufficient+    -- permissions to files, folders, and metadata, see the+    -- <create-smb-location.html#SMBuser User setting> for SMB locations.+    user :: Prelude.Text,+    -- | The password of the user who can mount the share, has the permissions to+    -- access files and folders in the SMB share.+    password :: Data.Sensitive Prelude.Text,+    -- | The Amazon Resource Names (ARNs) of agents to use for a Simple Message+    -- Block (SMB) location.+    agentArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLocationSmb' 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:+--+-- 'domain', 'createLocationSmb_domain' - The name of the Windows domain that the SMB server belongs to.+--+-- 'mountOptions', 'createLocationSmb_mountOptions' - The mount options used by DataSync to access the SMB server.+--+-- 'tags', 'createLocationSmb_tags' - The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+--+-- 'subdirectory', 'createLocationSmb_subdirectory' - The subdirectory in the SMB file system that is used to read data from+-- the SMB source location or write data to the SMB destination. The SMB+-- path should be a path that\'s exported by the SMB server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other SMB clients in your network.+--+-- @Subdirectory@ must be specified with forward slashes. For example,+-- @\/path\/to\/folder@.+--+-- To transfer all the data in the folder you specified, DataSync needs to+-- have permissions to mount the SMB share, as well as to access all the+-- data in that share. To ensure this, either ensure that the+-- user\/password specified belongs to the user who can mount the share,+-- and who has the appropriate permissions for all of the files and+-- directories that you want DataSync to access, or use credentials of a+-- member of the Backup Operators group to mount the share. Doing either+-- enables the agent to access the data. For the agent to access+-- directories, you must additionally enable all execute access.+--+-- 'serverHostname', 'createLocationSmb_serverHostname' - The name of the SMB server. This value is the IP address or Domain Name+-- Service (DNS) name of the SMB server. An agent that is installed+-- on-premises uses this hostname to mount the SMB server in a network.+--+-- This name must either be DNS-compliant or must be an IP version 4 (IPv4)+-- address.+--+-- 'user', 'createLocationSmb_user' - The user who can mount the share, has the permissions to access files+-- and folders in the SMB share.+--+-- For information about choosing a user name that ensures sufficient+-- permissions to files, folders, and metadata, see the+-- <create-smb-location.html#SMBuser User setting> for SMB locations.+--+-- 'password', 'createLocationSmb_password' - The password of the user who can mount the share, has the permissions to+-- access files and folders in the SMB share.+--+-- 'agentArns', 'createLocationSmb_agentArns' - The Amazon Resource Names (ARNs) of agents to use for a Simple Message+-- Block (SMB) location.+newCreateLocationSmb ::+  -- | 'subdirectory'+  Prelude.Text ->+  -- | 'serverHostname'+  Prelude.Text ->+  -- | 'user'+  Prelude.Text ->+  -- | 'password'+  Prelude.Text ->+  -- | 'agentArns'+  Prelude.NonEmpty Prelude.Text ->+  CreateLocationSmb+newCreateLocationSmb+  pSubdirectory_+  pServerHostname_+  pUser_+  pPassword_+  pAgentArns_ =+    CreateLocationSmb'+      { domain = Prelude.Nothing,+        mountOptions = Prelude.Nothing,+        tags = Prelude.Nothing,+        subdirectory = pSubdirectory_,+        serverHostname = pServerHostname_,+        user = pUser_,+        password = Data._Sensitive Lens.# pPassword_,+        agentArns = Lens.coerced Lens.# pAgentArns_+      }++-- | The name of the Windows domain that the SMB server belongs to.+createLocationSmb_domain :: Lens.Lens' CreateLocationSmb (Prelude.Maybe Prelude.Text)+createLocationSmb_domain = Lens.lens (\CreateLocationSmb' {domain} -> domain) (\s@CreateLocationSmb' {} a -> s {domain = a} :: CreateLocationSmb)++-- | The mount options used by DataSync to access the SMB server.+createLocationSmb_mountOptions :: Lens.Lens' CreateLocationSmb (Prelude.Maybe SmbMountOptions)+createLocationSmb_mountOptions = Lens.lens (\CreateLocationSmb' {mountOptions} -> mountOptions) (\s@CreateLocationSmb' {} a -> s {mountOptions = a} :: CreateLocationSmb)++-- | The key-value pair that represents the tag that you want to add to the+-- location. The value can be an empty string. We recommend using tags to+-- name your resources.+createLocationSmb_tags :: Lens.Lens' CreateLocationSmb (Prelude.Maybe [TagListEntry])+createLocationSmb_tags = Lens.lens (\CreateLocationSmb' {tags} -> tags) (\s@CreateLocationSmb' {} a -> s {tags = a} :: CreateLocationSmb) Prelude.. Lens.mapping Lens.coerced++-- | The subdirectory in the SMB file system that is used to read data from+-- the SMB source location or write data to the SMB destination. The SMB+-- path should be a path that\'s exported by the SMB server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other SMB clients in your network.+--+-- @Subdirectory@ must be specified with forward slashes. For example,+-- @\/path\/to\/folder@.+--+-- To transfer all the data in the folder you specified, DataSync needs to+-- have permissions to mount the SMB share, as well as to access all the+-- data in that share. To ensure this, either ensure that the+-- user\/password specified belongs to the user who can mount the share,+-- and who has the appropriate permissions for all of the files and+-- directories that you want DataSync to access, or use credentials of a+-- member of the Backup Operators group to mount the share. Doing either+-- enables the agent to access the data. For the agent to access+-- directories, you must additionally enable all execute access.+createLocationSmb_subdirectory :: Lens.Lens' CreateLocationSmb Prelude.Text+createLocationSmb_subdirectory = Lens.lens (\CreateLocationSmb' {subdirectory} -> subdirectory) (\s@CreateLocationSmb' {} a -> s {subdirectory = a} :: CreateLocationSmb)++-- | The name of the SMB server. This value is the IP address or Domain Name+-- Service (DNS) name of the SMB server. An agent that is installed+-- on-premises uses this hostname to mount the SMB server in a network.+--+-- This name must either be DNS-compliant or must be an IP version 4 (IPv4)+-- address.+createLocationSmb_serverHostname :: Lens.Lens' CreateLocationSmb Prelude.Text+createLocationSmb_serverHostname = Lens.lens (\CreateLocationSmb' {serverHostname} -> serverHostname) (\s@CreateLocationSmb' {} a -> s {serverHostname = a} :: CreateLocationSmb)++-- | The user who can mount the share, has the permissions to access files+-- and folders in the SMB share.+--+-- For information about choosing a user name that ensures sufficient+-- permissions to files, folders, and metadata, see the+-- <create-smb-location.html#SMBuser User setting> for SMB locations.+createLocationSmb_user :: Lens.Lens' CreateLocationSmb Prelude.Text+createLocationSmb_user = Lens.lens (\CreateLocationSmb' {user} -> user) (\s@CreateLocationSmb' {} a -> s {user = a} :: CreateLocationSmb)++-- | The password of the user who can mount the share, has the permissions to+-- access files and folders in the SMB share.+createLocationSmb_password :: Lens.Lens' CreateLocationSmb Prelude.Text+createLocationSmb_password = Lens.lens (\CreateLocationSmb' {password} -> password) (\s@CreateLocationSmb' {} a -> s {password = a} :: CreateLocationSmb) Prelude.. Data._Sensitive++-- | The Amazon Resource Names (ARNs) of agents to use for a Simple Message+-- Block (SMB) location.+createLocationSmb_agentArns :: Lens.Lens' CreateLocationSmb (Prelude.NonEmpty Prelude.Text)+createLocationSmb_agentArns = Lens.lens (\CreateLocationSmb' {agentArns} -> agentArns) (\s@CreateLocationSmb' {} a -> s {agentArns = a} :: CreateLocationSmb) Prelude.. Lens.coerced++instance Core.AWSRequest CreateLocationSmb where+  type+    AWSResponse CreateLocationSmb =+      CreateLocationSmbResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLocationSmbResponse'+            Prelude.<$> (x Data..?> "LocationArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLocationSmb where+  hashWithSalt _salt CreateLocationSmb' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` mountOptions+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` serverHostname+      `Prelude.hashWithSalt` user+      `Prelude.hashWithSalt` password+      `Prelude.hashWithSalt` agentArns++instance Prelude.NFData CreateLocationSmb where+  rnf CreateLocationSmb' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf mountOptions+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf serverHostname+      `Prelude.seq` Prelude.rnf user+      `Prelude.seq` Prelude.rnf password+      `Prelude.seq` Prelude.rnf agentArns++instance Data.ToHeaders CreateLocationSmb where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.CreateLocationSmb" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateLocationSmb where+  toJSON CreateLocationSmb' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Domain" Data..=) Prelude.<$> domain,+            ("MountOptions" Data..=) Prelude.<$> mountOptions,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Subdirectory" Data..= subdirectory),+            Prelude.Just+              ("ServerHostname" Data..= serverHostname),+            Prelude.Just ("User" Data..= user),+            Prelude.Just ("Password" Data..= password),+            Prelude.Just ("AgentArns" Data..= agentArns)+          ]+      )++instance Data.ToPath CreateLocationSmb where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateLocationSmb where+  toQuery = Prelude.const Prelude.mempty++-- | CreateLocationSmbResponse+--+-- /See:/ 'newCreateLocationSmbResponse' smart constructor.+data CreateLocationSmbResponse = CreateLocationSmbResponse'+  { -- | The Amazon Resource Name (ARN) of the source SMB file system location+    -- that is created.+    locationArn :: 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 'CreateLocationSmbResponse' 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:+--+-- 'locationArn', 'createLocationSmbResponse_locationArn' - The Amazon Resource Name (ARN) of the source SMB file system location+-- that is created.+--+-- 'httpStatus', 'createLocationSmbResponse_httpStatus' - The response's http status code.+newCreateLocationSmbResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLocationSmbResponse+newCreateLocationSmbResponse pHttpStatus_ =+  CreateLocationSmbResponse'+    { locationArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the source SMB file system location+-- that is created.+createLocationSmbResponse_locationArn :: Lens.Lens' CreateLocationSmbResponse (Prelude.Maybe Prelude.Text)+createLocationSmbResponse_locationArn = Lens.lens (\CreateLocationSmbResponse' {locationArn} -> locationArn) (\s@CreateLocationSmbResponse' {} a -> s {locationArn = a} :: CreateLocationSmbResponse)++-- | The response's http status code.+createLocationSmbResponse_httpStatus :: Lens.Lens' CreateLocationSmbResponse Prelude.Int+createLocationSmbResponse_httpStatus = Lens.lens (\CreateLocationSmbResponse' {httpStatus} -> httpStatus) (\s@CreateLocationSmbResponse' {} a -> s {httpStatus = a} :: CreateLocationSmbResponse)++instance Prelude.NFData CreateLocationSmbResponse where+  rnf CreateLocationSmbResponse' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/CreateTask.hs view
@@ -0,0 +1,348 @@+{-# 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.DataSync.CreateTask+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Configures a task, which defines where and how DataSync transfers your+-- data.+--+-- A task includes a source location, a destination location, and the+-- preferences for how and when you want to transfer your data (such as+-- bandwidth limits, scheduling, among other options).+module Amazonka.DataSync.CreateTask+  ( -- * Creating a Request+    CreateTask (..),+    newCreateTask,++    -- * Request Lenses+    createTask_cloudWatchLogGroupArn,+    createTask_excludes,+    createTask_includes,+    createTask_name,+    createTask_options,+    createTask_schedule,+    createTask_tags,+    createTask_sourceLocationArn,+    createTask_destinationLocationArn,++    -- * Destructuring the Response+    CreateTaskResponse (..),+    newCreateTaskResponse,++    -- * Response Lenses+    createTaskResponse_taskArn,+    createTaskResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | CreateTaskRequest+--+-- /See:/ 'newCreateTask' smart constructor.+data CreateTask = CreateTask'+  { -- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that+    -- is used to monitor and log events in the task.+    cloudWatchLogGroupArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies a list of filter rules that exclude specific data during your+    -- transfer. For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    excludes :: Prelude.Maybe [FilterRule],+    -- | Specifies a list of filter rules that include specific data during your+    -- transfer. For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    includes :: Prelude.Maybe [FilterRule],+    -- | The name of a task. This value is a text reference that is used to+    -- identify the task in the console.+    name :: Prelude.Maybe Prelude.Text,+    -- | Specifies the configuration options for a task. Some options include+    -- preserving file or object metadata and verifying data integrity.+    --+    -- You can also override these options before starting an individual run of+    -- a task (also known as a /task execution/). For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html StartTaskExecution>.+    options :: Prelude.Maybe Options,+    -- | Specifies a schedule used to periodically transfer files from a source+    -- to a destination location. The schedule should be specified in UTC time.+    -- For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html Scheduling your task>.+    schedule :: Prelude.Maybe TaskSchedule,+    -- | Specifies the tags that you want to apply to the Amazon Resource Name+    -- (ARN) representing the task.+    --+    -- /Tags/ are key-value pairs that help you manage, filter, and search for+    -- your DataSync resources.+    tags :: Prelude.Maybe [TagListEntry],+    -- | The Amazon Resource Name (ARN) of the source location for the task.+    sourceLocationArn :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Amazon Web Services storage+    -- resource\'s location.+    destinationLocationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateTask' 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:+--+-- 'cloudWatchLogGroupArn', 'createTask_cloudWatchLogGroupArn' - The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that+-- is used to monitor and log events in the task.+--+-- 'excludes', 'createTask_excludes' - Specifies a list of filter rules that exclude specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'includes', 'createTask_includes' - Specifies a list of filter rules that include specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'name', 'createTask_name' - The name of a task. This value is a text reference that is used to+-- identify the task in the console.+--+-- 'options', 'createTask_options' - Specifies the configuration options for a task. Some options include+-- preserving file or object metadata and verifying data integrity.+--+-- You can also override these options before starting an individual run of+-- a task (also known as a /task execution/). For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html StartTaskExecution>.+--+-- 'schedule', 'createTask_schedule' - Specifies a schedule used to periodically transfer files from a source+-- to a destination location. The schedule should be specified in UTC time.+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html Scheduling your task>.+--+-- 'tags', 'createTask_tags' - Specifies the tags that you want to apply to the Amazon Resource Name+-- (ARN) representing the task.+--+-- /Tags/ are key-value pairs that help you manage, filter, and search for+-- your DataSync resources.+--+-- 'sourceLocationArn', 'createTask_sourceLocationArn' - The Amazon Resource Name (ARN) of the source location for the task.+--+-- 'destinationLocationArn', 'createTask_destinationLocationArn' - The Amazon Resource Name (ARN) of an Amazon Web Services storage+-- resource\'s location.+newCreateTask ::+  -- | 'sourceLocationArn'+  Prelude.Text ->+  -- | 'destinationLocationArn'+  Prelude.Text ->+  CreateTask+newCreateTask+  pSourceLocationArn_+  pDestinationLocationArn_ =+    CreateTask'+      { cloudWatchLogGroupArn =+          Prelude.Nothing,+        excludes = Prelude.Nothing,+        includes = Prelude.Nothing,+        name = Prelude.Nothing,+        options = Prelude.Nothing,+        schedule = Prelude.Nothing,+        tags = Prelude.Nothing,+        sourceLocationArn = pSourceLocationArn_,+        destinationLocationArn = pDestinationLocationArn_+      }++-- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that+-- is used to monitor and log events in the task.+createTask_cloudWatchLogGroupArn :: Lens.Lens' CreateTask (Prelude.Maybe Prelude.Text)+createTask_cloudWatchLogGroupArn = Lens.lens (\CreateTask' {cloudWatchLogGroupArn} -> cloudWatchLogGroupArn) (\s@CreateTask' {} a -> s {cloudWatchLogGroupArn = a} :: CreateTask)++-- | Specifies a list of filter rules that exclude specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+createTask_excludes :: Lens.Lens' CreateTask (Prelude.Maybe [FilterRule])+createTask_excludes = Lens.lens (\CreateTask' {excludes} -> excludes) (\s@CreateTask' {} a -> s {excludes = a} :: CreateTask) Prelude.. Lens.mapping Lens.coerced++-- | Specifies a list of filter rules that include specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+createTask_includes :: Lens.Lens' CreateTask (Prelude.Maybe [FilterRule])+createTask_includes = Lens.lens (\CreateTask' {includes} -> includes) (\s@CreateTask' {} a -> s {includes = a} :: CreateTask) Prelude.. Lens.mapping Lens.coerced++-- | The name of a task. This value is a text reference that is used to+-- identify the task in the console.+createTask_name :: Lens.Lens' CreateTask (Prelude.Maybe Prelude.Text)+createTask_name = Lens.lens (\CreateTask' {name} -> name) (\s@CreateTask' {} a -> s {name = a} :: CreateTask)++-- | Specifies the configuration options for a task. Some options include+-- preserving file or object metadata and verifying data integrity.+--+-- You can also override these options before starting an individual run of+-- a task (also known as a /task execution/). For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html StartTaskExecution>.+createTask_options :: Lens.Lens' CreateTask (Prelude.Maybe Options)+createTask_options = Lens.lens (\CreateTask' {options} -> options) (\s@CreateTask' {} a -> s {options = a} :: CreateTask)++-- | Specifies a schedule used to periodically transfer files from a source+-- to a destination location. The schedule should be specified in UTC time.+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html Scheduling your task>.+createTask_schedule :: Lens.Lens' CreateTask (Prelude.Maybe TaskSchedule)+createTask_schedule = Lens.lens (\CreateTask' {schedule} -> schedule) (\s@CreateTask' {} a -> s {schedule = a} :: CreateTask)++-- | Specifies the tags that you want to apply to the Amazon Resource Name+-- (ARN) representing the task.+--+-- /Tags/ are key-value pairs that help you manage, filter, and search for+-- your DataSync resources.+createTask_tags :: Lens.Lens' CreateTask (Prelude.Maybe [TagListEntry])+createTask_tags = Lens.lens (\CreateTask' {tags} -> tags) (\s@CreateTask' {} a -> s {tags = a} :: CreateTask) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the source location for the task.+createTask_sourceLocationArn :: Lens.Lens' CreateTask Prelude.Text+createTask_sourceLocationArn = Lens.lens (\CreateTask' {sourceLocationArn} -> sourceLocationArn) (\s@CreateTask' {} a -> s {sourceLocationArn = a} :: CreateTask)++-- | The Amazon Resource Name (ARN) of an Amazon Web Services storage+-- resource\'s location.+createTask_destinationLocationArn :: Lens.Lens' CreateTask Prelude.Text+createTask_destinationLocationArn = Lens.lens (\CreateTask' {destinationLocationArn} -> destinationLocationArn) (\s@CreateTask' {} a -> s {destinationLocationArn = a} :: CreateTask)++instance Core.AWSRequest CreateTask where+  type AWSResponse CreateTask = CreateTaskResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateTaskResponse'+            Prelude.<$> (x Data..?> "TaskArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateTask where+  hashWithSalt _salt CreateTask' {..} =+    _salt+      `Prelude.hashWithSalt` cloudWatchLogGroupArn+      `Prelude.hashWithSalt` excludes+      `Prelude.hashWithSalt` includes+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` schedule+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceLocationArn+      `Prelude.hashWithSalt` destinationLocationArn++instance Prelude.NFData CreateTask where+  rnf CreateTask' {..} =+    Prelude.rnf cloudWatchLogGroupArn+      `Prelude.seq` Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf options+      `Prelude.seq` Prelude.rnf schedule+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceLocationArn+      `Prelude.seq` Prelude.rnf destinationLocationArn++instance Data.ToHeaders CreateTask where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.CreateTask" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateTask where+  toJSON CreateTask' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CloudWatchLogGroupArn" Data..=)+              Prelude.<$> cloudWatchLogGroupArn,+            ("Excludes" Data..=) Prelude.<$> excludes,+            ("Includes" Data..=) Prelude.<$> includes,+            ("Name" Data..=) Prelude.<$> name,+            ("Options" Data..=) Prelude.<$> options,+            ("Schedule" Data..=) Prelude.<$> schedule,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("SourceLocationArn" Data..= sourceLocationArn),+            Prelude.Just+              ( "DestinationLocationArn"+                  Data..= destinationLocationArn+              )+          ]+      )++instance Data.ToPath CreateTask where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateTask where+  toQuery = Prelude.const Prelude.mempty++-- | CreateTaskResponse+--+-- /See:/ 'newCreateTaskResponse' smart constructor.+data CreateTaskResponse = CreateTaskResponse'+  { -- | The Amazon Resource Name (ARN) of the task.+    taskArn :: 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 'CreateTaskResponse' 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:+--+-- 'taskArn', 'createTaskResponse_taskArn' - The Amazon Resource Name (ARN) of the task.+--+-- 'httpStatus', 'createTaskResponse_httpStatus' - The response's http status code.+newCreateTaskResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateTaskResponse+newCreateTaskResponse pHttpStatus_ =+  CreateTaskResponse'+    { taskArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the task.+createTaskResponse_taskArn :: Lens.Lens' CreateTaskResponse (Prelude.Maybe Prelude.Text)+createTaskResponse_taskArn = Lens.lens (\CreateTaskResponse' {taskArn} -> taskArn) (\s@CreateTaskResponse' {} a -> s {taskArn = a} :: CreateTaskResponse)++-- | The response's http status code.+createTaskResponse_httpStatus :: Lens.Lens' CreateTaskResponse Prelude.Int+createTaskResponse_httpStatus = Lens.lens (\CreateTaskResponse' {httpStatus} -> httpStatus) (\s@CreateTaskResponse' {} a -> s {httpStatus = a} :: CreateTaskResponse)++instance Prelude.NFData CreateTaskResponse where+  rnf CreateTaskResponse' {..} =+    Prelude.rnf taskArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DeleteAgent.hs view
@@ -0,0 +1,160 @@+{-# 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.DataSync.DeleteAgent+-- 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 agent. To specify which agent to delete, use the Amazon+-- Resource Name (ARN) of the agent in your request. The operation+-- disassociates the agent from your Amazon Web Services account. However,+-- it doesn\'t delete the agent virtual machine (VM) from your on-premises+-- environment.+module Amazonka.DataSync.DeleteAgent+  ( -- * Creating a Request+    DeleteAgent (..),+    newDeleteAgent,++    -- * Request Lenses+    deleteAgent_agentArn,++    -- * Destructuring the Response+    DeleteAgentResponse (..),+    newDeleteAgentResponse,++    -- * Response Lenses+    deleteAgentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DeleteAgentRequest+--+-- /See:/ 'newDeleteAgent' smart constructor.+data DeleteAgent = DeleteAgent'+  { -- | The Amazon Resource Name (ARN) of the agent to delete. Use the+    -- @ListAgents@ operation to return a list of agents for your account and+    -- Amazon Web Services Region.+    agentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAgent' 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:+--+-- 'agentArn', 'deleteAgent_agentArn' - The Amazon Resource Name (ARN) of the agent to delete. Use the+-- @ListAgents@ operation to return a list of agents for your account and+-- Amazon Web Services Region.+newDeleteAgent ::+  -- | 'agentArn'+  Prelude.Text ->+  DeleteAgent+newDeleteAgent pAgentArn_ =+  DeleteAgent' {agentArn = pAgentArn_}++-- | The Amazon Resource Name (ARN) of the agent to delete. Use the+-- @ListAgents@ operation to return a list of agents for your account and+-- Amazon Web Services Region.+deleteAgent_agentArn :: Lens.Lens' DeleteAgent Prelude.Text+deleteAgent_agentArn = Lens.lens (\DeleteAgent' {agentArn} -> agentArn) (\s@DeleteAgent' {} a -> s {agentArn = a} :: DeleteAgent)++instance Core.AWSRequest DeleteAgent where+  type AWSResponse DeleteAgent = DeleteAgentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAgentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAgent where+  hashWithSalt _salt DeleteAgent' {..} =+    _salt `Prelude.hashWithSalt` agentArn++instance Prelude.NFData DeleteAgent where+  rnf DeleteAgent' {..} = Prelude.rnf agentArn++instance Data.ToHeaders DeleteAgent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.DeleteAgent" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAgent where+  toJSON DeleteAgent' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("AgentArn" Data..= agentArn)]+      )++instance Data.ToPath DeleteAgent where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteAgent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAgentResponse' smart constructor.+data DeleteAgentResponse = DeleteAgentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAgentResponse' 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', 'deleteAgentResponse_httpStatus' - The response's http status code.+newDeleteAgentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAgentResponse+newDeleteAgentResponse pHttpStatus_ =+  DeleteAgentResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteAgentResponse_httpStatus :: Lens.Lens' DeleteAgentResponse Prelude.Int+deleteAgentResponse_httpStatus = Lens.lens (\DeleteAgentResponse' {httpStatus} -> httpStatus) (\s@DeleteAgentResponse' {} a -> s {httpStatus = a} :: DeleteAgentResponse)++instance Prelude.NFData DeleteAgentResponse where+  rnf DeleteAgentResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DeleteLocation.hs view
@@ -0,0 +1,153 @@+{-# 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.DataSync.DeleteLocation+-- 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 the configuration of a location used by DataSync.+module Amazonka.DataSync.DeleteLocation+  ( -- * Creating a Request+    DeleteLocation (..),+    newDeleteLocation,++    -- * Request Lenses+    deleteLocation_locationArn,++    -- * Destructuring the Response+    DeleteLocationResponse (..),+    newDeleteLocationResponse,++    -- * Response Lenses+    deleteLocationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DeleteLocation+--+-- /See:/ 'newDeleteLocation' smart constructor.+data DeleteLocation = DeleteLocation'+  { -- | The Amazon Resource Name (ARN) of the location to delete.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLocation' 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:+--+-- 'locationArn', 'deleteLocation_locationArn' - The Amazon Resource Name (ARN) of the location to delete.+newDeleteLocation ::+  -- | 'locationArn'+  Prelude.Text ->+  DeleteLocation+newDeleteLocation pLocationArn_ =+  DeleteLocation' {locationArn = pLocationArn_}++-- | The Amazon Resource Name (ARN) of the location to delete.+deleteLocation_locationArn :: Lens.Lens' DeleteLocation Prelude.Text+deleteLocation_locationArn = Lens.lens (\DeleteLocation' {locationArn} -> locationArn) (\s@DeleteLocation' {} a -> s {locationArn = a} :: DeleteLocation)++instance Core.AWSRequest DeleteLocation where+  type+    AWSResponse DeleteLocation =+      DeleteLocationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteLocationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteLocation where+  hashWithSalt _salt DeleteLocation' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DeleteLocation where+  rnf DeleteLocation' {..} = Prelude.rnf locationArn++instance Data.ToHeaders DeleteLocation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.DeleteLocation" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteLocation where+  toJSON DeleteLocation' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DeleteLocation where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteLocation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteLocationResponse' smart constructor.+data DeleteLocationResponse = DeleteLocationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLocationResponse' 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', 'deleteLocationResponse_httpStatus' - The response's http status code.+newDeleteLocationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteLocationResponse+newDeleteLocationResponse pHttpStatus_ =+  DeleteLocationResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteLocationResponse_httpStatus :: Lens.Lens' DeleteLocationResponse Prelude.Int+deleteLocationResponse_httpStatus = Lens.lens (\DeleteLocationResponse' {httpStatus} -> httpStatus) (\s@DeleteLocationResponse' {} a -> s {httpStatus = a} :: DeleteLocationResponse)++instance Prelude.NFData DeleteLocationResponse where+  rnf DeleteLocationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DeleteTask.hs view
@@ -0,0 +1,153 @@+{-# 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.DataSync.DeleteTask+-- 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 DataSync task.+module Amazonka.DataSync.DeleteTask+  ( -- * Creating a Request+    DeleteTask (..),+    newDeleteTask,++    -- * Request Lenses+    deleteTask_taskArn,++    -- * Destructuring the Response+    DeleteTaskResponse (..),+    newDeleteTaskResponse,++    -- * Response Lenses+    deleteTaskResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DeleteTask+--+-- /See:/ 'newDeleteTask' smart constructor.+data DeleteTask = DeleteTask'+  { -- | Specifies the Amazon Resource Name (ARN) of the task that you want to+    -- delete.+    taskArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteTask' 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:+--+-- 'taskArn', 'deleteTask_taskArn' - Specifies the Amazon Resource Name (ARN) of the task that you want to+-- delete.+newDeleteTask ::+  -- | 'taskArn'+  Prelude.Text ->+  DeleteTask+newDeleteTask pTaskArn_ =+  DeleteTask' {taskArn = pTaskArn_}++-- | Specifies the Amazon Resource Name (ARN) of the task that you want to+-- delete.+deleteTask_taskArn :: Lens.Lens' DeleteTask Prelude.Text+deleteTask_taskArn = Lens.lens (\DeleteTask' {taskArn} -> taskArn) (\s@DeleteTask' {} a -> s {taskArn = a} :: DeleteTask)++instance Core.AWSRequest DeleteTask where+  type AWSResponse DeleteTask = DeleteTaskResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteTaskResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteTask where+  hashWithSalt _salt DeleteTask' {..} =+    _salt `Prelude.hashWithSalt` taskArn++instance Prelude.NFData DeleteTask where+  rnf DeleteTask' {..} = Prelude.rnf taskArn++instance Data.ToHeaders DeleteTask where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.DeleteTask" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteTask where+  toJSON DeleteTask' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("TaskArn" Data..= taskArn)]+      )++instance Data.ToPath DeleteTask where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteTask where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteTaskResponse' smart constructor.+data DeleteTaskResponse = DeleteTaskResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteTaskResponse' 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', 'deleteTaskResponse_httpStatus' - The response's http status code.+newDeleteTaskResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteTaskResponse+newDeleteTaskResponse pHttpStatus_ =+  DeleteTaskResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteTaskResponse_httpStatus :: Lens.Lens' DeleteTaskResponse Prelude.Int+deleteTaskResponse_httpStatus = Lens.lens (\DeleteTaskResponse' {httpStatus} -> httpStatus) (\s@DeleteTaskResponse' {} a -> s {httpStatus = a} :: DeleteTaskResponse)++instance Prelude.NFData DeleteTaskResponse where+  rnf DeleteTaskResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeAgent.hs view
@@ -0,0 +1,268 @@+{-# 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.DataSync.DescribeAgent+-- 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 metadata such as the name, the network interfaces, and the+-- status (that is, whether the agent is running or not) for an agent. To+-- specify which agent to describe, use the Amazon Resource Name (ARN) of+-- the agent in your request.+module Amazonka.DataSync.DescribeAgent+  ( -- * Creating a Request+    DescribeAgent (..),+    newDescribeAgent,++    -- * Request Lenses+    describeAgent_agentArn,++    -- * Destructuring the Response+    DescribeAgentResponse (..),+    newDescribeAgentResponse,++    -- * Response Lenses+    describeAgentResponse_agentArn,+    describeAgentResponse_creationTime,+    describeAgentResponse_endpointType,+    describeAgentResponse_lastConnectionTime,+    describeAgentResponse_name,+    describeAgentResponse_privateLinkConfig,+    describeAgentResponse_status,+    describeAgentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeAgent+--+-- /See:/ 'newDescribeAgent' smart constructor.+data DescribeAgent = DescribeAgent'+  { -- | The Amazon Resource Name (ARN) of the agent to describe.+    agentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAgent' 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:+--+-- 'agentArn', 'describeAgent_agentArn' - The Amazon Resource Name (ARN) of the agent to describe.+newDescribeAgent ::+  -- | 'agentArn'+  Prelude.Text ->+  DescribeAgent+newDescribeAgent pAgentArn_ =+  DescribeAgent' {agentArn = pAgentArn_}++-- | The Amazon Resource Name (ARN) of the agent to describe.+describeAgent_agentArn :: Lens.Lens' DescribeAgent Prelude.Text+describeAgent_agentArn = Lens.lens (\DescribeAgent' {agentArn} -> agentArn) (\s@DescribeAgent' {} a -> s {agentArn = a} :: DescribeAgent)++instance Core.AWSRequest DescribeAgent where+  type+    AWSResponse DescribeAgent =+      DescribeAgentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAgentResponse'+            Prelude.<$> (x Data..?> "AgentArn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "EndpointType")+            Prelude.<*> (x Data..?> "LastConnectionTime")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "PrivateLinkConfig")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeAgent where+  hashWithSalt _salt DescribeAgent' {..} =+    _salt `Prelude.hashWithSalt` agentArn++instance Prelude.NFData DescribeAgent where+  rnf DescribeAgent' {..} = Prelude.rnf agentArn++instance Data.ToHeaders DescribeAgent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.DescribeAgent" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeAgent where+  toJSON DescribeAgent' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("AgentArn" Data..= agentArn)]+      )++instance Data.ToPath DescribeAgent where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeAgent where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeAgentResponse+--+-- /See:/ 'newDescribeAgentResponse' smart constructor.+data DescribeAgentResponse = DescribeAgentResponse'+  { -- | The Amazon Resource Name (ARN) of the agent.+    agentArn :: Prelude.Maybe Prelude.Text,+    -- | The time that the agent was activated (that is, created in your+    -- account).+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The type of endpoint that your agent is connected to. If the endpoint is+    -- a VPC endpoint, the agent is not accessible over the public internet.+    endpointType :: Prelude.Maybe EndpointType,+    -- | The time that the agent last connected to DataSync.+    lastConnectionTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the agent.+    name :: Prelude.Maybe Prelude.Text,+    -- | The subnet and the security group that DataSync used to access a VPC+    -- endpoint.+    privateLinkConfig :: Prelude.Maybe PrivateLinkConfig,+    -- | The status of the agent. If the status is ONLINE, then the agent is+    -- configured properly and is available to use. The Running status is the+    -- normal running status for an agent. If the status is OFFLINE, the+    -- agent\'s VM is turned off or the agent is in an unhealthy state. When+    -- the issue that caused the unhealthy state is resolved, the agent returns+    -- to ONLINE status.+    status :: Prelude.Maybe AgentStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAgentResponse' 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:+--+-- 'agentArn', 'describeAgentResponse_agentArn' - The Amazon Resource Name (ARN) of the agent.+--+-- 'creationTime', 'describeAgentResponse_creationTime' - The time that the agent was activated (that is, created in your+-- account).+--+-- 'endpointType', 'describeAgentResponse_endpointType' - The type of endpoint that your agent is connected to. If the endpoint is+-- a VPC endpoint, the agent is not accessible over the public internet.+--+-- 'lastConnectionTime', 'describeAgentResponse_lastConnectionTime' - The time that the agent last connected to DataSync.+--+-- 'name', 'describeAgentResponse_name' - The name of the agent.+--+-- 'privateLinkConfig', 'describeAgentResponse_privateLinkConfig' - The subnet and the security group that DataSync used to access a VPC+-- endpoint.+--+-- 'status', 'describeAgentResponse_status' - The status of the agent. If the status is ONLINE, then the agent is+-- configured properly and is available to use. The Running status is the+-- normal running status for an agent. If the status is OFFLINE, the+-- agent\'s VM is turned off or the agent is in an unhealthy state. When+-- the issue that caused the unhealthy state is resolved, the agent returns+-- to ONLINE status.+--+-- 'httpStatus', 'describeAgentResponse_httpStatus' - The response's http status code.+newDescribeAgentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeAgentResponse+newDescribeAgentResponse pHttpStatus_ =+  DescribeAgentResponse'+    { agentArn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      endpointType = Prelude.Nothing,+      lastConnectionTime = Prelude.Nothing,+      name = Prelude.Nothing,+      privateLinkConfig = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the agent.+describeAgentResponse_agentArn :: Lens.Lens' DescribeAgentResponse (Prelude.Maybe Prelude.Text)+describeAgentResponse_agentArn = Lens.lens (\DescribeAgentResponse' {agentArn} -> agentArn) (\s@DescribeAgentResponse' {} a -> s {agentArn = a} :: DescribeAgentResponse)++-- | The time that the agent was activated (that is, created in your+-- account).+describeAgentResponse_creationTime :: Lens.Lens' DescribeAgentResponse (Prelude.Maybe Prelude.UTCTime)+describeAgentResponse_creationTime = Lens.lens (\DescribeAgentResponse' {creationTime} -> creationTime) (\s@DescribeAgentResponse' {} a -> s {creationTime = a} :: DescribeAgentResponse) Prelude.. Lens.mapping Data._Time++-- | The type of endpoint that your agent is connected to. If the endpoint is+-- a VPC endpoint, the agent is not accessible over the public internet.+describeAgentResponse_endpointType :: Lens.Lens' DescribeAgentResponse (Prelude.Maybe EndpointType)+describeAgentResponse_endpointType = Lens.lens (\DescribeAgentResponse' {endpointType} -> endpointType) (\s@DescribeAgentResponse' {} a -> s {endpointType = a} :: DescribeAgentResponse)++-- | The time that the agent last connected to DataSync.+describeAgentResponse_lastConnectionTime :: Lens.Lens' DescribeAgentResponse (Prelude.Maybe Prelude.UTCTime)+describeAgentResponse_lastConnectionTime = Lens.lens (\DescribeAgentResponse' {lastConnectionTime} -> lastConnectionTime) (\s@DescribeAgentResponse' {} a -> s {lastConnectionTime = a} :: DescribeAgentResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the agent.+describeAgentResponse_name :: Lens.Lens' DescribeAgentResponse (Prelude.Maybe Prelude.Text)+describeAgentResponse_name = Lens.lens (\DescribeAgentResponse' {name} -> name) (\s@DescribeAgentResponse' {} a -> s {name = a} :: DescribeAgentResponse)++-- | The subnet and the security group that DataSync used to access a VPC+-- endpoint.+describeAgentResponse_privateLinkConfig :: Lens.Lens' DescribeAgentResponse (Prelude.Maybe PrivateLinkConfig)+describeAgentResponse_privateLinkConfig = Lens.lens (\DescribeAgentResponse' {privateLinkConfig} -> privateLinkConfig) (\s@DescribeAgentResponse' {} a -> s {privateLinkConfig = a} :: DescribeAgentResponse)++-- | The status of the agent. If the status is ONLINE, then the agent is+-- configured properly and is available to use. The Running status is the+-- normal running status for an agent. If the status is OFFLINE, the+-- agent\'s VM is turned off or the agent is in an unhealthy state. When+-- the issue that caused the unhealthy state is resolved, the agent returns+-- to ONLINE status.+describeAgentResponse_status :: Lens.Lens' DescribeAgentResponse (Prelude.Maybe AgentStatus)+describeAgentResponse_status = Lens.lens (\DescribeAgentResponse' {status} -> status) (\s@DescribeAgentResponse' {} a -> s {status = a} :: DescribeAgentResponse)++-- | The response's http status code.+describeAgentResponse_httpStatus :: Lens.Lens' DescribeAgentResponse Prelude.Int+describeAgentResponse_httpStatus = Lens.lens (\DescribeAgentResponse' {httpStatus} -> httpStatus) (\s@DescribeAgentResponse' {} a -> s {httpStatus = a} :: DescribeAgentResponse)++instance Prelude.NFData DescribeAgentResponse where+  rnf DescribeAgentResponse' {..} =+    Prelude.rnf agentArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf endpointType+      `Prelude.seq` Prelude.rnf lastConnectionTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf privateLinkConfig+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationEfs.hs view
@@ -0,0 +1,257 @@+{-# 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.DataSync.DescribeLocationEfs+-- 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 metadata about your DataSync location for an Amazon EFS file+-- system.+module Amazonka.DataSync.DescribeLocationEfs+  ( -- * Creating a Request+    DescribeLocationEfs (..),+    newDescribeLocationEfs,++    -- * Request Lenses+    describeLocationEfs_locationArn,++    -- * Destructuring the Response+    DescribeLocationEfsResponse (..),+    newDescribeLocationEfsResponse,++    -- * Response Lenses+    describeLocationEfsResponse_accessPointArn,+    describeLocationEfsResponse_creationTime,+    describeLocationEfsResponse_ec2Config,+    describeLocationEfsResponse_fileSystemAccessRoleArn,+    describeLocationEfsResponse_inTransitEncryption,+    describeLocationEfsResponse_locationArn,+    describeLocationEfsResponse_locationUri,+    describeLocationEfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeLocationEfsRequest+--+-- /See:/ 'newDescribeLocationEfs' smart constructor.+data DescribeLocationEfs = DescribeLocationEfs'+  { -- | The Amazon Resource Name (ARN) of the Amazon EFS file system location+    -- that you want information about.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationEfs' 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:+--+-- 'locationArn', 'describeLocationEfs_locationArn' - The Amazon Resource Name (ARN) of the Amazon EFS file system location+-- that you want information about.+newDescribeLocationEfs ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationEfs+newDescribeLocationEfs pLocationArn_ =+  DescribeLocationEfs' {locationArn = pLocationArn_}++-- | The Amazon Resource Name (ARN) of the Amazon EFS file system location+-- that you want information about.+describeLocationEfs_locationArn :: Lens.Lens' DescribeLocationEfs Prelude.Text+describeLocationEfs_locationArn = Lens.lens (\DescribeLocationEfs' {locationArn} -> locationArn) (\s@DescribeLocationEfs' {} a -> s {locationArn = a} :: DescribeLocationEfs)++instance Core.AWSRequest DescribeLocationEfs where+  type+    AWSResponse DescribeLocationEfs =+      DescribeLocationEfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationEfsResponse'+            Prelude.<$> (x Data..?> "AccessPointArn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "Ec2Config")+            Prelude.<*> (x Data..?> "FileSystemAccessRoleArn")+            Prelude.<*> (x Data..?> "InTransitEncryption")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationEfs where+  hashWithSalt _salt DescribeLocationEfs' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationEfs where+  rnf DescribeLocationEfs' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationEfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationEfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationEfs where+  toJSON DescribeLocationEfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationEfs where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationEfs where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeLocationEfsResponse+--+-- /See:/ 'newDescribeLocationEfsResponse' smart constructor.+data DescribeLocationEfsResponse = DescribeLocationEfsResponse'+  { -- | The ARN of the access point that DataSync uses to access the Amazon EFS+    -- file system.+    accessPointArn :: Prelude.Maybe Prelude.Text,+    -- | The time that the location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    ec2Config :: Prelude.Maybe Ec2Config,+    -- | The Identity and Access Management (IAM) role that DataSync assumes when+    -- mounting the Amazon EFS file system.+    fileSystemAccessRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Describes whether DataSync uses Transport Layer Security (TLS)+    -- encryption when copying data to or from the Amazon EFS file system.+    inTransitEncryption :: Prelude.Maybe EfsInTransitEncryption,+    -- | The ARN of the Amazon EFS file system location.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL of the Amazon EFS file system location.+    locationUri :: 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 'DescribeLocationEfsResponse' 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:+--+-- 'accessPointArn', 'describeLocationEfsResponse_accessPointArn' - The ARN of the access point that DataSync uses to access the Amazon EFS+-- file system.+--+-- 'creationTime', 'describeLocationEfsResponse_creationTime' - The time that the location was created.+--+-- 'ec2Config', 'describeLocationEfsResponse_ec2Config' - Undocumented member.+--+-- 'fileSystemAccessRoleArn', 'describeLocationEfsResponse_fileSystemAccessRoleArn' - The Identity and Access Management (IAM) role that DataSync assumes when+-- mounting the Amazon EFS file system.+--+-- 'inTransitEncryption', 'describeLocationEfsResponse_inTransitEncryption' - Describes whether DataSync uses Transport Layer Security (TLS)+-- encryption when copying data to or from the Amazon EFS file system.+--+-- 'locationArn', 'describeLocationEfsResponse_locationArn' - The ARN of the Amazon EFS file system location.+--+-- 'locationUri', 'describeLocationEfsResponse_locationUri' - The URL of the Amazon EFS file system location.+--+-- 'httpStatus', 'describeLocationEfsResponse_httpStatus' - The response's http status code.+newDescribeLocationEfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationEfsResponse+newDescribeLocationEfsResponse pHttpStatus_ =+  DescribeLocationEfsResponse'+    { accessPointArn =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      ec2Config = Prelude.Nothing,+      fileSystemAccessRoleArn = Prelude.Nothing,+      inTransitEncryption = Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the access point that DataSync uses to access the Amazon EFS+-- file system.+describeLocationEfsResponse_accessPointArn :: Lens.Lens' DescribeLocationEfsResponse (Prelude.Maybe Prelude.Text)+describeLocationEfsResponse_accessPointArn = Lens.lens (\DescribeLocationEfsResponse' {accessPointArn} -> accessPointArn) (\s@DescribeLocationEfsResponse' {} a -> s {accessPointArn = a} :: DescribeLocationEfsResponse)++-- | The time that the location was created.+describeLocationEfsResponse_creationTime :: Lens.Lens' DescribeLocationEfsResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationEfsResponse_creationTime = Lens.lens (\DescribeLocationEfsResponse' {creationTime} -> creationTime) (\s@DescribeLocationEfsResponse' {} a -> s {creationTime = a} :: DescribeLocationEfsResponse) Prelude.. Lens.mapping Data._Time++-- | Undocumented member.+describeLocationEfsResponse_ec2Config :: Lens.Lens' DescribeLocationEfsResponse (Prelude.Maybe Ec2Config)+describeLocationEfsResponse_ec2Config = Lens.lens (\DescribeLocationEfsResponse' {ec2Config} -> ec2Config) (\s@DescribeLocationEfsResponse' {} a -> s {ec2Config = a} :: DescribeLocationEfsResponse)++-- | The Identity and Access Management (IAM) role that DataSync assumes when+-- mounting the Amazon EFS file system.+describeLocationEfsResponse_fileSystemAccessRoleArn :: Lens.Lens' DescribeLocationEfsResponse (Prelude.Maybe Prelude.Text)+describeLocationEfsResponse_fileSystemAccessRoleArn = Lens.lens (\DescribeLocationEfsResponse' {fileSystemAccessRoleArn} -> fileSystemAccessRoleArn) (\s@DescribeLocationEfsResponse' {} a -> s {fileSystemAccessRoleArn = a} :: DescribeLocationEfsResponse)++-- | Describes whether DataSync uses Transport Layer Security (TLS)+-- encryption when copying data to or from the Amazon EFS file system.+describeLocationEfsResponse_inTransitEncryption :: Lens.Lens' DescribeLocationEfsResponse (Prelude.Maybe EfsInTransitEncryption)+describeLocationEfsResponse_inTransitEncryption = Lens.lens (\DescribeLocationEfsResponse' {inTransitEncryption} -> inTransitEncryption) (\s@DescribeLocationEfsResponse' {} a -> s {inTransitEncryption = a} :: DescribeLocationEfsResponse)++-- | The ARN of the Amazon EFS file system location.+describeLocationEfsResponse_locationArn :: Lens.Lens' DescribeLocationEfsResponse (Prelude.Maybe Prelude.Text)+describeLocationEfsResponse_locationArn = Lens.lens (\DescribeLocationEfsResponse' {locationArn} -> locationArn) (\s@DescribeLocationEfsResponse' {} a -> s {locationArn = a} :: DescribeLocationEfsResponse)++-- | The URL of the Amazon EFS file system location.+describeLocationEfsResponse_locationUri :: Lens.Lens' DescribeLocationEfsResponse (Prelude.Maybe Prelude.Text)+describeLocationEfsResponse_locationUri = Lens.lens (\DescribeLocationEfsResponse' {locationUri} -> locationUri) (\s@DescribeLocationEfsResponse' {} a -> s {locationUri = a} :: DescribeLocationEfsResponse)++-- | The response's http status code.+describeLocationEfsResponse_httpStatus :: Lens.Lens' DescribeLocationEfsResponse Prelude.Int+describeLocationEfsResponse_httpStatus = Lens.lens (\DescribeLocationEfsResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationEfsResponse' {} a -> s {httpStatus = a} :: DescribeLocationEfsResponse)++instance Prelude.NFData DescribeLocationEfsResponse where+  rnf DescribeLocationEfsResponse' {..} =+    Prelude.rnf accessPointArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf ec2Config+      `Prelude.seq` Prelude.rnf fileSystemAccessRoleArn+      `Prelude.seq` Prelude.rnf inTransitEncryption+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationFsxLustre.hs view
@@ -0,0 +1,221 @@+{-# 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.DataSync.DescribeLocationFsxLustre+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides details about how an DataSync location for an Amazon FSx for+-- Lustre file system is configured.+module Amazonka.DataSync.DescribeLocationFsxLustre+  ( -- * Creating a Request+    DescribeLocationFsxLustre (..),+    newDescribeLocationFsxLustre,++    -- * Request Lenses+    describeLocationFsxLustre_locationArn,++    -- * Destructuring the Response+    DescribeLocationFsxLustreResponse (..),+    newDescribeLocationFsxLustreResponse,++    -- * Response Lenses+    describeLocationFsxLustreResponse_creationTime,+    describeLocationFsxLustreResponse_locationArn,+    describeLocationFsxLustreResponse_locationUri,+    describeLocationFsxLustreResponse_securityGroupArns,+    describeLocationFsxLustreResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLocationFsxLustre' smart constructor.+data DescribeLocationFsxLustre = DescribeLocationFsxLustre'+  { -- | The Amazon Resource Name (ARN) of the FSx for Lustre location to+    -- describe.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationFsxLustre' 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:+--+-- 'locationArn', 'describeLocationFsxLustre_locationArn' - The Amazon Resource Name (ARN) of the FSx for Lustre location to+-- describe.+newDescribeLocationFsxLustre ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationFsxLustre+newDescribeLocationFsxLustre pLocationArn_ =+  DescribeLocationFsxLustre'+    { locationArn =+        pLocationArn_+    }++-- | The Amazon Resource Name (ARN) of the FSx for Lustre location to+-- describe.+describeLocationFsxLustre_locationArn :: Lens.Lens' DescribeLocationFsxLustre Prelude.Text+describeLocationFsxLustre_locationArn = Lens.lens (\DescribeLocationFsxLustre' {locationArn} -> locationArn) (\s@DescribeLocationFsxLustre' {} a -> s {locationArn = a} :: DescribeLocationFsxLustre)++instance Core.AWSRequest DescribeLocationFsxLustre where+  type+    AWSResponse DescribeLocationFsxLustre =+      DescribeLocationFsxLustreResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationFsxLustreResponse'+            Prelude.<$> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "SecurityGroupArns")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationFsxLustre where+  hashWithSalt _salt DescribeLocationFsxLustre' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationFsxLustre where+  rnf DescribeLocationFsxLustre' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationFsxLustre where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationFsxLustre" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationFsxLustre where+  toJSON DescribeLocationFsxLustre' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationFsxLustre where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationFsxLustre where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLocationFsxLustreResponse' smart constructor.+data DescribeLocationFsxLustreResponse = DescribeLocationFsxLustreResponse'+  { -- | The time that the FSx for Lustre location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the FSx for Lustre location that was+    -- described.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URI of the FSx for Lustre location that was described.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Names (ARNs) of the security groups that are+    -- configured for the FSx for Lustre file system.+    securityGroupArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationFsxLustreResponse' 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', 'describeLocationFsxLustreResponse_creationTime' - The time that the FSx for Lustre location was created.+--+-- 'locationArn', 'describeLocationFsxLustreResponse_locationArn' - The Amazon Resource Name (ARN) of the FSx for Lustre location that was+-- described.+--+-- 'locationUri', 'describeLocationFsxLustreResponse_locationUri' - The URI of the FSx for Lustre location that was described.+--+-- 'securityGroupArns', 'describeLocationFsxLustreResponse_securityGroupArns' - The Amazon Resource Names (ARNs) of the security groups that are+-- configured for the FSx for Lustre file system.+--+-- 'httpStatus', 'describeLocationFsxLustreResponse_httpStatus' - The response's http status code.+newDescribeLocationFsxLustreResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationFsxLustreResponse+newDescribeLocationFsxLustreResponse pHttpStatus_ =+  DescribeLocationFsxLustreResponse'+    { creationTime =+        Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      securityGroupArns = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The time that the FSx for Lustre location was created.+describeLocationFsxLustreResponse_creationTime :: Lens.Lens' DescribeLocationFsxLustreResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationFsxLustreResponse_creationTime = Lens.lens (\DescribeLocationFsxLustreResponse' {creationTime} -> creationTime) (\s@DescribeLocationFsxLustreResponse' {} a -> s {creationTime = a} :: DescribeLocationFsxLustreResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the FSx for Lustre location that was+-- described.+describeLocationFsxLustreResponse_locationArn :: Lens.Lens' DescribeLocationFsxLustreResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxLustreResponse_locationArn = Lens.lens (\DescribeLocationFsxLustreResponse' {locationArn} -> locationArn) (\s@DescribeLocationFsxLustreResponse' {} a -> s {locationArn = a} :: DescribeLocationFsxLustreResponse)++-- | The URI of the FSx for Lustre location that was described.+describeLocationFsxLustreResponse_locationUri :: Lens.Lens' DescribeLocationFsxLustreResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxLustreResponse_locationUri = Lens.lens (\DescribeLocationFsxLustreResponse' {locationUri} -> locationUri) (\s@DescribeLocationFsxLustreResponse' {} a -> s {locationUri = a} :: DescribeLocationFsxLustreResponse)++-- | The Amazon Resource Names (ARNs) of the security groups that are+-- configured for the FSx for Lustre file system.+describeLocationFsxLustreResponse_securityGroupArns :: Lens.Lens' DescribeLocationFsxLustreResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationFsxLustreResponse_securityGroupArns = Lens.lens (\DescribeLocationFsxLustreResponse' {securityGroupArns} -> securityGroupArns) (\s@DescribeLocationFsxLustreResponse' {} a -> s {securityGroupArns = a} :: DescribeLocationFsxLustreResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeLocationFsxLustreResponse_httpStatus :: Lens.Lens' DescribeLocationFsxLustreResponse Prelude.Int+describeLocationFsxLustreResponse_httpStatus = Lens.lens (\DescribeLocationFsxLustreResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationFsxLustreResponse' {} a -> s {httpStatus = a} :: DescribeLocationFsxLustreResponse)++instance+  Prelude.NFData+    DescribeLocationFsxLustreResponse+  where+  rnf DescribeLocationFsxLustreResponse' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationFsxOntap.hs view
@@ -0,0 +1,263 @@+{-# 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.DataSync.DescribeLocationFsxOntap+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides details about how an DataSync location for an Amazon FSx for+-- NetApp ONTAP file system is configured.+--+-- If your location uses SMB, the @DescribeLocationFsxOntap@ operation+-- doesn\'t actually return a @Password@.+module Amazonka.DataSync.DescribeLocationFsxOntap+  ( -- * Creating a Request+    DescribeLocationFsxOntap (..),+    newDescribeLocationFsxOntap,++    -- * Request Lenses+    describeLocationFsxOntap_locationArn,++    -- * Destructuring the Response+    DescribeLocationFsxOntapResponse (..),+    newDescribeLocationFsxOntapResponse,++    -- * Response Lenses+    describeLocationFsxOntapResponse_creationTime,+    describeLocationFsxOntapResponse_fsxFilesystemArn,+    describeLocationFsxOntapResponse_locationArn,+    describeLocationFsxOntapResponse_locationUri,+    describeLocationFsxOntapResponse_protocol,+    describeLocationFsxOntapResponse_securityGroupArns,+    describeLocationFsxOntapResponse_storageVirtualMachineArn,+    describeLocationFsxOntapResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLocationFsxOntap' smart constructor.+data DescribeLocationFsxOntap = DescribeLocationFsxOntap'+  { -- | Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP file+    -- system location that you want information about.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationFsxOntap' 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:+--+-- 'locationArn', 'describeLocationFsxOntap_locationArn' - Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP file+-- system location that you want information about.+newDescribeLocationFsxOntap ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationFsxOntap+newDescribeLocationFsxOntap pLocationArn_ =+  DescribeLocationFsxOntap'+    { locationArn =+        pLocationArn_+    }++-- | Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP file+-- system location that you want information about.+describeLocationFsxOntap_locationArn :: Lens.Lens' DescribeLocationFsxOntap Prelude.Text+describeLocationFsxOntap_locationArn = Lens.lens (\DescribeLocationFsxOntap' {locationArn} -> locationArn) (\s@DescribeLocationFsxOntap' {} a -> s {locationArn = a} :: DescribeLocationFsxOntap)++instance Core.AWSRequest DescribeLocationFsxOntap where+  type+    AWSResponse DescribeLocationFsxOntap =+      DescribeLocationFsxOntapResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationFsxOntapResponse'+            Prelude.<$> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "FsxFilesystemArn")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "Protocol")+            Prelude.<*> (x Data..?> "SecurityGroupArns")+            Prelude.<*> (x Data..?> "StorageVirtualMachineArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationFsxOntap where+  hashWithSalt _salt DescribeLocationFsxOntap' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationFsxOntap where+  rnf DescribeLocationFsxOntap' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationFsxOntap where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationFsxOntap" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationFsxOntap where+  toJSON DescribeLocationFsxOntap' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationFsxOntap where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationFsxOntap where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLocationFsxOntapResponse' smart constructor.+data DescribeLocationFsxOntapResponse = DescribeLocationFsxOntapResponse'+  { -- | The time that the location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the FSx for ONTAP file system.+    fsxFilesystemArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the FSx for ONTAP file system location.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The uniform resource identifier (URI) of the FSx for ONTAP file system+    -- location.+    locationUri :: Prelude.Maybe Prelude.Text,+    protocol :: Prelude.Maybe FsxProtocol,+    -- | The security groups that DataSync uses to access your FSx for ONTAP file+    -- system.+    securityGroupArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The ARN of the storage virtual machine (SVM) on your FSx for ONTAP file+    -- system where you\'re copying data to or from.+    storageVirtualMachineArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationFsxOntapResponse' 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', 'describeLocationFsxOntapResponse_creationTime' - The time that the location was created.+--+-- 'fsxFilesystemArn', 'describeLocationFsxOntapResponse_fsxFilesystemArn' - The ARN of the FSx for ONTAP file system.+--+-- 'locationArn', 'describeLocationFsxOntapResponse_locationArn' - The ARN of the FSx for ONTAP file system location.+--+-- 'locationUri', 'describeLocationFsxOntapResponse_locationUri' - The uniform resource identifier (URI) of the FSx for ONTAP file system+-- location.+--+-- 'protocol', 'describeLocationFsxOntapResponse_protocol' - Undocumented member.+--+-- 'securityGroupArns', 'describeLocationFsxOntapResponse_securityGroupArns' - The security groups that DataSync uses to access your FSx for ONTAP file+-- system.+--+-- 'storageVirtualMachineArn', 'describeLocationFsxOntapResponse_storageVirtualMachineArn' - The ARN of the storage virtual machine (SVM) on your FSx for ONTAP file+-- system where you\'re copying data to or from.+--+-- 'httpStatus', 'describeLocationFsxOntapResponse_httpStatus' - The response's http status code.+newDescribeLocationFsxOntapResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationFsxOntapResponse+newDescribeLocationFsxOntapResponse pHttpStatus_ =+  DescribeLocationFsxOntapResponse'+    { creationTime =+        Prelude.Nothing,+      fsxFilesystemArn = Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      protocol = Prelude.Nothing,+      securityGroupArns = Prelude.Nothing,+      storageVirtualMachineArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The time that the location was created.+describeLocationFsxOntapResponse_creationTime :: Lens.Lens' DescribeLocationFsxOntapResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationFsxOntapResponse_creationTime = Lens.lens (\DescribeLocationFsxOntapResponse' {creationTime} -> creationTime) (\s@DescribeLocationFsxOntapResponse' {} a -> s {creationTime = a} :: DescribeLocationFsxOntapResponse) Prelude.. Lens.mapping Data._Time++-- | The ARN of the FSx for ONTAP file system.+describeLocationFsxOntapResponse_fsxFilesystemArn :: Lens.Lens' DescribeLocationFsxOntapResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxOntapResponse_fsxFilesystemArn = Lens.lens (\DescribeLocationFsxOntapResponse' {fsxFilesystemArn} -> fsxFilesystemArn) (\s@DescribeLocationFsxOntapResponse' {} a -> s {fsxFilesystemArn = a} :: DescribeLocationFsxOntapResponse)++-- | The ARN of the FSx for ONTAP file system location.+describeLocationFsxOntapResponse_locationArn :: Lens.Lens' DescribeLocationFsxOntapResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxOntapResponse_locationArn = Lens.lens (\DescribeLocationFsxOntapResponse' {locationArn} -> locationArn) (\s@DescribeLocationFsxOntapResponse' {} a -> s {locationArn = a} :: DescribeLocationFsxOntapResponse)++-- | The uniform resource identifier (URI) of the FSx for ONTAP file system+-- location.+describeLocationFsxOntapResponse_locationUri :: Lens.Lens' DescribeLocationFsxOntapResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxOntapResponse_locationUri = Lens.lens (\DescribeLocationFsxOntapResponse' {locationUri} -> locationUri) (\s@DescribeLocationFsxOntapResponse' {} a -> s {locationUri = a} :: DescribeLocationFsxOntapResponse)++-- | Undocumented member.+describeLocationFsxOntapResponse_protocol :: Lens.Lens' DescribeLocationFsxOntapResponse (Prelude.Maybe FsxProtocol)+describeLocationFsxOntapResponse_protocol = Lens.lens (\DescribeLocationFsxOntapResponse' {protocol} -> protocol) (\s@DescribeLocationFsxOntapResponse' {} a -> s {protocol = a} :: DescribeLocationFsxOntapResponse)++-- | The security groups that DataSync uses to access your FSx for ONTAP file+-- system.+describeLocationFsxOntapResponse_securityGroupArns :: Lens.Lens' DescribeLocationFsxOntapResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationFsxOntapResponse_securityGroupArns = Lens.lens (\DescribeLocationFsxOntapResponse' {securityGroupArns} -> securityGroupArns) (\s@DescribeLocationFsxOntapResponse' {} a -> s {securityGroupArns = a} :: DescribeLocationFsxOntapResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the storage virtual machine (SVM) on your FSx for ONTAP file+-- system where you\'re copying data to or from.+describeLocationFsxOntapResponse_storageVirtualMachineArn :: Lens.Lens' DescribeLocationFsxOntapResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxOntapResponse_storageVirtualMachineArn = Lens.lens (\DescribeLocationFsxOntapResponse' {storageVirtualMachineArn} -> storageVirtualMachineArn) (\s@DescribeLocationFsxOntapResponse' {} a -> s {storageVirtualMachineArn = a} :: DescribeLocationFsxOntapResponse)++-- | The response's http status code.+describeLocationFsxOntapResponse_httpStatus :: Lens.Lens' DescribeLocationFsxOntapResponse Prelude.Int+describeLocationFsxOntapResponse_httpStatus = Lens.lens (\DescribeLocationFsxOntapResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationFsxOntapResponse' {} a -> s {httpStatus = a} :: DescribeLocationFsxOntapResponse)++instance+  Prelude.NFData+    DescribeLocationFsxOntapResponse+  where+  rnf DescribeLocationFsxOntapResponse' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf fsxFilesystemArn+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf protocol+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf storageVirtualMachineArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationFsxOpenZfs.hs view
@@ -0,0 +1,245 @@+{-# 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.DataSync.DescribeLocationFsxOpenZfs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides details about how an DataSync location for an Amazon FSx for+-- OpenZFS file system is configured.+--+-- Response elements related to @SMB@ aren\'t supported with the+-- @DescribeLocationFsxOpenZfs@ operation.+module Amazonka.DataSync.DescribeLocationFsxOpenZfs+  ( -- * Creating a Request+    DescribeLocationFsxOpenZfs (..),+    newDescribeLocationFsxOpenZfs,++    -- * Request Lenses+    describeLocationFsxOpenZfs_locationArn,++    -- * Destructuring the Response+    DescribeLocationFsxOpenZfsResponse (..),+    newDescribeLocationFsxOpenZfsResponse,++    -- * Response Lenses+    describeLocationFsxOpenZfsResponse_creationTime,+    describeLocationFsxOpenZfsResponse_locationArn,+    describeLocationFsxOpenZfsResponse_locationUri,+    describeLocationFsxOpenZfsResponse_protocol,+    describeLocationFsxOpenZfsResponse_securityGroupArns,+    describeLocationFsxOpenZfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLocationFsxOpenZfs' smart constructor.+data DescribeLocationFsxOpenZfs = DescribeLocationFsxOpenZfs'+  { -- | The Amazon Resource Name (ARN) of the FSx for OpenZFS location to+    -- describe.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationFsxOpenZfs' 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:+--+-- 'locationArn', 'describeLocationFsxOpenZfs_locationArn' - The Amazon Resource Name (ARN) of the FSx for OpenZFS location to+-- describe.+newDescribeLocationFsxOpenZfs ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationFsxOpenZfs+newDescribeLocationFsxOpenZfs pLocationArn_ =+  DescribeLocationFsxOpenZfs'+    { locationArn =+        pLocationArn_+    }++-- | The Amazon Resource Name (ARN) of the FSx for OpenZFS location to+-- describe.+describeLocationFsxOpenZfs_locationArn :: Lens.Lens' DescribeLocationFsxOpenZfs Prelude.Text+describeLocationFsxOpenZfs_locationArn = Lens.lens (\DescribeLocationFsxOpenZfs' {locationArn} -> locationArn) (\s@DescribeLocationFsxOpenZfs' {} a -> s {locationArn = a} :: DescribeLocationFsxOpenZfs)++instance Core.AWSRequest DescribeLocationFsxOpenZfs where+  type+    AWSResponse DescribeLocationFsxOpenZfs =+      DescribeLocationFsxOpenZfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationFsxOpenZfsResponse'+            Prelude.<$> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "Protocol")+            Prelude.<*> (x Data..?> "SecurityGroupArns")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationFsxOpenZfs where+  hashWithSalt _salt DescribeLocationFsxOpenZfs' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationFsxOpenZfs where+  rnf DescribeLocationFsxOpenZfs' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationFsxOpenZfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationFsxOpenZfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationFsxOpenZfs where+  toJSON DescribeLocationFsxOpenZfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationFsxOpenZfs where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationFsxOpenZfs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLocationFsxOpenZfsResponse' smart constructor.+data DescribeLocationFsxOpenZfsResponse = DescribeLocationFsxOpenZfsResponse'+  { -- | The time that the FSx for OpenZFS location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the FSx for OpenZFS location that was described.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The uniform resource identifier (URI) of the FSx for OpenZFS location+    -- that was described.+    --+    -- Example:+    -- @fsxz:\/\/us-west-2.fs-1234567890abcdef02\/fsx\/folderA\/folder@+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The type of protocol that DataSync uses to access your file system.+    protocol :: Prelude.Maybe FsxProtocol,+    -- | The ARNs of the security groups that are configured for the FSx for+    -- OpenZFS file system.+    securityGroupArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationFsxOpenZfsResponse' 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', 'describeLocationFsxOpenZfsResponse_creationTime' - The time that the FSx for OpenZFS location was created.+--+-- 'locationArn', 'describeLocationFsxOpenZfsResponse_locationArn' - The ARN of the FSx for OpenZFS location that was described.+--+-- 'locationUri', 'describeLocationFsxOpenZfsResponse_locationUri' - The uniform resource identifier (URI) of the FSx for OpenZFS location+-- that was described.+--+-- Example:+-- @fsxz:\/\/us-west-2.fs-1234567890abcdef02\/fsx\/folderA\/folder@+--+-- 'protocol', 'describeLocationFsxOpenZfsResponse_protocol' - The type of protocol that DataSync uses to access your file system.+--+-- 'securityGroupArns', 'describeLocationFsxOpenZfsResponse_securityGroupArns' - The ARNs of the security groups that are configured for the FSx for+-- OpenZFS file system.+--+-- 'httpStatus', 'describeLocationFsxOpenZfsResponse_httpStatus' - The response's http status code.+newDescribeLocationFsxOpenZfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationFsxOpenZfsResponse+newDescribeLocationFsxOpenZfsResponse pHttpStatus_ =+  DescribeLocationFsxOpenZfsResponse'+    { creationTime =+        Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      protocol = Prelude.Nothing,+      securityGroupArns = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The time that the FSx for OpenZFS location was created.+describeLocationFsxOpenZfsResponse_creationTime :: Lens.Lens' DescribeLocationFsxOpenZfsResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationFsxOpenZfsResponse_creationTime = Lens.lens (\DescribeLocationFsxOpenZfsResponse' {creationTime} -> creationTime) (\s@DescribeLocationFsxOpenZfsResponse' {} a -> s {creationTime = a} :: DescribeLocationFsxOpenZfsResponse) Prelude.. Lens.mapping Data._Time++-- | The ARN of the FSx for OpenZFS location that was described.+describeLocationFsxOpenZfsResponse_locationArn :: Lens.Lens' DescribeLocationFsxOpenZfsResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxOpenZfsResponse_locationArn = Lens.lens (\DescribeLocationFsxOpenZfsResponse' {locationArn} -> locationArn) (\s@DescribeLocationFsxOpenZfsResponse' {} a -> s {locationArn = a} :: DescribeLocationFsxOpenZfsResponse)++-- | The uniform resource identifier (URI) of the FSx for OpenZFS location+-- that was described.+--+-- Example:+-- @fsxz:\/\/us-west-2.fs-1234567890abcdef02\/fsx\/folderA\/folder@+describeLocationFsxOpenZfsResponse_locationUri :: Lens.Lens' DescribeLocationFsxOpenZfsResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxOpenZfsResponse_locationUri = Lens.lens (\DescribeLocationFsxOpenZfsResponse' {locationUri} -> locationUri) (\s@DescribeLocationFsxOpenZfsResponse' {} a -> s {locationUri = a} :: DescribeLocationFsxOpenZfsResponse)++-- | The type of protocol that DataSync uses to access your file system.+describeLocationFsxOpenZfsResponse_protocol :: Lens.Lens' DescribeLocationFsxOpenZfsResponse (Prelude.Maybe FsxProtocol)+describeLocationFsxOpenZfsResponse_protocol = Lens.lens (\DescribeLocationFsxOpenZfsResponse' {protocol} -> protocol) (\s@DescribeLocationFsxOpenZfsResponse' {} a -> s {protocol = a} :: DescribeLocationFsxOpenZfsResponse)++-- | The ARNs of the security groups that are configured for the FSx for+-- OpenZFS file system.+describeLocationFsxOpenZfsResponse_securityGroupArns :: Lens.Lens' DescribeLocationFsxOpenZfsResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationFsxOpenZfsResponse_securityGroupArns = Lens.lens (\DescribeLocationFsxOpenZfsResponse' {securityGroupArns} -> securityGroupArns) (\s@DescribeLocationFsxOpenZfsResponse' {} a -> s {securityGroupArns = a} :: DescribeLocationFsxOpenZfsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeLocationFsxOpenZfsResponse_httpStatus :: Lens.Lens' DescribeLocationFsxOpenZfsResponse Prelude.Int+describeLocationFsxOpenZfsResponse_httpStatus = Lens.lens (\DescribeLocationFsxOpenZfsResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationFsxOpenZfsResponse' {} a -> s {httpStatus = a} :: DescribeLocationFsxOpenZfsResponse)++instance+  Prelude.NFData+    DescribeLocationFsxOpenZfsResponse+  where+  rnf DescribeLocationFsxOpenZfsResponse' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf protocol+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationFsxWindows.hs view
@@ -0,0 +1,251 @@+{-# 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.DataSync.DescribeLocationFsxWindows+-- 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 metadata about an Amazon FSx for Windows File Server location,+-- such as information about its path.+module Amazonka.DataSync.DescribeLocationFsxWindows+  ( -- * Creating a Request+    DescribeLocationFsxWindows (..),+    newDescribeLocationFsxWindows,++    -- * Request Lenses+    describeLocationFsxWindows_locationArn,++    -- * Destructuring the Response+    DescribeLocationFsxWindowsResponse (..),+    newDescribeLocationFsxWindowsResponse,++    -- * Response Lenses+    describeLocationFsxWindowsResponse_creationTime,+    describeLocationFsxWindowsResponse_domain,+    describeLocationFsxWindowsResponse_locationArn,+    describeLocationFsxWindowsResponse_locationUri,+    describeLocationFsxWindowsResponse_securityGroupArns,+    describeLocationFsxWindowsResponse_user,+    describeLocationFsxWindowsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLocationFsxWindows' smart constructor.+data DescribeLocationFsxWindows = DescribeLocationFsxWindows'+  { -- | The Amazon Resource Name (ARN) of the FSx for Windows File Server+    -- location to describe.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationFsxWindows' 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:+--+-- 'locationArn', 'describeLocationFsxWindows_locationArn' - The Amazon Resource Name (ARN) of the FSx for Windows File Server+-- location to describe.+newDescribeLocationFsxWindows ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationFsxWindows+newDescribeLocationFsxWindows pLocationArn_ =+  DescribeLocationFsxWindows'+    { locationArn =+        pLocationArn_+    }++-- | The Amazon Resource Name (ARN) of the FSx for Windows File Server+-- location to describe.+describeLocationFsxWindows_locationArn :: Lens.Lens' DescribeLocationFsxWindows Prelude.Text+describeLocationFsxWindows_locationArn = Lens.lens (\DescribeLocationFsxWindows' {locationArn} -> locationArn) (\s@DescribeLocationFsxWindows' {} a -> s {locationArn = a} :: DescribeLocationFsxWindows)++instance Core.AWSRequest DescribeLocationFsxWindows where+  type+    AWSResponse DescribeLocationFsxWindows =+      DescribeLocationFsxWindowsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationFsxWindowsResponse'+            Prelude.<$> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "Domain")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "SecurityGroupArns")+            Prelude.<*> (x Data..?> "User")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationFsxWindows where+  hashWithSalt _salt DescribeLocationFsxWindows' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationFsxWindows where+  rnf DescribeLocationFsxWindows' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationFsxWindows where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationFsxWindows" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationFsxWindows where+  toJSON DescribeLocationFsxWindows' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationFsxWindows where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationFsxWindows where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLocationFsxWindowsResponse' smart constructor.+data DescribeLocationFsxWindowsResponse = DescribeLocationFsxWindowsResponse'+  { -- | The time that the FSx for Windows File Server location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the Windows domain that the FSx for Windows File Server+    -- belongs to.+    domain :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the FSx for Windows File Server+    -- location that was described.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL of the FSx for Windows File Server location that was described.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Names (ARNs) of the security groups that are+    -- configured for the FSx for Windows File Server file system.+    securityGroupArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The user who has the permissions to access files and folders in the FSx+    -- for Windows File Server file system.+    user :: 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 'DescribeLocationFsxWindowsResponse' 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', 'describeLocationFsxWindowsResponse_creationTime' - The time that the FSx for Windows File Server location was created.+--+-- 'domain', 'describeLocationFsxWindowsResponse_domain' - The name of the Windows domain that the FSx for Windows File Server+-- belongs to.+--+-- 'locationArn', 'describeLocationFsxWindowsResponse_locationArn' - The Amazon Resource Name (ARN) of the FSx for Windows File Server+-- location that was described.+--+-- 'locationUri', 'describeLocationFsxWindowsResponse_locationUri' - The URL of the FSx for Windows File Server location that was described.+--+-- 'securityGroupArns', 'describeLocationFsxWindowsResponse_securityGroupArns' - The Amazon Resource Names (ARNs) of the security groups that are+-- configured for the FSx for Windows File Server file system.+--+-- 'user', 'describeLocationFsxWindowsResponse_user' - The user who has the permissions to access files and folders in the FSx+-- for Windows File Server file system.+--+-- 'httpStatus', 'describeLocationFsxWindowsResponse_httpStatus' - The response's http status code.+newDescribeLocationFsxWindowsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationFsxWindowsResponse+newDescribeLocationFsxWindowsResponse pHttpStatus_ =+  DescribeLocationFsxWindowsResponse'+    { creationTime =+        Prelude.Nothing,+      domain = Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      securityGroupArns = Prelude.Nothing,+      user = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The time that the FSx for Windows File Server location was created.+describeLocationFsxWindowsResponse_creationTime :: Lens.Lens' DescribeLocationFsxWindowsResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationFsxWindowsResponse_creationTime = Lens.lens (\DescribeLocationFsxWindowsResponse' {creationTime} -> creationTime) (\s@DescribeLocationFsxWindowsResponse' {} a -> s {creationTime = a} :: DescribeLocationFsxWindowsResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the Windows domain that the FSx for Windows File Server+-- belongs to.+describeLocationFsxWindowsResponse_domain :: Lens.Lens' DescribeLocationFsxWindowsResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxWindowsResponse_domain = Lens.lens (\DescribeLocationFsxWindowsResponse' {domain} -> domain) (\s@DescribeLocationFsxWindowsResponse' {} a -> s {domain = a} :: DescribeLocationFsxWindowsResponse)++-- | The Amazon Resource Name (ARN) of the FSx for Windows File Server+-- location that was described.+describeLocationFsxWindowsResponse_locationArn :: Lens.Lens' DescribeLocationFsxWindowsResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxWindowsResponse_locationArn = Lens.lens (\DescribeLocationFsxWindowsResponse' {locationArn} -> locationArn) (\s@DescribeLocationFsxWindowsResponse' {} a -> s {locationArn = a} :: DescribeLocationFsxWindowsResponse)++-- | The URL of the FSx for Windows File Server location that was described.+describeLocationFsxWindowsResponse_locationUri :: Lens.Lens' DescribeLocationFsxWindowsResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxWindowsResponse_locationUri = Lens.lens (\DescribeLocationFsxWindowsResponse' {locationUri} -> locationUri) (\s@DescribeLocationFsxWindowsResponse' {} a -> s {locationUri = a} :: DescribeLocationFsxWindowsResponse)++-- | The Amazon Resource Names (ARNs) of the security groups that are+-- configured for the FSx for Windows File Server file system.+describeLocationFsxWindowsResponse_securityGroupArns :: Lens.Lens' DescribeLocationFsxWindowsResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationFsxWindowsResponse_securityGroupArns = Lens.lens (\DescribeLocationFsxWindowsResponse' {securityGroupArns} -> securityGroupArns) (\s@DescribeLocationFsxWindowsResponse' {} a -> s {securityGroupArns = a} :: DescribeLocationFsxWindowsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The user who has the permissions to access files and folders in the FSx+-- for Windows File Server file system.+describeLocationFsxWindowsResponse_user :: Lens.Lens' DescribeLocationFsxWindowsResponse (Prelude.Maybe Prelude.Text)+describeLocationFsxWindowsResponse_user = Lens.lens (\DescribeLocationFsxWindowsResponse' {user} -> user) (\s@DescribeLocationFsxWindowsResponse' {} a -> s {user = a} :: DescribeLocationFsxWindowsResponse)++-- | The response's http status code.+describeLocationFsxWindowsResponse_httpStatus :: Lens.Lens' DescribeLocationFsxWindowsResponse Prelude.Int+describeLocationFsxWindowsResponse_httpStatus = Lens.lens (\DescribeLocationFsxWindowsResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationFsxWindowsResponse' {} a -> s {httpStatus = a} :: DescribeLocationFsxWindowsResponse)++instance+  Prelude.NFData+    DescribeLocationFsxWindowsResponse+  where+  rnf DescribeLocationFsxWindowsResponse' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf user+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationHdfs.hs view
@@ -0,0 +1,323 @@+{-# 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.DataSync.DescribeLocationHdfs+-- 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 metadata, such as the authentication information about the+-- Hadoop Distributed File System (HDFS) location.+module Amazonka.DataSync.DescribeLocationHdfs+  ( -- * Creating a Request+    DescribeLocationHdfs (..),+    newDescribeLocationHdfs,++    -- * Request Lenses+    describeLocationHdfs_locationArn,++    -- * Destructuring the Response+    DescribeLocationHdfsResponse (..),+    newDescribeLocationHdfsResponse,++    -- * Response Lenses+    describeLocationHdfsResponse_agentArns,+    describeLocationHdfsResponse_authenticationType,+    describeLocationHdfsResponse_blockSize,+    describeLocationHdfsResponse_creationTime,+    describeLocationHdfsResponse_kerberosPrincipal,+    describeLocationHdfsResponse_kmsKeyProviderUri,+    describeLocationHdfsResponse_locationArn,+    describeLocationHdfsResponse_locationUri,+    describeLocationHdfsResponse_nameNodes,+    describeLocationHdfsResponse_qopConfiguration,+    describeLocationHdfsResponse_replicationFactor,+    describeLocationHdfsResponse_simpleUser,+    describeLocationHdfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLocationHdfs' smart constructor.+data DescribeLocationHdfs = DescribeLocationHdfs'+  { -- | The Amazon Resource Name (ARN) of the HDFS cluster location to describe.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationHdfs' 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:+--+-- 'locationArn', 'describeLocationHdfs_locationArn' - The Amazon Resource Name (ARN) of the HDFS cluster location to describe.+newDescribeLocationHdfs ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationHdfs+newDescribeLocationHdfs pLocationArn_ =+  DescribeLocationHdfs' {locationArn = pLocationArn_}++-- | The Amazon Resource Name (ARN) of the HDFS cluster location to describe.+describeLocationHdfs_locationArn :: Lens.Lens' DescribeLocationHdfs Prelude.Text+describeLocationHdfs_locationArn = Lens.lens (\DescribeLocationHdfs' {locationArn} -> locationArn) (\s@DescribeLocationHdfs' {} a -> s {locationArn = a} :: DescribeLocationHdfs)++instance Core.AWSRequest DescribeLocationHdfs where+  type+    AWSResponse DescribeLocationHdfs =+      DescribeLocationHdfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationHdfsResponse'+            Prelude.<$> (x Data..?> "AgentArns")+            Prelude.<*> (x Data..?> "AuthenticationType")+            Prelude.<*> (x Data..?> "BlockSize")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "KerberosPrincipal")+            Prelude.<*> (x Data..?> "KmsKeyProviderUri")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "NameNodes")+            Prelude.<*> (x Data..?> "QopConfiguration")+            Prelude.<*> (x Data..?> "ReplicationFactor")+            Prelude.<*> (x Data..?> "SimpleUser")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationHdfs where+  hashWithSalt _salt DescribeLocationHdfs' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationHdfs where+  rnf DescribeLocationHdfs' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationHdfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationHdfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationHdfs where+  toJSON DescribeLocationHdfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationHdfs where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationHdfs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLocationHdfsResponse' smart constructor.+data DescribeLocationHdfsResponse = DescribeLocationHdfsResponse'+  { -- | The ARNs of the agents that are used to connect to the HDFS cluster.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The type of authentication used to determine the identity of the user.+    authenticationType :: Prelude.Maybe HdfsAuthenticationType,+    -- | The size of the data blocks to write into the HDFS cluster.+    blockSize :: Prelude.Maybe Prelude.Natural,+    -- | The time that the HDFS location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The Kerberos principal with access to the files and folders on the HDFS+    -- cluster. This parameter is used if the @AuthenticationType@ is defined+    -- as @KERBEROS@.+    kerberosPrincipal :: Prelude.Maybe Prelude.Text,+    -- | The URI of the HDFS cluster\'s Key Management Server (KMS).+    kmsKeyProviderUri :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the HDFS cluster location.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URI of the HDFS cluster location.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The NameNode that manage the HDFS namespace.+    nameNodes :: Prelude.Maybe (Prelude.NonEmpty HdfsNameNode),+    -- | The Quality of Protection (QOP) configuration specifies the Remote+    -- Procedure Call (RPC) and data transfer protection settings configured on+    -- the Hadoop Distributed File System (HDFS) cluster.+    qopConfiguration :: Prelude.Maybe QopConfiguration,+    -- | The number of DataNodes to replicate the data to when writing to the+    -- HDFS cluster.+    replicationFactor :: Prelude.Maybe Prelude.Natural,+    -- | The user name used to identify the client on the host operating system.+    -- This parameter is used if the @AuthenticationType@ is defined as+    -- @SIMPLE@.+    simpleUser :: 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 'DescribeLocationHdfsResponse' 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:+--+-- 'agentArns', 'describeLocationHdfsResponse_agentArns' - The ARNs of the agents that are used to connect to the HDFS cluster.+--+-- 'authenticationType', 'describeLocationHdfsResponse_authenticationType' - The type of authentication used to determine the identity of the user.+--+-- 'blockSize', 'describeLocationHdfsResponse_blockSize' - The size of the data blocks to write into the HDFS cluster.+--+-- 'creationTime', 'describeLocationHdfsResponse_creationTime' - The time that the HDFS location was created.+--+-- 'kerberosPrincipal', 'describeLocationHdfsResponse_kerberosPrincipal' - The Kerberos principal with access to the files and folders on the HDFS+-- cluster. This parameter is used if the @AuthenticationType@ is defined+-- as @KERBEROS@.+--+-- 'kmsKeyProviderUri', 'describeLocationHdfsResponse_kmsKeyProviderUri' - The URI of the HDFS cluster\'s Key Management Server (KMS).+--+-- 'locationArn', 'describeLocationHdfsResponse_locationArn' - The ARN of the HDFS cluster location.+--+-- 'locationUri', 'describeLocationHdfsResponse_locationUri' - The URI of the HDFS cluster location.+--+-- 'nameNodes', 'describeLocationHdfsResponse_nameNodes' - The NameNode that manage the HDFS namespace.+--+-- 'qopConfiguration', 'describeLocationHdfsResponse_qopConfiguration' - The Quality of Protection (QOP) configuration specifies the Remote+-- Procedure Call (RPC) and data transfer protection settings configured on+-- the Hadoop Distributed File System (HDFS) cluster.+--+-- 'replicationFactor', 'describeLocationHdfsResponse_replicationFactor' - The number of DataNodes to replicate the data to when writing to the+-- HDFS cluster.+--+-- 'simpleUser', 'describeLocationHdfsResponse_simpleUser' - The user name used to identify the client on the host operating system.+-- This parameter is used if the @AuthenticationType@ is defined as+-- @SIMPLE@.+--+-- 'httpStatus', 'describeLocationHdfsResponse_httpStatus' - The response's http status code.+newDescribeLocationHdfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationHdfsResponse+newDescribeLocationHdfsResponse pHttpStatus_ =+  DescribeLocationHdfsResponse'+    { agentArns =+        Prelude.Nothing,+      authenticationType = Prelude.Nothing,+      blockSize = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      kerberosPrincipal = Prelude.Nothing,+      kmsKeyProviderUri = Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      nameNodes = Prelude.Nothing,+      qopConfiguration = Prelude.Nothing,+      replicationFactor = Prelude.Nothing,+      simpleUser = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARNs of the agents that are used to connect to the HDFS cluster.+describeLocationHdfsResponse_agentArns :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationHdfsResponse_agentArns = Lens.lens (\DescribeLocationHdfsResponse' {agentArns} -> agentArns) (\s@DescribeLocationHdfsResponse' {} a -> s {agentArns = a} :: DescribeLocationHdfsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The type of authentication used to determine the identity of the user.+describeLocationHdfsResponse_authenticationType :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe HdfsAuthenticationType)+describeLocationHdfsResponse_authenticationType = Lens.lens (\DescribeLocationHdfsResponse' {authenticationType} -> authenticationType) (\s@DescribeLocationHdfsResponse' {} a -> s {authenticationType = a} :: DescribeLocationHdfsResponse)++-- | The size of the data blocks to write into the HDFS cluster.+describeLocationHdfsResponse_blockSize :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.Natural)+describeLocationHdfsResponse_blockSize = Lens.lens (\DescribeLocationHdfsResponse' {blockSize} -> blockSize) (\s@DescribeLocationHdfsResponse' {} a -> s {blockSize = a} :: DescribeLocationHdfsResponse)++-- | The time that the HDFS location was created.+describeLocationHdfsResponse_creationTime :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationHdfsResponse_creationTime = Lens.lens (\DescribeLocationHdfsResponse' {creationTime} -> creationTime) (\s@DescribeLocationHdfsResponse' {} a -> s {creationTime = a} :: DescribeLocationHdfsResponse) Prelude.. Lens.mapping Data._Time++-- | The Kerberos principal with access to the files and folders on the HDFS+-- cluster. This parameter is used if the @AuthenticationType@ is defined+-- as @KERBEROS@.+describeLocationHdfsResponse_kerberosPrincipal :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.Text)+describeLocationHdfsResponse_kerberosPrincipal = Lens.lens (\DescribeLocationHdfsResponse' {kerberosPrincipal} -> kerberosPrincipal) (\s@DescribeLocationHdfsResponse' {} a -> s {kerberosPrincipal = a} :: DescribeLocationHdfsResponse)++-- | The URI of the HDFS cluster\'s Key Management Server (KMS).+describeLocationHdfsResponse_kmsKeyProviderUri :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.Text)+describeLocationHdfsResponse_kmsKeyProviderUri = Lens.lens (\DescribeLocationHdfsResponse' {kmsKeyProviderUri} -> kmsKeyProviderUri) (\s@DescribeLocationHdfsResponse' {} a -> s {kmsKeyProviderUri = a} :: DescribeLocationHdfsResponse)++-- | The ARN of the HDFS cluster location.+describeLocationHdfsResponse_locationArn :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.Text)+describeLocationHdfsResponse_locationArn = Lens.lens (\DescribeLocationHdfsResponse' {locationArn} -> locationArn) (\s@DescribeLocationHdfsResponse' {} a -> s {locationArn = a} :: DescribeLocationHdfsResponse)++-- | The URI of the HDFS cluster location.+describeLocationHdfsResponse_locationUri :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.Text)+describeLocationHdfsResponse_locationUri = Lens.lens (\DescribeLocationHdfsResponse' {locationUri} -> locationUri) (\s@DescribeLocationHdfsResponse' {} a -> s {locationUri = a} :: DescribeLocationHdfsResponse)++-- | The NameNode that manage the HDFS namespace.+describeLocationHdfsResponse_nameNodes :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe (Prelude.NonEmpty HdfsNameNode))+describeLocationHdfsResponse_nameNodes = Lens.lens (\DescribeLocationHdfsResponse' {nameNodes} -> nameNodes) (\s@DescribeLocationHdfsResponse' {} a -> s {nameNodes = a} :: DescribeLocationHdfsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Quality of Protection (QOP) configuration specifies the Remote+-- Procedure Call (RPC) and data transfer protection settings configured on+-- the Hadoop Distributed File System (HDFS) cluster.+describeLocationHdfsResponse_qopConfiguration :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe QopConfiguration)+describeLocationHdfsResponse_qopConfiguration = Lens.lens (\DescribeLocationHdfsResponse' {qopConfiguration} -> qopConfiguration) (\s@DescribeLocationHdfsResponse' {} a -> s {qopConfiguration = a} :: DescribeLocationHdfsResponse)++-- | The number of DataNodes to replicate the data to when writing to the+-- HDFS cluster.+describeLocationHdfsResponse_replicationFactor :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.Natural)+describeLocationHdfsResponse_replicationFactor = Lens.lens (\DescribeLocationHdfsResponse' {replicationFactor} -> replicationFactor) (\s@DescribeLocationHdfsResponse' {} a -> s {replicationFactor = a} :: DescribeLocationHdfsResponse)++-- | The user name used to identify the client on the host operating system.+-- This parameter is used if the @AuthenticationType@ is defined as+-- @SIMPLE@.+describeLocationHdfsResponse_simpleUser :: Lens.Lens' DescribeLocationHdfsResponse (Prelude.Maybe Prelude.Text)+describeLocationHdfsResponse_simpleUser = Lens.lens (\DescribeLocationHdfsResponse' {simpleUser} -> simpleUser) (\s@DescribeLocationHdfsResponse' {} a -> s {simpleUser = a} :: DescribeLocationHdfsResponse)++-- | The response's http status code.+describeLocationHdfsResponse_httpStatus :: Lens.Lens' DescribeLocationHdfsResponse Prelude.Int+describeLocationHdfsResponse_httpStatus = Lens.lens (\DescribeLocationHdfsResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationHdfsResponse' {} a -> s {httpStatus = a} :: DescribeLocationHdfsResponse)++instance Prelude.NFData DescribeLocationHdfsResponse where+  rnf DescribeLocationHdfsResponse' {..} =+    Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf authenticationType+      `Prelude.seq` Prelude.rnf blockSize+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf kerberosPrincipal+      `Prelude.seq` Prelude.rnf kmsKeyProviderUri+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf nameNodes+      `Prelude.seq` Prelude.rnf qopConfiguration+      `Prelude.seq` Prelude.rnf replicationFactor+      `Prelude.seq` Prelude.rnf simpleUser+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationNfs.hs view
@@ -0,0 +1,220 @@+{-# 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.DataSync.DescribeLocationNfs+-- 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 metadata, such as the path information, about an NFS location.+module Amazonka.DataSync.DescribeLocationNfs+  ( -- * Creating a Request+    DescribeLocationNfs (..),+    newDescribeLocationNfs,++    -- * Request Lenses+    describeLocationNfs_locationArn,++    -- * Destructuring the Response+    DescribeLocationNfsResponse (..),+    newDescribeLocationNfsResponse,++    -- * Response Lenses+    describeLocationNfsResponse_creationTime,+    describeLocationNfsResponse_locationArn,+    describeLocationNfsResponse_locationUri,+    describeLocationNfsResponse_mountOptions,+    describeLocationNfsResponse_onPremConfig,+    describeLocationNfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeLocationNfsRequest+--+-- /See:/ 'newDescribeLocationNfs' smart constructor.+data DescribeLocationNfs = DescribeLocationNfs'+  { -- | The Amazon Resource Name (ARN) of the NFS location to describe.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationNfs' 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:+--+-- 'locationArn', 'describeLocationNfs_locationArn' - The Amazon Resource Name (ARN) of the NFS location to describe.+newDescribeLocationNfs ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationNfs+newDescribeLocationNfs pLocationArn_ =+  DescribeLocationNfs' {locationArn = pLocationArn_}++-- | The Amazon Resource Name (ARN) of the NFS location to describe.+describeLocationNfs_locationArn :: Lens.Lens' DescribeLocationNfs Prelude.Text+describeLocationNfs_locationArn = Lens.lens (\DescribeLocationNfs' {locationArn} -> locationArn) (\s@DescribeLocationNfs' {} a -> s {locationArn = a} :: DescribeLocationNfs)++instance Core.AWSRequest DescribeLocationNfs where+  type+    AWSResponse DescribeLocationNfs =+      DescribeLocationNfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationNfsResponse'+            Prelude.<$> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "MountOptions")+            Prelude.<*> (x Data..?> "OnPremConfig")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationNfs where+  hashWithSalt _salt DescribeLocationNfs' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationNfs where+  rnf DescribeLocationNfs' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationNfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationNfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationNfs where+  toJSON DescribeLocationNfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationNfs where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationNfs where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeLocationNfsResponse+--+-- /See:/ 'newDescribeLocationNfsResponse' smart constructor.+data DescribeLocationNfsResponse = DescribeLocationNfsResponse'+  { -- | The time that the NFS location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the NFS location that was described.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL of the source NFS location that was described.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The NFS mount options that DataSync used to mount your NFS share.+    mountOptions :: Prelude.Maybe NfsMountOptions,+    onPremConfig :: Prelude.Maybe OnPremConfig,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationNfsResponse' 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', 'describeLocationNfsResponse_creationTime' - The time that the NFS location was created.+--+-- 'locationArn', 'describeLocationNfsResponse_locationArn' - The Amazon Resource Name (ARN) of the NFS location that was described.+--+-- 'locationUri', 'describeLocationNfsResponse_locationUri' - The URL of the source NFS location that was described.+--+-- 'mountOptions', 'describeLocationNfsResponse_mountOptions' - The NFS mount options that DataSync used to mount your NFS share.+--+-- 'onPremConfig', 'describeLocationNfsResponse_onPremConfig' - Undocumented member.+--+-- 'httpStatus', 'describeLocationNfsResponse_httpStatus' - The response's http status code.+newDescribeLocationNfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationNfsResponse+newDescribeLocationNfsResponse pHttpStatus_ =+  DescribeLocationNfsResponse'+    { creationTime =+        Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      mountOptions = Prelude.Nothing,+      onPremConfig = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The time that the NFS location was created.+describeLocationNfsResponse_creationTime :: Lens.Lens' DescribeLocationNfsResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationNfsResponse_creationTime = Lens.lens (\DescribeLocationNfsResponse' {creationTime} -> creationTime) (\s@DescribeLocationNfsResponse' {} a -> s {creationTime = a} :: DescribeLocationNfsResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the NFS location that was described.+describeLocationNfsResponse_locationArn :: Lens.Lens' DescribeLocationNfsResponse (Prelude.Maybe Prelude.Text)+describeLocationNfsResponse_locationArn = Lens.lens (\DescribeLocationNfsResponse' {locationArn} -> locationArn) (\s@DescribeLocationNfsResponse' {} a -> s {locationArn = a} :: DescribeLocationNfsResponse)++-- | The URL of the source NFS location that was described.+describeLocationNfsResponse_locationUri :: Lens.Lens' DescribeLocationNfsResponse (Prelude.Maybe Prelude.Text)+describeLocationNfsResponse_locationUri = Lens.lens (\DescribeLocationNfsResponse' {locationUri} -> locationUri) (\s@DescribeLocationNfsResponse' {} a -> s {locationUri = a} :: DescribeLocationNfsResponse)++-- | The NFS mount options that DataSync used to mount your NFS share.+describeLocationNfsResponse_mountOptions :: Lens.Lens' DescribeLocationNfsResponse (Prelude.Maybe NfsMountOptions)+describeLocationNfsResponse_mountOptions = Lens.lens (\DescribeLocationNfsResponse' {mountOptions} -> mountOptions) (\s@DescribeLocationNfsResponse' {} a -> s {mountOptions = a} :: DescribeLocationNfsResponse)++-- | Undocumented member.+describeLocationNfsResponse_onPremConfig :: Lens.Lens' DescribeLocationNfsResponse (Prelude.Maybe OnPremConfig)+describeLocationNfsResponse_onPremConfig = Lens.lens (\DescribeLocationNfsResponse' {onPremConfig} -> onPremConfig) (\s@DescribeLocationNfsResponse' {} a -> s {onPremConfig = a} :: DescribeLocationNfsResponse)++-- | The response's http status code.+describeLocationNfsResponse_httpStatus :: Lens.Lens' DescribeLocationNfsResponse Prelude.Int+describeLocationNfsResponse_httpStatus = Lens.lens (\DescribeLocationNfsResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationNfsResponse' {} a -> s {httpStatus = a} :: DescribeLocationNfsResponse)++instance Prelude.NFData DescribeLocationNfsResponse where+  rnf DescribeLocationNfsResponse' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf mountOptions+      `Prelude.seq` Prelude.rnf onPremConfig+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationObjectStorage.hs view
@@ -0,0 +1,293 @@+{-# 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.DataSync.DescribeLocationObjectStorage+-- 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 metadata about your DataSync location for an object storage+-- system.+module Amazonka.DataSync.DescribeLocationObjectStorage+  ( -- * Creating a Request+    DescribeLocationObjectStorage (..),+    newDescribeLocationObjectStorage,++    -- * Request Lenses+    describeLocationObjectStorage_locationArn,++    -- * Destructuring the Response+    DescribeLocationObjectStorageResponse (..),+    newDescribeLocationObjectStorageResponse,++    -- * Response Lenses+    describeLocationObjectStorageResponse_accessKey,+    describeLocationObjectStorageResponse_agentArns,+    describeLocationObjectStorageResponse_creationTime,+    describeLocationObjectStorageResponse_locationArn,+    describeLocationObjectStorageResponse_locationUri,+    describeLocationObjectStorageResponse_serverCertificate,+    describeLocationObjectStorageResponse_serverPort,+    describeLocationObjectStorageResponse_serverProtocol,+    describeLocationObjectStorageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeLocationObjectStorageRequest+--+-- /See:/ 'newDescribeLocationObjectStorage' smart constructor.+data DescribeLocationObjectStorage = DescribeLocationObjectStorage'+  { -- | The Amazon Resource Name (ARN) of the object storage system location+    -- that you want information about.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationObjectStorage' 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:+--+-- 'locationArn', 'describeLocationObjectStorage_locationArn' - The Amazon Resource Name (ARN) of the object storage system location+-- that you want information about.+newDescribeLocationObjectStorage ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationObjectStorage+newDescribeLocationObjectStorage pLocationArn_ =+  DescribeLocationObjectStorage'+    { locationArn =+        pLocationArn_+    }++-- | The Amazon Resource Name (ARN) of the object storage system location+-- that you want information about.+describeLocationObjectStorage_locationArn :: Lens.Lens' DescribeLocationObjectStorage Prelude.Text+describeLocationObjectStorage_locationArn = Lens.lens (\DescribeLocationObjectStorage' {locationArn} -> locationArn) (\s@DescribeLocationObjectStorage' {} a -> s {locationArn = a} :: DescribeLocationObjectStorage)++instance+  Core.AWSRequest+    DescribeLocationObjectStorage+  where+  type+    AWSResponse DescribeLocationObjectStorage =+      DescribeLocationObjectStorageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationObjectStorageResponse'+            Prelude.<$> (x Data..?> "AccessKey")+            Prelude.<*> (x Data..?> "AgentArns")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "ServerCertificate")+            Prelude.<*> (x Data..?> "ServerPort")+            Prelude.<*> (x Data..?> "ServerProtocol")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeLocationObjectStorage+  where+  hashWithSalt _salt DescribeLocationObjectStorage' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationObjectStorage where+  rnf DescribeLocationObjectStorage' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationObjectStorage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationObjectStorage" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationObjectStorage where+  toJSON DescribeLocationObjectStorage' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationObjectStorage where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationObjectStorage where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeLocationObjectStorageResponse+--+-- /See:/ 'newDescribeLocationObjectStorageResponse' smart constructor.+data DescribeLocationObjectStorageResponse = DescribeLocationObjectStorageResponse'+  { -- | The access key (for example, a user name) required to authenticate with+    -- the object storage system.+    accessKey :: Prelude.Maybe Prelude.Text,+    -- | The ARNs of the DataSync agents that can securely connect with your+    -- location.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The time that the location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of the object storage system location.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL of the object storage system location.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The self-signed certificate that DataSync uses to securely authenticate+    -- with your object storage system.+    serverCertificate :: Prelude.Maybe Data.Base64,+    -- | The port that your object storage server accepts inbound network traffic+    -- on (for example, port 443).+    serverPort :: Prelude.Maybe Prelude.Natural,+    -- | The protocol that your object storage system uses to communicate.+    serverProtocol :: Prelude.Maybe ObjectStorageServerProtocol,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationObjectStorageResponse' 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:+--+-- 'accessKey', 'describeLocationObjectStorageResponse_accessKey' - The access key (for example, a user name) required to authenticate with+-- the object storage system.+--+-- 'agentArns', 'describeLocationObjectStorageResponse_agentArns' - The ARNs of the DataSync agents that can securely connect with your+-- location.+--+-- 'creationTime', 'describeLocationObjectStorageResponse_creationTime' - The time that the location was created.+--+-- 'locationArn', 'describeLocationObjectStorageResponse_locationArn' - The ARN of the object storage system location.+--+-- 'locationUri', 'describeLocationObjectStorageResponse_locationUri' - The URL of the object storage system location.+--+-- 'serverCertificate', 'describeLocationObjectStorageResponse_serverCertificate' - The self-signed certificate that DataSync uses to securely authenticate+-- with your object storage system.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'serverPort', 'describeLocationObjectStorageResponse_serverPort' - The port that your object storage server accepts inbound network traffic+-- on (for example, port 443).+--+-- 'serverProtocol', 'describeLocationObjectStorageResponse_serverProtocol' - The protocol that your object storage system uses to communicate.+--+-- 'httpStatus', 'describeLocationObjectStorageResponse_httpStatus' - The response's http status code.+newDescribeLocationObjectStorageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationObjectStorageResponse+newDescribeLocationObjectStorageResponse pHttpStatus_ =+  DescribeLocationObjectStorageResponse'+    { accessKey =+        Prelude.Nothing,+      agentArns = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      serverCertificate = Prelude.Nothing,+      serverPort = Prelude.Nothing,+      serverProtocol = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The access key (for example, a user name) required to authenticate with+-- the object storage system.+describeLocationObjectStorageResponse_accessKey :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe Prelude.Text)+describeLocationObjectStorageResponse_accessKey = Lens.lens (\DescribeLocationObjectStorageResponse' {accessKey} -> accessKey) (\s@DescribeLocationObjectStorageResponse' {} a -> s {accessKey = a} :: DescribeLocationObjectStorageResponse)++-- | The ARNs of the DataSync agents that can securely connect with your+-- location.+describeLocationObjectStorageResponse_agentArns :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationObjectStorageResponse_agentArns = Lens.lens (\DescribeLocationObjectStorageResponse' {agentArns} -> agentArns) (\s@DescribeLocationObjectStorageResponse' {} a -> s {agentArns = a} :: DescribeLocationObjectStorageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time that the location was created.+describeLocationObjectStorageResponse_creationTime :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationObjectStorageResponse_creationTime = Lens.lens (\DescribeLocationObjectStorageResponse' {creationTime} -> creationTime) (\s@DescribeLocationObjectStorageResponse' {} a -> s {creationTime = a} :: DescribeLocationObjectStorageResponse) Prelude.. Lens.mapping Data._Time++-- | The ARN of the object storage system location.+describeLocationObjectStorageResponse_locationArn :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe Prelude.Text)+describeLocationObjectStorageResponse_locationArn = Lens.lens (\DescribeLocationObjectStorageResponse' {locationArn} -> locationArn) (\s@DescribeLocationObjectStorageResponse' {} a -> s {locationArn = a} :: DescribeLocationObjectStorageResponse)++-- | The URL of the object storage system location.+describeLocationObjectStorageResponse_locationUri :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe Prelude.Text)+describeLocationObjectStorageResponse_locationUri = Lens.lens (\DescribeLocationObjectStorageResponse' {locationUri} -> locationUri) (\s@DescribeLocationObjectStorageResponse' {} a -> s {locationUri = a} :: DescribeLocationObjectStorageResponse)++-- | The self-signed certificate that DataSync uses to securely authenticate+-- with your object storage system.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+describeLocationObjectStorageResponse_serverCertificate :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe Prelude.ByteString)+describeLocationObjectStorageResponse_serverCertificate = Lens.lens (\DescribeLocationObjectStorageResponse' {serverCertificate} -> serverCertificate) (\s@DescribeLocationObjectStorageResponse' {} a -> s {serverCertificate = a} :: DescribeLocationObjectStorageResponse) Prelude.. Lens.mapping Data._Base64++-- | The port that your object storage server accepts inbound network traffic+-- on (for example, port 443).+describeLocationObjectStorageResponse_serverPort :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe Prelude.Natural)+describeLocationObjectStorageResponse_serverPort = Lens.lens (\DescribeLocationObjectStorageResponse' {serverPort} -> serverPort) (\s@DescribeLocationObjectStorageResponse' {} a -> s {serverPort = a} :: DescribeLocationObjectStorageResponse)++-- | The protocol that your object storage system uses to communicate.+describeLocationObjectStorageResponse_serverProtocol :: Lens.Lens' DescribeLocationObjectStorageResponse (Prelude.Maybe ObjectStorageServerProtocol)+describeLocationObjectStorageResponse_serverProtocol = Lens.lens (\DescribeLocationObjectStorageResponse' {serverProtocol} -> serverProtocol) (\s@DescribeLocationObjectStorageResponse' {} a -> s {serverProtocol = a} :: DescribeLocationObjectStorageResponse)++-- | The response's http status code.+describeLocationObjectStorageResponse_httpStatus :: Lens.Lens' DescribeLocationObjectStorageResponse Prelude.Int+describeLocationObjectStorageResponse_httpStatus = Lens.lens (\DescribeLocationObjectStorageResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationObjectStorageResponse' {} a -> s {httpStatus = a} :: DescribeLocationObjectStorageResponse)++instance+  Prelude.NFData+    DescribeLocationObjectStorageResponse+  where+  rnf DescribeLocationObjectStorageResponse' {..} =+    Prelude.rnf accessKey+      `Prelude.seq` Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf serverCertificate+      `Prelude.seq` Prelude.rnf serverPort+      `Prelude.seq` Prelude.rnf serverProtocol+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationS3.hs view
@@ -0,0 +1,265 @@+{-# 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.DataSync.DescribeLocationS3+-- 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 metadata, such as bucket name, about an Amazon S3 bucket+-- location.+module Amazonka.DataSync.DescribeLocationS3+  ( -- * Creating a Request+    DescribeLocationS3 (..),+    newDescribeLocationS3,++    -- * Request Lenses+    describeLocationS3_locationArn,++    -- * Destructuring the Response+    DescribeLocationS3Response (..),+    newDescribeLocationS3Response,++    -- * Response Lenses+    describeLocationS3Response_agentArns,+    describeLocationS3Response_creationTime,+    describeLocationS3Response_locationArn,+    describeLocationS3Response_locationUri,+    describeLocationS3Response_s3Config,+    describeLocationS3Response_s3StorageClass,+    describeLocationS3Response_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeLocationS3Request+--+-- /See:/ 'newDescribeLocationS3' smart constructor.+data DescribeLocationS3 = DescribeLocationS3'+  { -- | The Amazon Resource Name (ARN) of the Amazon S3 bucket location to+    -- describe.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationS3' 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:+--+-- 'locationArn', 'describeLocationS3_locationArn' - The Amazon Resource Name (ARN) of the Amazon S3 bucket location to+-- describe.+newDescribeLocationS3 ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationS3+newDescribeLocationS3 pLocationArn_ =+  DescribeLocationS3' {locationArn = pLocationArn_}++-- | The Amazon Resource Name (ARN) of the Amazon S3 bucket location to+-- describe.+describeLocationS3_locationArn :: Lens.Lens' DescribeLocationS3 Prelude.Text+describeLocationS3_locationArn = Lens.lens (\DescribeLocationS3' {locationArn} -> locationArn) (\s@DescribeLocationS3' {} a -> s {locationArn = a} :: DescribeLocationS3)++instance Core.AWSRequest DescribeLocationS3 where+  type+    AWSResponse DescribeLocationS3 =+      DescribeLocationS3Response+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationS3Response'+            Prelude.<$> (x Data..?> "AgentArns")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "S3Config")+            Prelude.<*> (x Data..?> "S3StorageClass")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationS3 where+  hashWithSalt _salt DescribeLocationS3' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationS3 where+  rnf DescribeLocationS3' {..} = Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationS3 where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationS3" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationS3 where+  toJSON DescribeLocationS3' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationS3 where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationS3 where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeLocationS3Response+--+-- /See:/ 'newDescribeLocationS3Response' smart constructor.+data DescribeLocationS3Response = DescribeLocationS3Response'+  { -- | If you are using DataSync on an Amazon Web Services Outpost, the Amazon+    -- Resource Name (ARNs) of the EC2 agents deployed on your Outpost. For+    -- more information about launching a DataSync agent on an Amazon Web+    -- Services Outpost, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent Deploy your DataSync agent on Outposts>.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The time that the Amazon S3 bucket location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL of the Amazon S3 location that was described.+    locationUri :: Prelude.Maybe Prelude.Text,+    s3Config :: Prelude.Maybe S3Config,+    -- | The Amazon S3 storage class that you chose to store your files in when+    -- this location is used as a task destination. For more information about+    -- S3 storage classes, see+    -- <http://aws.amazon.com/s3/storage-classes/ Amazon S3 Storage Classes>.+    -- Some storage classes have behaviors that can affect your S3 storage+    -- cost. For detailed information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with S3 storage classes in DataSync>.+    s3StorageClass :: Prelude.Maybe S3StorageClass,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationS3Response' 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:+--+-- 'agentArns', 'describeLocationS3Response_agentArns' - If you are using DataSync on an Amazon Web Services Outpost, the Amazon+-- Resource Name (ARNs) of the EC2 agents deployed on your Outpost. For+-- more information about launching a DataSync agent on an Amazon Web+-- Services Outpost, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent Deploy your DataSync agent on Outposts>.+--+-- 'creationTime', 'describeLocationS3Response_creationTime' - The time that the Amazon S3 bucket location was created.+--+-- 'locationArn', 'describeLocationS3Response_locationArn' - The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.+--+-- 'locationUri', 'describeLocationS3Response_locationUri' - The URL of the Amazon S3 location that was described.+--+-- 's3Config', 'describeLocationS3Response_s3Config' - Undocumented member.+--+-- 's3StorageClass', 'describeLocationS3Response_s3StorageClass' - The Amazon S3 storage class that you chose to store your files in when+-- this location is used as a task destination. For more information about+-- S3 storage classes, see+-- <http://aws.amazon.com/s3/storage-classes/ Amazon S3 Storage Classes>.+-- Some storage classes have behaviors that can affect your S3 storage+-- cost. For detailed information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with S3 storage classes in DataSync>.+--+-- 'httpStatus', 'describeLocationS3Response_httpStatus' - The response's http status code.+newDescribeLocationS3Response ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationS3Response+newDescribeLocationS3Response pHttpStatus_ =+  DescribeLocationS3Response'+    { agentArns =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      s3Config = Prelude.Nothing,+      s3StorageClass = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If you are using DataSync on an Amazon Web Services Outpost, the Amazon+-- Resource Name (ARNs) of the EC2 agents deployed on your Outpost. For+-- more information about launching a DataSync agent on an Amazon Web+-- Services Outpost, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html#outposts-agent Deploy your DataSync agent on Outposts>.+describeLocationS3Response_agentArns :: Lens.Lens' DescribeLocationS3Response (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationS3Response_agentArns = Lens.lens (\DescribeLocationS3Response' {agentArns} -> agentArns) (\s@DescribeLocationS3Response' {} a -> s {agentArns = a} :: DescribeLocationS3Response) Prelude.. Lens.mapping Lens.coerced++-- | The time that the Amazon S3 bucket location was created.+describeLocationS3Response_creationTime :: Lens.Lens' DescribeLocationS3Response (Prelude.Maybe Prelude.UTCTime)+describeLocationS3Response_creationTime = Lens.lens (\DescribeLocationS3Response' {creationTime} -> creationTime) (\s@DescribeLocationS3Response' {} a -> s {creationTime = a} :: DescribeLocationS3Response) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.+describeLocationS3Response_locationArn :: Lens.Lens' DescribeLocationS3Response (Prelude.Maybe Prelude.Text)+describeLocationS3Response_locationArn = Lens.lens (\DescribeLocationS3Response' {locationArn} -> locationArn) (\s@DescribeLocationS3Response' {} a -> s {locationArn = a} :: DescribeLocationS3Response)++-- | The URL of the Amazon S3 location that was described.+describeLocationS3Response_locationUri :: Lens.Lens' DescribeLocationS3Response (Prelude.Maybe Prelude.Text)+describeLocationS3Response_locationUri = Lens.lens (\DescribeLocationS3Response' {locationUri} -> locationUri) (\s@DescribeLocationS3Response' {} a -> s {locationUri = a} :: DescribeLocationS3Response)++-- | Undocumented member.+describeLocationS3Response_s3Config :: Lens.Lens' DescribeLocationS3Response (Prelude.Maybe S3Config)+describeLocationS3Response_s3Config = Lens.lens (\DescribeLocationS3Response' {s3Config} -> s3Config) (\s@DescribeLocationS3Response' {} a -> s {s3Config = a} :: DescribeLocationS3Response)++-- | The Amazon S3 storage class that you chose to store your files in when+-- this location is used as a task destination. For more information about+-- S3 storage classes, see+-- <http://aws.amazon.com/s3/storage-classes/ Amazon S3 Storage Classes>.+-- Some storage classes have behaviors that can affect your S3 storage+-- cost. For detailed information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with S3 storage classes in DataSync>.+describeLocationS3Response_s3StorageClass :: Lens.Lens' DescribeLocationS3Response (Prelude.Maybe S3StorageClass)+describeLocationS3Response_s3StorageClass = Lens.lens (\DescribeLocationS3Response' {s3StorageClass} -> s3StorageClass) (\s@DescribeLocationS3Response' {} a -> s {s3StorageClass = a} :: DescribeLocationS3Response)++-- | The response's http status code.+describeLocationS3Response_httpStatus :: Lens.Lens' DescribeLocationS3Response Prelude.Int+describeLocationS3Response_httpStatus = Lens.lens (\DescribeLocationS3Response' {httpStatus} -> httpStatus) (\s@DescribeLocationS3Response' {} a -> s {httpStatus = a} :: DescribeLocationS3Response)++instance Prelude.NFData DescribeLocationS3Response where+  rnf DescribeLocationS3Response' {..} =+    Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf s3Config+      `Prelude.seq` Prelude.rnf s3StorageClass+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeLocationSmb.hs view
@@ -0,0 +1,255 @@+{-# 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.DataSync.DescribeLocationSmb+-- 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 metadata, such as the path and user information about an SMB+-- location.+module Amazonka.DataSync.DescribeLocationSmb+  ( -- * Creating a Request+    DescribeLocationSmb (..),+    newDescribeLocationSmb,++    -- * Request Lenses+    describeLocationSmb_locationArn,++    -- * Destructuring the Response+    DescribeLocationSmbResponse (..),+    newDescribeLocationSmbResponse,++    -- * Response Lenses+    describeLocationSmbResponse_agentArns,+    describeLocationSmbResponse_creationTime,+    describeLocationSmbResponse_domain,+    describeLocationSmbResponse_locationArn,+    describeLocationSmbResponse_locationUri,+    describeLocationSmbResponse_mountOptions,+    describeLocationSmbResponse_user,+    describeLocationSmbResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeLocationSmbRequest+--+-- /See:/ 'newDescribeLocationSmb' smart constructor.+data DescribeLocationSmb = DescribeLocationSmb'+  { -- | The Amazon Resource Name (ARN) of the SMB location to describe.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLocationSmb' 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:+--+-- 'locationArn', 'describeLocationSmb_locationArn' - The Amazon Resource Name (ARN) of the SMB location to describe.+newDescribeLocationSmb ::+  -- | 'locationArn'+  Prelude.Text ->+  DescribeLocationSmb+newDescribeLocationSmb pLocationArn_ =+  DescribeLocationSmb' {locationArn = pLocationArn_}++-- | The Amazon Resource Name (ARN) of the SMB location to describe.+describeLocationSmb_locationArn :: Lens.Lens' DescribeLocationSmb Prelude.Text+describeLocationSmb_locationArn = Lens.lens (\DescribeLocationSmb' {locationArn} -> locationArn) (\s@DescribeLocationSmb' {} a -> s {locationArn = a} :: DescribeLocationSmb)++instance Core.AWSRequest DescribeLocationSmb where+  type+    AWSResponse DescribeLocationSmb =+      DescribeLocationSmbResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLocationSmbResponse'+            Prelude.<$> (x Data..?> "AgentArns")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "Domain")+            Prelude.<*> (x Data..?> "LocationArn")+            Prelude.<*> (x Data..?> "LocationUri")+            Prelude.<*> (x Data..?> "MountOptions")+            Prelude.<*> (x Data..?> "User")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeLocationSmb where+  hashWithSalt _salt DescribeLocationSmb' {..} =+    _salt `Prelude.hashWithSalt` locationArn++instance Prelude.NFData DescribeLocationSmb where+  rnf DescribeLocationSmb' {..} =+    Prelude.rnf locationArn++instance Data.ToHeaders DescribeLocationSmb where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeLocationSmb" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeLocationSmb where+  toJSON DescribeLocationSmb' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("LocationArn" Data..= locationArn)]+      )++instance Data.ToPath DescribeLocationSmb where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeLocationSmb where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeLocationSmbResponse+--+-- /See:/ 'newDescribeLocationSmbResponse' smart constructor.+data DescribeLocationSmbResponse = DescribeLocationSmbResponse'+  { -- | The Amazon Resource Name (ARN) of the source SMB file system location+    -- that is created.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The time that the SMB location was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the Windows domain that the SMB server belongs to.+    domain :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the SMB location that was described.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | The URL of the source SMB location that was described.+    locationUri :: Prelude.Maybe Prelude.Text,+    -- | The mount options that are available for DataSync to use to access an+    -- SMB location.+    mountOptions :: Prelude.Maybe SmbMountOptions,+    -- | The user who can mount the share, has the permissions to access files+    -- and folders in the SMB share.+    user :: 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 'DescribeLocationSmbResponse' 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:+--+-- 'agentArns', 'describeLocationSmbResponse_agentArns' - The Amazon Resource Name (ARN) of the source SMB file system location+-- that is created.+--+-- 'creationTime', 'describeLocationSmbResponse_creationTime' - The time that the SMB location was created.+--+-- 'domain', 'describeLocationSmbResponse_domain' - The name of the Windows domain that the SMB server belongs to.+--+-- 'locationArn', 'describeLocationSmbResponse_locationArn' - The Amazon Resource Name (ARN) of the SMB location that was described.+--+-- 'locationUri', 'describeLocationSmbResponse_locationUri' - The URL of the source SMB location that was described.+--+-- 'mountOptions', 'describeLocationSmbResponse_mountOptions' - The mount options that are available for DataSync to use to access an+-- SMB location.+--+-- 'user', 'describeLocationSmbResponse_user' - The user who can mount the share, has the permissions to access files+-- and folders in the SMB share.+--+-- 'httpStatus', 'describeLocationSmbResponse_httpStatus' - The response's http status code.+newDescribeLocationSmbResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLocationSmbResponse+newDescribeLocationSmbResponse pHttpStatus_ =+  DescribeLocationSmbResponse'+    { agentArns =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      domain = Prelude.Nothing,+      locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing,+      mountOptions = Prelude.Nothing,+      user = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the source SMB file system location+-- that is created.+describeLocationSmbResponse_agentArns :: Lens.Lens' DescribeLocationSmbResponse (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+describeLocationSmbResponse_agentArns = Lens.lens (\DescribeLocationSmbResponse' {agentArns} -> agentArns) (\s@DescribeLocationSmbResponse' {} a -> s {agentArns = a} :: DescribeLocationSmbResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time that the SMB location was created.+describeLocationSmbResponse_creationTime :: Lens.Lens' DescribeLocationSmbResponse (Prelude.Maybe Prelude.UTCTime)+describeLocationSmbResponse_creationTime = Lens.lens (\DescribeLocationSmbResponse' {creationTime} -> creationTime) (\s@DescribeLocationSmbResponse' {} a -> s {creationTime = a} :: DescribeLocationSmbResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the Windows domain that the SMB server belongs to.+describeLocationSmbResponse_domain :: Lens.Lens' DescribeLocationSmbResponse (Prelude.Maybe Prelude.Text)+describeLocationSmbResponse_domain = Lens.lens (\DescribeLocationSmbResponse' {domain} -> domain) (\s@DescribeLocationSmbResponse' {} a -> s {domain = a} :: DescribeLocationSmbResponse)++-- | The Amazon Resource Name (ARN) of the SMB location that was described.+describeLocationSmbResponse_locationArn :: Lens.Lens' DescribeLocationSmbResponse (Prelude.Maybe Prelude.Text)+describeLocationSmbResponse_locationArn = Lens.lens (\DescribeLocationSmbResponse' {locationArn} -> locationArn) (\s@DescribeLocationSmbResponse' {} a -> s {locationArn = a} :: DescribeLocationSmbResponse)++-- | The URL of the source SMB location that was described.+describeLocationSmbResponse_locationUri :: Lens.Lens' DescribeLocationSmbResponse (Prelude.Maybe Prelude.Text)+describeLocationSmbResponse_locationUri = Lens.lens (\DescribeLocationSmbResponse' {locationUri} -> locationUri) (\s@DescribeLocationSmbResponse' {} a -> s {locationUri = a} :: DescribeLocationSmbResponse)++-- | The mount options that are available for DataSync to use to access an+-- SMB location.+describeLocationSmbResponse_mountOptions :: Lens.Lens' DescribeLocationSmbResponse (Prelude.Maybe SmbMountOptions)+describeLocationSmbResponse_mountOptions = Lens.lens (\DescribeLocationSmbResponse' {mountOptions} -> mountOptions) (\s@DescribeLocationSmbResponse' {} a -> s {mountOptions = a} :: DescribeLocationSmbResponse)++-- | The user who can mount the share, has the permissions to access files+-- and folders in the SMB share.+describeLocationSmbResponse_user :: Lens.Lens' DescribeLocationSmbResponse (Prelude.Maybe Prelude.Text)+describeLocationSmbResponse_user = Lens.lens (\DescribeLocationSmbResponse' {user} -> user) (\s@DescribeLocationSmbResponse' {} a -> s {user = a} :: DescribeLocationSmbResponse)++-- | The response's http status code.+describeLocationSmbResponse_httpStatus :: Lens.Lens' DescribeLocationSmbResponse Prelude.Int+describeLocationSmbResponse_httpStatus = Lens.lens (\DescribeLocationSmbResponse' {httpStatus} -> httpStatus) (\s@DescribeLocationSmbResponse' {} a -> s {httpStatus = a} :: DescribeLocationSmbResponse)++instance Prelude.NFData DescribeLocationSmbResponse where+  rnf DescribeLocationSmbResponse' {..} =+    Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri+      `Prelude.seq` Prelude.rnf mountOptions+      `Prelude.seq` Prelude.rnf user+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeTask.hs view
@@ -0,0 +1,432 @@+{-# 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.DataSync.DescribeTask+-- 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 metadata about a task.+module Amazonka.DataSync.DescribeTask+  ( -- * Creating a Request+    DescribeTask (..),+    newDescribeTask,++    -- * Request Lenses+    describeTask_taskArn,++    -- * Destructuring the Response+    DescribeTaskResponse (..),+    newDescribeTaskResponse,++    -- * Response Lenses+    describeTaskResponse_cloudWatchLogGroupArn,+    describeTaskResponse_creationTime,+    describeTaskResponse_currentTaskExecutionArn,+    describeTaskResponse_destinationLocationArn,+    describeTaskResponse_destinationNetworkInterfaceArns,+    describeTaskResponse_errorCode,+    describeTaskResponse_errorDetail,+    describeTaskResponse_excludes,+    describeTaskResponse_includes,+    describeTaskResponse_name,+    describeTaskResponse_options,+    describeTaskResponse_schedule,+    describeTaskResponse_sourceLocationArn,+    describeTaskResponse_sourceNetworkInterfaceArns,+    describeTaskResponse_status,+    describeTaskResponse_taskArn,+    describeTaskResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeTaskRequest+--+-- /See:/ 'newDescribeTask' smart constructor.+data DescribeTask = DescribeTask'+  { -- | The Amazon Resource Name (ARN) of the task to describe.+    taskArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeTask' 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:+--+-- 'taskArn', 'describeTask_taskArn' - The Amazon Resource Name (ARN) of the task to describe.+newDescribeTask ::+  -- | 'taskArn'+  Prelude.Text ->+  DescribeTask+newDescribeTask pTaskArn_ =+  DescribeTask' {taskArn = pTaskArn_}++-- | The Amazon Resource Name (ARN) of the task to describe.+describeTask_taskArn :: Lens.Lens' DescribeTask Prelude.Text+describeTask_taskArn = Lens.lens (\DescribeTask' {taskArn} -> taskArn) (\s@DescribeTask' {} a -> s {taskArn = a} :: DescribeTask)++instance Core.AWSRequest DescribeTask where+  type AWSResponse DescribeTask = DescribeTaskResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeTaskResponse'+            Prelude.<$> (x Data..?> "CloudWatchLogGroupArn")+            Prelude.<*> (x Data..?> "CreationTime")+            Prelude.<*> (x Data..?> "CurrentTaskExecutionArn")+            Prelude.<*> (x Data..?> "DestinationLocationArn")+            Prelude.<*> ( x+                            Data..?> "DestinationNetworkInterfaceArns"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "ErrorCode")+            Prelude.<*> (x Data..?> "ErrorDetail")+            Prelude.<*> (x Data..?> "Excludes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Includes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "Options")+            Prelude.<*> (x Data..?> "Schedule")+            Prelude.<*> (x Data..?> "SourceLocationArn")+            Prelude.<*> ( x+                            Data..?> "SourceNetworkInterfaceArns"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "TaskArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeTask where+  hashWithSalt _salt DescribeTask' {..} =+    _salt `Prelude.hashWithSalt` taskArn++instance Prelude.NFData DescribeTask where+  rnf DescribeTask' {..} = Prelude.rnf taskArn++instance Data.ToHeaders DescribeTask where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.DescribeTask" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeTask where+  toJSON DescribeTask' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("TaskArn" Data..= taskArn)]+      )++instance Data.ToPath DescribeTask where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeTask where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeTaskResponse+--+-- /See:/ 'newDescribeTaskResponse' smart constructor.+data DescribeTaskResponse = DescribeTaskResponse'+  { -- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that+    -- was used to monitor and log events in the task.+    --+    -- For more information on these groups, see Working with Log Groups and+    -- Log Streams in the /Amazon CloudWatch User Guide/.+    cloudWatchLogGroupArn :: Prelude.Maybe Prelude.Text,+    -- | The time that the task was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the task execution that is+    -- transferring files.+    currentTaskExecutionArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Amazon Web Services storage+    -- resource\'s location.+    destinationLocationArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Names (ARNs) of the network interfaces created for+    -- your destination location. For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces Network interface requirements>.+    destinationNetworkInterfaceArns :: Prelude.Maybe [Prelude.Text],+    -- | Errors that DataSync encountered during execution of the task. You can+    -- use this error code to help troubleshoot issues.+    errorCode :: Prelude.Maybe Prelude.Text,+    -- | Detailed description of an error that was encountered during the task+    -- execution. You can use this information to help troubleshoot issues.+    errorDetail :: Prelude.Maybe Prelude.Text,+    -- | A list of filter rules that exclude specific data during your transfer.+    -- For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    excludes :: Prelude.Maybe [FilterRule],+    -- | A list of filter rules that include specific data during your transfer.+    -- For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    includes :: Prelude.Maybe [FilterRule],+    -- | The name of the task that was described.+    name :: Prelude.Maybe Prelude.Text,+    -- | The configuration options that control the behavior of the+    -- @StartTaskExecution@ operation. Some options include preserving file or+    -- object metadata and verifying data integrity.+    --+    -- You can override these options for each task execution. For more+    -- information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html StartTaskExecution>.+    options :: Prelude.Maybe Options,+    -- | The schedule used to periodically transfer files from a source to a+    -- destination location.+    schedule :: Prelude.Maybe TaskSchedule,+    -- | The Amazon Resource Name (ARN) of the source file system\'s location.+    sourceLocationArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Names (ARNs) of the network interfaces created for+    -- your source location. For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces Network interface requirements>.+    sourceNetworkInterfaceArns :: Prelude.Maybe [Prelude.Text],+    -- | The status of the task that was described.+    --+    -- For detailed information about task execution statuses, see+    -- Understanding Task Statuses in the /DataSync User Guide/.+    status :: Prelude.Maybe TaskStatus,+    -- | The Amazon Resource Name (ARN) of the task that was described.+    taskArn :: 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 'DescribeTaskResponse' 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:+--+-- 'cloudWatchLogGroupArn', 'describeTaskResponse_cloudWatchLogGroupArn' - The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that+-- was used to monitor and log events in the task.+--+-- For more information on these groups, see Working with Log Groups and+-- Log Streams in the /Amazon CloudWatch User Guide/.+--+-- 'creationTime', 'describeTaskResponse_creationTime' - The time that the task was created.+--+-- 'currentTaskExecutionArn', 'describeTaskResponse_currentTaskExecutionArn' - The Amazon Resource Name (ARN) of the task execution that is+-- transferring files.+--+-- 'destinationLocationArn', 'describeTaskResponse_destinationLocationArn' - The Amazon Resource Name (ARN) of the Amazon Web Services storage+-- resource\'s location.+--+-- 'destinationNetworkInterfaceArns', 'describeTaskResponse_destinationNetworkInterfaceArns' - The Amazon Resource Names (ARNs) of the network interfaces created for+-- your destination location. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces Network interface requirements>.+--+-- 'errorCode', 'describeTaskResponse_errorCode' - Errors that DataSync encountered during execution of the task. You can+-- use this error code to help troubleshoot issues.+--+-- 'errorDetail', 'describeTaskResponse_errorDetail' - Detailed description of an error that was encountered during the task+-- execution. You can use this information to help troubleshoot issues.+--+-- 'excludes', 'describeTaskResponse_excludes' - A list of filter rules that exclude specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'includes', 'describeTaskResponse_includes' - A list of filter rules that include specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'name', 'describeTaskResponse_name' - The name of the task that was described.+--+-- 'options', 'describeTaskResponse_options' - The configuration options that control the behavior of the+-- @StartTaskExecution@ operation. Some options include preserving file or+-- object metadata and verifying data integrity.+--+-- You can override these options for each task execution. For more+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html StartTaskExecution>.+--+-- 'schedule', 'describeTaskResponse_schedule' - The schedule used to periodically transfer files from a source to a+-- destination location.+--+-- 'sourceLocationArn', 'describeTaskResponse_sourceLocationArn' - The Amazon Resource Name (ARN) of the source file system\'s location.+--+-- 'sourceNetworkInterfaceArns', 'describeTaskResponse_sourceNetworkInterfaceArns' - The Amazon Resource Names (ARNs) of the network interfaces created for+-- your source location. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces Network interface requirements>.+--+-- 'status', 'describeTaskResponse_status' - The status of the task that was described.+--+-- For detailed information about task execution statuses, see+-- Understanding Task Statuses in the /DataSync User Guide/.+--+-- 'taskArn', 'describeTaskResponse_taskArn' - The Amazon Resource Name (ARN) of the task that was described.+--+-- 'httpStatus', 'describeTaskResponse_httpStatus' - The response's http status code.+newDescribeTaskResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeTaskResponse+newDescribeTaskResponse pHttpStatus_ =+  DescribeTaskResponse'+    { cloudWatchLogGroupArn =+        Prelude.Nothing,+      creationTime = Prelude.Nothing,+      currentTaskExecutionArn = Prelude.Nothing,+      destinationLocationArn = Prelude.Nothing,+      destinationNetworkInterfaceArns = Prelude.Nothing,+      errorCode = Prelude.Nothing,+      errorDetail = Prelude.Nothing,+      excludes = Prelude.Nothing,+      includes = Prelude.Nothing,+      name = Prelude.Nothing,+      options = Prelude.Nothing,+      schedule = Prelude.Nothing,+      sourceLocationArn = Prelude.Nothing,+      sourceNetworkInterfaceArns = Prelude.Nothing,+      status = Prelude.Nothing,+      taskArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that+-- was used to monitor and log events in the task.+--+-- For more information on these groups, see Working with Log Groups and+-- Log Streams in the /Amazon CloudWatch User Guide/.+describeTaskResponse_cloudWatchLogGroupArn :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_cloudWatchLogGroupArn = Lens.lens (\DescribeTaskResponse' {cloudWatchLogGroupArn} -> cloudWatchLogGroupArn) (\s@DescribeTaskResponse' {} a -> s {cloudWatchLogGroupArn = a} :: DescribeTaskResponse)++-- | The time that the task was created.+describeTaskResponse_creationTime :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.UTCTime)+describeTaskResponse_creationTime = Lens.lens (\DescribeTaskResponse' {creationTime} -> creationTime) (\s@DescribeTaskResponse' {} a -> s {creationTime = a} :: DescribeTaskResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the task execution that is+-- transferring files.+describeTaskResponse_currentTaskExecutionArn :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_currentTaskExecutionArn = Lens.lens (\DescribeTaskResponse' {currentTaskExecutionArn} -> currentTaskExecutionArn) (\s@DescribeTaskResponse' {} a -> s {currentTaskExecutionArn = a} :: DescribeTaskResponse)++-- | The Amazon Resource Name (ARN) of the Amazon Web Services storage+-- resource\'s location.+describeTaskResponse_destinationLocationArn :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_destinationLocationArn = Lens.lens (\DescribeTaskResponse' {destinationLocationArn} -> destinationLocationArn) (\s@DescribeTaskResponse' {} a -> s {destinationLocationArn = a} :: DescribeTaskResponse)++-- | The Amazon Resource Names (ARNs) of the network interfaces created for+-- your destination location. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces Network interface requirements>.+describeTaskResponse_destinationNetworkInterfaceArns :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe [Prelude.Text])+describeTaskResponse_destinationNetworkInterfaceArns = Lens.lens (\DescribeTaskResponse' {destinationNetworkInterfaceArns} -> destinationNetworkInterfaceArns) (\s@DescribeTaskResponse' {} a -> s {destinationNetworkInterfaceArns = a} :: DescribeTaskResponse) Prelude.. Lens.mapping Lens.coerced++-- | Errors that DataSync encountered during execution of the task. You can+-- use this error code to help troubleshoot issues.+describeTaskResponse_errorCode :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_errorCode = Lens.lens (\DescribeTaskResponse' {errorCode} -> errorCode) (\s@DescribeTaskResponse' {} a -> s {errorCode = a} :: DescribeTaskResponse)++-- | Detailed description of an error that was encountered during the task+-- execution. You can use this information to help troubleshoot issues.+describeTaskResponse_errorDetail :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_errorDetail = Lens.lens (\DescribeTaskResponse' {errorDetail} -> errorDetail) (\s@DescribeTaskResponse' {} a -> s {errorDetail = a} :: DescribeTaskResponse)++-- | A list of filter rules that exclude specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+describeTaskResponse_excludes :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe [FilterRule])+describeTaskResponse_excludes = Lens.lens (\DescribeTaskResponse' {excludes} -> excludes) (\s@DescribeTaskResponse' {} a -> s {excludes = a} :: DescribeTaskResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of filter rules that include specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+describeTaskResponse_includes :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe [FilterRule])+describeTaskResponse_includes = Lens.lens (\DescribeTaskResponse' {includes} -> includes) (\s@DescribeTaskResponse' {} a -> s {includes = a} :: DescribeTaskResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the task that was described.+describeTaskResponse_name :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_name = Lens.lens (\DescribeTaskResponse' {name} -> name) (\s@DescribeTaskResponse' {} a -> s {name = a} :: DescribeTaskResponse)++-- | The configuration options that control the behavior of the+-- @StartTaskExecution@ operation. Some options include preserving file or+-- object metadata and verifying data integrity.+--+-- You can override these options for each task execution. For more+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_StartTaskExecution.html StartTaskExecution>.+describeTaskResponse_options :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Options)+describeTaskResponse_options = Lens.lens (\DescribeTaskResponse' {options} -> options) (\s@DescribeTaskResponse' {} a -> s {options = a} :: DescribeTaskResponse)++-- | The schedule used to periodically transfer files from a source to a+-- destination location.+describeTaskResponse_schedule :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe TaskSchedule)+describeTaskResponse_schedule = Lens.lens (\DescribeTaskResponse' {schedule} -> schedule) (\s@DescribeTaskResponse' {} a -> s {schedule = a} :: DescribeTaskResponse)++-- | The Amazon Resource Name (ARN) of the source file system\'s location.+describeTaskResponse_sourceLocationArn :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_sourceLocationArn = Lens.lens (\DescribeTaskResponse' {sourceLocationArn} -> sourceLocationArn) (\s@DescribeTaskResponse' {} a -> s {sourceLocationArn = a} :: DescribeTaskResponse)++-- | The Amazon Resource Names (ARNs) of the network interfaces created for+-- your source location. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces Network interface requirements>.+describeTaskResponse_sourceNetworkInterfaceArns :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe [Prelude.Text])+describeTaskResponse_sourceNetworkInterfaceArns = Lens.lens (\DescribeTaskResponse' {sourceNetworkInterfaceArns} -> sourceNetworkInterfaceArns) (\s@DescribeTaskResponse' {} a -> s {sourceNetworkInterfaceArns = a} :: DescribeTaskResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of the task that was described.+--+-- For detailed information about task execution statuses, see+-- Understanding Task Statuses in the /DataSync User Guide/.+describeTaskResponse_status :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe TaskStatus)+describeTaskResponse_status = Lens.lens (\DescribeTaskResponse' {status} -> status) (\s@DescribeTaskResponse' {} a -> s {status = a} :: DescribeTaskResponse)++-- | The Amazon Resource Name (ARN) of the task that was described.+describeTaskResponse_taskArn :: Lens.Lens' DescribeTaskResponse (Prelude.Maybe Prelude.Text)+describeTaskResponse_taskArn = Lens.lens (\DescribeTaskResponse' {taskArn} -> taskArn) (\s@DescribeTaskResponse' {} a -> s {taskArn = a} :: DescribeTaskResponse)++-- | The response's http status code.+describeTaskResponse_httpStatus :: Lens.Lens' DescribeTaskResponse Prelude.Int+describeTaskResponse_httpStatus = Lens.lens (\DescribeTaskResponse' {httpStatus} -> httpStatus) (\s@DescribeTaskResponse' {} a -> s {httpStatus = a} :: DescribeTaskResponse)++instance Prelude.NFData DescribeTaskResponse where+  rnf DescribeTaskResponse' {..} =+    Prelude.rnf cloudWatchLogGroupArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf currentTaskExecutionArn+      `Prelude.seq` Prelude.rnf destinationLocationArn+      `Prelude.seq` Prelude.rnf destinationNetworkInterfaceArns+      `Prelude.seq` Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorDetail+      `Prelude.seq` Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf options+      `Prelude.seq` Prelude.rnf schedule+      `Prelude.seq` Prelude.rnf sourceLocationArn+      `Prelude.seq` Prelude.rnf sourceNetworkInterfaceArns+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf taskArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/DescribeTaskExecution.hs view
@@ -0,0 +1,420 @@+{-# 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.DataSync.DescribeTaskExecution+-- 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 detailed metadata about a task that is being executed.+module Amazonka.DataSync.DescribeTaskExecution+  ( -- * Creating a Request+    DescribeTaskExecution (..),+    newDescribeTaskExecution,++    -- * Request Lenses+    describeTaskExecution_taskExecutionArn,++    -- * Destructuring the Response+    DescribeTaskExecutionResponse (..),+    newDescribeTaskExecutionResponse,++    -- * Response Lenses+    describeTaskExecutionResponse_bytesCompressed,+    describeTaskExecutionResponse_bytesTransferred,+    describeTaskExecutionResponse_bytesWritten,+    describeTaskExecutionResponse_estimatedBytesToTransfer,+    describeTaskExecutionResponse_estimatedFilesToTransfer,+    describeTaskExecutionResponse_excludes,+    describeTaskExecutionResponse_filesTransferred,+    describeTaskExecutionResponse_includes,+    describeTaskExecutionResponse_options,+    describeTaskExecutionResponse_result,+    describeTaskExecutionResponse_startTime,+    describeTaskExecutionResponse_status,+    describeTaskExecutionResponse_taskExecutionArn,+    describeTaskExecutionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | DescribeTaskExecutionRequest+--+-- /See:/ 'newDescribeTaskExecution' smart constructor.+data DescribeTaskExecution = DescribeTaskExecution'+  { -- | The Amazon Resource Name (ARN) of the task that is being executed.+    taskExecutionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeTaskExecution' 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:+--+-- 'taskExecutionArn', 'describeTaskExecution_taskExecutionArn' - The Amazon Resource Name (ARN) of the task that is being executed.+newDescribeTaskExecution ::+  -- | 'taskExecutionArn'+  Prelude.Text ->+  DescribeTaskExecution+newDescribeTaskExecution pTaskExecutionArn_ =+  DescribeTaskExecution'+    { taskExecutionArn =+        pTaskExecutionArn_+    }++-- | The Amazon Resource Name (ARN) of the task that is being executed.+describeTaskExecution_taskExecutionArn :: Lens.Lens' DescribeTaskExecution Prelude.Text+describeTaskExecution_taskExecutionArn = Lens.lens (\DescribeTaskExecution' {taskExecutionArn} -> taskExecutionArn) (\s@DescribeTaskExecution' {} a -> s {taskExecutionArn = a} :: DescribeTaskExecution)++instance Core.AWSRequest DescribeTaskExecution where+  type+    AWSResponse DescribeTaskExecution =+      DescribeTaskExecutionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeTaskExecutionResponse'+            Prelude.<$> (x Data..?> "BytesCompressed")+            Prelude.<*> (x Data..?> "BytesTransferred")+            Prelude.<*> (x Data..?> "BytesWritten")+            Prelude.<*> (x Data..?> "EstimatedBytesToTransfer")+            Prelude.<*> (x Data..?> "EstimatedFilesToTransfer")+            Prelude.<*> (x Data..?> "Excludes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "FilesTransferred")+            Prelude.<*> (x Data..?> "Includes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "Options")+            Prelude.<*> (x Data..?> "Result")+            Prelude.<*> (x Data..?> "StartTime")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "TaskExecutionArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeTaskExecution where+  hashWithSalt _salt DescribeTaskExecution' {..} =+    _salt `Prelude.hashWithSalt` taskExecutionArn++instance Prelude.NFData DescribeTaskExecution where+  rnf DescribeTaskExecution' {..} =+    Prelude.rnf taskExecutionArn++instance Data.ToHeaders DescribeTaskExecution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.DescribeTaskExecution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeTaskExecution where+  toJSON DescribeTaskExecution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("TaskExecutionArn" Data..= taskExecutionArn)+          ]+      )++instance Data.ToPath DescribeTaskExecution where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeTaskExecution where+  toQuery = Prelude.const Prelude.mempty++-- | DescribeTaskExecutionResponse+--+-- /See:/ 'newDescribeTaskExecutionResponse' smart constructor.+data DescribeTaskExecutionResponse = DescribeTaskExecutionResponse'+  { -- | The physical number of bytes transferred over the network after+    -- compression was applied. In most cases, this number is less than+    -- @BytesTransferred@ unless the data isn\'t compressible.+    bytesCompressed :: Prelude.Maybe Prelude.Integer,+    -- | The total number of bytes that are involved in the transfer. For the+    -- number of bytes sent over the network, see @BytesCompressed@.+    bytesTransferred :: Prelude.Maybe Prelude.Integer,+    -- | The number of logical bytes written to the destination Amazon Web+    -- Services storage resource.+    bytesWritten :: Prelude.Maybe Prelude.Integer,+    -- | The estimated physical number of bytes that is to be transferred over+    -- the network.+    estimatedBytesToTransfer :: Prelude.Maybe Prelude.Integer,+    -- | The expected number of files that is to be transferred over the network.+    -- This value is calculated during the @PREPARING@ phase before the+    -- @TRANSFERRING@ phase of the task execution. This value is the expected+    -- number of files to be transferred. It\'s calculated based on comparing+    -- the content of the source and destination locations and finding the+    -- delta that needs to be transferred.+    estimatedFilesToTransfer :: Prelude.Maybe Prelude.Integer,+    -- | A list of filter rules that exclude specific data during your transfer.+    -- For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    excludes :: Prelude.Maybe [FilterRule],+    -- | The actual number of files that was transferred over the network. This+    -- value is calculated and updated on an ongoing basis during the+    -- @TRANSFERRING@ phase of the task execution. It\'s updated periodically+    -- when each file is read from the source and sent over the network.+    --+    -- If failures occur during a transfer, this value can be less than+    -- @EstimatedFilesToTransfer@. In some cases, this value can also be+    -- greater than @EstimatedFilesToTransfer@. This element is+    -- implementation-specific for some location types, so don\'t use it as an+    -- indicator for a correct file number or to monitor your task execution.+    filesTransferred :: Prelude.Maybe Prelude.Integer,+    -- | A list of filter rules that include specific data during your transfer.+    -- For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    includes :: Prelude.Maybe [FilterRule],+    options :: Prelude.Maybe Options,+    -- | The result of the task execution.+    result :: Prelude.Maybe TaskExecutionResultDetail,+    -- | The time that the task execution was started.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the task execution.+    --+    -- For detailed information about task execution statuses, see+    -- Understanding Task Statuses in the /DataSync User Guide./+    status :: Prelude.Maybe TaskExecutionStatus,+    -- | The Amazon Resource Name (ARN) of the task execution that was described.+    -- @TaskExecutionArn@ is hierarchical and includes @TaskArn@ for the task+    -- that was executed.+    --+    -- For example, a @TaskExecution@ value with the ARN+    -- @arn:aws:datasync:us-east-1:111222333444:task\/task-0208075f79cedf4a2\/execution\/exec-08ef1e88ec491019b@+    -- executed the task with the ARN+    -- @arn:aws:datasync:us-east-1:111222333444:task\/task-0208075f79cedf4a2@.+    taskExecutionArn :: 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 'DescribeTaskExecutionResponse' 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:+--+-- 'bytesCompressed', 'describeTaskExecutionResponse_bytesCompressed' - The physical number of bytes transferred over the network after+-- compression was applied. In most cases, this number is less than+-- @BytesTransferred@ unless the data isn\'t compressible.+--+-- 'bytesTransferred', 'describeTaskExecutionResponse_bytesTransferred' - The total number of bytes that are involved in the transfer. For the+-- number of bytes sent over the network, see @BytesCompressed@.+--+-- 'bytesWritten', 'describeTaskExecutionResponse_bytesWritten' - The number of logical bytes written to the destination Amazon Web+-- Services storage resource.+--+-- 'estimatedBytesToTransfer', 'describeTaskExecutionResponse_estimatedBytesToTransfer' - The estimated physical number of bytes that is to be transferred over+-- the network.+--+-- 'estimatedFilesToTransfer', 'describeTaskExecutionResponse_estimatedFilesToTransfer' - The expected number of files that is to be transferred over the network.+-- This value is calculated during the @PREPARING@ phase before the+-- @TRANSFERRING@ phase of the task execution. This value is the expected+-- number of files to be transferred. It\'s calculated based on comparing+-- the content of the source and destination locations and finding the+-- delta that needs to be transferred.+--+-- 'excludes', 'describeTaskExecutionResponse_excludes' - A list of filter rules that exclude specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'filesTransferred', 'describeTaskExecutionResponse_filesTransferred' - The actual number of files that was transferred over the network. This+-- value is calculated and updated on an ongoing basis during the+-- @TRANSFERRING@ phase of the task execution. It\'s updated periodically+-- when each file is read from the source and sent over the network.+--+-- If failures occur during a transfer, this value can be less than+-- @EstimatedFilesToTransfer@. In some cases, this value can also be+-- greater than @EstimatedFilesToTransfer@. This element is+-- implementation-specific for some location types, so don\'t use it as an+-- indicator for a correct file number or to monitor your task execution.+--+-- 'includes', 'describeTaskExecutionResponse_includes' - A list of filter rules that include specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'options', 'describeTaskExecutionResponse_options' - Undocumented member.+--+-- 'result', 'describeTaskExecutionResponse_result' - The result of the task execution.+--+-- 'startTime', 'describeTaskExecutionResponse_startTime' - The time that the task execution was started.+--+-- 'status', 'describeTaskExecutionResponse_status' - The status of the task execution.+--+-- For detailed information about task execution statuses, see+-- Understanding Task Statuses in the /DataSync User Guide./+--+-- 'taskExecutionArn', 'describeTaskExecutionResponse_taskExecutionArn' - The Amazon Resource Name (ARN) of the task execution that was described.+-- @TaskExecutionArn@ is hierarchical and includes @TaskArn@ for the task+-- that was executed.+--+-- For example, a @TaskExecution@ value with the ARN+-- @arn:aws:datasync:us-east-1:111222333444:task\/task-0208075f79cedf4a2\/execution\/exec-08ef1e88ec491019b@+-- executed the task with the ARN+-- @arn:aws:datasync:us-east-1:111222333444:task\/task-0208075f79cedf4a2@.+--+-- 'httpStatus', 'describeTaskExecutionResponse_httpStatus' - The response's http status code.+newDescribeTaskExecutionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeTaskExecutionResponse+newDescribeTaskExecutionResponse pHttpStatus_ =+  DescribeTaskExecutionResponse'+    { bytesCompressed =+        Prelude.Nothing,+      bytesTransferred = Prelude.Nothing,+      bytesWritten = Prelude.Nothing,+      estimatedBytesToTransfer = Prelude.Nothing,+      estimatedFilesToTransfer = Prelude.Nothing,+      excludes = Prelude.Nothing,+      filesTransferred = Prelude.Nothing,+      includes = Prelude.Nothing,+      options = Prelude.Nothing,+      result = Prelude.Nothing,+      startTime = Prelude.Nothing,+      status = Prelude.Nothing,+      taskExecutionArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The physical number of bytes transferred over the network after+-- compression was applied. In most cases, this number is less than+-- @BytesTransferred@ unless the data isn\'t compressible.+describeTaskExecutionResponse_bytesCompressed :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.Integer)+describeTaskExecutionResponse_bytesCompressed = Lens.lens (\DescribeTaskExecutionResponse' {bytesCompressed} -> bytesCompressed) (\s@DescribeTaskExecutionResponse' {} a -> s {bytesCompressed = a} :: DescribeTaskExecutionResponse)++-- | The total number of bytes that are involved in the transfer. For the+-- number of bytes sent over the network, see @BytesCompressed@.+describeTaskExecutionResponse_bytesTransferred :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.Integer)+describeTaskExecutionResponse_bytesTransferred = Lens.lens (\DescribeTaskExecutionResponse' {bytesTransferred} -> bytesTransferred) (\s@DescribeTaskExecutionResponse' {} a -> s {bytesTransferred = a} :: DescribeTaskExecutionResponse)++-- | The number of logical bytes written to the destination Amazon Web+-- Services storage resource.+describeTaskExecutionResponse_bytesWritten :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.Integer)+describeTaskExecutionResponse_bytesWritten = Lens.lens (\DescribeTaskExecutionResponse' {bytesWritten} -> bytesWritten) (\s@DescribeTaskExecutionResponse' {} a -> s {bytesWritten = a} :: DescribeTaskExecutionResponse)++-- | The estimated physical number of bytes that is to be transferred over+-- the network.+describeTaskExecutionResponse_estimatedBytesToTransfer :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.Integer)+describeTaskExecutionResponse_estimatedBytesToTransfer = Lens.lens (\DescribeTaskExecutionResponse' {estimatedBytesToTransfer} -> estimatedBytesToTransfer) (\s@DescribeTaskExecutionResponse' {} a -> s {estimatedBytesToTransfer = a} :: DescribeTaskExecutionResponse)++-- | The expected number of files that is to be transferred over the network.+-- This value is calculated during the @PREPARING@ phase before the+-- @TRANSFERRING@ phase of the task execution. This value is the expected+-- number of files to be transferred. It\'s calculated based on comparing+-- the content of the source and destination locations and finding the+-- delta that needs to be transferred.+describeTaskExecutionResponse_estimatedFilesToTransfer :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.Integer)+describeTaskExecutionResponse_estimatedFilesToTransfer = Lens.lens (\DescribeTaskExecutionResponse' {estimatedFilesToTransfer} -> estimatedFilesToTransfer) (\s@DescribeTaskExecutionResponse' {} a -> s {estimatedFilesToTransfer = a} :: DescribeTaskExecutionResponse)++-- | A list of filter rules that exclude specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+describeTaskExecutionResponse_excludes :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe [FilterRule])+describeTaskExecutionResponse_excludes = Lens.lens (\DescribeTaskExecutionResponse' {excludes} -> excludes) (\s@DescribeTaskExecutionResponse' {} a -> s {excludes = a} :: DescribeTaskExecutionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The actual number of files that was transferred over the network. This+-- value is calculated and updated on an ongoing basis during the+-- @TRANSFERRING@ phase of the task execution. It\'s updated periodically+-- when each file is read from the source and sent over the network.+--+-- If failures occur during a transfer, this value can be less than+-- @EstimatedFilesToTransfer@. In some cases, this value can also be+-- greater than @EstimatedFilesToTransfer@. This element is+-- implementation-specific for some location types, so don\'t use it as an+-- indicator for a correct file number or to monitor your task execution.+describeTaskExecutionResponse_filesTransferred :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.Integer)+describeTaskExecutionResponse_filesTransferred = Lens.lens (\DescribeTaskExecutionResponse' {filesTransferred} -> filesTransferred) (\s@DescribeTaskExecutionResponse' {} a -> s {filesTransferred = a} :: DescribeTaskExecutionResponse)++-- | A list of filter rules that include specific data during your transfer.+-- For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+describeTaskExecutionResponse_includes :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe [FilterRule])+describeTaskExecutionResponse_includes = Lens.lens (\DescribeTaskExecutionResponse' {includes} -> includes) (\s@DescribeTaskExecutionResponse' {} a -> s {includes = a} :: DescribeTaskExecutionResponse) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+describeTaskExecutionResponse_options :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Options)+describeTaskExecutionResponse_options = Lens.lens (\DescribeTaskExecutionResponse' {options} -> options) (\s@DescribeTaskExecutionResponse' {} a -> s {options = a} :: DescribeTaskExecutionResponse)++-- | The result of the task execution.+describeTaskExecutionResponse_result :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe TaskExecutionResultDetail)+describeTaskExecutionResponse_result = Lens.lens (\DescribeTaskExecutionResponse' {result} -> result) (\s@DescribeTaskExecutionResponse' {} a -> s {result = a} :: DescribeTaskExecutionResponse)++-- | The time that the task execution was started.+describeTaskExecutionResponse_startTime :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.UTCTime)+describeTaskExecutionResponse_startTime = Lens.lens (\DescribeTaskExecutionResponse' {startTime} -> startTime) (\s@DescribeTaskExecutionResponse' {} a -> s {startTime = a} :: DescribeTaskExecutionResponse) Prelude.. Lens.mapping Data._Time++-- | The status of the task execution.+--+-- For detailed information about task execution statuses, see+-- Understanding Task Statuses in the /DataSync User Guide./+describeTaskExecutionResponse_status :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe TaskExecutionStatus)+describeTaskExecutionResponse_status = Lens.lens (\DescribeTaskExecutionResponse' {status} -> status) (\s@DescribeTaskExecutionResponse' {} a -> s {status = a} :: DescribeTaskExecutionResponse)++-- | The Amazon Resource Name (ARN) of the task execution that was described.+-- @TaskExecutionArn@ is hierarchical and includes @TaskArn@ for the task+-- that was executed.+--+-- For example, a @TaskExecution@ value with the ARN+-- @arn:aws:datasync:us-east-1:111222333444:task\/task-0208075f79cedf4a2\/execution\/exec-08ef1e88ec491019b@+-- executed the task with the ARN+-- @arn:aws:datasync:us-east-1:111222333444:task\/task-0208075f79cedf4a2@.+describeTaskExecutionResponse_taskExecutionArn :: Lens.Lens' DescribeTaskExecutionResponse (Prelude.Maybe Prelude.Text)+describeTaskExecutionResponse_taskExecutionArn = Lens.lens (\DescribeTaskExecutionResponse' {taskExecutionArn} -> taskExecutionArn) (\s@DescribeTaskExecutionResponse' {} a -> s {taskExecutionArn = a} :: DescribeTaskExecutionResponse)++-- | The response's http status code.+describeTaskExecutionResponse_httpStatus :: Lens.Lens' DescribeTaskExecutionResponse Prelude.Int+describeTaskExecutionResponse_httpStatus = Lens.lens (\DescribeTaskExecutionResponse' {httpStatus} -> httpStatus) (\s@DescribeTaskExecutionResponse' {} a -> s {httpStatus = a} :: DescribeTaskExecutionResponse)++instance Prelude.NFData DescribeTaskExecutionResponse where+  rnf DescribeTaskExecutionResponse' {..} =+    Prelude.rnf bytesCompressed+      `Prelude.seq` Prelude.rnf bytesTransferred+      `Prelude.seq` Prelude.rnf bytesWritten+      `Prelude.seq` Prelude.rnf estimatedBytesToTransfer+      `Prelude.seq` Prelude.rnf estimatedFilesToTransfer+      `Prelude.seq` Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf filesTransferred+      `Prelude.seq` Prelude.rnf includes+      `Prelude.seq` Prelude.rnf options+      `Prelude.seq` Prelude.rnf result+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf taskExecutionArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/Lens.hs view
@@ -0,0 +1,622 @@+{-# 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.DataSync.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.DataSync.Lens+  ( -- * Operations++    -- ** CancelTaskExecution+    cancelTaskExecution_taskExecutionArn,+    cancelTaskExecutionResponse_httpStatus,++    -- ** CreateAgent+    createAgent_agentName,+    createAgent_securityGroupArns,+    createAgent_subnetArns,+    createAgent_tags,+    createAgent_vpcEndpointId,+    createAgent_activationKey,+    createAgentResponse_agentArn,+    createAgentResponse_httpStatus,++    -- ** CreateLocationEfs+    createLocationEfs_accessPointArn,+    createLocationEfs_fileSystemAccessRoleArn,+    createLocationEfs_inTransitEncryption,+    createLocationEfs_subdirectory,+    createLocationEfs_tags,+    createLocationEfs_efsFilesystemArn,+    createLocationEfs_ec2Config,+    createLocationEfsResponse_locationArn,+    createLocationEfsResponse_httpStatus,++    -- ** CreateLocationFsxLustre+    createLocationFsxLustre_subdirectory,+    createLocationFsxLustre_tags,+    createLocationFsxLustre_fsxFilesystemArn,+    createLocationFsxLustre_securityGroupArns,+    createLocationFsxLustreResponse_locationArn,+    createLocationFsxLustreResponse_httpStatus,++    -- ** CreateLocationFsxOntap+    createLocationFsxOntap_subdirectory,+    createLocationFsxOntap_tags,+    createLocationFsxOntap_protocol,+    createLocationFsxOntap_securityGroupArns,+    createLocationFsxOntap_storageVirtualMachineArn,+    createLocationFsxOntapResponse_locationArn,+    createLocationFsxOntapResponse_httpStatus,++    -- ** CreateLocationFsxOpenZfs+    createLocationFsxOpenZfs_subdirectory,+    createLocationFsxOpenZfs_tags,+    createLocationFsxOpenZfs_fsxFilesystemArn,+    createLocationFsxOpenZfs_protocol,+    createLocationFsxOpenZfs_securityGroupArns,+    createLocationFsxOpenZfsResponse_locationArn,+    createLocationFsxOpenZfsResponse_httpStatus,++    -- ** CreateLocationFsxWindows+    createLocationFsxWindows_domain,+    createLocationFsxWindows_subdirectory,+    createLocationFsxWindows_tags,+    createLocationFsxWindows_fsxFilesystemArn,+    createLocationFsxWindows_securityGroupArns,+    createLocationFsxWindows_user,+    createLocationFsxWindows_password,+    createLocationFsxWindowsResponse_locationArn,+    createLocationFsxWindowsResponse_httpStatus,++    -- ** CreateLocationHdfs+    createLocationHdfs_blockSize,+    createLocationHdfs_kerberosKeytab,+    createLocationHdfs_kerberosKrb5Conf,+    createLocationHdfs_kerberosPrincipal,+    createLocationHdfs_kmsKeyProviderUri,+    createLocationHdfs_qopConfiguration,+    createLocationHdfs_replicationFactor,+    createLocationHdfs_simpleUser,+    createLocationHdfs_subdirectory,+    createLocationHdfs_tags,+    createLocationHdfs_nameNodes,+    createLocationHdfs_authenticationType,+    createLocationHdfs_agentArns,+    createLocationHdfsResponse_locationArn,+    createLocationHdfsResponse_httpStatus,++    -- ** CreateLocationNfs+    createLocationNfs_mountOptions,+    createLocationNfs_tags,+    createLocationNfs_subdirectory,+    createLocationNfs_serverHostname,+    createLocationNfs_onPremConfig,+    createLocationNfsResponse_locationArn,+    createLocationNfsResponse_httpStatus,++    -- ** CreateLocationObjectStorage+    createLocationObjectStorage_accessKey,+    createLocationObjectStorage_secretKey,+    createLocationObjectStorage_serverCertificate,+    createLocationObjectStorage_serverPort,+    createLocationObjectStorage_serverProtocol,+    createLocationObjectStorage_subdirectory,+    createLocationObjectStorage_tags,+    createLocationObjectStorage_serverHostname,+    createLocationObjectStorage_bucketName,+    createLocationObjectStorage_agentArns,+    createLocationObjectStorageResponse_locationArn,+    createLocationObjectStorageResponse_httpStatus,++    -- ** CreateLocationS3+    createLocationS3_agentArns,+    createLocationS3_s3StorageClass,+    createLocationS3_subdirectory,+    createLocationS3_tags,+    createLocationS3_s3BucketArn,+    createLocationS3_s3Config,+    createLocationS3Response_locationArn,+    createLocationS3Response_httpStatus,++    -- ** CreateLocationSmb+    createLocationSmb_domain,+    createLocationSmb_mountOptions,+    createLocationSmb_tags,+    createLocationSmb_subdirectory,+    createLocationSmb_serverHostname,+    createLocationSmb_user,+    createLocationSmb_password,+    createLocationSmb_agentArns,+    createLocationSmbResponse_locationArn,+    createLocationSmbResponse_httpStatus,++    -- ** CreateTask+    createTask_cloudWatchLogGroupArn,+    createTask_excludes,+    createTask_includes,+    createTask_name,+    createTask_options,+    createTask_schedule,+    createTask_tags,+    createTask_sourceLocationArn,+    createTask_destinationLocationArn,+    createTaskResponse_taskArn,+    createTaskResponse_httpStatus,++    -- ** DeleteAgent+    deleteAgent_agentArn,+    deleteAgentResponse_httpStatus,++    -- ** DeleteLocation+    deleteLocation_locationArn,+    deleteLocationResponse_httpStatus,++    -- ** DeleteTask+    deleteTask_taskArn,+    deleteTaskResponse_httpStatus,++    -- ** DescribeAgent+    describeAgent_agentArn,+    describeAgentResponse_agentArn,+    describeAgentResponse_creationTime,+    describeAgentResponse_endpointType,+    describeAgentResponse_lastConnectionTime,+    describeAgentResponse_name,+    describeAgentResponse_privateLinkConfig,+    describeAgentResponse_status,+    describeAgentResponse_httpStatus,++    -- ** DescribeLocationEfs+    describeLocationEfs_locationArn,+    describeLocationEfsResponse_accessPointArn,+    describeLocationEfsResponse_creationTime,+    describeLocationEfsResponse_ec2Config,+    describeLocationEfsResponse_fileSystemAccessRoleArn,+    describeLocationEfsResponse_inTransitEncryption,+    describeLocationEfsResponse_locationArn,+    describeLocationEfsResponse_locationUri,+    describeLocationEfsResponse_httpStatus,++    -- ** DescribeLocationFsxLustre+    describeLocationFsxLustre_locationArn,+    describeLocationFsxLustreResponse_creationTime,+    describeLocationFsxLustreResponse_locationArn,+    describeLocationFsxLustreResponse_locationUri,+    describeLocationFsxLustreResponse_securityGroupArns,+    describeLocationFsxLustreResponse_httpStatus,++    -- ** DescribeLocationFsxOntap+    describeLocationFsxOntap_locationArn,+    describeLocationFsxOntapResponse_creationTime,+    describeLocationFsxOntapResponse_fsxFilesystemArn,+    describeLocationFsxOntapResponse_locationArn,+    describeLocationFsxOntapResponse_locationUri,+    describeLocationFsxOntapResponse_protocol,+    describeLocationFsxOntapResponse_securityGroupArns,+    describeLocationFsxOntapResponse_storageVirtualMachineArn,+    describeLocationFsxOntapResponse_httpStatus,++    -- ** DescribeLocationFsxOpenZfs+    describeLocationFsxOpenZfs_locationArn,+    describeLocationFsxOpenZfsResponse_creationTime,+    describeLocationFsxOpenZfsResponse_locationArn,+    describeLocationFsxOpenZfsResponse_locationUri,+    describeLocationFsxOpenZfsResponse_protocol,+    describeLocationFsxOpenZfsResponse_securityGroupArns,+    describeLocationFsxOpenZfsResponse_httpStatus,++    -- ** DescribeLocationFsxWindows+    describeLocationFsxWindows_locationArn,+    describeLocationFsxWindowsResponse_creationTime,+    describeLocationFsxWindowsResponse_domain,+    describeLocationFsxWindowsResponse_locationArn,+    describeLocationFsxWindowsResponse_locationUri,+    describeLocationFsxWindowsResponse_securityGroupArns,+    describeLocationFsxWindowsResponse_user,+    describeLocationFsxWindowsResponse_httpStatus,++    -- ** DescribeLocationHdfs+    describeLocationHdfs_locationArn,+    describeLocationHdfsResponse_agentArns,+    describeLocationHdfsResponse_authenticationType,+    describeLocationHdfsResponse_blockSize,+    describeLocationHdfsResponse_creationTime,+    describeLocationHdfsResponse_kerberosPrincipal,+    describeLocationHdfsResponse_kmsKeyProviderUri,+    describeLocationHdfsResponse_locationArn,+    describeLocationHdfsResponse_locationUri,+    describeLocationHdfsResponse_nameNodes,+    describeLocationHdfsResponse_qopConfiguration,+    describeLocationHdfsResponse_replicationFactor,+    describeLocationHdfsResponse_simpleUser,+    describeLocationHdfsResponse_httpStatus,++    -- ** DescribeLocationNfs+    describeLocationNfs_locationArn,+    describeLocationNfsResponse_creationTime,+    describeLocationNfsResponse_locationArn,+    describeLocationNfsResponse_locationUri,+    describeLocationNfsResponse_mountOptions,+    describeLocationNfsResponse_onPremConfig,+    describeLocationNfsResponse_httpStatus,++    -- ** DescribeLocationObjectStorage+    describeLocationObjectStorage_locationArn,+    describeLocationObjectStorageResponse_accessKey,+    describeLocationObjectStorageResponse_agentArns,+    describeLocationObjectStorageResponse_creationTime,+    describeLocationObjectStorageResponse_locationArn,+    describeLocationObjectStorageResponse_locationUri,+    describeLocationObjectStorageResponse_serverCertificate,+    describeLocationObjectStorageResponse_serverPort,+    describeLocationObjectStorageResponse_serverProtocol,+    describeLocationObjectStorageResponse_httpStatus,++    -- ** DescribeLocationS3+    describeLocationS3_locationArn,+    describeLocationS3Response_agentArns,+    describeLocationS3Response_creationTime,+    describeLocationS3Response_locationArn,+    describeLocationS3Response_locationUri,+    describeLocationS3Response_s3Config,+    describeLocationS3Response_s3StorageClass,+    describeLocationS3Response_httpStatus,++    -- ** DescribeLocationSmb+    describeLocationSmb_locationArn,+    describeLocationSmbResponse_agentArns,+    describeLocationSmbResponse_creationTime,+    describeLocationSmbResponse_domain,+    describeLocationSmbResponse_locationArn,+    describeLocationSmbResponse_locationUri,+    describeLocationSmbResponse_mountOptions,+    describeLocationSmbResponse_user,+    describeLocationSmbResponse_httpStatus,++    -- ** DescribeTask+    describeTask_taskArn,+    describeTaskResponse_cloudWatchLogGroupArn,+    describeTaskResponse_creationTime,+    describeTaskResponse_currentTaskExecutionArn,+    describeTaskResponse_destinationLocationArn,+    describeTaskResponse_destinationNetworkInterfaceArns,+    describeTaskResponse_errorCode,+    describeTaskResponse_errorDetail,+    describeTaskResponse_excludes,+    describeTaskResponse_includes,+    describeTaskResponse_name,+    describeTaskResponse_options,+    describeTaskResponse_schedule,+    describeTaskResponse_sourceLocationArn,+    describeTaskResponse_sourceNetworkInterfaceArns,+    describeTaskResponse_status,+    describeTaskResponse_taskArn,+    describeTaskResponse_httpStatus,++    -- ** DescribeTaskExecution+    describeTaskExecution_taskExecutionArn,+    describeTaskExecutionResponse_bytesCompressed,+    describeTaskExecutionResponse_bytesTransferred,+    describeTaskExecutionResponse_bytesWritten,+    describeTaskExecutionResponse_estimatedBytesToTransfer,+    describeTaskExecutionResponse_estimatedFilesToTransfer,+    describeTaskExecutionResponse_excludes,+    describeTaskExecutionResponse_filesTransferred,+    describeTaskExecutionResponse_includes,+    describeTaskExecutionResponse_options,+    describeTaskExecutionResponse_result,+    describeTaskExecutionResponse_startTime,+    describeTaskExecutionResponse_status,+    describeTaskExecutionResponse_taskExecutionArn,+    describeTaskExecutionResponse_httpStatus,++    -- ** ListAgents+    listAgents_maxResults,+    listAgents_nextToken,+    listAgentsResponse_agents,+    listAgentsResponse_nextToken,+    listAgentsResponse_httpStatus,++    -- ** ListLocations+    listLocations_filters,+    listLocations_maxResults,+    listLocations_nextToken,+    listLocationsResponse_locations,+    listLocationsResponse_nextToken,+    listLocationsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_maxResults,+    listTagsForResource_nextToken,+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_nextToken,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListTaskExecutions+    listTaskExecutions_maxResults,+    listTaskExecutions_nextToken,+    listTaskExecutions_taskArn,+    listTaskExecutionsResponse_nextToken,+    listTaskExecutionsResponse_taskExecutions,+    listTaskExecutionsResponse_httpStatus,++    -- ** ListTasks+    listTasks_filters,+    listTasks_maxResults,+    listTasks_nextToken,+    listTasksResponse_nextToken,+    listTasksResponse_tasks,+    listTasksResponse_httpStatus,++    -- ** StartTaskExecution+    startTaskExecution_excludes,+    startTaskExecution_includes,+    startTaskExecution_overrideOptions,+    startTaskExecution_tags,+    startTaskExecution_taskArn,+    startTaskExecutionResponse_taskExecutionArn,+    startTaskExecutionResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_keys,+    untagResourceResponse_httpStatus,++    -- ** UpdateAgent+    updateAgent_name,+    updateAgent_agentArn,+    updateAgentResponse_httpStatus,++    -- ** UpdateLocationHdfs+    updateLocationHdfs_agentArns,+    updateLocationHdfs_authenticationType,+    updateLocationHdfs_blockSize,+    updateLocationHdfs_kerberosKeytab,+    updateLocationHdfs_kerberosKrb5Conf,+    updateLocationHdfs_kerberosPrincipal,+    updateLocationHdfs_kmsKeyProviderUri,+    updateLocationHdfs_nameNodes,+    updateLocationHdfs_qopConfiguration,+    updateLocationHdfs_replicationFactor,+    updateLocationHdfs_simpleUser,+    updateLocationHdfs_subdirectory,+    updateLocationHdfs_locationArn,+    updateLocationHdfsResponse_httpStatus,++    -- ** UpdateLocationNfs+    updateLocationNfs_mountOptions,+    updateLocationNfs_onPremConfig,+    updateLocationNfs_subdirectory,+    updateLocationNfs_locationArn,+    updateLocationNfsResponse_httpStatus,++    -- ** UpdateLocationObjectStorage+    updateLocationObjectStorage_accessKey,+    updateLocationObjectStorage_agentArns,+    updateLocationObjectStorage_secretKey,+    updateLocationObjectStorage_serverCertificate,+    updateLocationObjectStorage_serverPort,+    updateLocationObjectStorage_serverProtocol,+    updateLocationObjectStorage_subdirectory,+    updateLocationObjectStorage_locationArn,+    updateLocationObjectStorageResponse_httpStatus,++    -- ** UpdateLocationSmb+    updateLocationSmb_agentArns,+    updateLocationSmb_domain,+    updateLocationSmb_mountOptions,+    updateLocationSmb_password,+    updateLocationSmb_subdirectory,+    updateLocationSmb_user,+    updateLocationSmb_locationArn,+    updateLocationSmbResponse_httpStatus,++    -- ** UpdateTask+    updateTask_cloudWatchLogGroupArn,+    updateTask_excludes,+    updateTask_includes,+    updateTask_name,+    updateTask_options,+    updateTask_schedule,+    updateTask_taskArn,+    updateTaskResponse_httpStatus,++    -- ** UpdateTaskExecution+    updateTaskExecution_taskExecutionArn,+    updateTaskExecution_options,+    updateTaskExecutionResponse_httpStatus,++    -- * Types++    -- ** AgentListEntry+    agentListEntry_agentArn,+    agentListEntry_name,+    agentListEntry_status,++    -- ** Ec2Config+    ec2Config_subnetArn,+    ec2Config_securityGroupArns,++    -- ** FilterRule+    filterRule_filterType,+    filterRule_value,++    -- ** FsxProtocol+    fsxProtocol_nfs,+    fsxProtocol_smb,++    -- ** FsxProtocolNfs+    fsxProtocolNfs_mountOptions,++    -- ** FsxProtocolSmb+    fsxProtocolSmb_domain,+    fsxProtocolSmb_mountOptions,+    fsxProtocolSmb_password,+    fsxProtocolSmb_user,++    -- ** HdfsNameNode+    hdfsNameNode_hostname,+    hdfsNameNode_port,++    -- ** LocationFilter+    locationFilter_name,+    locationFilter_values,+    locationFilter_operator,++    -- ** LocationListEntry+    locationListEntry_locationArn,+    locationListEntry_locationUri,++    -- ** NfsMountOptions+    nfsMountOptions_version,++    -- ** OnPremConfig+    onPremConfig_agentArns,++    -- ** Options+    options_atime,+    options_bytesPerSecond,+    options_gid,+    options_logLevel,+    options_mtime,+    options_objectTags,+    options_overwriteMode,+    options_posixPermissions,+    options_preserveDeletedFiles,+    options_preserveDevices,+    options_securityDescriptorCopyFlags,+    options_taskQueueing,+    options_transferMode,+    options_uid,+    options_verifyMode,++    -- ** PrivateLinkConfig+    privateLinkConfig_privateLinkEndpoint,+    privateLinkConfig_securityGroupArns,+    privateLinkConfig_subnetArns,+    privateLinkConfig_vpcEndpointId,++    -- ** QopConfiguration+    qopConfiguration_dataTransferProtection,+    qopConfiguration_rpcProtection,++    -- ** S3Config+    s3Config_bucketAccessRoleArn,++    -- ** SmbMountOptions+    smbMountOptions_version,++    -- ** TagListEntry+    tagListEntry_value,+    tagListEntry_key,++    -- ** TaskExecutionListEntry+    taskExecutionListEntry_status,+    taskExecutionListEntry_taskExecutionArn,++    -- ** TaskExecutionResultDetail+    taskExecutionResultDetail_errorCode,+    taskExecutionResultDetail_errorDetail,+    taskExecutionResultDetail_prepareDuration,+    taskExecutionResultDetail_prepareStatus,+    taskExecutionResultDetail_totalDuration,+    taskExecutionResultDetail_transferDuration,+    taskExecutionResultDetail_transferStatus,+    taskExecutionResultDetail_verifyDuration,+    taskExecutionResultDetail_verifyStatus,++    -- ** TaskFilter+    taskFilter_name,+    taskFilter_values,+    taskFilter_operator,++    -- ** TaskListEntry+    taskListEntry_name,+    taskListEntry_status,+    taskListEntry_taskArn,++    -- ** TaskSchedule+    taskSchedule_scheduleExpression,+  )+where++import Amazonka.DataSync.CancelTaskExecution+import Amazonka.DataSync.CreateAgent+import Amazonka.DataSync.CreateLocationEfs+import Amazonka.DataSync.CreateLocationFsxLustre+import Amazonka.DataSync.CreateLocationFsxOntap+import Amazonka.DataSync.CreateLocationFsxOpenZfs+import Amazonka.DataSync.CreateLocationFsxWindows+import Amazonka.DataSync.CreateLocationHdfs+import Amazonka.DataSync.CreateLocationNfs+import Amazonka.DataSync.CreateLocationObjectStorage+import Amazonka.DataSync.CreateLocationS3+import Amazonka.DataSync.CreateLocationSmb+import Amazonka.DataSync.CreateTask+import Amazonka.DataSync.DeleteAgent+import Amazonka.DataSync.DeleteLocation+import Amazonka.DataSync.DeleteTask+import Amazonka.DataSync.DescribeAgent+import Amazonka.DataSync.DescribeLocationEfs+import Amazonka.DataSync.DescribeLocationFsxLustre+import Amazonka.DataSync.DescribeLocationFsxOntap+import Amazonka.DataSync.DescribeLocationFsxOpenZfs+import Amazonka.DataSync.DescribeLocationFsxWindows+import Amazonka.DataSync.DescribeLocationHdfs+import Amazonka.DataSync.DescribeLocationNfs+import Amazonka.DataSync.DescribeLocationObjectStorage+import Amazonka.DataSync.DescribeLocationS3+import Amazonka.DataSync.DescribeLocationSmb+import Amazonka.DataSync.DescribeTask+import Amazonka.DataSync.DescribeTaskExecution+import Amazonka.DataSync.ListAgents+import Amazonka.DataSync.ListLocations+import Amazonka.DataSync.ListTagsForResource+import Amazonka.DataSync.ListTaskExecutions+import Amazonka.DataSync.ListTasks+import Amazonka.DataSync.StartTaskExecution+import Amazonka.DataSync.TagResource+import Amazonka.DataSync.Types.AgentListEntry+import Amazonka.DataSync.Types.Ec2Config+import Amazonka.DataSync.Types.FilterRule+import Amazonka.DataSync.Types.FsxProtocol+import Amazonka.DataSync.Types.FsxProtocolNfs+import Amazonka.DataSync.Types.FsxProtocolSmb+import Amazonka.DataSync.Types.HdfsNameNode+import Amazonka.DataSync.Types.LocationFilter+import Amazonka.DataSync.Types.LocationListEntry+import Amazonka.DataSync.Types.NfsMountOptions+import Amazonka.DataSync.Types.OnPremConfig+import Amazonka.DataSync.Types.Options+import Amazonka.DataSync.Types.PrivateLinkConfig+import Amazonka.DataSync.Types.QopConfiguration+import Amazonka.DataSync.Types.S3Config+import Amazonka.DataSync.Types.SmbMountOptions+import Amazonka.DataSync.Types.TagListEntry+import Amazonka.DataSync.Types.TaskExecutionListEntry+import Amazonka.DataSync.Types.TaskExecutionResultDetail+import Amazonka.DataSync.Types.TaskFilter+import Amazonka.DataSync.Types.TaskListEntry+import Amazonka.DataSync.Types.TaskSchedule+import Amazonka.DataSync.UntagResource+import Amazonka.DataSync.UpdateAgent+import Amazonka.DataSync.UpdateLocationHdfs+import Amazonka.DataSync.UpdateLocationNfs+import Amazonka.DataSync.UpdateLocationObjectStorage+import Amazonka.DataSync.UpdateLocationSmb+import Amazonka.DataSync.UpdateTask+import Amazonka.DataSync.UpdateTaskExecution
+ gen/Amazonka/DataSync/ListAgents.hs view
@@ -0,0 +1,236 @@+{-# 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.DataSync.ListAgents+-- 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 a list of agents owned by an Amazon Web Services account in the+-- Amazon Web Services Region specified in the request. The returned list+-- is ordered by agent Amazon Resource Name (ARN).+--+-- By default, this operation returns a maximum of 100 agents. This+-- operation supports pagination that enables you to optionally reduce the+-- number of agents returned in a response.+--+-- If you have more agents than are returned in a response (that is, the+-- response returns only a truncated list of your agents), the response+-- contains a marker that you can specify in your next request to fetch the+-- next page of agents.+--+-- This operation returns paginated results.+module Amazonka.DataSync.ListAgents+  ( -- * Creating a Request+    ListAgents (..),+    newListAgents,++    -- * Request Lenses+    listAgents_maxResults,+    listAgents_nextToken,++    -- * Destructuring the Response+    ListAgentsResponse (..),+    newListAgentsResponse,++    -- * Response Lenses+    listAgentsResponse_agents,+    listAgentsResponse_nextToken,+    listAgentsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | ListAgentsRequest+--+-- /See:/ 'newListAgents' smart constructor.+data ListAgents = ListAgents'+  { -- | The maximum number of agents to list.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | An opaque string that indicates the position at which to begin the next+    -- list of agents.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAgents' 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', 'listAgents_maxResults' - The maximum number of agents to list.+--+-- 'nextToken', 'listAgents_nextToken' - An opaque string that indicates the position at which to begin the next+-- list of agents.+newListAgents ::+  ListAgents+newListAgents =+  ListAgents'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of agents to list.+listAgents_maxResults :: Lens.Lens' ListAgents (Prelude.Maybe Prelude.Natural)+listAgents_maxResults = Lens.lens (\ListAgents' {maxResults} -> maxResults) (\s@ListAgents' {} a -> s {maxResults = a} :: ListAgents)++-- | An opaque string that indicates the position at which to begin the next+-- list of agents.+listAgents_nextToken :: Lens.Lens' ListAgents (Prelude.Maybe Prelude.Text)+listAgents_nextToken = Lens.lens (\ListAgents' {nextToken} -> nextToken) (\s@ListAgents' {} a -> s {nextToken = a} :: ListAgents)++instance Core.AWSPager ListAgents where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listAgentsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listAgentsResponse_agents+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listAgents_nextToken+          Lens..~ rs+          Lens.^? listAgentsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListAgents where+  type AWSResponse ListAgents = ListAgentsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAgentsResponse'+            Prelude.<$> (x Data..?> "Agents" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAgents where+  hashWithSalt _salt ListAgents' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListAgents where+  rnf ListAgents' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListAgents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.ListAgents" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAgents where+  toJSON ListAgents' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListAgents where+  toPath = Prelude.const "/"++instance Data.ToQuery ListAgents where+  toQuery = Prelude.const Prelude.mempty++-- | ListAgentsResponse+--+-- /See:/ 'newListAgentsResponse' smart constructor.+data ListAgentsResponse = ListAgentsResponse'+  { -- | A list of agents in your account.+    agents :: Prelude.Maybe [AgentListEntry],+    -- | An opaque string that indicates the position at which to begin returning+    -- the next list of agents.+    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 'ListAgentsResponse' 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:+--+-- 'agents', 'listAgentsResponse_agents' - A list of agents in your account.+--+-- 'nextToken', 'listAgentsResponse_nextToken' - An opaque string that indicates the position at which to begin returning+-- the next list of agents.+--+-- 'httpStatus', 'listAgentsResponse_httpStatus' - The response's http status code.+newListAgentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAgentsResponse+newListAgentsResponse pHttpStatus_ =+  ListAgentsResponse'+    { agents = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of agents in your account.+listAgentsResponse_agents :: Lens.Lens' ListAgentsResponse (Prelude.Maybe [AgentListEntry])+listAgentsResponse_agents = Lens.lens (\ListAgentsResponse' {agents} -> agents) (\s@ListAgentsResponse' {} a -> s {agents = a} :: ListAgentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An opaque string that indicates the position at which to begin returning+-- the next list of agents.+listAgentsResponse_nextToken :: Lens.Lens' ListAgentsResponse (Prelude.Maybe Prelude.Text)+listAgentsResponse_nextToken = Lens.lens (\ListAgentsResponse' {nextToken} -> nextToken) (\s@ListAgentsResponse' {} a -> s {nextToken = a} :: ListAgentsResponse)++-- | The response's http status code.+listAgentsResponse_httpStatus :: Lens.Lens' ListAgentsResponse Prelude.Int+listAgentsResponse_httpStatus = Lens.lens (\ListAgentsResponse' {httpStatus} -> httpStatus) (\s@ListAgentsResponse' {} a -> s {httpStatus = a} :: ListAgentsResponse)++instance Prelude.NFData ListAgentsResponse where+  rnf ListAgentsResponse' {..} =+    Prelude.rnf agents+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/ListLocations.hs view
@@ -0,0 +1,254 @@+{-# 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.DataSync.ListLocations+-- 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 a list of source and destination locations.+--+-- If you have more locations than are returned in a response (that is, the+-- response returns only a truncated list of your agents), the response+-- contains a token that you can specify in your next request to fetch the+-- next page of locations.+--+-- This operation returns paginated results.+module Amazonka.DataSync.ListLocations+  ( -- * Creating a Request+    ListLocations (..),+    newListLocations,++    -- * Request Lenses+    listLocations_filters,+    listLocations_maxResults,+    listLocations_nextToken,++    -- * Destructuring the Response+    ListLocationsResponse (..),+    newListLocationsResponse,++    -- * Response Lenses+    listLocationsResponse_locations,+    listLocationsResponse_nextToken,+    listLocationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | ListLocationsRequest+--+-- /See:/ 'newListLocations' smart constructor.+data ListLocations = ListLocations'+  { -- | You can use API filters to narrow down the list of resources returned by+    -- @ListLocations@. For example, to retrieve all tasks on a specific source+    -- location, you can use @ListLocations@ with filter name @LocationType S3@+    -- and @Operator Equals@.+    filters :: Prelude.Maybe [LocationFilter],+    -- | The maximum number of locations to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | An opaque string that indicates the position at which to begin the next+    -- list of locations.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListLocations' 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', 'listLocations_filters' - You can use API filters to narrow down the list of resources returned by+-- @ListLocations@. For example, to retrieve all tasks on a specific source+-- location, you can use @ListLocations@ with filter name @LocationType S3@+-- and @Operator Equals@.+--+-- 'maxResults', 'listLocations_maxResults' - The maximum number of locations to return.+--+-- 'nextToken', 'listLocations_nextToken' - An opaque string that indicates the position at which to begin the next+-- list of locations.+newListLocations ::+  ListLocations+newListLocations =+  ListLocations'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | You can use API filters to narrow down the list of resources returned by+-- @ListLocations@. For example, to retrieve all tasks on a specific source+-- location, you can use @ListLocations@ with filter name @LocationType S3@+-- and @Operator Equals@.+listLocations_filters :: Lens.Lens' ListLocations (Prelude.Maybe [LocationFilter])+listLocations_filters = Lens.lens (\ListLocations' {filters} -> filters) (\s@ListLocations' {} a -> s {filters = a} :: ListLocations) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of locations to return.+listLocations_maxResults :: Lens.Lens' ListLocations (Prelude.Maybe Prelude.Natural)+listLocations_maxResults = Lens.lens (\ListLocations' {maxResults} -> maxResults) (\s@ListLocations' {} a -> s {maxResults = a} :: ListLocations)++-- | An opaque string that indicates the position at which to begin the next+-- list of locations.+listLocations_nextToken :: Lens.Lens' ListLocations (Prelude.Maybe Prelude.Text)+listLocations_nextToken = Lens.lens (\ListLocations' {nextToken} -> nextToken) (\s@ListLocations' {} a -> s {nextToken = a} :: ListLocations)++instance Core.AWSPager ListLocations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listLocationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listLocationsResponse_locations+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listLocations_nextToken+          Lens..~ rs+          Lens.^? listLocationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListLocations where+  type+    AWSResponse ListLocations =+      ListLocationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListLocationsResponse'+            Prelude.<$> (x Data..?> "Locations" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListLocations where+  hashWithSalt _salt ListLocations' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListLocations where+  rnf ListLocations' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListLocations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.ListLocations" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListLocations where+  toJSON ListLocations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListLocations where+  toPath = Prelude.const "/"++instance Data.ToQuery ListLocations where+  toQuery = Prelude.const Prelude.mempty++-- | ListLocationsResponse+--+-- /See:/ 'newListLocationsResponse' smart constructor.+data ListLocationsResponse = ListLocationsResponse'+  { -- | An array that contains a list of locations.+    locations :: Prelude.Maybe [LocationListEntry],+    -- | An opaque string that indicates the position at which to begin returning+    -- the next list of locations.+    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 'ListLocationsResponse' 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:+--+-- 'locations', 'listLocationsResponse_locations' - An array that contains a list of locations.+--+-- 'nextToken', 'listLocationsResponse_nextToken' - An opaque string that indicates the position at which to begin returning+-- the next list of locations.+--+-- 'httpStatus', 'listLocationsResponse_httpStatus' - The response's http status code.+newListLocationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListLocationsResponse+newListLocationsResponse pHttpStatus_ =+  ListLocationsResponse'+    { locations = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array that contains a list of locations.+listLocationsResponse_locations :: Lens.Lens' ListLocationsResponse (Prelude.Maybe [LocationListEntry])+listLocationsResponse_locations = Lens.lens (\ListLocationsResponse' {locations} -> locations) (\s@ListLocationsResponse' {} a -> s {locations = a} :: ListLocationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An opaque string that indicates the position at which to begin returning+-- the next list of locations.+listLocationsResponse_nextToken :: Lens.Lens' ListLocationsResponse (Prelude.Maybe Prelude.Text)+listLocationsResponse_nextToken = Lens.lens (\ListLocationsResponse' {nextToken} -> nextToken) (\s@ListLocationsResponse' {} a -> s {nextToken = a} :: ListLocationsResponse)++-- | The response's http status code.+listLocationsResponse_httpStatus :: Lens.Lens' ListLocationsResponse Prelude.Int+listLocationsResponse_httpStatus = Lens.lens (\ListLocationsResponse' {httpStatus} -> httpStatus) (\s@ListLocationsResponse' {} a -> s {httpStatus = a} :: ListLocationsResponse)++instance Prelude.NFData ListLocationsResponse where+  rnf ListLocationsResponse' {..} =+    Prelude.rnf locations+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/ListTagsForResource.hs view
@@ -0,0 +1,248 @@+{-# 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.DataSync.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)+--+-- Returns all the tags associated with an Amazon Web Services resource.+--+-- This operation returns paginated results.+module Amazonka.DataSync.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.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | ListTagsForResourceRequest+--+-- /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | Specifies how many results that you want in the response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Specifies an opaque string that indicates the position to begin the next+    -- list of results in the response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies the Amazon Resource Name (ARN) of the resource that you want+    -- tag information on.+    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' - Specifies how many results that you want in the response.+--+-- 'nextToken', 'listTagsForResource_nextToken' - Specifies an opaque string that indicates the position to begin the next+-- list of results in the response.+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - Specifies the Amazon Resource Name (ARN) of the resource that you want+-- tag information on.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | Specifies how many results that you want in the response.+listTagsForResource_maxResults :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Natural)+listTagsForResource_maxResults = Lens.lens (\ListTagsForResource' {maxResults} -> maxResults) (\s@ListTagsForResource' {} a -> s {maxResults = a} :: ListTagsForResource)++-- | Specifies an opaque string that indicates the position to begin the next+-- list of results in the response.+listTagsForResource_nextToken :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Text)+listTagsForResource_nextToken = Lens.lens (\ListTagsForResource' {nextToken} -> nextToken) (\s@ListTagsForResource' {} a -> s {nextToken = a} :: ListTagsForResource)++-- | Specifies the Amazon Resource Name (ARN) of the resource that you want+-- tag information on.+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.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" Core..!@ Prelude.mempty)+            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.=# ( "FmrsService.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++-- | ListTagsForResourceResponse+--+-- /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The opaque string that indicates the position to begin the next list of+    -- results in the response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of tags applied to the specified resource.+    tags :: Prelude.Maybe [TagListEntry],+    -- | 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' - The opaque string that indicates the position to begin the next list of+-- results in the response.+--+-- 'tags', 'listTagsForResourceResponse_tags' - An array of tags applied to the specified 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_+    }++-- | The opaque string that indicates the position to begin the next list of+-- results in the response.+listTagsForResourceResponse_nextToken :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe Prelude.Text)+listTagsForResourceResponse_nextToken = Lens.lens (\ListTagsForResourceResponse' {nextToken} -> nextToken) (\s@ListTagsForResourceResponse' {} a -> s {nextToken = a} :: ListTagsForResourceResponse)++-- | An array of tags applied to the specified resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [TagListEntry])+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/DataSync/ListTaskExecutions.hs view
@@ -0,0 +1,243 @@+{-# 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.DataSync.ListTaskExecutions+-- 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 a list of executed tasks.+--+-- This operation returns paginated results.+module Amazonka.DataSync.ListTaskExecutions+  ( -- * Creating a Request+    ListTaskExecutions (..),+    newListTaskExecutions,++    -- * Request Lenses+    listTaskExecutions_maxResults,+    listTaskExecutions_nextToken,+    listTaskExecutions_taskArn,++    -- * Destructuring the Response+    ListTaskExecutionsResponse (..),+    newListTaskExecutionsResponse,++    -- * Response Lenses+    listTaskExecutionsResponse_nextToken,+    listTaskExecutionsResponse_taskExecutions,+    listTaskExecutionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | ListTaskExecutions+--+-- /See:/ 'newListTaskExecutions' smart constructor.+data ListTaskExecutions = ListTaskExecutions'+  { -- | The maximum number of executed tasks to list.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | An opaque string that indicates the position at which to begin the next+    -- list of the executed tasks.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the task whose tasks you want to list.+    taskArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTaskExecutions' 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', 'listTaskExecutions_maxResults' - The maximum number of executed tasks to list.+--+-- 'nextToken', 'listTaskExecutions_nextToken' - An opaque string that indicates the position at which to begin the next+-- list of the executed tasks.+--+-- 'taskArn', 'listTaskExecutions_taskArn' - The Amazon Resource Name (ARN) of the task whose tasks you want to list.+newListTaskExecutions ::+  ListTaskExecutions+newListTaskExecutions =+  ListTaskExecutions'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      taskArn = Prelude.Nothing+    }++-- | The maximum number of executed tasks to list.+listTaskExecutions_maxResults :: Lens.Lens' ListTaskExecutions (Prelude.Maybe Prelude.Natural)+listTaskExecutions_maxResults = Lens.lens (\ListTaskExecutions' {maxResults} -> maxResults) (\s@ListTaskExecutions' {} a -> s {maxResults = a} :: ListTaskExecutions)++-- | An opaque string that indicates the position at which to begin the next+-- list of the executed tasks.+listTaskExecutions_nextToken :: Lens.Lens' ListTaskExecutions (Prelude.Maybe Prelude.Text)+listTaskExecutions_nextToken = Lens.lens (\ListTaskExecutions' {nextToken} -> nextToken) (\s@ListTaskExecutions' {} a -> s {nextToken = a} :: ListTaskExecutions)++-- | The Amazon Resource Name (ARN) of the task whose tasks you want to list.+listTaskExecutions_taskArn :: Lens.Lens' ListTaskExecutions (Prelude.Maybe Prelude.Text)+listTaskExecutions_taskArn = Lens.lens (\ListTaskExecutions' {taskArn} -> taskArn) (\s@ListTaskExecutions' {} a -> s {taskArn = a} :: ListTaskExecutions)++instance Core.AWSPager ListTaskExecutions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listTaskExecutionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listTaskExecutionsResponse_taskExecutions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listTaskExecutions_nextToken+          Lens..~ rs+          Lens.^? listTaskExecutionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListTaskExecutions where+  type+    AWSResponse ListTaskExecutions =+      ListTaskExecutionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTaskExecutionsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "TaskExecutions" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTaskExecutions where+  hashWithSalt _salt ListTaskExecutions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` taskArn++instance Prelude.NFData ListTaskExecutions where+  rnf ListTaskExecutions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf taskArn++instance Data.ToHeaders ListTaskExecutions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.ListTaskExecutions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTaskExecutions where+  toJSON ListTaskExecutions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("TaskArn" Data..=) Prelude.<$> taskArn+          ]+      )++instance Data.ToPath ListTaskExecutions where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTaskExecutions where+  toQuery = Prelude.const Prelude.mempty++-- | ListTaskExecutionsResponse+--+-- /See:/ 'newListTaskExecutionsResponse' smart constructor.+data ListTaskExecutionsResponse = ListTaskExecutionsResponse'+  { -- | An opaque string that indicates the position at which to begin returning+    -- the next list of executed tasks.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of executed tasks.+    taskExecutions :: Prelude.Maybe [TaskExecutionListEntry],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTaskExecutionsResponse' 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', 'listTaskExecutionsResponse_nextToken' - An opaque string that indicates the position at which to begin returning+-- the next list of executed tasks.+--+-- 'taskExecutions', 'listTaskExecutionsResponse_taskExecutions' - A list of executed tasks.+--+-- 'httpStatus', 'listTaskExecutionsResponse_httpStatus' - The response's http status code.+newListTaskExecutionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTaskExecutionsResponse+newListTaskExecutionsResponse pHttpStatus_ =+  ListTaskExecutionsResponse'+    { nextToken =+        Prelude.Nothing,+      taskExecutions = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An opaque string that indicates the position at which to begin returning+-- the next list of executed tasks.+listTaskExecutionsResponse_nextToken :: Lens.Lens' ListTaskExecutionsResponse (Prelude.Maybe Prelude.Text)+listTaskExecutionsResponse_nextToken = Lens.lens (\ListTaskExecutionsResponse' {nextToken} -> nextToken) (\s@ListTaskExecutionsResponse' {} a -> s {nextToken = a} :: ListTaskExecutionsResponse)++-- | A list of executed tasks.+listTaskExecutionsResponse_taskExecutions :: Lens.Lens' ListTaskExecutionsResponse (Prelude.Maybe [TaskExecutionListEntry])+listTaskExecutionsResponse_taskExecutions = Lens.lens (\ListTaskExecutionsResponse' {taskExecutions} -> taskExecutions) (\s@ListTaskExecutionsResponse' {} a -> s {taskExecutions = a} :: ListTaskExecutionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTaskExecutionsResponse_httpStatus :: Lens.Lens' ListTaskExecutionsResponse Prelude.Int+listTaskExecutionsResponse_httpStatus = Lens.lens (\ListTaskExecutionsResponse' {httpStatus} -> httpStatus) (\s@ListTaskExecutionsResponse' {} a -> s {httpStatus = a} :: ListTaskExecutionsResponse)++instance Prelude.NFData ListTaskExecutionsResponse where+  rnf ListTaskExecutionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf taskExecutions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/ListTasks.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.DataSync.ListTasks+-- 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 a list of the DataSync tasks you created.+--+-- This operation returns paginated results.+module Amazonka.DataSync.ListTasks+  ( -- * Creating a Request+    ListTasks (..),+    newListTasks,++    -- * Request Lenses+    listTasks_filters,+    listTasks_maxResults,+    listTasks_nextToken,++    -- * Destructuring the Response+    ListTasksResponse (..),+    newListTasksResponse,++    -- * Response Lenses+    listTasksResponse_nextToken,+    listTasksResponse_tasks,+    listTasksResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | ListTasksRequest+--+-- /See:/ 'newListTasks' smart constructor.+data ListTasks = ListTasks'+  { -- | You can use API filters to narrow down the list of resources returned by+    -- @ListTasks@. For example, to retrieve all tasks on a specific source+    -- location, you can use @ListTasks@ with filter name @LocationId@ and+    -- @Operator Equals@ with the ARN for the location.+    filters :: Prelude.Maybe [TaskFilter],+    -- | The maximum number of tasks to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | An opaque string that indicates the position at which to begin the next+    -- list of tasks.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTasks' 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', 'listTasks_filters' - You can use API filters to narrow down the list of resources returned by+-- @ListTasks@. For example, to retrieve all tasks on a specific source+-- location, you can use @ListTasks@ with filter name @LocationId@ and+-- @Operator Equals@ with the ARN for the location.+--+-- 'maxResults', 'listTasks_maxResults' - The maximum number of tasks to return.+--+-- 'nextToken', 'listTasks_nextToken' - An opaque string that indicates the position at which to begin the next+-- list of tasks.+newListTasks ::+  ListTasks+newListTasks =+  ListTasks'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | You can use API filters to narrow down the list of resources returned by+-- @ListTasks@. For example, to retrieve all tasks on a specific source+-- location, you can use @ListTasks@ with filter name @LocationId@ and+-- @Operator Equals@ with the ARN for the location.+listTasks_filters :: Lens.Lens' ListTasks (Prelude.Maybe [TaskFilter])+listTasks_filters = Lens.lens (\ListTasks' {filters} -> filters) (\s@ListTasks' {} a -> s {filters = a} :: ListTasks) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of tasks to return.+listTasks_maxResults :: Lens.Lens' ListTasks (Prelude.Maybe Prelude.Natural)+listTasks_maxResults = Lens.lens (\ListTasks' {maxResults} -> maxResults) (\s@ListTasks' {} a -> s {maxResults = a} :: ListTasks)++-- | An opaque string that indicates the position at which to begin the next+-- list of tasks.+listTasks_nextToken :: Lens.Lens' ListTasks (Prelude.Maybe Prelude.Text)+listTasks_nextToken = Lens.lens (\ListTasks' {nextToken} -> nextToken) (\s@ListTasks' {} a -> s {nextToken = a} :: ListTasks)++instance Core.AWSPager ListTasks where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listTasksResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listTasksResponse_tasks+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listTasks_nextToken+          Lens..~ rs+          Lens.^? listTasksResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListTasks where+  type AWSResponse ListTasks = ListTasksResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTasksResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Tasks" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTasks where+  hashWithSalt _salt ListTasks' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListTasks where+  rnf ListTasks' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListTasks where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.ListTasks" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTasks where+  toJSON ListTasks' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filters" Data..=) Prelude.<$> filters,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListTasks where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTasks where+  toQuery = Prelude.const Prelude.mempty++-- | ListTasksResponse+--+-- /See:/ 'newListTasksResponse' smart constructor.+data ListTasksResponse = ListTasksResponse'+  { -- | An opaque string that indicates the position at which to begin returning+    -- the next list of tasks.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of all the tasks that are returned.+    tasks :: Prelude.Maybe [TaskListEntry],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTasksResponse' 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', 'listTasksResponse_nextToken' - An opaque string that indicates the position at which to begin returning+-- the next list of tasks.+--+-- 'tasks', 'listTasksResponse_tasks' - A list of all the tasks that are returned.+--+-- 'httpStatus', 'listTasksResponse_httpStatus' - The response's http status code.+newListTasksResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTasksResponse+newListTasksResponse pHttpStatus_ =+  ListTasksResponse'+    { nextToken = Prelude.Nothing,+      tasks = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An opaque string that indicates the position at which to begin returning+-- the next list of tasks.+listTasksResponse_nextToken :: Lens.Lens' ListTasksResponse (Prelude.Maybe Prelude.Text)+listTasksResponse_nextToken = Lens.lens (\ListTasksResponse' {nextToken} -> nextToken) (\s@ListTasksResponse' {} a -> s {nextToken = a} :: ListTasksResponse)++-- | A list of all the tasks that are returned.+listTasksResponse_tasks :: Lens.Lens' ListTasksResponse (Prelude.Maybe [TaskListEntry])+listTasksResponse_tasks = Lens.lens (\ListTasksResponse' {tasks} -> tasks) (\s@ListTasksResponse' {} a -> s {tasks = a} :: ListTasksResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTasksResponse_httpStatus :: Lens.Lens' ListTasksResponse Prelude.Int+listTasksResponse_httpStatus = Lens.lens (\ListTasksResponse' {httpStatus} -> httpStatus) (\s@ListTasksResponse' {} a -> s {httpStatus = a} :: ListTasksResponse)++instance Prelude.NFData ListTasksResponse where+  rnf ListTasksResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf tasks+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/StartTaskExecution.hs view
@@ -0,0 +1,266 @@+{-# 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.DataSync.StartTaskExecution+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts an DataSync task. For each task, you can only run one task+-- execution at a time.+--+-- There are several phases to a task execution. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html#understand-task-execution-statuses Task execution statuses>.+module Amazonka.DataSync.StartTaskExecution+  ( -- * Creating a Request+    StartTaskExecution (..),+    newStartTaskExecution,++    -- * Request Lenses+    startTaskExecution_excludes,+    startTaskExecution_includes,+    startTaskExecution_overrideOptions,+    startTaskExecution_tags,+    startTaskExecution_taskArn,++    -- * Destructuring the Response+    StartTaskExecutionResponse (..),+    newStartTaskExecutionResponse,++    -- * Response Lenses+    startTaskExecutionResponse_taskExecutionArn,+    startTaskExecutionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | StartTaskExecutionRequest+--+-- /See:/ 'newStartTaskExecution' smart constructor.+data StartTaskExecution = StartTaskExecution'+  { -- | Specifies a list of filter rules that determines which files to exclude+    -- from a task. The list contains a single filter string that consists of+    -- the patterns to exclude. The patterns are delimited by \"|\" (that is, a+    -- pipe), for example, @\"\/folder1|\/folder2\"@.+    excludes :: Prelude.Maybe [FilterRule],+    -- | Specifies a list of filter rules that determines which files to include+    -- when running a task. The pattern should contain a single filter string+    -- that consists of the patterns to include. The patterns are delimited by+    -- \"|\" (that is, a pipe), for example, @\"\/folder1|\/folder2\"@.+    includes :: Prelude.Maybe [FilterRule],+    overrideOptions :: Prelude.Maybe Options,+    -- | Specifies the tags that you want to apply to the Amazon Resource Name+    -- (ARN) representing the task execution.+    --+    -- /Tags/ are key-value pairs that help you manage, filter, and search for+    -- your DataSync resources.+    tags :: Prelude.Maybe [TagListEntry],+    -- | Specifies the Amazon Resource Name (ARN) of the task that you want to+    -- start.+    taskArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartTaskExecution' 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:+--+-- 'excludes', 'startTaskExecution_excludes' - Specifies a list of filter rules that determines which files to exclude+-- from a task. The list contains a single filter string that consists of+-- the patterns to exclude. The patterns are delimited by \"|\" (that is, a+-- pipe), for example, @\"\/folder1|\/folder2\"@.+--+-- 'includes', 'startTaskExecution_includes' - Specifies a list of filter rules that determines which files to include+-- when running a task. The pattern should contain a single filter string+-- that consists of the patterns to include. The patterns are delimited by+-- \"|\" (that is, a pipe), for example, @\"\/folder1|\/folder2\"@.+--+-- 'overrideOptions', 'startTaskExecution_overrideOptions' - Undocumented member.+--+-- 'tags', 'startTaskExecution_tags' - Specifies the tags that you want to apply to the Amazon Resource Name+-- (ARN) representing the task execution.+--+-- /Tags/ are key-value pairs that help you manage, filter, and search for+-- your DataSync resources.+--+-- 'taskArn', 'startTaskExecution_taskArn' - Specifies the Amazon Resource Name (ARN) of the task that you want to+-- start.+newStartTaskExecution ::+  -- | 'taskArn'+  Prelude.Text ->+  StartTaskExecution+newStartTaskExecution pTaskArn_ =+  StartTaskExecution'+    { excludes = Prelude.Nothing,+      includes = Prelude.Nothing,+      overrideOptions = Prelude.Nothing,+      tags = Prelude.Nothing,+      taskArn = pTaskArn_+    }++-- | Specifies a list of filter rules that determines which files to exclude+-- from a task. The list contains a single filter string that consists of+-- the patterns to exclude. The patterns are delimited by \"|\" (that is, a+-- pipe), for example, @\"\/folder1|\/folder2\"@.+startTaskExecution_excludes :: Lens.Lens' StartTaskExecution (Prelude.Maybe [FilterRule])+startTaskExecution_excludes = Lens.lens (\StartTaskExecution' {excludes} -> excludes) (\s@StartTaskExecution' {} a -> s {excludes = a} :: StartTaskExecution) Prelude.. Lens.mapping Lens.coerced++-- | Specifies a list of filter rules that determines which files to include+-- when running a task. The pattern should contain a single filter string+-- that consists of the patterns to include. The patterns are delimited by+-- \"|\" (that is, a pipe), for example, @\"\/folder1|\/folder2\"@.+startTaskExecution_includes :: Lens.Lens' StartTaskExecution (Prelude.Maybe [FilterRule])+startTaskExecution_includes = Lens.lens (\StartTaskExecution' {includes} -> includes) (\s@StartTaskExecution' {} a -> s {includes = a} :: StartTaskExecution) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+startTaskExecution_overrideOptions :: Lens.Lens' StartTaskExecution (Prelude.Maybe Options)+startTaskExecution_overrideOptions = Lens.lens (\StartTaskExecution' {overrideOptions} -> overrideOptions) (\s@StartTaskExecution' {} a -> s {overrideOptions = a} :: StartTaskExecution)++-- | Specifies the tags that you want to apply to the Amazon Resource Name+-- (ARN) representing the task execution.+--+-- /Tags/ are key-value pairs that help you manage, filter, and search for+-- your DataSync resources.+startTaskExecution_tags :: Lens.Lens' StartTaskExecution (Prelude.Maybe [TagListEntry])+startTaskExecution_tags = Lens.lens (\StartTaskExecution' {tags} -> tags) (\s@StartTaskExecution' {} a -> s {tags = a} :: StartTaskExecution) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the Amazon Resource Name (ARN) of the task that you want to+-- start.+startTaskExecution_taskArn :: Lens.Lens' StartTaskExecution Prelude.Text+startTaskExecution_taskArn = Lens.lens (\StartTaskExecution' {taskArn} -> taskArn) (\s@StartTaskExecution' {} a -> s {taskArn = a} :: StartTaskExecution)++instance Core.AWSRequest StartTaskExecution where+  type+    AWSResponse StartTaskExecution =+      StartTaskExecutionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartTaskExecutionResponse'+            Prelude.<$> (x Data..?> "TaskExecutionArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartTaskExecution where+  hashWithSalt _salt StartTaskExecution' {..} =+    _salt+      `Prelude.hashWithSalt` excludes+      `Prelude.hashWithSalt` includes+      `Prelude.hashWithSalt` overrideOptions+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` taskArn++instance Prelude.NFData StartTaskExecution where+  rnf StartTaskExecution' {..} =+    Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes+      `Prelude.seq` Prelude.rnf overrideOptions+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf taskArn++instance Data.ToHeaders StartTaskExecution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.StartTaskExecution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartTaskExecution where+  toJSON StartTaskExecution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Excludes" Data..=) Prelude.<$> excludes,+            ("Includes" Data..=) Prelude.<$> includes,+            ("OverrideOptions" Data..=)+              Prelude.<$> overrideOptions,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("TaskArn" Data..= taskArn)+          ]+      )++instance Data.ToPath StartTaskExecution where+  toPath = Prelude.const "/"++instance Data.ToQuery StartTaskExecution where+  toQuery = Prelude.const Prelude.mempty++-- | StartTaskExecutionResponse+--+-- /See:/ 'newStartTaskExecutionResponse' smart constructor.+data StartTaskExecutionResponse = StartTaskExecutionResponse'+  { -- | The ARN of the running task execution.+    taskExecutionArn :: 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 'StartTaskExecutionResponse' 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:+--+-- 'taskExecutionArn', 'startTaskExecutionResponse_taskExecutionArn' - The ARN of the running task execution.+--+-- 'httpStatus', 'startTaskExecutionResponse_httpStatus' - The response's http status code.+newStartTaskExecutionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartTaskExecutionResponse+newStartTaskExecutionResponse pHttpStatus_ =+  StartTaskExecutionResponse'+    { taskExecutionArn =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the running task execution.+startTaskExecutionResponse_taskExecutionArn :: Lens.Lens' StartTaskExecutionResponse (Prelude.Maybe Prelude.Text)+startTaskExecutionResponse_taskExecutionArn = Lens.lens (\StartTaskExecutionResponse' {taskExecutionArn} -> taskExecutionArn) (\s@StartTaskExecutionResponse' {} a -> s {taskExecutionArn = a} :: StartTaskExecutionResponse)++-- | The response's http status code.+startTaskExecutionResponse_httpStatus :: Lens.Lens' StartTaskExecutionResponse Prelude.Int+startTaskExecutionResponse_httpStatus = Lens.lens (\StartTaskExecutionResponse' {httpStatus} -> httpStatus) (\s@StartTaskExecutionResponse' {} a -> s {httpStatus = a} :: StartTaskExecutionResponse)++instance Prelude.NFData StartTaskExecutionResponse where+  rnf StartTaskExecutionResponse' {..} =+    Prelude.rnf taskExecutionArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/TagResource.hs view
@@ -0,0 +1,175 @@+{-# 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.DataSync.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)+--+-- Applies a /tag/ to an Amazon Web Services resource. Tags are key-value+-- pairs that can help you manage, filter, and search for your resources.+--+-- These include DataSync resources, such as locations, tasks, and task+-- executions.+module Amazonka.DataSync.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.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | TagResourceRequest+--+-- /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | Specifies the Amazon Resource Name (ARN) of the resource to apply the+    -- tag to.+    resourceArn :: Prelude.Text,+    -- | Specifies the tags that you want to apply to the resource.+    tags :: [TagListEntry]+  }+  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' - Specifies the Amazon Resource Name (ARN) of the resource to apply the+-- tag to.+--+-- 'tags', 'tagResource_tags' - Specifies the tags that you want to apply to the resource.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | Specifies the Amazon Resource Name (ARN) of the resource to apply the+-- tag to.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | Specifies the tags that you want to apply to the resource.+tagResource_tags :: Lens.Lens' TagResource [TagListEntry]+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.=# ("FmrsService.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++-- | /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/DataSync/Types.hs view
@@ -0,0 +1,413 @@+{-# 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.DataSync.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.DataSync.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _InternalException,+    _InvalidRequestException,++    -- * AgentStatus+    AgentStatus (..),++    -- * Atime+    Atime (..),++    -- * EfsInTransitEncryption+    EfsInTransitEncryption (..),++    -- * EndpointType+    EndpointType (..),++    -- * FilterType+    FilterType (..),++    -- * Gid+    Gid (..),++    -- * HdfsAuthenticationType+    HdfsAuthenticationType (..),++    -- * HdfsDataTransferProtection+    HdfsDataTransferProtection (..),++    -- * HdfsRpcProtection+    HdfsRpcProtection (..),++    -- * LocationFilterName+    LocationFilterName (..),++    -- * LogLevel+    LogLevel (..),++    -- * Mtime+    Mtime (..),++    -- * NfsVersion+    NfsVersion (..),++    -- * ObjectStorageServerProtocol+    ObjectStorageServerProtocol (..),++    -- * ObjectTags+    ObjectTags (..),++    -- * Operator+    Operator (..),++    -- * OverwriteMode+    OverwriteMode (..),++    -- * PhaseStatus+    PhaseStatus (..),++    -- * PosixPermissions+    PosixPermissions (..),++    -- * PreserveDeletedFiles+    PreserveDeletedFiles (..),++    -- * PreserveDevices+    PreserveDevices (..),++    -- * S3StorageClass+    S3StorageClass (..),++    -- * SmbSecurityDescriptorCopyFlags+    SmbSecurityDescriptorCopyFlags (..),++    -- * SmbVersion+    SmbVersion (..),++    -- * TaskExecutionStatus+    TaskExecutionStatus (..),++    -- * TaskFilterName+    TaskFilterName (..),++    -- * TaskQueueing+    TaskQueueing (..),++    -- * TaskStatus+    TaskStatus (..),++    -- * TransferMode+    TransferMode (..),++    -- * Uid+    Uid (..),++    -- * VerifyMode+    VerifyMode (..),++    -- * AgentListEntry+    AgentListEntry (..),+    newAgentListEntry,+    agentListEntry_agentArn,+    agentListEntry_name,+    agentListEntry_status,++    -- * Ec2Config+    Ec2Config (..),+    newEc2Config,+    ec2Config_subnetArn,+    ec2Config_securityGroupArns,++    -- * FilterRule+    FilterRule (..),+    newFilterRule,+    filterRule_filterType,+    filterRule_value,++    -- * FsxProtocol+    FsxProtocol (..),+    newFsxProtocol,+    fsxProtocol_nfs,+    fsxProtocol_smb,++    -- * FsxProtocolNfs+    FsxProtocolNfs (..),+    newFsxProtocolNfs,+    fsxProtocolNfs_mountOptions,++    -- * FsxProtocolSmb+    FsxProtocolSmb (..),+    newFsxProtocolSmb,+    fsxProtocolSmb_domain,+    fsxProtocolSmb_mountOptions,+    fsxProtocolSmb_password,+    fsxProtocolSmb_user,++    -- * HdfsNameNode+    HdfsNameNode (..),+    newHdfsNameNode,+    hdfsNameNode_hostname,+    hdfsNameNode_port,++    -- * LocationFilter+    LocationFilter (..),+    newLocationFilter,+    locationFilter_name,+    locationFilter_values,+    locationFilter_operator,++    -- * LocationListEntry+    LocationListEntry (..),+    newLocationListEntry,+    locationListEntry_locationArn,+    locationListEntry_locationUri,++    -- * NfsMountOptions+    NfsMountOptions (..),+    newNfsMountOptions,+    nfsMountOptions_version,++    -- * OnPremConfig+    OnPremConfig (..),+    newOnPremConfig,+    onPremConfig_agentArns,++    -- * Options+    Options (..),+    newOptions,+    options_atime,+    options_bytesPerSecond,+    options_gid,+    options_logLevel,+    options_mtime,+    options_objectTags,+    options_overwriteMode,+    options_posixPermissions,+    options_preserveDeletedFiles,+    options_preserveDevices,+    options_securityDescriptorCopyFlags,+    options_taskQueueing,+    options_transferMode,+    options_uid,+    options_verifyMode,++    -- * PrivateLinkConfig+    PrivateLinkConfig (..),+    newPrivateLinkConfig,+    privateLinkConfig_privateLinkEndpoint,+    privateLinkConfig_securityGroupArns,+    privateLinkConfig_subnetArns,+    privateLinkConfig_vpcEndpointId,++    -- * QopConfiguration+    QopConfiguration (..),+    newQopConfiguration,+    qopConfiguration_dataTransferProtection,+    qopConfiguration_rpcProtection,++    -- * S3Config+    S3Config (..),+    newS3Config,+    s3Config_bucketAccessRoleArn,++    -- * SmbMountOptions+    SmbMountOptions (..),+    newSmbMountOptions,+    smbMountOptions_version,++    -- * TagListEntry+    TagListEntry (..),+    newTagListEntry,+    tagListEntry_value,+    tagListEntry_key,++    -- * TaskExecutionListEntry+    TaskExecutionListEntry (..),+    newTaskExecutionListEntry,+    taskExecutionListEntry_status,+    taskExecutionListEntry_taskExecutionArn,++    -- * TaskExecutionResultDetail+    TaskExecutionResultDetail (..),+    newTaskExecutionResultDetail,+    taskExecutionResultDetail_errorCode,+    taskExecutionResultDetail_errorDetail,+    taskExecutionResultDetail_prepareDuration,+    taskExecutionResultDetail_prepareStatus,+    taskExecutionResultDetail_totalDuration,+    taskExecutionResultDetail_transferDuration,+    taskExecutionResultDetail_transferStatus,+    taskExecutionResultDetail_verifyDuration,+    taskExecutionResultDetail_verifyStatus,++    -- * TaskFilter+    TaskFilter (..),+    newTaskFilter,+    taskFilter_name,+    taskFilter_values,+    taskFilter_operator,++    -- * TaskListEntry+    TaskListEntry (..),+    newTaskListEntry,+    taskListEntry_name,+    taskListEntry_status,+    taskListEntry_taskArn,++    -- * TaskSchedule+    TaskSchedule (..),+    newTaskSchedule,+    taskSchedule_scheduleExpression,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.DataSync.Types.AgentListEntry+import Amazonka.DataSync.Types.AgentStatus+import Amazonka.DataSync.Types.Atime+import Amazonka.DataSync.Types.Ec2Config+import Amazonka.DataSync.Types.EfsInTransitEncryption+import Amazonka.DataSync.Types.EndpointType+import Amazonka.DataSync.Types.FilterRule+import Amazonka.DataSync.Types.FilterType+import Amazonka.DataSync.Types.FsxProtocol+import Amazonka.DataSync.Types.FsxProtocolNfs+import Amazonka.DataSync.Types.FsxProtocolSmb+import Amazonka.DataSync.Types.Gid+import Amazonka.DataSync.Types.HdfsAuthenticationType+import Amazonka.DataSync.Types.HdfsDataTransferProtection+import Amazonka.DataSync.Types.HdfsNameNode+import Amazonka.DataSync.Types.HdfsRpcProtection+import Amazonka.DataSync.Types.LocationFilter+import Amazonka.DataSync.Types.LocationFilterName+import Amazonka.DataSync.Types.LocationListEntry+import Amazonka.DataSync.Types.LogLevel+import Amazonka.DataSync.Types.Mtime+import Amazonka.DataSync.Types.NfsMountOptions+import Amazonka.DataSync.Types.NfsVersion+import Amazonka.DataSync.Types.ObjectStorageServerProtocol+import Amazonka.DataSync.Types.ObjectTags+import Amazonka.DataSync.Types.OnPremConfig+import Amazonka.DataSync.Types.Operator+import Amazonka.DataSync.Types.Options+import Amazonka.DataSync.Types.OverwriteMode+import Amazonka.DataSync.Types.PhaseStatus+import Amazonka.DataSync.Types.PosixPermissions+import Amazonka.DataSync.Types.PreserveDeletedFiles+import Amazonka.DataSync.Types.PreserveDevices+import Amazonka.DataSync.Types.PrivateLinkConfig+import Amazonka.DataSync.Types.QopConfiguration+import Amazonka.DataSync.Types.S3Config+import Amazonka.DataSync.Types.S3StorageClass+import Amazonka.DataSync.Types.SmbMountOptions+import Amazonka.DataSync.Types.SmbSecurityDescriptorCopyFlags+import Amazonka.DataSync.Types.SmbVersion+import Amazonka.DataSync.Types.TagListEntry+import Amazonka.DataSync.Types.TaskExecutionListEntry+import Amazonka.DataSync.Types.TaskExecutionResultDetail+import Amazonka.DataSync.Types.TaskExecutionStatus+import Amazonka.DataSync.Types.TaskFilter+import Amazonka.DataSync.Types.TaskFilterName+import Amazonka.DataSync.Types.TaskListEntry+import Amazonka.DataSync.Types.TaskQueueing+import Amazonka.DataSync.Types.TaskSchedule+import Amazonka.DataSync.Types.TaskStatus+import Amazonka.DataSync.Types.TransferMode+import Amazonka.DataSync.Types.Uid+import Amazonka.DataSync.Types.VerifyMode+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-11-09@ of the Amazon DataSync SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "DataSync",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "datasync",+      Core.signingName = "datasync",+      Core.version = "2018-11-09",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "DataSync",+      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++-- | This exception is thrown when an error occurs in the DataSync service.+_InternalException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalException =+  Core._MatchServiceError+    defaultService+    "InternalException"++-- | This exception is thrown when the client submits a malformed request.+_InvalidRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRequestException =+  Core._MatchServiceError+    defaultService+    "InvalidRequestException"
+ gen/Amazonka/DataSync/Types/AgentListEntry.hs view
@@ -0,0 +1,100 @@+{-# 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.DataSync.Types.AgentListEntry+-- 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.DataSync.Types.AgentListEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.AgentStatus+import qualified Amazonka.Prelude as Prelude++-- | Represents a single entry in a list of agents. @AgentListEntry@ returns+-- an array that contains a list of agents when the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_ListAgents.html ListAgents>+-- operation is called.+--+-- /See:/ 'newAgentListEntry' smart constructor.+data AgentListEntry = AgentListEntry'+  { -- | The Amazon Resource Name (ARN) of the agent.+    agentArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the agent.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the agent.+    status :: Prelude.Maybe AgentStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AgentListEntry' 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:+--+-- 'agentArn', 'agentListEntry_agentArn' - The Amazon Resource Name (ARN) of the agent.+--+-- 'name', 'agentListEntry_name' - The name of the agent.+--+-- 'status', 'agentListEntry_status' - The status of the agent.+newAgentListEntry ::+  AgentListEntry+newAgentListEntry =+  AgentListEntry'+    { agentArn = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the agent.+agentListEntry_agentArn :: Lens.Lens' AgentListEntry (Prelude.Maybe Prelude.Text)+agentListEntry_agentArn = Lens.lens (\AgentListEntry' {agentArn} -> agentArn) (\s@AgentListEntry' {} a -> s {agentArn = a} :: AgentListEntry)++-- | The name of the agent.+agentListEntry_name :: Lens.Lens' AgentListEntry (Prelude.Maybe Prelude.Text)+agentListEntry_name = Lens.lens (\AgentListEntry' {name} -> name) (\s@AgentListEntry' {} a -> s {name = a} :: AgentListEntry)++-- | The status of the agent.+agentListEntry_status :: Lens.Lens' AgentListEntry (Prelude.Maybe AgentStatus)+agentListEntry_status = Lens.lens (\AgentListEntry' {status} -> status) (\s@AgentListEntry' {} a -> s {status = a} :: AgentListEntry)++instance Data.FromJSON AgentListEntry where+  parseJSON =+    Data.withObject+      "AgentListEntry"+      ( \x ->+          AgentListEntry'+            Prelude.<$> (x Data..:? "AgentArn")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable AgentListEntry where+  hashWithSalt _salt AgentListEntry' {..} =+    _salt+      `Prelude.hashWithSalt` agentArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData AgentListEntry where+  rnf AgentListEntry' {..} =+    Prelude.rnf agentArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/DataSync/Types/AgentStatus.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.DataSync.Types.AgentStatus+-- 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.DataSync.Types.AgentStatus+  ( AgentStatus+      ( ..,+        AgentStatus_OFFLINE,+        AgentStatus_ONLINE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AgentStatus = AgentStatus'+  { fromAgentStatus ::+      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 AgentStatus_OFFLINE :: AgentStatus+pattern AgentStatus_OFFLINE = AgentStatus' "OFFLINE"++pattern AgentStatus_ONLINE :: AgentStatus+pattern AgentStatus_ONLINE = AgentStatus' "ONLINE"++{-# COMPLETE+  AgentStatus_OFFLINE,+  AgentStatus_ONLINE,+  AgentStatus'+  #-}
+ gen/Amazonka/DataSync/Types/Atime.hs view
@@ -0,0 +1,68 @@+{-# 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.DataSync.Types.Atime+-- 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.DataSync.Types.Atime+  ( Atime+      ( ..,+        Atime_BEST_EFFORT,+        Atime_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Atime = Atime' {fromAtime :: 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 Atime_BEST_EFFORT :: Atime+pattern Atime_BEST_EFFORT = Atime' "BEST_EFFORT"++pattern Atime_NONE :: Atime+pattern Atime_NONE = Atime' "NONE"++{-# COMPLETE+  Atime_BEST_EFFORT,+  Atime_NONE,+  Atime'+  #-}
+ gen/Amazonka/DataSync/Types/Ec2Config.hs view
@@ -0,0 +1,142 @@+{-# 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.DataSync.Types.Ec2Config+-- 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.DataSync.Types.Ec2Config 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 subnet and security groups that DataSync uses to access your Amazon+-- EFS file system.+--+-- /See:/ 'newEc2Config' smart constructor.+data Ec2Config = Ec2Config'+  { -- | Specifies the ARN of a subnet where DataSync creates the+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces network interfaces>+    -- for managing traffic during your transfer.+    --+    -- The subnet must be located:+    --+    -- -   In the same virtual private cloud (VPC) as the Amazon EFS file+    --     system.+    --+    -- -   In the same Availability Zone as at least one mount target for the+    --     Amazon EFS file system.+    --+    -- You don\'t need to specify a subnet that includes a file system mount+    -- target.+    subnetArn :: Prelude.Text,+    -- | Specifies the Amazon Resource Names (ARNs) of the security groups+    -- associated with an Amazon EFS file system\'s mount target.+    securityGroupArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Ec2Config' 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:+--+-- 'subnetArn', 'ec2Config_subnetArn' - Specifies the ARN of a subnet where DataSync creates the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces network interfaces>+-- for managing traffic during your transfer.+--+-- The subnet must be located:+--+-- -   In the same virtual private cloud (VPC) as the Amazon EFS file+--     system.+--+-- -   In the same Availability Zone as at least one mount target for the+--     Amazon EFS file system.+--+-- You don\'t need to specify a subnet that includes a file system mount+-- target.+--+-- 'securityGroupArns', 'ec2Config_securityGroupArns' - Specifies the Amazon Resource Names (ARNs) of the security groups+-- associated with an Amazon EFS file system\'s mount target.+newEc2Config ::+  -- | 'subnetArn'+  Prelude.Text ->+  -- | 'securityGroupArns'+  Prelude.NonEmpty Prelude.Text ->+  Ec2Config+newEc2Config pSubnetArn_ pSecurityGroupArns_ =+  Ec2Config'+    { subnetArn = pSubnetArn_,+      securityGroupArns =+        Lens.coerced Lens.# pSecurityGroupArns_+    }++-- | Specifies the ARN of a subnet where DataSync creates the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces network interfaces>+-- for managing traffic during your transfer.+--+-- The subnet must be located:+--+-- -   In the same virtual private cloud (VPC) as the Amazon EFS file+--     system.+--+-- -   In the same Availability Zone as at least one mount target for the+--     Amazon EFS file system.+--+-- You don\'t need to specify a subnet that includes a file system mount+-- target.+ec2Config_subnetArn :: Lens.Lens' Ec2Config Prelude.Text+ec2Config_subnetArn = Lens.lens (\Ec2Config' {subnetArn} -> subnetArn) (\s@Ec2Config' {} a -> s {subnetArn = a} :: Ec2Config)++-- | Specifies the Amazon Resource Names (ARNs) of the security groups+-- associated with an Amazon EFS file system\'s mount target.+ec2Config_securityGroupArns :: Lens.Lens' Ec2Config (Prelude.NonEmpty Prelude.Text)+ec2Config_securityGroupArns = Lens.lens (\Ec2Config' {securityGroupArns} -> securityGroupArns) (\s@Ec2Config' {} a -> s {securityGroupArns = a} :: Ec2Config) Prelude.. Lens.coerced++instance Data.FromJSON Ec2Config where+  parseJSON =+    Data.withObject+      "Ec2Config"+      ( \x ->+          Ec2Config'+            Prelude.<$> (x Data..: "SubnetArn")+            Prelude.<*> (x Data..: "SecurityGroupArns")+      )++instance Prelude.Hashable Ec2Config where+  hashWithSalt _salt Ec2Config' {..} =+    _salt+      `Prelude.hashWithSalt` subnetArn+      `Prelude.hashWithSalt` securityGroupArns++instance Prelude.NFData Ec2Config where+  rnf Ec2Config' {..} =+    Prelude.rnf subnetArn+      `Prelude.seq` Prelude.rnf securityGroupArns++instance Data.ToJSON Ec2Config where+  toJSON Ec2Config' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("SubnetArn" Data..= subnetArn),+            Prelude.Just+              ("SecurityGroupArns" Data..= securityGroupArns)+          ]+      )
+ gen/Amazonka/DataSync/Types/EfsInTransitEncryption.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.DataSync.Types.EfsInTransitEncryption+-- 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.DataSync.Types.EfsInTransitEncryption+  ( EfsInTransitEncryption+      ( ..,+        EfsInTransitEncryption_NONE,+        EfsInTransitEncryption_TLS1_2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EfsInTransitEncryption = EfsInTransitEncryption'+  { fromEfsInTransitEncryption ::+      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 EfsInTransitEncryption_NONE :: EfsInTransitEncryption+pattern EfsInTransitEncryption_NONE = EfsInTransitEncryption' "NONE"++pattern EfsInTransitEncryption_TLS1_2 :: EfsInTransitEncryption+pattern EfsInTransitEncryption_TLS1_2 = EfsInTransitEncryption' "TLS1_2"++{-# COMPLETE+  EfsInTransitEncryption_NONE,+  EfsInTransitEncryption_TLS1_2,+  EfsInTransitEncryption'+  #-}
+ gen/Amazonka/DataSync/Types/EndpointType.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.DataSync.Types.EndpointType+-- 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.DataSync.Types.EndpointType+  ( EndpointType+      ( ..,+        EndpointType_FIPS,+        EndpointType_PRIVATE_LINK,+        EndpointType_PUBLIC+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EndpointType = EndpointType'+  { fromEndpointType ::+      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 EndpointType_FIPS :: EndpointType+pattern EndpointType_FIPS = EndpointType' "FIPS"++pattern EndpointType_PRIVATE_LINK :: EndpointType+pattern EndpointType_PRIVATE_LINK = EndpointType' "PRIVATE_LINK"++pattern EndpointType_PUBLIC :: EndpointType+pattern EndpointType_PUBLIC = EndpointType' "PUBLIC"++{-# COMPLETE+  EndpointType_FIPS,+  EndpointType_PRIVATE_LINK,+  EndpointType_PUBLIC,+  EndpointType'+  #-}
+ gen/Amazonka/DataSync/Types/FilterRule.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.DataSync.Types.FilterRule+-- 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.DataSync.Types.FilterRule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.FilterType+import qualified Amazonka.Prelude as Prelude++-- | Specifies which files, folders, and objects to include or exclude when+-- transferring files from source to destination.+--+-- /See:/ 'newFilterRule' smart constructor.+data FilterRule = FilterRule'+  { -- | The type of filter rule to apply. DataSync only supports the+    -- SIMPLE_PATTERN rule type.+    filterType :: Prelude.Maybe FilterType,+    -- | A single filter string that consists of the patterns to include or+    -- exclude. The patterns are delimited by \"|\" (that is, a pipe), for+    -- example: @\/folder1|\/folder2@+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FilterRule' 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:+--+-- 'filterType', 'filterRule_filterType' - The type of filter rule to apply. DataSync only supports the+-- SIMPLE_PATTERN rule type.+--+-- 'value', 'filterRule_value' - A single filter string that consists of the patterns to include or+-- exclude. The patterns are delimited by \"|\" (that is, a pipe), for+-- example: @\/folder1|\/folder2@+newFilterRule ::+  FilterRule+newFilterRule =+  FilterRule'+    { filterType = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The type of filter rule to apply. DataSync only supports the+-- SIMPLE_PATTERN rule type.+filterRule_filterType :: Lens.Lens' FilterRule (Prelude.Maybe FilterType)+filterRule_filterType = Lens.lens (\FilterRule' {filterType} -> filterType) (\s@FilterRule' {} a -> s {filterType = a} :: FilterRule)++-- | A single filter string that consists of the patterns to include or+-- exclude. The patterns are delimited by \"|\" (that is, a pipe), for+-- example: @\/folder1|\/folder2@+filterRule_value :: Lens.Lens' FilterRule (Prelude.Maybe Prelude.Text)+filterRule_value = Lens.lens (\FilterRule' {value} -> value) (\s@FilterRule' {} a -> s {value = a} :: FilterRule)++instance Data.FromJSON FilterRule where+  parseJSON =+    Data.withObject+      "FilterRule"+      ( \x ->+          FilterRule'+            Prelude.<$> (x Data..:? "FilterType")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable FilterRule where+  hashWithSalt _salt FilterRule' {..} =+    _salt+      `Prelude.hashWithSalt` filterType+      `Prelude.hashWithSalt` value++instance Prelude.NFData FilterRule where+  rnf FilterRule' {..} =+    Prelude.rnf filterType+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON FilterRule where+  toJSON FilterRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("FilterType" Data..=) Prelude.<$> filterType,+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/DataSync/Types/FilterType.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.DataSync.Types.FilterType+-- 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.DataSync.Types.FilterType+  ( FilterType+      ( ..,+        FilterType_SIMPLE_PATTERN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FilterType = FilterType'+  { fromFilterType ::+      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 FilterType_SIMPLE_PATTERN :: FilterType+pattern FilterType_SIMPLE_PATTERN = FilterType' "SIMPLE_PATTERN"++{-# COMPLETE+  FilterType_SIMPLE_PATTERN,+  FilterType'+  #-}
+ gen/Amazonka/DataSync/Types/FsxProtocol.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.DataSync.Types.FsxProtocol+-- 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.DataSync.Types.FsxProtocol where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.FsxProtocolNfs+import Amazonka.DataSync.Types.FsxProtocolSmb+import qualified Amazonka.Prelude as Prelude++-- | Specifies the data transfer protocol that DataSync uses to access your+-- Amazon FSx file system.+--+-- /See:/ 'newFsxProtocol' smart constructor.+data FsxProtocol = FsxProtocol'+  { -- | Specifies the Network File System (NFS) protocol configuration that+    -- DataSync uses to access your FSx for OpenZFS file system or FSx for+    -- ONTAP file system\'s storage virtual machine (SVM).+    nfs :: Prelude.Maybe FsxProtocolNfs,+    -- | Specifies the Server Message Block (SMB) protocol configuration that+    -- DataSync uses to access your FSx for ONTAP file system\'s SVM.+    smb :: Prelude.Maybe FsxProtocolSmb+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FsxProtocol' 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:+--+-- 'nfs', 'fsxProtocol_nfs' - Specifies the Network File System (NFS) protocol configuration that+-- DataSync uses to access your FSx for OpenZFS file system or FSx for+-- ONTAP file system\'s storage virtual machine (SVM).+--+-- 'smb', 'fsxProtocol_smb' - Specifies the Server Message Block (SMB) protocol configuration that+-- DataSync uses to access your FSx for ONTAP file system\'s SVM.+newFsxProtocol ::+  FsxProtocol+newFsxProtocol =+  FsxProtocol'+    { nfs = Prelude.Nothing,+      smb = Prelude.Nothing+    }++-- | Specifies the Network File System (NFS) protocol configuration that+-- DataSync uses to access your FSx for OpenZFS file system or FSx for+-- ONTAP file system\'s storage virtual machine (SVM).+fsxProtocol_nfs :: Lens.Lens' FsxProtocol (Prelude.Maybe FsxProtocolNfs)+fsxProtocol_nfs = Lens.lens (\FsxProtocol' {nfs} -> nfs) (\s@FsxProtocol' {} a -> s {nfs = a} :: FsxProtocol)++-- | Specifies the Server Message Block (SMB) protocol configuration that+-- DataSync uses to access your FSx for ONTAP file system\'s SVM.+fsxProtocol_smb :: Lens.Lens' FsxProtocol (Prelude.Maybe FsxProtocolSmb)+fsxProtocol_smb = Lens.lens (\FsxProtocol' {smb} -> smb) (\s@FsxProtocol' {} a -> s {smb = a} :: FsxProtocol)++instance Data.FromJSON FsxProtocol where+  parseJSON =+    Data.withObject+      "FsxProtocol"+      ( \x ->+          FsxProtocol'+            Prelude.<$> (x Data..:? "NFS")+            Prelude.<*> (x Data..:? "SMB")+      )++instance Prelude.Hashable FsxProtocol where+  hashWithSalt _salt FsxProtocol' {..} =+    _salt+      `Prelude.hashWithSalt` nfs+      `Prelude.hashWithSalt` smb++instance Prelude.NFData FsxProtocol where+  rnf FsxProtocol' {..} =+    Prelude.rnf nfs `Prelude.seq` Prelude.rnf smb++instance Data.ToJSON FsxProtocol where+  toJSON FsxProtocol' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("NFS" Data..=) Prelude.<$> nfs,+            ("SMB" Data..=) Prelude.<$> smb+          ]+      )
+ gen/Amazonka/DataSync/Types/FsxProtocolNfs.hs view
@@ -0,0 +1,77 @@+{-# 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.DataSync.Types.FsxProtocolNfs+-- 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.DataSync.Types.FsxProtocolNfs where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.NfsMountOptions+import qualified Amazonka.Prelude as Prelude++-- | Specifies the Network File System (NFS) protocol configuration that+-- DataSync uses to access your Amazon FSx for OpenZFS or Amazon FSx for+-- NetApp ONTAP file system.+--+-- /See:/ 'newFsxProtocolNfs' smart constructor.+data FsxProtocolNfs = FsxProtocolNfs'+  { mountOptions :: Prelude.Maybe NfsMountOptions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FsxProtocolNfs' 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:+--+-- 'mountOptions', 'fsxProtocolNfs_mountOptions' - Undocumented member.+newFsxProtocolNfs ::+  FsxProtocolNfs+newFsxProtocolNfs =+  FsxProtocolNfs' {mountOptions = Prelude.Nothing}++-- | Undocumented member.+fsxProtocolNfs_mountOptions :: Lens.Lens' FsxProtocolNfs (Prelude.Maybe NfsMountOptions)+fsxProtocolNfs_mountOptions = Lens.lens (\FsxProtocolNfs' {mountOptions} -> mountOptions) (\s@FsxProtocolNfs' {} a -> s {mountOptions = a} :: FsxProtocolNfs)++instance Data.FromJSON FsxProtocolNfs where+  parseJSON =+    Data.withObject+      "FsxProtocolNfs"+      ( \x ->+          FsxProtocolNfs'+            Prelude.<$> (x Data..:? "MountOptions")+      )++instance Prelude.Hashable FsxProtocolNfs where+  hashWithSalt _salt FsxProtocolNfs' {..} =+    _salt `Prelude.hashWithSalt` mountOptions++instance Prelude.NFData FsxProtocolNfs where+  rnf FsxProtocolNfs' {..} = Prelude.rnf mountOptions++instance Data.ToJSON FsxProtocolNfs where+  toJSON FsxProtocolNfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [("MountOptions" Data..=) Prelude.<$> mountOptions]+      )
+ gen/Amazonka/DataSync/Types/FsxProtocolSmb.hs view
@@ -0,0 +1,210 @@+{-# 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.DataSync.Types.FsxProtocolSmb+-- 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.DataSync.Types.FsxProtocolSmb where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.SmbMountOptions+import qualified Amazonka.Prelude as Prelude++-- | Specifies the Server Message Block (SMB) protocol configuration that+-- DataSync uses to access your Amazon FSx for NetApp ONTAP file system.+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-ontap-location.html#create-ontap-location-access Accessing FSx for ONTAP file systems>.+--+-- /See:/ 'newFsxProtocolSmb' smart constructor.+data FsxProtocolSmb = FsxProtocolSmb'+  { -- | Specifies the fully qualified domain name (FQDN) of the Microsoft Active+    -- Directory that your storage virtual machine (SVM) belongs to.+    domain :: Prelude.Maybe Prelude.Text,+    mountOptions :: Prelude.Maybe SmbMountOptions,+    -- | Specifies the password of a user who has permission to access your SVM.+    password :: Data.Sensitive Prelude.Text,+    -- | Specifies a user name that can mount the location and access the files,+    -- folders, and metadata that you need in the SVM.+    --+    -- If you provide a user in your Active Directory, note the following:+    --+    -- -   If you\'re using Directory Service for Microsoft Active Directory,+    --     the user must be a member of the Amazon Web Services Delegated FSx+    --     Administrators group.+    --+    -- -   If you\'re using a self-managed Active Directory, the user must be a+    --     member of either the Domain Admins group or a custom group that you+    --     specified for file system administration when you created your file+    --     system.+    --+    -- Make sure that the user has the permissions it needs to copy the data+    -- you want:+    --+    -- -   @SE_TCB_NAME@: Required to set object ownership and file metadata.+    --     With this privilege, you also can copy NTFS discretionary access+    --     lists (DACLs).+    --+    -- -   @SE_SECURITY_NAME@: May be needed to copy NTFS system access control+    --     lists (SACLs). This operation specifically requires the Windows+    --     privilege, which is granted to members of the Domain Admins group.+    --     If you configure your task to copy SACLs, make sure that the user+    --     has the required privileges. For information about copying SACLs,+    --     see+    --     <https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html#configure-ownership-and-permissions Ownership and permissions-related options>.+    user :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FsxProtocolSmb' 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:+--+-- 'domain', 'fsxProtocolSmb_domain' - Specifies the fully qualified domain name (FQDN) of the Microsoft Active+-- Directory that your storage virtual machine (SVM) belongs to.+--+-- 'mountOptions', 'fsxProtocolSmb_mountOptions' - Undocumented member.+--+-- 'password', 'fsxProtocolSmb_password' - Specifies the password of a user who has permission to access your SVM.+--+-- 'user', 'fsxProtocolSmb_user' - Specifies a user name that can mount the location and access the files,+-- folders, and metadata that you need in the SVM.+--+-- If you provide a user in your Active Directory, note the following:+--+-- -   If you\'re using Directory Service for Microsoft Active Directory,+--     the user must be a member of the Amazon Web Services Delegated FSx+--     Administrators group.+--+-- -   If you\'re using a self-managed Active Directory, the user must be a+--     member of either the Domain Admins group or a custom group that you+--     specified for file system administration when you created your file+--     system.+--+-- Make sure that the user has the permissions it needs to copy the data+-- you want:+--+-- -   @SE_TCB_NAME@: Required to set object ownership and file metadata.+--     With this privilege, you also can copy NTFS discretionary access+--     lists (DACLs).+--+-- -   @SE_SECURITY_NAME@: May be needed to copy NTFS system access control+--     lists (SACLs). This operation specifically requires the Windows+--     privilege, which is granted to members of the Domain Admins group.+--     If you configure your task to copy SACLs, make sure that the user+--     has the required privileges. For information about copying SACLs,+--     see+--     <https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html#configure-ownership-and-permissions Ownership and permissions-related options>.+newFsxProtocolSmb ::+  -- | 'password'+  Prelude.Text ->+  -- | 'user'+  Prelude.Text ->+  FsxProtocolSmb+newFsxProtocolSmb pPassword_ pUser_ =+  FsxProtocolSmb'+    { domain = Prelude.Nothing,+      mountOptions = Prelude.Nothing,+      password = Data._Sensitive Lens.# pPassword_,+      user = pUser_+    }++-- | Specifies the fully qualified domain name (FQDN) of the Microsoft Active+-- Directory that your storage virtual machine (SVM) belongs to.+fsxProtocolSmb_domain :: Lens.Lens' FsxProtocolSmb (Prelude.Maybe Prelude.Text)+fsxProtocolSmb_domain = Lens.lens (\FsxProtocolSmb' {domain} -> domain) (\s@FsxProtocolSmb' {} a -> s {domain = a} :: FsxProtocolSmb)++-- | Undocumented member.+fsxProtocolSmb_mountOptions :: Lens.Lens' FsxProtocolSmb (Prelude.Maybe SmbMountOptions)+fsxProtocolSmb_mountOptions = Lens.lens (\FsxProtocolSmb' {mountOptions} -> mountOptions) (\s@FsxProtocolSmb' {} a -> s {mountOptions = a} :: FsxProtocolSmb)++-- | Specifies the password of a user who has permission to access your SVM.+fsxProtocolSmb_password :: Lens.Lens' FsxProtocolSmb Prelude.Text+fsxProtocolSmb_password = Lens.lens (\FsxProtocolSmb' {password} -> password) (\s@FsxProtocolSmb' {} a -> s {password = a} :: FsxProtocolSmb) Prelude.. Data._Sensitive++-- | Specifies a user name that can mount the location and access the files,+-- folders, and metadata that you need in the SVM.+--+-- If you provide a user in your Active Directory, note the following:+--+-- -   If you\'re using Directory Service for Microsoft Active Directory,+--     the user must be a member of the Amazon Web Services Delegated FSx+--     Administrators group.+--+-- -   If you\'re using a self-managed Active Directory, the user must be a+--     member of either the Domain Admins group or a custom group that you+--     specified for file system administration when you created your file+--     system.+--+-- Make sure that the user has the permissions it needs to copy the data+-- you want:+--+-- -   @SE_TCB_NAME@: Required to set object ownership and file metadata.+--     With this privilege, you also can copy NTFS discretionary access+--     lists (DACLs).+--+-- -   @SE_SECURITY_NAME@: May be needed to copy NTFS system access control+--     lists (SACLs). This operation specifically requires the Windows+--     privilege, which is granted to members of the Domain Admins group.+--     If you configure your task to copy SACLs, make sure that the user+--     has the required privileges. For information about copying SACLs,+--     see+--     <https://docs.aws.amazon.com/datasync/latest/userguide/create-task.html#configure-ownership-and-permissions Ownership and permissions-related options>.+fsxProtocolSmb_user :: Lens.Lens' FsxProtocolSmb Prelude.Text+fsxProtocolSmb_user = Lens.lens (\FsxProtocolSmb' {user} -> user) (\s@FsxProtocolSmb' {} a -> s {user = a} :: FsxProtocolSmb)++instance Data.FromJSON FsxProtocolSmb where+  parseJSON =+    Data.withObject+      "FsxProtocolSmb"+      ( \x ->+          FsxProtocolSmb'+            Prelude.<$> (x Data..:? "Domain")+            Prelude.<*> (x Data..:? "MountOptions")+            Prelude.<*> (x Data..: "Password")+            Prelude.<*> (x Data..: "User")+      )++instance Prelude.Hashable FsxProtocolSmb where+  hashWithSalt _salt FsxProtocolSmb' {..} =+    _salt+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` mountOptions+      `Prelude.hashWithSalt` password+      `Prelude.hashWithSalt` user++instance Prelude.NFData FsxProtocolSmb where+  rnf FsxProtocolSmb' {..} =+    Prelude.rnf domain+      `Prelude.seq` Prelude.rnf mountOptions+      `Prelude.seq` Prelude.rnf password+      `Prelude.seq` Prelude.rnf user++instance Data.ToJSON FsxProtocolSmb where+  toJSON FsxProtocolSmb' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Domain" Data..=) Prelude.<$> domain,+            ("MountOptions" Data..=) Prelude.<$> mountOptions,+            Prelude.Just ("Password" Data..= password),+            Prelude.Just ("User" Data..= user)+          ]+      )
+ gen/Amazonka/DataSync/Types/Gid.hs view
@@ -0,0 +1,78 @@+{-# 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.DataSync.Types.Gid+-- 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.DataSync.Types.Gid+  ( Gid+      ( ..,+        Gid_BOTH,+        Gid_INT_VALUE,+        Gid_NAME,+        Gid_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Gid = Gid' {fromGid :: 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 Gid_BOTH :: Gid+pattern Gid_BOTH = Gid' "BOTH"++pattern Gid_INT_VALUE :: Gid+pattern Gid_INT_VALUE = Gid' "INT_VALUE"++pattern Gid_NAME :: Gid+pattern Gid_NAME = Gid' "NAME"++pattern Gid_NONE :: Gid+pattern Gid_NONE = Gid' "NONE"++{-# COMPLETE+  Gid_BOTH,+  Gid_INT_VALUE,+  Gid_NAME,+  Gid_NONE,+  Gid'+  #-}
+ gen/Amazonka/DataSync/Types/HdfsAuthenticationType.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.DataSync.Types.HdfsAuthenticationType+-- 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.DataSync.Types.HdfsAuthenticationType+  ( HdfsAuthenticationType+      ( ..,+        HdfsAuthenticationType_KERBEROS,+        HdfsAuthenticationType_SIMPLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HdfsAuthenticationType = HdfsAuthenticationType'+  { fromHdfsAuthenticationType ::+      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 HdfsAuthenticationType_KERBEROS :: HdfsAuthenticationType+pattern HdfsAuthenticationType_KERBEROS = HdfsAuthenticationType' "KERBEROS"++pattern HdfsAuthenticationType_SIMPLE :: HdfsAuthenticationType+pattern HdfsAuthenticationType_SIMPLE = HdfsAuthenticationType' "SIMPLE"++{-# COMPLETE+  HdfsAuthenticationType_KERBEROS,+  HdfsAuthenticationType_SIMPLE,+  HdfsAuthenticationType'+  #-}
+ gen/Amazonka/DataSync/Types/HdfsDataTransferProtection.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.DataSync.Types.HdfsDataTransferProtection+-- 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.DataSync.Types.HdfsDataTransferProtection+  ( HdfsDataTransferProtection+      ( ..,+        HdfsDataTransferProtection_AUTHENTICATION,+        HdfsDataTransferProtection_DISABLED,+        HdfsDataTransferProtection_INTEGRITY,+        HdfsDataTransferProtection_PRIVACY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HdfsDataTransferProtection = HdfsDataTransferProtection'+  { fromHdfsDataTransferProtection ::+      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 HdfsDataTransferProtection_AUTHENTICATION :: HdfsDataTransferProtection+pattern HdfsDataTransferProtection_AUTHENTICATION = HdfsDataTransferProtection' "AUTHENTICATION"++pattern HdfsDataTransferProtection_DISABLED :: HdfsDataTransferProtection+pattern HdfsDataTransferProtection_DISABLED = HdfsDataTransferProtection' "DISABLED"++pattern HdfsDataTransferProtection_INTEGRITY :: HdfsDataTransferProtection+pattern HdfsDataTransferProtection_INTEGRITY = HdfsDataTransferProtection' "INTEGRITY"++pattern HdfsDataTransferProtection_PRIVACY :: HdfsDataTransferProtection+pattern HdfsDataTransferProtection_PRIVACY = HdfsDataTransferProtection' "PRIVACY"++{-# COMPLETE+  HdfsDataTransferProtection_AUTHENTICATION,+  HdfsDataTransferProtection_DISABLED,+  HdfsDataTransferProtection_INTEGRITY,+  HdfsDataTransferProtection_PRIVACY,+  HdfsDataTransferProtection'+  #-}
+ gen/Amazonka/DataSync/Types/HdfsNameNode.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.DataSync.Types.HdfsNameNode+-- 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.DataSync.Types.HdfsNameNode 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 NameNode of the Hadoop Distributed File System (HDFS). The NameNode+-- manages the file system\'s namespace. The NameNode performs operations+-- such as opening, closing, and renaming files and directories. The+-- NameNode contains the information to map blocks of data to the+-- DataNodes.+--+-- /See:/ 'newHdfsNameNode' smart constructor.+data HdfsNameNode = HdfsNameNode'+  { -- | The hostname of the NameNode in the HDFS cluster. This value is the IP+    -- address or Domain Name Service (DNS) name of the NameNode. An agent+    -- that\'s installed on-premises uses this hostname to communicate with the+    -- NameNode in the network.+    hostname :: Prelude.Text,+    -- | The port that the NameNode uses to listen to client requests.+    port :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HdfsNameNode' 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:+--+-- 'hostname', 'hdfsNameNode_hostname' - The hostname of the NameNode in the HDFS cluster. This value is the IP+-- address or Domain Name Service (DNS) name of the NameNode. An agent+-- that\'s installed on-premises uses this hostname to communicate with the+-- NameNode in the network.+--+-- 'port', 'hdfsNameNode_port' - The port that the NameNode uses to listen to client requests.+newHdfsNameNode ::+  -- | 'hostname'+  Prelude.Text ->+  -- | 'port'+  Prelude.Natural ->+  HdfsNameNode+newHdfsNameNode pHostname_ pPort_ =+  HdfsNameNode' {hostname = pHostname_, port = pPort_}++-- | The hostname of the NameNode in the HDFS cluster. This value is the IP+-- address or Domain Name Service (DNS) name of the NameNode. An agent+-- that\'s installed on-premises uses this hostname to communicate with the+-- NameNode in the network.+hdfsNameNode_hostname :: Lens.Lens' HdfsNameNode Prelude.Text+hdfsNameNode_hostname = Lens.lens (\HdfsNameNode' {hostname} -> hostname) (\s@HdfsNameNode' {} a -> s {hostname = a} :: HdfsNameNode)++-- | The port that the NameNode uses to listen to client requests.+hdfsNameNode_port :: Lens.Lens' HdfsNameNode Prelude.Natural+hdfsNameNode_port = Lens.lens (\HdfsNameNode' {port} -> port) (\s@HdfsNameNode' {} a -> s {port = a} :: HdfsNameNode)++instance Data.FromJSON HdfsNameNode where+  parseJSON =+    Data.withObject+      "HdfsNameNode"+      ( \x ->+          HdfsNameNode'+            Prelude.<$> (x Data..: "Hostname")+            Prelude.<*> (x Data..: "Port")+      )++instance Prelude.Hashable HdfsNameNode where+  hashWithSalt _salt HdfsNameNode' {..} =+    _salt+      `Prelude.hashWithSalt` hostname+      `Prelude.hashWithSalt` port++instance Prelude.NFData HdfsNameNode where+  rnf HdfsNameNode' {..} =+    Prelude.rnf hostname `Prelude.seq` Prelude.rnf port++instance Data.ToJSON HdfsNameNode where+  toJSON HdfsNameNode' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Hostname" Data..= hostname),+            Prelude.Just ("Port" Data..= port)+          ]+      )
+ gen/Amazonka/DataSync/Types/HdfsRpcProtection.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.DataSync.Types.HdfsRpcProtection+-- 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.DataSync.Types.HdfsRpcProtection+  ( HdfsRpcProtection+      ( ..,+        HdfsRpcProtection_AUTHENTICATION,+        HdfsRpcProtection_DISABLED,+        HdfsRpcProtection_INTEGRITY,+        HdfsRpcProtection_PRIVACY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HdfsRpcProtection = HdfsRpcProtection'+  { fromHdfsRpcProtection ::+      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 HdfsRpcProtection_AUTHENTICATION :: HdfsRpcProtection+pattern HdfsRpcProtection_AUTHENTICATION = HdfsRpcProtection' "AUTHENTICATION"++pattern HdfsRpcProtection_DISABLED :: HdfsRpcProtection+pattern HdfsRpcProtection_DISABLED = HdfsRpcProtection' "DISABLED"++pattern HdfsRpcProtection_INTEGRITY :: HdfsRpcProtection+pattern HdfsRpcProtection_INTEGRITY = HdfsRpcProtection' "INTEGRITY"++pattern HdfsRpcProtection_PRIVACY :: HdfsRpcProtection+pattern HdfsRpcProtection_PRIVACY = HdfsRpcProtection' "PRIVACY"++{-# COMPLETE+  HdfsRpcProtection_AUTHENTICATION,+  HdfsRpcProtection_DISABLED,+  HdfsRpcProtection_INTEGRITY,+  HdfsRpcProtection_PRIVACY,+  HdfsRpcProtection'+  #-}
+ gen/Amazonka/DataSync/Types/LocationFilter.hs view
@@ -0,0 +1,119 @@+{-# 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.DataSync.Types.LocationFilter+-- 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.DataSync.Types.LocationFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.LocationFilterName+import Amazonka.DataSync.Types.Operator+import qualified Amazonka.Prelude as Prelude++-- | Narrow down the list of resources returned by @ListLocations@. For+-- example, to see all your Amazon S3 locations, create a filter using+-- @\"Name\": \"LocationType\"@, @\"Operator\": \"Equals\"@, and+-- @\"Values\": \"S3\"@.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/query-resources.html filtering resources>.+--+-- /See:/ 'newLocationFilter' smart constructor.+data LocationFilter = LocationFilter'+  { -- | The name of the filter being used. Each API call supports a list of+    -- filters that are available for it (for example, @LocationType@ for+    -- @ListLocations@).+    name :: LocationFilterName,+    -- | The values that you want to filter for. For example, you might want to+    -- display only Amazon S3 locations.+    values :: [Prelude.Text],+    -- | The operator that is used to compare filter values (for example,+    -- @Equals@ or @Contains@).+    operator :: Operator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LocationFilter' 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', 'locationFilter_name' - The name of the filter being used. Each API call supports a list of+-- filters that are available for it (for example, @LocationType@ for+-- @ListLocations@).+--+-- 'values', 'locationFilter_values' - The values that you want to filter for. For example, you might want to+-- display only Amazon S3 locations.+--+-- 'operator', 'locationFilter_operator' - The operator that is used to compare filter values (for example,+-- @Equals@ or @Contains@).+newLocationFilter ::+  -- | 'name'+  LocationFilterName ->+  -- | 'operator'+  Operator ->+  LocationFilter+newLocationFilter pName_ pOperator_ =+  LocationFilter'+    { name = pName_,+      values = Prelude.mempty,+      operator = pOperator_+    }++-- | The name of the filter being used. Each API call supports a list of+-- filters that are available for it (for example, @LocationType@ for+-- @ListLocations@).+locationFilter_name :: Lens.Lens' LocationFilter LocationFilterName+locationFilter_name = Lens.lens (\LocationFilter' {name} -> name) (\s@LocationFilter' {} a -> s {name = a} :: LocationFilter)++-- | The values that you want to filter for. For example, you might want to+-- display only Amazon S3 locations.+locationFilter_values :: Lens.Lens' LocationFilter [Prelude.Text]+locationFilter_values = Lens.lens (\LocationFilter' {values} -> values) (\s@LocationFilter' {} a -> s {values = a} :: LocationFilter) Prelude.. Lens.coerced++-- | The operator that is used to compare filter values (for example,+-- @Equals@ or @Contains@).+locationFilter_operator :: Lens.Lens' LocationFilter Operator+locationFilter_operator = Lens.lens (\LocationFilter' {operator} -> operator) (\s@LocationFilter' {} a -> s {operator = a} :: LocationFilter)++instance Prelude.Hashable LocationFilter where+  hashWithSalt _salt LocationFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData LocationFilter where+  rnf LocationFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON LocationFilter where+  toJSON LocationFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Values" Data..= values),+            Prelude.Just ("Operator" Data..= operator)+          ]+      )
+ gen/Amazonka/DataSync/Types/LocationFilterName.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.DataSync.Types.LocationFilterName+-- 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.DataSync.Types.LocationFilterName+  ( LocationFilterName+      ( ..,+        LocationFilterName_CreationTime,+        LocationFilterName_LocationType,+        LocationFilterName_LocationUri+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LocationFilterName = LocationFilterName'+  { fromLocationFilterName ::+      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 LocationFilterName_CreationTime :: LocationFilterName+pattern LocationFilterName_CreationTime = LocationFilterName' "CreationTime"++pattern LocationFilterName_LocationType :: LocationFilterName+pattern LocationFilterName_LocationType = LocationFilterName' "LocationType"++pattern LocationFilterName_LocationUri :: LocationFilterName+pattern LocationFilterName_LocationUri = LocationFilterName' "LocationUri"++{-# COMPLETE+  LocationFilterName_CreationTime,+  LocationFilterName_LocationType,+  LocationFilterName_LocationUri,+  LocationFilterName'+  #-}
+ gen/Amazonka/DataSync/Types/LocationListEntry.hs view
@@ -0,0 +1,150 @@+{-# 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.DataSync.Types.LocationListEntry+-- 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.DataSync.Types.LocationListEntry 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++-- | Represents a single entry in a list of locations. @LocationListEntry@+-- returns an array that contains a list of locations when the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_ListLocations.html ListLocations>+-- operation is called.+--+-- /See:/ 'newLocationListEntry' smart constructor.+data LocationListEntry = LocationListEntry'+  { -- | The Amazon Resource Name (ARN) of the location. For Network File System+    -- (NFS) or Amazon EFS, the location is the export path. For Amazon S3, the+    -- location is the prefix path that you want to mount and use as the root+    -- of the location.+    locationArn :: Prelude.Maybe Prelude.Text,+    -- | Represents a list of URIs of a location. @LocationUri@ returns an array+    -- that contains a list of locations when the+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/API_ListLocations.html ListLocations>+    -- operation is called.+    --+    -- Format: @TYPE:\/\/GLOBAL_ID\/SUBDIR@.+    --+    -- TYPE designates the type of location (for example, @nfs@ or @s3@).+    --+    -- GLOBAL_ID is the globally unique identifier of the resource that backs+    -- the location. An example for EFS is @us-east-2.fs-abcd1234@. An example+    -- for Amazon S3 is the bucket name, such as @myBucket@. An example for NFS+    -- is a valid IPv4 address or a hostname that is compliant with Domain Name+    -- Service (DNS).+    --+    -- SUBDIR is a valid file system path, delimited by forward slashes as is+    -- the *nix convention. For NFS and Amazon EFS, it\'s the export path to+    -- mount the location. For Amazon S3, it\'s the prefix path that you mount+    -- to and treat as the root of the location.+    locationUri :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LocationListEntry' 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:+--+-- 'locationArn', 'locationListEntry_locationArn' - The Amazon Resource Name (ARN) of the location. For Network File System+-- (NFS) or Amazon EFS, the location is the export path. For Amazon S3, the+-- location is the prefix path that you want to mount and use as the root+-- of the location.+--+-- 'locationUri', 'locationListEntry_locationUri' - Represents a list of URIs of a location. @LocationUri@ returns an array+-- that contains a list of locations when the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_ListLocations.html ListLocations>+-- operation is called.+--+-- Format: @TYPE:\/\/GLOBAL_ID\/SUBDIR@.+--+-- TYPE designates the type of location (for example, @nfs@ or @s3@).+--+-- GLOBAL_ID is the globally unique identifier of the resource that backs+-- the location. An example for EFS is @us-east-2.fs-abcd1234@. An example+-- for Amazon S3 is the bucket name, such as @myBucket@. An example for NFS+-- is a valid IPv4 address or a hostname that is compliant with Domain Name+-- Service (DNS).+--+-- SUBDIR is a valid file system path, delimited by forward slashes as is+-- the *nix convention. For NFS and Amazon EFS, it\'s the export path to+-- mount the location. For Amazon S3, it\'s the prefix path that you mount+-- to and treat as the root of the location.+newLocationListEntry ::+  LocationListEntry+newLocationListEntry =+  LocationListEntry'+    { locationArn = Prelude.Nothing,+      locationUri = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the location. For Network File System+-- (NFS) or Amazon EFS, the location is the export path. For Amazon S3, the+-- location is the prefix path that you want to mount and use as the root+-- of the location.+locationListEntry_locationArn :: Lens.Lens' LocationListEntry (Prelude.Maybe Prelude.Text)+locationListEntry_locationArn = Lens.lens (\LocationListEntry' {locationArn} -> locationArn) (\s@LocationListEntry' {} a -> s {locationArn = a} :: LocationListEntry)++-- | Represents a list of URIs of a location. @LocationUri@ returns an array+-- that contains a list of locations when the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_ListLocations.html ListLocations>+-- operation is called.+--+-- Format: @TYPE:\/\/GLOBAL_ID\/SUBDIR@.+--+-- TYPE designates the type of location (for example, @nfs@ or @s3@).+--+-- GLOBAL_ID is the globally unique identifier of the resource that backs+-- the location. An example for EFS is @us-east-2.fs-abcd1234@. An example+-- for Amazon S3 is the bucket name, such as @myBucket@. An example for NFS+-- is a valid IPv4 address or a hostname that is compliant with Domain Name+-- Service (DNS).+--+-- SUBDIR is a valid file system path, delimited by forward slashes as is+-- the *nix convention. For NFS and Amazon EFS, it\'s the export path to+-- mount the location. For Amazon S3, it\'s the prefix path that you mount+-- to and treat as the root of the location.+locationListEntry_locationUri :: Lens.Lens' LocationListEntry (Prelude.Maybe Prelude.Text)+locationListEntry_locationUri = Lens.lens (\LocationListEntry' {locationUri} -> locationUri) (\s@LocationListEntry' {} a -> s {locationUri = a} :: LocationListEntry)++instance Data.FromJSON LocationListEntry where+  parseJSON =+    Data.withObject+      "LocationListEntry"+      ( \x ->+          LocationListEntry'+            Prelude.<$> (x Data..:? "LocationArn")+            Prelude.<*> (x Data..:? "LocationUri")+      )++instance Prelude.Hashable LocationListEntry where+  hashWithSalt _salt LocationListEntry' {..} =+    _salt+      `Prelude.hashWithSalt` locationArn+      `Prelude.hashWithSalt` locationUri++instance Prelude.NFData LocationListEntry where+  rnf LocationListEntry' {..} =+    Prelude.rnf locationArn+      `Prelude.seq` Prelude.rnf locationUri
+ gen/Amazonka/DataSync/Types/LogLevel.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.DataSync.Types.LogLevel+-- 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.DataSync.Types.LogLevel+  ( LogLevel+      ( ..,+        LogLevel_BASIC,+        LogLevel_OFF,+        LogLevel_TRANSFER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LogLevel = LogLevel'+  { fromLogLevel ::+      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 LogLevel_BASIC :: LogLevel+pattern LogLevel_BASIC = LogLevel' "BASIC"++pattern LogLevel_OFF :: LogLevel+pattern LogLevel_OFF = LogLevel' "OFF"++pattern LogLevel_TRANSFER :: LogLevel+pattern LogLevel_TRANSFER = LogLevel' "TRANSFER"++{-# COMPLETE+  LogLevel_BASIC,+  LogLevel_OFF,+  LogLevel_TRANSFER,+  LogLevel'+  #-}
+ gen/Amazonka/DataSync/Types/Mtime.hs view
@@ -0,0 +1,68 @@+{-# 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.DataSync.Types.Mtime+-- 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.DataSync.Types.Mtime+  ( Mtime+      ( ..,+        Mtime_NONE,+        Mtime_PRESERVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Mtime = Mtime' {fromMtime :: 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 Mtime_NONE :: Mtime+pattern Mtime_NONE = Mtime' "NONE"++pattern Mtime_PRESERVE :: Mtime+pattern Mtime_PRESERVE = Mtime' "PRESERVE"++{-# COMPLETE+  Mtime_NONE,+  Mtime_PRESERVE,+  Mtime'+  #-}
+ gen/Amazonka/DataSync/Types/NfsMountOptions.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.DataSync.Types.NfsMountOptions+-- 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.DataSync.Types.NfsMountOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.NfsVersion+import qualified Amazonka.Prelude as Prelude++-- | Specifies how DataSync can access a location using the NFS protocol.+--+-- /See:/ 'newNfsMountOptions' smart constructor.+data NfsMountOptions = NfsMountOptions'+  { -- | Specifies the NFS version that you want DataSync to use when mounting+    -- your NFS share. If the server refuses to use the version specified, the+    -- task fails.+    --+    -- You can specify the following options:+    --+    -- -   @AUTOMATIC@ (default): DataSync chooses NFS version 4.1.+    --+    -- -   @NFS3@: Stateless protocol version that allows for asynchronous+    --     writes on the server.+    --+    -- -   @NFSv4_0@: Stateful, firewall-friendly protocol version that+    --     supports delegations and pseudo file systems.+    --+    -- -   @NFSv4_1@: Stateful protocol version that supports sessions,+    --     directory delegations, and parallel data processing. NFS version 4.1+    --     also includes all features available in version 4.0.+    --+    -- DataSync currently only supports NFS version 3 with Amazon FSx for+    -- NetApp ONTAP locations.+    version :: Prelude.Maybe NfsVersion+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NfsMountOptions' 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:+--+-- 'version', 'nfsMountOptions_version' - Specifies the NFS version that you want DataSync to use when mounting+-- your NFS share. If the server refuses to use the version specified, the+-- task fails.+--+-- You can specify the following options:+--+-- -   @AUTOMATIC@ (default): DataSync chooses NFS version 4.1.+--+-- -   @NFS3@: Stateless protocol version that allows for asynchronous+--     writes on the server.+--+-- -   @NFSv4_0@: Stateful, firewall-friendly protocol version that+--     supports delegations and pseudo file systems.+--+-- -   @NFSv4_1@: Stateful protocol version that supports sessions,+--     directory delegations, and parallel data processing. NFS version 4.1+--     also includes all features available in version 4.0.+--+-- DataSync currently only supports NFS version 3 with Amazon FSx for+-- NetApp ONTAP locations.+newNfsMountOptions ::+  NfsMountOptions+newNfsMountOptions =+  NfsMountOptions' {version = Prelude.Nothing}++-- | Specifies the NFS version that you want DataSync to use when mounting+-- your NFS share. If the server refuses to use the version specified, the+-- task fails.+--+-- You can specify the following options:+--+-- -   @AUTOMATIC@ (default): DataSync chooses NFS version 4.1.+--+-- -   @NFS3@: Stateless protocol version that allows for asynchronous+--     writes on the server.+--+-- -   @NFSv4_0@: Stateful, firewall-friendly protocol version that+--     supports delegations and pseudo file systems.+--+-- -   @NFSv4_1@: Stateful protocol version that supports sessions,+--     directory delegations, and parallel data processing. NFS version 4.1+--     also includes all features available in version 4.0.+--+-- DataSync currently only supports NFS version 3 with Amazon FSx for+-- NetApp ONTAP locations.+nfsMountOptions_version :: Lens.Lens' NfsMountOptions (Prelude.Maybe NfsVersion)+nfsMountOptions_version = Lens.lens (\NfsMountOptions' {version} -> version) (\s@NfsMountOptions' {} a -> s {version = a} :: NfsMountOptions)++instance Data.FromJSON NfsMountOptions where+  parseJSON =+    Data.withObject+      "NfsMountOptions"+      ( \x ->+          NfsMountOptions' Prelude.<$> (x Data..:? "Version")+      )++instance Prelude.Hashable NfsMountOptions where+  hashWithSalt _salt NfsMountOptions' {..} =+    _salt `Prelude.hashWithSalt` version++instance Prelude.NFData NfsMountOptions where+  rnf NfsMountOptions' {..} = Prelude.rnf version++instance Data.ToJSON NfsMountOptions where+  toJSON NfsMountOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Version" Data..=) Prelude.<$> version]+      )
+ gen/Amazonka/DataSync/Types/NfsVersion.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.DataSync.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.DataSync.Types.NfsVersion+  ( NfsVersion+      ( ..,+        NfsVersion_AUTOMATIC,+        NfsVersion_NFS3,+        NfsVersion_NFS4_0,+        NfsVersion_NFS4_1+      ),+  )+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_AUTOMATIC :: NfsVersion+pattern NfsVersion_AUTOMATIC = NfsVersion' "AUTOMATIC"++pattern NfsVersion_NFS3 :: NfsVersion+pattern NfsVersion_NFS3 = NfsVersion' "NFS3"++pattern NfsVersion_NFS4_0 :: NfsVersion+pattern NfsVersion_NFS4_0 = NfsVersion' "NFS4_0"++pattern NfsVersion_NFS4_1 :: NfsVersion+pattern NfsVersion_NFS4_1 = NfsVersion' "NFS4_1"++{-# COMPLETE+  NfsVersion_AUTOMATIC,+  NfsVersion_NFS3,+  NfsVersion_NFS4_0,+  NfsVersion_NFS4_1,+  NfsVersion'+  #-}
+ gen/Amazonka/DataSync/Types/ObjectStorageServerProtocol.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.DataSync.Types.ObjectStorageServerProtocol+-- 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.DataSync.Types.ObjectStorageServerProtocol+  ( ObjectStorageServerProtocol+      ( ..,+        ObjectStorageServerProtocol_HTTP,+        ObjectStorageServerProtocol_HTTPS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ObjectStorageServerProtocol = ObjectStorageServerProtocol'+  { fromObjectStorageServerProtocol ::+      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 ObjectStorageServerProtocol_HTTP :: ObjectStorageServerProtocol+pattern ObjectStorageServerProtocol_HTTP = ObjectStorageServerProtocol' "HTTP"++pattern ObjectStorageServerProtocol_HTTPS :: ObjectStorageServerProtocol+pattern ObjectStorageServerProtocol_HTTPS = ObjectStorageServerProtocol' "HTTPS"++{-# COMPLETE+  ObjectStorageServerProtocol_HTTP,+  ObjectStorageServerProtocol_HTTPS,+  ObjectStorageServerProtocol'+  #-}
+ gen/Amazonka/DataSync/Types/ObjectTags.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.DataSync.Types.ObjectTags+-- 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.DataSync.Types.ObjectTags+  ( ObjectTags+      ( ..,+        ObjectTags_NONE,+        ObjectTags_PRESERVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ObjectTags = ObjectTags'+  { fromObjectTags ::+      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 ObjectTags_NONE :: ObjectTags+pattern ObjectTags_NONE = ObjectTags' "NONE"++pattern ObjectTags_PRESERVE :: ObjectTags+pattern ObjectTags_PRESERVE = ObjectTags' "PRESERVE"++{-# COMPLETE+  ObjectTags_NONE,+  ObjectTags_PRESERVE,+  ObjectTags'+  #-}
+ gen/Amazonka/DataSync/Types/OnPremConfig.hs view
@@ -0,0 +1,80 @@+{-# 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.DataSync.Types.OnPremConfig+-- 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.DataSync.Types.OnPremConfig 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 list of Amazon Resource Names (ARNs) of agents to use for a Network+-- File System (NFS) location.+--+-- /See:/ 'newOnPremConfig' smart constructor.+data OnPremConfig = OnPremConfig'+  { -- | ARNs of the agents to use for an NFS location.+    agentArns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OnPremConfig' 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:+--+-- 'agentArns', 'onPremConfig_agentArns' - ARNs of the agents to use for an NFS location.+newOnPremConfig ::+  -- | 'agentArns'+  Prelude.NonEmpty Prelude.Text ->+  OnPremConfig+newOnPremConfig pAgentArns_ =+  OnPremConfig'+    { agentArns =+        Lens.coerced Lens.# pAgentArns_+    }++-- | ARNs of the agents to use for an NFS location.+onPremConfig_agentArns :: Lens.Lens' OnPremConfig (Prelude.NonEmpty Prelude.Text)+onPremConfig_agentArns = Lens.lens (\OnPremConfig' {agentArns} -> agentArns) (\s@OnPremConfig' {} a -> s {agentArns = a} :: OnPremConfig) Prelude.. Lens.coerced++instance Data.FromJSON OnPremConfig where+  parseJSON =+    Data.withObject+      "OnPremConfig"+      ( \x ->+          OnPremConfig' Prelude.<$> (x Data..: "AgentArns")+      )++instance Prelude.Hashable OnPremConfig where+  hashWithSalt _salt OnPremConfig' {..} =+    _salt `Prelude.hashWithSalt` agentArns++instance Prelude.NFData OnPremConfig where+  rnf OnPremConfig' {..} = Prelude.rnf agentArns++instance Data.ToJSON OnPremConfig where+  toJSON OnPremConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("AgentArns" Data..= agentArns)]+      )
+ gen/Amazonka/DataSync/Types/Operator.hs view
@@ -0,0 +1,111 @@+{-# 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.DataSync.Types.Operator+-- 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.DataSync.Types.Operator+  ( Operator+      ( ..,+        Operator_BeginsWith,+        Operator_Contains,+        Operator_Equals,+        Operator_GreaterThan,+        Operator_GreaterThanOrEqual,+        Operator_In,+        Operator_LessThan,+        Operator_LessThanOrEqual,+        Operator_NotContains,+        Operator_NotEquals+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Operator = Operator'+  { fromOperator ::+      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 Operator_BeginsWith :: Operator+pattern Operator_BeginsWith = Operator' "BeginsWith"++pattern Operator_Contains :: Operator+pattern Operator_Contains = Operator' "Contains"++pattern Operator_Equals :: Operator+pattern Operator_Equals = Operator' "Equals"++pattern Operator_GreaterThan :: Operator+pattern Operator_GreaterThan = Operator' "GreaterThan"++pattern Operator_GreaterThanOrEqual :: Operator+pattern Operator_GreaterThanOrEqual = Operator' "GreaterThanOrEqual"++pattern Operator_In :: Operator+pattern Operator_In = Operator' "In"++pattern Operator_LessThan :: Operator+pattern Operator_LessThan = Operator' "LessThan"++pattern Operator_LessThanOrEqual :: Operator+pattern Operator_LessThanOrEqual = Operator' "LessThanOrEqual"++pattern Operator_NotContains :: Operator+pattern Operator_NotContains = Operator' "NotContains"++pattern Operator_NotEquals :: Operator+pattern Operator_NotEquals = Operator' "NotEquals"++{-# COMPLETE+  Operator_BeginsWith,+  Operator_Contains,+  Operator_Equals,+  Operator_GreaterThan,+  Operator_GreaterThanOrEqual,+  Operator_In,+  Operator_LessThan,+  Operator_LessThanOrEqual,+  Operator_NotContains,+  Operator_NotEquals,+  Operator'+  #-}
+ gen/Amazonka/DataSync/Types/Options.hs view
@@ -0,0 +1,857 @@+{-# 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.DataSync.Types.Options+-- 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.DataSync.Types.Options where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.Atime+import Amazonka.DataSync.Types.Gid+import Amazonka.DataSync.Types.LogLevel+import Amazonka.DataSync.Types.Mtime+import Amazonka.DataSync.Types.ObjectTags+import Amazonka.DataSync.Types.OverwriteMode+import Amazonka.DataSync.Types.PosixPermissions+import Amazonka.DataSync.Types.PreserveDeletedFiles+import Amazonka.DataSync.Types.PreserveDevices+import Amazonka.DataSync.Types.SmbSecurityDescriptorCopyFlags+import Amazonka.DataSync.Types.TaskQueueing+import Amazonka.DataSync.Types.TransferMode+import Amazonka.DataSync.Types.Uid+import Amazonka.DataSync.Types.VerifyMode+import qualified Amazonka.Prelude as Prelude++-- | Configures your DataSync task settings. These options include how+-- DataSync handles files, objects, and their associated metadata. You also+-- can specify how DataSync verifies data integrity, set bandwidth limits+-- for your task, among other options.+--+-- Each task setting has a default value. Unless you need to, you don\'t+-- have to configure any of these @Options@ before starting your task.+--+-- /See:/ 'newOptions' smart constructor.+data Options = Options'+  { -- | Specifies whether to preserve metadata indicating the last time a file+    -- was read or written to. If you set @Atime@ to @BEST_EFFORT@, DataSync+    -- attempts to preserve the original @Atime@ attribute on all source files+    -- (that is, the version before the @PREPARING@ phase of the task+    -- execution).+    --+    -- The behavior of @Atime@ isn\'t fully standard across platforms, so+    -- DataSync can only do this on a best-effort basis.+    --+    -- Default value: @BEST_EFFORT@+    --+    -- @BEST_EFFORT@: Attempt to preserve the per-file @Atime@ value+    -- (recommended).+    --+    -- @NONE@: Ignore @Atime@.+    --+    -- If @Atime@ is set to @BEST_EFFORT@, @Mtime@ must be set to @PRESERVE@.+    --+    -- If @Atime@ is set to @NONE@, @Mtime@ must also be @NONE@.+    atime :: Prelude.Maybe Atime,+    -- | Limits the bandwidth used by a DataSync task. For example, if you want+    -- DataSync to use a maximum of 1 MB, set this value to @1048576@+    -- (@=1024*1024@).+    bytesPerSecond :: Prelude.Maybe Prelude.Integer,+    -- | Specifies the POSIX group ID (GID) of the file\'s owners.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+    --+    -- Default value: @INT_VALUE@. This preserves the integer value of the ID.+    --+    -- @INT_VALUE@: Preserve the integer value of user ID (UID) and GID+    -- (recommended).+    --+    -- @NONE@: Ignore UID and GID.+    gid :: Prelude.Maybe Gid,+    -- | Specifies the type of logs that DataSync publishes to a Amazon+    -- CloudWatch Logs log group. To specify the log group, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn CloudWatchLogGroupArn>.+    --+    -- If you set @LogLevel@ to @OFF@, no logs are published. @BASIC@ publishes+    -- logs on errors for individual files transferred. @TRANSFER@ publishes+    -- logs for every file or object that is transferred and integrity checked.+    logLevel :: Prelude.Maybe LogLevel,+    -- | Specifies whether to preserve metadata indicating the last time that a+    -- file was written to before the @PREPARING@ phase of your task execution.+    -- This option is required when you need to run the a task more than once.+    --+    -- Default Value: @PRESERVE@+    --+    -- @PRESERVE@: Preserve original @Mtime@ (recommended)+    --+    -- @NONE@: Ignore @Mtime@.+    --+    -- If @Mtime@ is set to @PRESERVE@, @Atime@ must be set to @BEST_EFFORT@.+    --+    -- If @Mtime@ is set to @NONE@, @Atime@ must also be set to @NONE@.+    mtime :: Prelude.Maybe Mtime,+    -- | Specifies whether object tags are preserved when transferring between+    -- object storage systems. If you want your DataSync task to ignore object+    -- tags, specify the @NONE@ value.+    --+    -- Default Value: @PRESERVE@+    objectTags :: Prelude.Maybe ObjectTags,+    -- | Specifies whether data at the destination location should be overwritten+    -- or preserved. If set to @NEVER@, a destination file for example will not+    -- be replaced by a source file (even if the destination file differs from+    -- the source file). If you modify files in the destination and you sync+    -- the files, you can use this value to protect against overwriting those+    -- changes.+    --+    -- Some storage classes have specific behaviors that can affect your Amazon+    -- S3 storage cost. For detailed information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with Amazon S3 storage classes in DataSync>+    -- .+    overwriteMode :: Prelude.Maybe OverwriteMode,+    -- | Specifies which users or groups can access a file for a specific purpose+    -- such as reading, writing, or execution of the file.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+    --+    -- Default value: @PRESERVE@+    --+    -- @PRESERVE@: Preserve POSIX-style permissions (recommended).+    --+    -- @NONE@: Ignore permissions.+    --+    -- DataSync can preserve extant permissions of a source location.+    posixPermissions :: Prelude.Maybe PosixPermissions,+    -- | Specifies whether files in the destination location that don\'t exist in+    -- the source should be preserved. This option can affect your Amazon S3+    -- storage cost. If your task deletes objects, you might incur minimum+    -- storage duration charges for certain storage classes. For detailed+    -- information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with Amazon S3 storage classes in DataSync>+    -- .+    --+    -- Default value: @PRESERVE@+    --+    -- @PRESERVE@: Ignore such destination files (recommended).+    --+    -- @REMOVE@: Delete destination files that aren’t present in the source.+    preserveDeletedFiles :: Prelude.Maybe PreserveDeletedFiles,+    -- | Specifies whether DataSync should preserve the metadata of block and+    -- character devices in the source location and recreate the files with+    -- that device name and metadata on the destination. DataSync copies only+    -- the name and metadata of such devices.+    --+    -- DataSync can\'t copy the actual contents of these devices because+    -- they\'re nonterminal and don\'t return an end-of-file (EOF) marker.+    --+    -- Default value: @NONE@+    --+    -- @NONE@: Ignore special devices (recommended).+    --+    -- @PRESERVE@: Preserve character and block device metadata. This option+    -- currently isn\'t supported for Amazon EFS.+    preserveDevices :: Prelude.Maybe PreserveDevices,+    -- | Specifies which components of the SMB security descriptor are copied+    -- from source to destination objects.+    --+    -- This value is only used for transfers between SMB and Amazon FSx for+    -- Windows File Server locations or between two FSx for Windows File Server+    -- locations. For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html how DataSync handles metadata>.+    --+    -- Default value: @OWNER_DACL@+    --+    -- @OWNER_DACL@: For each copied object, DataSync copies the following+    -- metadata:+    --+    -- -   The object owner.+    --+    -- -   NTFS discretionary access control lists (DACLs), which determine+    --     whether to grant access to an object.+    --+    --     DataSync won\'t copy NTFS system access control lists (SACLs) with+    --     this option.+    --+    -- @OWNER_DACL_SACL@: For each copied object, DataSync copies the following+    -- metadata:+    --+    -- -   The object owner.+    --+    -- -   NTFS discretionary access control lists (DACLs), which determine+    --     whether to grant access to an object.+    --+    -- -   SACLs, which are used by administrators to log attempts to access a+    --     secured object.+    --+    --     Copying SACLs requires granting additional permissions to the+    --     Windows user that DataSync uses to access your SMB location. For+    --     information about choosing a user that ensures sufficient+    --     permissions to files, folders, and metadata, see+    --     <create-smb-location.html#SMBuser user>.+    --+    -- @NONE@: None of the SMB security descriptor components are copied.+    -- Destination objects are owned by the user that was provided for+    -- accessing the destination location. DACLs and SACLs are set based on the+    -- destination server’s configuration.+    securityDescriptorCopyFlags :: Prelude.Maybe SmbSecurityDescriptorCopyFlags,+    -- | Specifies whether tasks should be queued before executing the tasks. The+    -- default is @ENABLED@, which means the tasks will be queued.+    --+    -- If you use the same agent to run multiple tasks, you can enable the+    -- tasks to run in series. For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution Queueing task executions>.+    taskQueueing :: Prelude.Maybe TaskQueueing,+    -- | Determines whether DataSync transfers only the data and metadata that+    -- differ between the source and the destination location or transfers all+    -- the content from the source (without comparing what\'s in the+    -- destination).+    --+    -- @CHANGED@: DataSync copies only data or metadata that is new or+    -- different content from the source location to the destination location.+    --+    -- @ALL@: DataSync copies all source location content to the destination+    -- (without comparing what\'s in the destination).+    transferMode :: Prelude.Maybe TransferMode,+    -- | Specifies the POSIX user ID (UID) of the file\'s owner.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+    --+    -- Default value: @INT_VALUE@. This preserves the integer value of the ID.+    --+    -- @INT_VALUE@: Preserve the integer value of UID and group ID (GID)+    -- (recommended).+    --+    -- @NONE@: Ignore UID and GID.+    uid :: Prelude.Maybe Uid,+    -- | Specifies how and when DataSync checks the integrity of your data during+    -- a transfer.+    --+    -- Default value: @POINT_IN_TIME_CONSISTENT@+    --+    -- @ONLY_FILES_TRANSFERRED@ (recommended): DataSync calculates the checksum+    -- of transferred files and metadata at the source location. At the end of+    -- the transfer, DataSync then compares this checksum to the checksum+    -- calculated on those files at the destination.+    --+    -- We recommend this option when transferring to S3 Glacier Flexible+    -- Retrieval or S3 Glacier Deep Archive storage classes. For more+    -- information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Storage class considerations with Amazon S3 locations>.+    --+    -- @POINT_IN_TIME_CONSISTENT@: At the end of the transfer, DataSync scans+    -- the entire source and destination to verify that both locations are+    -- fully synchronized.+    --+    -- You can\'t use this option when transferring to S3 Glacier Flexible+    -- Retrieval or S3 Glacier Deep Archive storage classes. For more+    -- information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Storage class considerations with Amazon S3 locations>.+    --+    -- @NONE@: DataSync doesn\'t run additional verification at the end of the+    -- transfer. All data transmissions are still integrity-checked with+    -- checksum verification during the transfer.+    verifyMode :: Prelude.Maybe VerifyMode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Options' 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:+--+-- 'atime', 'options_atime' - Specifies whether to preserve metadata indicating the last time a file+-- was read or written to. If you set @Atime@ to @BEST_EFFORT@, DataSync+-- attempts to preserve the original @Atime@ attribute on all source files+-- (that is, the version before the @PREPARING@ phase of the task+-- execution).+--+-- The behavior of @Atime@ isn\'t fully standard across platforms, so+-- DataSync can only do this on a best-effort basis.+--+-- Default value: @BEST_EFFORT@+--+-- @BEST_EFFORT@: Attempt to preserve the per-file @Atime@ value+-- (recommended).+--+-- @NONE@: Ignore @Atime@.+--+-- If @Atime@ is set to @BEST_EFFORT@, @Mtime@ must be set to @PRESERVE@.+--+-- If @Atime@ is set to @NONE@, @Mtime@ must also be @NONE@.+--+-- 'bytesPerSecond', 'options_bytesPerSecond' - Limits the bandwidth used by a DataSync task. For example, if you want+-- DataSync to use a maximum of 1 MB, set this value to @1048576@+-- (@=1024*1024@).+--+-- 'gid', 'options_gid' - Specifies the POSIX group ID (GID) of the file\'s owners.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+--+-- Default value: @INT_VALUE@. This preserves the integer value of the ID.+--+-- @INT_VALUE@: Preserve the integer value of user ID (UID) and GID+-- (recommended).+--+-- @NONE@: Ignore UID and GID.+--+-- 'logLevel', 'options_logLevel' - Specifies the type of logs that DataSync publishes to a Amazon+-- CloudWatch Logs log group. To specify the log group, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn CloudWatchLogGroupArn>.+--+-- If you set @LogLevel@ to @OFF@, no logs are published. @BASIC@ publishes+-- logs on errors for individual files transferred. @TRANSFER@ publishes+-- logs for every file or object that is transferred and integrity checked.+--+-- 'mtime', 'options_mtime' - Specifies whether to preserve metadata indicating the last time that a+-- file was written to before the @PREPARING@ phase of your task execution.+-- This option is required when you need to run the a task more than once.+--+-- Default Value: @PRESERVE@+--+-- @PRESERVE@: Preserve original @Mtime@ (recommended)+--+-- @NONE@: Ignore @Mtime@.+--+-- If @Mtime@ is set to @PRESERVE@, @Atime@ must be set to @BEST_EFFORT@.+--+-- If @Mtime@ is set to @NONE@, @Atime@ must also be set to @NONE@.+--+-- 'objectTags', 'options_objectTags' - Specifies whether object tags are preserved when transferring between+-- object storage systems. If you want your DataSync task to ignore object+-- tags, specify the @NONE@ value.+--+-- Default Value: @PRESERVE@+--+-- 'overwriteMode', 'options_overwriteMode' - Specifies whether data at the destination location should be overwritten+-- or preserved. If set to @NEVER@, a destination file for example will not+-- be replaced by a source file (even if the destination file differs from+-- the source file). If you modify files in the destination and you sync+-- the files, you can use this value to protect against overwriting those+-- changes.+--+-- Some storage classes have specific behaviors that can affect your Amazon+-- S3 storage cost. For detailed information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with Amazon S3 storage classes in DataSync>+-- .+--+-- 'posixPermissions', 'options_posixPermissions' - Specifies which users or groups can access a file for a specific purpose+-- such as reading, writing, or execution of the file.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+--+-- Default value: @PRESERVE@+--+-- @PRESERVE@: Preserve POSIX-style permissions (recommended).+--+-- @NONE@: Ignore permissions.+--+-- DataSync can preserve extant permissions of a source location.+--+-- 'preserveDeletedFiles', 'options_preserveDeletedFiles' - Specifies whether files in the destination location that don\'t exist in+-- the source should be preserved. This option can affect your Amazon S3+-- storage cost. If your task deletes objects, you might incur minimum+-- storage duration charges for certain storage classes. For detailed+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with Amazon S3 storage classes in DataSync>+-- .+--+-- Default value: @PRESERVE@+--+-- @PRESERVE@: Ignore such destination files (recommended).+--+-- @REMOVE@: Delete destination files that aren’t present in the source.+--+-- 'preserveDevices', 'options_preserveDevices' - Specifies whether DataSync should preserve the metadata of block and+-- character devices in the source location and recreate the files with+-- that device name and metadata on the destination. DataSync copies only+-- the name and metadata of such devices.+--+-- DataSync can\'t copy the actual contents of these devices because+-- they\'re nonterminal and don\'t return an end-of-file (EOF) marker.+--+-- Default value: @NONE@+--+-- @NONE@: Ignore special devices (recommended).+--+-- @PRESERVE@: Preserve character and block device metadata. This option+-- currently isn\'t supported for Amazon EFS.+--+-- 'securityDescriptorCopyFlags', 'options_securityDescriptorCopyFlags' - Specifies which components of the SMB security descriptor are copied+-- from source to destination objects.+--+-- This value is only used for transfers between SMB and Amazon FSx for+-- Windows File Server locations or between two FSx for Windows File Server+-- locations. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html how DataSync handles metadata>.+--+-- Default value: @OWNER_DACL@+--+-- @OWNER_DACL@: For each copied object, DataSync copies the following+-- metadata:+--+-- -   The object owner.+--+-- -   NTFS discretionary access control lists (DACLs), which determine+--     whether to grant access to an object.+--+--     DataSync won\'t copy NTFS system access control lists (SACLs) with+--     this option.+--+-- @OWNER_DACL_SACL@: For each copied object, DataSync copies the following+-- metadata:+--+-- -   The object owner.+--+-- -   NTFS discretionary access control lists (DACLs), which determine+--     whether to grant access to an object.+--+-- -   SACLs, which are used by administrators to log attempts to access a+--     secured object.+--+--     Copying SACLs requires granting additional permissions to the+--     Windows user that DataSync uses to access your SMB location. For+--     information about choosing a user that ensures sufficient+--     permissions to files, folders, and metadata, see+--     <create-smb-location.html#SMBuser user>.+--+-- @NONE@: None of the SMB security descriptor components are copied.+-- Destination objects are owned by the user that was provided for+-- accessing the destination location. DACLs and SACLs are set based on the+-- destination server’s configuration.+--+-- 'taskQueueing', 'options_taskQueueing' - Specifies whether tasks should be queued before executing the tasks. The+-- default is @ENABLED@, which means the tasks will be queued.+--+-- If you use the same agent to run multiple tasks, you can enable the+-- tasks to run in series. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution Queueing task executions>.+--+-- 'transferMode', 'options_transferMode' - Determines whether DataSync transfers only the data and metadata that+-- differ between the source and the destination location or transfers all+-- the content from the source (without comparing what\'s in the+-- destination).+--+-- @CHANGED@: DataSync copies only data or metadata that is new or+-- different content from the source location to the destination location.+--+-- @ALL@: DataSync copies all source location content to the destination+-- (without comparing what\'s in the destination).+--+-- 'uid', 'options_uid' - Specifies the POSIX user ID (UID) of the file\'s owner.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+--+-- Default value: @INT_VALUE@. This preserves the integer value of the ID.+--+-- @INT_VALUE@: Preserve the integer value of UID and group ID (GID)+-- (recommended).+--+-- @NONE@: Ignore UID and GID.+--+-- 'verifyMode', 'options_verifyMode' - Specifies how and when DataSync checks the integrity of your data during+-- a transfer.+--+-- Default value: @POINT_IN_TIME_CONSISTENT@+--+-- @ONLY_FILES_TRANSFERRED@ (recommended): DataSync calculates the checksum+-- of transferred files and metadata at the source location. At the end of+-- the transfer, DataSync then compares this checksum to the checksum+-- calculated on those files at the destination.+--+-- We recommend this option when transferring to S3 Glacier Flexible+-- Retrieval or S3 Glacier Deep Archive storage classes. For more+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Storage class considerations with Amazon S3 locations>.+--+-- @POINT_IN_TIME_CONSISTENT@: At the end of the transfer, DataSync scans+-- the entire source and destination to verify that both locations are+-- fully synchronized.+--+-- You can\'t use this option when transferring to S3 Glacier Flexible+-- Retrieval or S3 Glacier Deep Archive storage classes. For more+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Storage class considerations with Amazon S3 locations>.+--+-- @NONE@: DataSync doesn\'t run additional verification at the end of the+-- transfer. All data transmissions are still integrity-checked with+-- checksum verification during the transfer.+newOptions ::+  Options+newOptions =+  Options'+    { atime = Prelude.Nothing,+      bytesPerSecond = Prelude.Nothing,+      gid = Prelude.Nothing,+      logLevel = Prelude.Nothing,+      mtime = Prelude.Nothing,+      objectTags = Prelude.Nothing,+      overwriteMode = Prelude.Nothing,+      posixPermissions = Prelude.Nothing,+      preserveDeletedFiles = Prelude.Nothing,+      preserveDevices = Prelude.Nothing,+      securityDescriptorCopyFlags = Prelude.Nothing,+      taskQueueing = Prelude.Nothing,+      transferMode = Prelude.Nothing,+      uid = Prelude.Nothing,+      verifyMode = Prelude.Nothing+    }++-- | Specifies whether to preserve metadata indicating the last time a file+-- was read or written to. If you set @Atime@ to @BEST_EFFORT@, DataSync+-- attempts to preserve the original @Atime@ attribute on all source files+-- (that is, the version before the @PREPARING@ phase of the task+-- execution).+--+-- The behavior of @Atime@ isn\'t fully standard across platforms, so+-- DataSync can only do this on a best-effort basis.+--+-- Default value: @BEST_EFFORT@+--+-- @BEST_EFFORT@: Attempt to preserve the per-file @Atime@ value+-- (recommended).+--+-- @NONE@: Ignore @Atime@.+--+-- If @Atime@ is set to @BEST_EFFORT@, @Mtime@ must be set to @PRESERVE@.+--+-- If @Atime@ is set to @NONE@, @Mtime@ must also be @NONE@.+options_atime :: Lens.Lens' Options (Prelude.Maybe Atime)+options_atime = Lens.lens (\Options' {atime} -> atime) (\s@Options' {} a -> s {atime = a} :: Options)++-- | Limits the bandwidth used by a DataSync task. For example, if you want+-- DataSync to use a maximum of 1 MB, set this value to @1048576@+-- (@=1024*1024@).+options_bytesPerSecond :: Lens.Lens' Options (Prelude.Maybe Prelude.Integer)+options_bytesPerSecond = Lens.lens (\Options' {bytesPerSecond} -> bytesPerSecond) (\s@Options' {} a -> s {bytesPerSecond = a} :: Options)++-- | Specifies the POSIX group ID (GID) of the file\'s owners.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+--+-- Default value: @INT_VALUE@. This preserves the integer value of the ID.+--+-- @INT_VALUE@: Preserve the integer value of user ID (UID) and GID+-- (recommended).+--+-- @NONE@: Ignore UID and GID.+options_gid :: Lens.Lens' Options (Prelude.Maybe Gid)+options_gid = Lens.lens (\Options' {gid} -> gid) (\s@Options' {} a -> s {gid = a} :: Options)++-- | Specifies the type of logs that DataSync publishes to a Amazon+-- CloudWatch Logs log group. To specify the log group, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn CloudWatchLogGroupArn>.+--+-- If you set @LogLevel@ to @OFF@, no logs are published. @BASIC@ publishes+-- logs on errors for individual files transferred. @TRANSFER@ publishes+-- logs for every file or object that is transferred and integrity checked.+options_logLevel :: Lens.Lens' Options (Prelude.Maybe LogLevel)+options_logLevel = Lens.lens (\Options' {logLevel} -> logLevel) (\s@Options' {} a -> s {logLevel = a} :: Options)++-- | Specifies whether to preserve metadata indicating the last time that a+-- file was written to before the @PREPARING@ phase of your task execution.+-- This option is required when you need to run the a task more than once.+--+-- Default Value: @PRESERVE@+--+-- @PRESERVE@: Preserve original @Mtime@ (recommended)+--+-- @NONE@: Ignore @Mtime@.+--+-- If @Mtime@ is set to @PRESERVE@, @Atime@ must be set to @BEST_EFFORT@.+--+-- If @Mtime@ is set to @NONE@, @Atime@ must also be set to @NONE@.+options_mtime :: Lens.Lens' Options (Prelude.Maybe Mtime)+options_mtime = Lens.lens (\Options' {mtime} -> mtime) (\s@Options' {} a -> s {mtime = a} :: Options)++-- | Specifies whether object tags are preserved when transferring between+-- object storage systems. If you want your DataSync task to ignore object+-- tags, specify the @NONE@ value.+--+-- Default Value: @PRESERVE@+options_objectTags :: Lens.Lens' Options (Prelude.Maybe ObjectTags)+options_objectTags = Lens.lens (\Options' {objectTags} -> objectTags) (\s@Options' {} a -> s {objectTags = a} :: Options)++-- | Specifies whether data at the destination location should be overwritten+-- or preserved. If set to @NEVER@, a destination file for example will not+-- be replaced by a source file (even if the destination file differs from+-- the source file). If you modify files in the destination and you sync+-- the files, you can use this value to protect against overwriting those+-- changes.+--+-- Some storage classes have specific behaviors that can affect your Amazon+-- S3 storage cost. For detailed information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with Amazon S3 storage classes in DataSync>+-- .+options_overwriteMode :: Lens.Lens' Options (Prelude.Maybe OverwriteMode)+options_overwriteMode = Lens.lens (\Options' {overwriteMode} -> overwriteMode) (\s@Options' {} a -> s {overwriteMode = a} :: Options)++-- | Specifies which users or groups can access a file for a specific purpose+-- such as reading, writing, or execution of the file.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+--+-- Default value: @PRESERVE@+--+-- @PRESERVE@: Preserve POSIX-style permissions (recommended).+--+-- @NONE@: Ignore permissions.+--+-- DataSync can preserve extant permissions of a source location.+options_posixPermissions :: Lens.Lens' Options (Prelude.Maybe PosixPermissions)+options_posixPermissions = Lens.lens (\Options' {posixPermissions} -> posixPermissions) (\s@Options' {} a -> s {posixPermissions = a} :: Options)++-- | Specifies whether files in the destination location that don\'t exist in+-- the source should be preserved. This option can affect your Amazon S3+-- storage cost. If your task deletes objects, you might incur minimum+-- storage duration charges for certain storage classes. For detailed+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Considerations when working with Amazon S3 storage classes in DataSync>+-- .+--+-- Default value: @PRESERVE@+--+-- @PRESERVE@: Ignore such destination files (recommended).+--+-- @REMOVE@: Delete destination files that aren’t present in the source.+options_preserveDeletedFiles :: Lens.Lens' Options (Prelude.Maybe PreserveDeletedFiles)+options_preserveDeletedFiles = Lens.lens (\Options' {preserveDeletedFiles} -> preserveDeletedFiles) (\s@Options' {} a -> s {preserveDeletedFiles = a} :: Options)++-- | Specifies whether DataSync should preserve the metadata of block and+-- character devices in the source location and recreate the files with+-- that device name and metadata on the destination. DataSync copies only+-- the name and metadata of such devices.+--+-- DataSync can\'t copy the actual contents of these devices because+-- they\'re nonterminal and don\'t return an end-of-file (EOF) marker.+--+-- Default value: @NONE@+--+-- @NONE@: Ignore special devices (recommended).+--+-- @PRESERVE@: Preserve character and block device metadata. This option+-- currently isn\'t supported for Amazon EFS.+options_preserveDevices :: Lens.Lens' Options (Prelude.Maybe PreserveDevices)+options_preserveDevices = Lens.lens (\Options' {preserveDevices} -> preserveDevices) (\s@Options' {} a -> s {preserveDevices = a} :: Options)++-- | Specifies which components of the SMB security descriptor are copied+-- from source to destination objects.+--+-- This value is only used for transfers between SMB and Amazon FSx for+-- Windows File Server locations or between two FSx for Windows File Server+-- locations. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html how DataSync handles metadata>.+--+-- Default value: @OWNER_DACL@+--+-- @OWNER_DACL@: For each copied object, DataSync copies the following+-- metadata:+--+-- -   The object owner.+--+-- -   NTFS discretionary access control lists (DACLs), which determine+--     whether to grant access to an object.+--+--     DataSync won\'t copy NTFS system access control lists (SACLs) with+--     this option.+--+-- @OWNER_DACL_SACL@: For each copied object, DataSync copies the following+-- metadata:+--+-- -   The object owner.+--+-- -   NTFS discretionary access control lists (DACLs), which determine+--     whether to grant access to an object.+--+-- -   SACLs, which are used by administrators to log attempts to access a+--     secured object.+--+--     Copying SACLs requires granting additional permissions to the+--     Windows user that DataSync uses to access your SMB location. For+--     information about choosing a user that ensures sufficient+--     permissions to files, folders, and metadata, see+--     <create-smb-location.html#SMBuser user>.+--+-- @NONE@: None of the SMB security descriptor components are copied.+-- Destination objects are owned by the user that was provided for+-- accessing the destination location. DACLs and SACLs are set based on the+-- destination server’s configuration.+options_securityDescriptorCopyFlags :: Lens.Lens' Options (Prelude.Maybe SmbSecurityDescriptorCopyFlags)+options_securityDescriptorCopyFlags = Lens.lens (\Options' {securityDescriptorCopyFlags} -> securityDescriptorCopyFlags) (\s@Options' {} a -> s {securityDescriptorCopyFlags = a} :: Options)++-- | Specifies whether tasks should be queued before executing the tasks. The+-- default is @ENABLED@, which means the tasks will be queued.+--+-- If you use the same agent to run multiple tasks, you can enable the+-- tasks to run in series. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/run-task.html#queue-task-execution Queueing task executions>.+options_taskQueueing :: Lens.Lens' Options (Prelude.Maybe TaskQueueing)+options_taskQueueing = Lens.lens (\Options' {taskQueueing} -> taskQueueing) (\s@Options' {} a -> s {taskQueueing = a} :: Options)++-- | Determines whether DataSync transfers only the data and metadata that+-- differ between the source and the destination location or transfers all+-- the content from the source (without comparing what\'s in the+-- destination).+--+-- @CHANGED@: DataSync copies only data or metadata that is new or+-- different content from the source location to the destination location.+--+-- @ALL@: DataSync copies all source location content to the destination+-- (without comparing what\'s in the destination).+options_transferMode :: Lens.Lens' Options (Prelude.Maybe TransferMode)+options_transferMode = Lens.lens (\Options' {transferMode} -> transferMode) (\s@Options' {} a -> s {transferMode = a} :: Options)++-- | Specifies the POSIX user ID (UID) of the file\'s owner.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/special-files.html#metadata-copied Metadata copied by DataSync>.+--+-- Default value: @INT_VALUE@. This preserves the integer value of the ID.+--+-- @INT_VALUE@: Preserve the integer value of UID and group ID (GID)+-- (recommended).+--+-- @NONE@: Ignore UID and GID.+options_uid :: Lens.Lens' Options (Prelude.Maybe Uid)+options_uid = Lens.lens (\Options' {uid} -> uid) (\s@Options' {} a -> s {uid = a} :: Options)++-- | Specifies how and when DataSync checks the integrity of your data during+-- a transfer.+--+-- Default value: @POINT_IN_TIME_CONSISTENT@+--+-- @ONLY_FILES_TRANSFERRED@ (recommended): DataSync calculates the checksum+-- of transferred files and metadata at the source location. At the end of+-- the transfer, DataSync then compares this checksum to the checksum+-- calculated on those files at the destination.+--+-- We recommend this option when transferring to S3 Glacier Flexible+-- Retrieval or S3 Glacier Deep Archive storage classes. For more+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Storage class considerations with Amazon S3 locations>.+--+-- @POINT_IN_TIME_CONSISTENT@: At the end of the transfer, DataSync scans+-- the entire source and destination to verify that both locations are+-- fully synchronized.+--+-- You can\'t use this option when transferring to S3 Glacier Flexible+-- Retrieval or S3 Glacier Deep Archive storage classes. For more+-- information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html#using-storage-classes Storage class considerations with Amazon S3 locations>.+--+-- @NONE@: DataSync doesn\'t run additional verification at the end of the+-- transfer. All data transmissions are still integrity-checked with+-- checksum verification during the transfer.+options_verifyMode :: Lens.Lens' Options (Prelude.Maybe VerifyMode)+options_verifyMode = Lens.lens (\Options' {verifyMode} -> verifyMode) (\s@Options' {} a -> s {verifyMode = a} :: Options)++instance Data.FromJSON Options where+  parseJSON =+    Data.withObject+      "Options"+      ( \x ->+          Options'+            Prelude.<$> (x Data..:? "Atime")+            Prelude.<*> (x Data..:? "BytesPerSecond")+            Prelude.<*> (x Data..:? "Gid")+            Prelude.<*> (x Data..:? "LogLevel")+            Prelude.<*> (x Data..:? "Mtime")+            Prelude.<*> (x Data..:? "ObjectTags")+            Prelude.<*> (x Data..:? "OverwriteMode")+            Prelude.<*> (x Data..:? "PosixPermissions")+            Prelude.<*> (x Data..:? "PreserveDeletedFiles")+            Prelude.<*> (x Data..:? "PreserveDevices")+            Prelude.<*> (x Data..:? "SecurityDescriptorCopyFlags")+            Prelude.<*> (x Data..:? "TaskQueueing")+            Prelude.<*> (x Data..:? "TransferMode")+            Prelude.<*> (x Data..:? "Uid")+            Prelude.<*> (x Data..:? "VerifyMode")+      )++instance Prelude.Hashable Options where+  hashWithSalt _salt Options' {..} =+    _salt+      `Prelude.hashWithSalt` atime+      `Prelude.hashWithSalt` bytesPerSecond+      `Prelude.hashWithSalt` gid+      `Prelude.hashWithSalt` logLevel+      `Prelude.hashWithSalt` mtime+      `Prelude.hashWithSalt` objectTags+      `Prelude.hashWithSalt` overwriteMode+      `Prelude.hashWithSalt` posixPermissions+      `Prelude.hashWithSalt` preserveDeletedFiles+      `Prelude.hashWithSalt` preserveDevices+      `Prelude.hashWithSalt` securityDescriptorCopyFlags+      `Prelude.hashWithSalt` taskQueueing+      `Prelude.hashWithSalt` transferMode+      `Prelude.hashWithSalt` uid+      `Prelude.hashWithSalt` verifyMode++instance Prelude.NFData Options where+  rnf Options' {..} =+    Prelude.rnf atime+      `Prelude.seq` Prelude.rnf bytesPerSecond+      `Prelude.seq` Prelude.rnf gid+      `Prelude.seq` Prelude.rnf logLevel+      `Prelude.seq` Prelude.rnf mtime+      `Prelude.seq` Prelude.rnf objectTags+      `Prelude.seq` Prelude.rnf overwriteMode+      `Prelude.seq` Prelude.rnf posixPermissions+      `Prelude.seq` Prelude.rnf preserveDeletedFiles+      `Prelude.seq` Prelude.rnf preserveDevices+      `Prelude.seq` Prelude.rnf securityDescriptorCopyFlags+      `Prelude.seq` Prelude.rnf taskQueueing+      `Prelude.seq` Prelude.rnf transferMode+      `Prelude.seq` Prelude.rnf uid+      `Prelude.seq` Prelude.rnf verifyMode++instance Data.ToJSON Options where+  toJSON Options' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Atime" Data..=) Prelude.<$> atime,+            ("BytesPerSecond" Data..=)+              Prelude.<$> bytesPerSecond,+            ("Gid" Data..=) Prelude.<$> gid,+            ("LogLevel" Data..=) Prelude.<$> logLevel,+            ("Mtime" Data..=) Prelude.<$> mtime,+            ("ObjectTags" Data..=) Prelude.<$> objectTags,+            ("OverwriteMode" Data..=) Prelude.<$> overwriteMode,+            ("PosixPermissions" Data..=)+              Prelude.<$> posixPermissions,+            ("PreserveDeletedFiles" Data..=)+              Prelude.<$> preserveDeletedFiles,+            ("PreserveDevices" Data..=)+              Prelude.<$> preserveDevices,+            ("SecurityDescriptorCopyFlags" Data..=)+              Prelude.<$> securityDescriptorCopyFlags,+            ("TaskQueueing" Data..=) Prelude.<$> taskQueueing,+            ("TransferMode" Data..=) Prelude.<$> transferMode,+            ("Uid" Data..=) Prelude.<$> uid,+            ("VerifyMode" Data..=) Prelude.<$> verifyMode+          ]+      )
+ gen/Amazonka/DataSync/Types/OverwriteMode.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.DataSync.Types.OverwriteMode+-- 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.DataSync.Types.OverwriteMode+  ( OverwriteMode+      ( ..,+        OverwriteMode_ALWAYS,+        OverwriteMode_NEVER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OverwriteMode = OverwriteMode'+  { fromOverwriteMode ::+      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 OverwriteMode_ALWAYS :: OverwriteMode+pattern OverwriteMode_ALWAYS = OverwriteMode' "ALWAYS"++pattern OverwriteMode_NEVER :: OverwriteMode+pattern OverwriteMode_NEVER = OverwriteMode' "NEVER"++{-# COMPLETE+  OverwriteMode_ALWAYS,+  OverwriteMode_NEVER,+  OverwriteMode'+  #-}
+ gen/Amazonka/DataSync/Types/PhaseStatus.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.DataSync.Types.PhaseStatus+-- 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.DataSync.Types.PhaseStatus+  ( PhaseStatus+      ( ..,+        PhaseStatus_ERROR,+        PhaseStatus_PENDING,+        PhaseStatus_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PhaseStatus = PhaseStatus'+  { fromPhaseStatus ::+      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 PhaseStatus_ERROR :: PhaseStatus+pattern PhaseStatus_ERROR = PhaseStatus' "ERROR"++pattern PhaseStatus_PENDING :: PhaseStatus+pattern PhaseStatus_PENDING = PhaseStatus' "PENDING"++pattern PhaseStatus_SUCCESS :: PhaseStatus+pattern PhaseStatus_SUCCESS = PhaseStatus' "SUCCESS"++{-# COMPLETE+  PhaseStatus_ERROR,+  PhaseStatus_PENDING,+  PhaseStatus_SUCCESS,+  PhaseStatus'+  #-}
+ gen/Amazonka/DataSync/Types/PosixPermissions.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.DataSync.Types.PosixPermissions+-- 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.DataSync.Types.PosixPermissions+  ( PosixPermissions+      ( ..,+        PosixPermissions_NONE,+        PosixPermissions_PRESERVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PosixPermissions = PosixPermissions'+  { fromPosixPermissions ::+      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 PosixPermissions_NONE :: PosixPermissions+pattern PosixPermissions_NONE = PosixPermissions' "NONE"++pattern PosixPermissions_PRESERVE :: PosixPermissions+pattern PosixPermissions_PRESERVE = PosixPermissions' "PRESERVE"++{-# COMPLETE+  PosixPermissions_NONE,+  PosixPermissions_PRESERVE,+  PosixPermissions'+  #-}
+ gen/Amazonka/DataSync/Types/PreserveDeletedFiles.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.DataSync.Types.PreserveDeletedFiles+-- 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.DataSync.Types.PreserveDeletedFiles+  ( PreserveDeletedFiles+      ( ..,+        PreserveDeletedFiles_PRESERVE,+        PreserveDeletedFiles_REMOVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PreserveDeletedFiles = PreserveDeletedFiles'+  { fromPreserveDeletedFiles ::+      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 PreserveDeletedFiles_PRESERVE :: PreserveDeletedFiles+pattern PreserveDeletedFiles_PRESERVE = PreserveDeletedFiles' "PRESERVE"++pattern PreserveDeletedFiles_REMOVE :: PreserveDeletedFiles+pattern PreserveDeletedFiles_REMOVE = PreserveDeletedFiles' "REMOVE"++{-# COMPLETE+  PreserveDeletedFiles_PRESERVE,+  PreserveDeletedFiles_REMOVE,+  PreserveDeletedFiles'+  #-}
+ gen/Amazonka/DataSync/Types/PreserveDevices.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.DataSync.Types.PreserveDevices+-- 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.DataSync.Types.PreserveDevices+  ( PreserveDevices+      ( ..,+        PreserveDevices_NONE,+        PreserveDevices_PRESERVE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PreserveDevices = PreserveDevices'+  { fromPreserveDevices ::+      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 PreserveDevices_NONE :: PreserveDevices+pattern PreserveDevices_NONE = PreserveDevices' "NONE"++pattern PreserveDevices_PRESERVE :: PreserveDevices+pattern PreserveDevices_PRESERVE = PreserveDevices' "PRESERVE"++{-# COMPLETE+  PreserveDevices_NONE,+  PreserveDevices_PRESERVE,+  PreserveDevices'+  #-}
+ gen/Amazonka/DataSync/Types/PrivateLinkConfig.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.DataSync.Types.PrivateLinkConfig+-- 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.DataSync.Types.PrivateLinkConfig 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 VPC endpoint, subnet, and security group that an agent uses to+-- access IP addresses in a VPC (Virtual Private Cloud).+--+-- /See:/ 'newPrivateLinkConfig' smart constructor.+data PrivateLinkConfig = PrivateLinkConfig'+  { -- | The private endpoint that is configured for an agent that has access to+    -- IP addresses in a+    -- <https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html PrivateLink>.+    -- An agent that is configured with this endpoint will not be accessible+    -- over the public internet.+    privateLinkEndpoint :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Names (ARNs) of the security groups that are+    -- configured for the EC2 resource that hosts an agent activated in a VPC+    -- or an agent that has access to a VPC endpoint.+    securityGroupArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The Amazon Resource Names (ARNs) of the subnets that are configured for+    -- an agent activated in a VPC or an agent that has access to a VPC+    -- endpoint.+    subnetArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The ID of the VPC endpoint that is configured for an agent. An agent+    -- that is configured with a VPC endpoint will not be accessible over the+    -- public internet.+    vpcEndpointId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PrivateLinkConfig' 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:+--+-- 'privateLinkEndpoint', 'privateLinkConfig_privateLinkEndpoint' - The private endpoint that is configured for an agent that has access to+-- IP addresses in a+-- <https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html PrivateLink>.+-- An agent that is configured with this endpoint will not be accessible+-- over the public internet.+--+-- 'securityGroupArns', 'privateLinkConfig_securityGroupArns' - The Amazon Resource Names (ARNs) of the security groups that are+-- configured for the EC2 resource that hosts an agent activated in a VPC+-- or an agent that has access to a VPC endpoint.+--+-- 'subnetArns', 'privateLinkConfig_subnetArns' - The Amazon Resource Names (ARNs) of the subnets that are configured for+-- an agent activated in a VPC or an agent that has access to a VPC+-- endpoint.+--+-- 'vpcEndpointId', 'privateLinkConfig_vpcEndpointId' - The ID of the VPC endpoint that is configured for an agent. An agent+-- that is configured with a VPC endpoint will not be accessible over the+-- public internet.+newPrivateLinkConfig ::+  PrivateLinkConfig+newPrivateLinkConfig =+  PrivateLinkConfig'+    { privateLinkEndpoint =+        Prelude.Nothing,+      securityGroupArns = Prelude.Nothing,+      subnetArns = Prelude.Nothing,+      vpcEndpointId = Prelude.Nothing+    }++-- | The private endpoint that is configured for an agent that has access to+-- IP addresses in a+-- <https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html PrivateLink>.+-- An agent that is configured with this endpoint will not be accessible+-- over the public internet.+privateLinkConfig_privateLinkEndpoint :: Lens.Lens' PrivateLinkConfig (Prelude.Maybe Prelude.Text)+privateLinkConfig_privateLinkEndpoint = Lens.lens (\PrivateLinkConfig' {privateLinkEndpoint} -> privateLinkEndpoint) (\s@PrivateLinkConfig' {} a -> s {privateLinkEndpoint = a} :: PrivateLinkConfig)++-- | The Amazon Resource Names (ARNs) of the security groups that are+-- configured for the EC2 resource that hosts an agent activated in a VPC+-- or an agent that has access to a VPC endpoint.+privateLinkConfig_securityGroupArns :: Lens.Lens' PrivateLinkConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+privateLinkConfig_securityGroupArns = Lens.lens (\PrivateLinkConfig' {securityGroupArns} -> securityGroupArns) (\s@PrivateLinkConfig' {} a -> s {securityGroupArns = a} :: PrivateLinkConfig) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Names (ARNs) of the subnets that are configured for+-- an agent activated in a VPC or an agent that has access to a VPC+-- endpoint.+privateLinkConfig_subnetArns :: Lens.Lens' PrivateLinkConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+privateLinkConfig_subnetArns = Lens.lens (\PrivateLinkConfig' {subnetArns} -> subnetArns) (\s@PrivateLinkConfig' {} a -> s {subnetArns = a} :: PrivateLinkConfig) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the VPC endpoint that is configured for an agent. An agent+-- that is configured with a VPC endpoint will not be accessible over the+-- public internet.+privateLinkConfig_vpcEndpointId :: Lens.Lens' PrivateLinkConfig (Prelude.Maybe Prelude.Text)+privateLinkConfig_vpcEndpointId = Lens.lens (\PrivateLinkConfig' {vpcEndpointId} -> vpcEndpointId) (\s@PrivateLinkConfig' {} a -> s {vpcEndpointId = a} :: PrivateLinkConfig)++instance Data.FromJSON PrivateLinkConfig where+  parseJSON =+    Data.withObject+      "PrivateLinkConfig"+      ( \x ->+          PrivateLinkConfig'+            Prelude.<$> (x Data..:? "PrivateLinkEndpoint")+            Prelude.<*> (x Data..:? "SecurityGroupArns")+            Prelude.<*> (x Data..:? "SubnetArns")+            Prelude.<*> (x Data..:? "VpcEndpointId")+      )++instance Prelude.Hashable PrivateLinkConfig where+  hashWithSalt _salt PrivateLinkConfig' {..} =+    _salt+      `Prelude.hashWithSalt` privateLinkEndpoint+      `Prelude.hashWithSalt` securityGroupArns+      `Prelude.hashWithSalt` subnetArns+      `Prelude.hashWithSalt` vpcEndpointId++instance Prelude.NFData PrivateLinkConfig where+  rnf PrivateLinkConfig' {..} =+    Prelude.rnf privateLinkEndpoint+      `Prelude.seq` Prelude.rnf securityGroupArns+      `Prelude.seq` Prelude.rnf subnetArns+      `Prelude.seq` Prelude.rnf vpcEndpointId
+ gen/Amazonka/DataSync/Types/QopConfiguration.hs view
@@ -0,0 +1,111 @@+{-# 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.DataSync.Types.QopConfiguration+-- 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.DataSync.Types.QopConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.HdfsDataTransferProtection+import Amazonka.DataSync.Types.HdfsRpcProtection+import qualified Amazonka.Prelude as Prelude++-- | The Quality of Protection (QOP) configuration specifies the Remote+-- Procedure Call (RPC) and data transfer privacy settings configured on+-- the Hadoop Distributed File System (HDFS) cluster.+--+-- /See:/ 'newQopConfiguration' smart constructor.+data QopConfiguration = QopConfiguration'+  { -- | The data transfer protection setting configured on the HDFS cluster.+    -- This setting corresponds to your @dfs.data.transfer.protection@ setting+    -- in the @hdfs-site.xml@ file on your Hadoop cluster.+    dataTransferProtection :: Prelude.Maybe HdfsDataTransferProtection,+    -- | The RPC protection setting configured on the HDFS cluster. This setting+    -- corresponds to your @hadoop.rpc.protection@ setting in your+    -- @core-site.xml@ file on your Hadoop cluster.+    rpcProtection :: Prelude.Maybe HdfsRpcProtection+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QopConfiguration' 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:+--+-- 'dataTransferProtection', 'qopConfiguration_dataTransferProtection' - The data transfer protection setting configured on the HDFS cluster.+-- This setting corresponds to your @dfs.data.transfer.protection@ setting+-- in the @hdfs-site.xml@ file on your Hadoop cluster.+--+-- 'rpcProtection', 'qopConfiguration_rpcProtection' - The RPC protection setting configured on the HDFS cluster. This setting+-- corresponds to your @hadoop.rpc.protection@ setting in your+-- @core-site.xml@ file on your Hadoop cluster.+newQopConfiguration ::+  QopConfiguration+newQopConfiguration =+  QopConfiguration'+    { dataTransferProtection =+        Prelude.Nothing,+      rpcProtection = Prelude.Nothing+    }++-- | The data transfer protection setting configured on the HDFS cluster.+-- This setting corresponds to your @dfs.data.transfer.protection@ setting+-- in the @hdfs-site.xml@ file on your Hadoop cluster.+qopConfiguration_dataTransferProtection :: Lens.Lens' QopConfiguration (Prelude.Maybe HdfsDataTransferProtection)+qopConfiguration_dataTransferProtection = Lens.lens (\QopConfiguration' {dataTransferProtection} -> dataTransferProtection) (\s@QopConfiguration' {} a -> s {dataTransferProtection = a} :: QopConfiguration)++-- | The RPC protection setting configured on the HDFS cluster. This setting+-- corresponds to your @hadoop.rpc.protection@ setting in your+-- @core-site.xml@ file on your Hadoop cluster.+qopConfiguration_rpcProtection :: Lens.Lens' QopConfiguration (Prelude.Maybe HdfsRpcProtection)+qopConfiguration_rpcProtection = Lens.lens (\QopConfiguration' {rpcProtection} -> rpcProtection) (\s@QopConfiguration' {} a -> s {rpcProtection = a} :: QopConfiguration)++instance Data.FromJSON QopConfiguration where+  parseJSON =+    Data.withObject+      "QopConfiguration"+      ( \x ->+          QopConfiguration'+            Prelude.<$> (x Data..:? "DataTransferProtection")+            Prelude.<*> (x Data..:? "RpcProtection")+      )++instance Prelude.Hashable QopConfiguration where+  hashWithSalt _salt QopConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` dataTransferProtection+      `Prelude.hashWithSalt` rpcProtection++instance Prelude.NFData QopConfiguration where+  rnf QopConfiguration' {..} =+    Prelude.rnf dataTransferProtection+      `Prelude.seq` Prelude.rnf rpcProtection++instance Data.ToJSON QopConfiguration where+  toJSON QopConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataTransferProtection" Data..=)+              Prelude.<$> dataTransferProtection,+            ("RpcProtection" Data..=) Prelude.<$> rpcProtection+          ]+      )
+ gen/Amazonka/DataSync/Types/S3Config.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.DataSync.Types.S3Config+-- 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.DataSync.Types.S3Config 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 Amazon Resource Name (ARN) of the Identity and Access Management+-- (IAM) role used to access an Amazon S3 bucket.+--+-- For detailed information about using such a role, see Creating a+-- Location for Amazon S3 in the /DataSync User Guide/.+--+-- /See:/ 'newS3Config' smart constructor.+data S3Config = S3Config'+  { -- | The ARN of the IAM role for accessing the S3 bucket.+    bucketAccessRoleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Config' 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:+--+-- 'bucketAccessRoleArn', 's3Config_bucketAccessRoleArn' - The ARN of the IAM role for accessing the S3 bucket.+newS3Config ::+  -- | 'bucketAccessRoleArn'+  Prelude.Text ->+  S3Config+newS3Config pBucketAccessRoleArn_ =+  S3Config'+    { bucketAccessRoleArn =+        pBucketAccessRoleArn_+    }++-- | The ARN of the IAM role for accessing the S3 bucket.+s3Config_bucketAccessRoleArn :: Lens.Lens' S3Config Prelude.Text+s3Config_bucketAccessRoleArn = Lens.lens (\S3Config' {bucketAccessRoleArn} -> bucketAccessRoleArn) (\s@S3Config' {} a -> s {bucketAccessRoleArn = a} :: S3Config)++instance Data.FromJSON S3Config where+  parseJSON =+    Data.withObject+      "S3Config"+      ( \x ->+          S3Config'+            Prelude.<$> (x Data..: "BucketAccessRoleArn")+      )++instance Prelude.Hashable S3Config where+  hashWithSalt _salt S3Config' {..} =+    _salt `Prelude.hashWithSalt` bucketAccessRoleArn++instance Prelude.NFData S3Config where+  rnf S3Config' {..} = Prelude.rnf bucketAccessRoleArn++instance Data.ToJSON S3Config where+  toJSON S3Config' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("BucketAccessRoleArn" Data..= bucketAccessRoleArn)+          ]+      )
+ gen/Amazonka/DataSync/Types/S3StorageClass.hs view
@@ -0,0 +1,101 @@+{-# 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.DataSync.Types.S3StorageClass+-- 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.DataSync.Types.S3StorageClass+  ( S3StorageClass+      ( ..,+        S3StorageClass_DEEP_ARCHIVE,+        S3StorageClass_GLACIER,+        S3StorageClass_GLACIER_INSTANT_RETRIEVAL,+        S3StorageClass_INTELLIGENT_TIERING,+        S3StorageClass_ONEZONE_IA,+        S3StorageClass_OUTPOSTS,+        S3StorageClass_STANDARD,+        S3StorageClass_STANDARD_IA+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype S3StorageClass = S3StorageClass'+  { fromS3StorageClass ::+      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 S3StorageClass_DEEP_ARCHIVE :: S3StorageClass+pattern S3StorageClass_DEEP_ARCHIVE = S3StorageClass' "DEEP_ARCHIVE"++pattern S3StorageClass_GLACIER :: S3StorageClass+pattern S3StorageClass_GLACIER = S3StorageClass' "GLACIER"++pattern S3StorageClass_GLACIER_INSTANT_RETRIEVAL :: S3StorageClass+pattern S3StorageClass_GLACIER_INSTANT_RETRIEVAL = S3StorageClass' "GLACIER_INSTANT_RETRIEVAL"++pattern S3StorageClass_INTELLIGENT_TIERING :: S3StorageClass+pattern S3StorageClass_INTELLIGENT_TIERING = S3StorageClass' "INTELLIGENT_TIERING"++pattern S3StorageClass_ONEZONE_IA :: S3StorageClass+pattern S3StorageClass_ONEZONE_IA = S3StorageClass' "ONEZONE_IA"++pattern S3StorageClass_OUTPOSTS :: S3StorageClass+pattern S3StorageClass_OUTPOSTS = S3StorageClass' "OUTPOSTS"++pattern S3StorageClass_STANDARD :: S3StorageClass+pattern S3StorageClass_STANDARD = S3StorageClass' "STANDARD"++pattern S3StorageClass_STANDARD_IA :: S3StorageClass+pattern S3StorageClass_STANDARD_IA = S3StorageClass' "STANDARD_IA"++{-# COMPLETE+  S3StorageClass_DEEP_ARCHIVE,+  S3StorageClass_GLACIER,+  S3StorageClass_GLACIER_INSTANT_RETRIEVAL,+  S3StorageClass_INTELLIGENT_TIERING,+  S3StorageClass_ONEZONE_IA,+  S3StorageClass_OUTPOSTS,+  S3StorageClass_STANDARD,+  S3StorageClass_STANDARD_IA,+  S3StorageClass'+  #-}
+ gen/Amazonka/DataSync/Types/SmbMountOptions.hs view
@@ -0,0 +1,84 @@+{-# 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.DataSync.Types.SmbMountOptions+-- 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.DataSync.Types.SmbMountOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.SmbVersion+import qualified Amazonka.Prelude as Prelude++-- | Specifies how DataSync can access a location using the SMB protocol.+--+-- /See:/ 'newSmbMountOptions' smart constructor.+data SmbMountOptions = SmbMountOptions'+  { -- | Specifies the SMB version that you want DataSync to use when mounting+    -- your SMB share. If you don\'t specify a version, DataSync defaults to+    -- @AUTOMATIC@ and chooses a version based on negotiation with the SMB+    -- server.+    version :: Prelude.Maybe SmbVersion+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SmbMountOptions' 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:+--+-- 'version', 'smbMountOptions_version' - Specifies the SMB version that you want DataSync to use when mounting+-- your SMB share. If you don\'t specify a version, DataSync defaults to+-- @AUTOMATIC@ and chooses a version based on negotiation with the SMB+-- server.+newSmbMountOptions ::+  SmbMountOptions+newSmbMountOptions =+  SmbMountOptions' {version = Prelude.Nothing}++-- | Specifies the SMB version that you want DataSync to use when mounting+-- your SMB share. If you don\'t specify a version, DataSync defaults to+-- @AUTOMATIC@ and chooses a version based on negotiation with the SMB+-- server.+smbMountOptions_version :: Lens.Lens' SmbMountOptions (Prelude.Maybe SmbVersion)+smbMountOptions_version = Lens.lens (\SmbMountOptions' {version} -> version) (\s@SmbMountOptions' {} a -> s {version = a} :: SmbMountOptions)++instance Data.FromJSON SmbMountOptions where+  parseJSON =+    Data.withObject+      "SmbMountOptions"+      ( \x ->+          SmbMountOptions' Prelude.<$> (x Data..:? "Version")+      )++instance Prelude.Hashable SmbMountOptions where+  hashWithSalt _salt SmbMountOptions' {..} =+    _salt `Prelude.hashWithSalt` version++instance Prelude.NFData SmbMountOptions where+  rnf SmbMountOptions' {..} = Prelude.rnf version++instance Data.ToJSON SmbMountOptions where+  toJSON SmbMountOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Version" Data..=) Prelude.<$> version]+      )
+ gen/Amazonka/DataSync/Types/SmbSecurityDescriptorCopyFlags.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.DataSync.Types.SmbSecurityDescriptorCopyFlags+-- 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.DataSync.Types.SmbSecurityDescriptorCopyFlags+  ( SmbSecurityDescriptorCopyFlags+      ( ..,+        SmbSecurityDescriptorCopyFlags_NONE,+        SmbSecurityDescriptorCopyFlags_OWNER_DACL,+        SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SmbSecurityDescriptorCopyFlags = SmbSecurityDescriptorCopyFlags'+  { fromSmbSecurityDescriptorCopyFlags ::+      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 SmbSecurityDescriptorCopyFlags_NONE :: SmbSecurityDescriptorCopyFlags+pattern SmbSecurityDescriptorCopyFlags_NONE = SmbSecurityDescriptorCopyFlags' "NONE"++pattern SmbSecurityDescriptorCopyFlags_OWNER_DACL :: SmbSecurityDescriptorCopyFlags+pattern SmbSecurityDescriptorCopyFlags_OWNER_DACL = SmbSecurityDescriptorCopyFlags' "OWNER_DACL"++pattern SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL :: SmbSecurityDescriptorCopyFlags+pattern SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL = SmbSecurityDescriptorCopyFlags' "OWNER_DACL_SACL"++{-# COMPLETE+  SmbSecurityDescriptorCopyFlags_NONE,+  SmbSecurityDescriptorCopyFlags_OWNER_DACL,+  SmbSecurityDescriptorCopyFlags_OWNER_DACL_SACL,+  SmbSecurityDescriptorCopyFlags'+  #-}
+ gen/Amazonka/DataSync/Types/SmbVersion.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.DataSync.Types.SmbVersion+-- 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.DataSync.Types.SmbVersion+  ( SmbVersion+      ( ..,+        SmbVersion_AUTOMATIC,+        SmbVersion_SMB2,+        SmbVersion_SMB3+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SmbVersion = SmbVersion'+  { fromSmbVersion ::+      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 SmbVersion_AUTOMATIC :: SmbVersion+pattern SmbVersion_AUTOMATIC = SmbVersion' "AUTOMATIC"++pattern SmbVersion_SMB2 :: SmbVersion+pattern SmbVersion_SMB2 = SmbVersion' "SMB2"++pattern SmbVersion_SMB3 :: SmbVersion+pattern SmbVersion_SMB3 = SmbVersion' "SMB3"++{-# COMPLETE+  SmbVersion_AUTOMATIC,+  SmbVersion_SMB2,+  SmbVersion_SMB3,+  SmbVersion'+  #-}
+ gen/Amazonka/DataSync/Types/TagListEntry.hs view
@@ -0,0 +1,92 @@+{-# 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.DataSync.Types.TagListEntry+-- 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.DataSync.Types.TagListEntry 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 key-value pair representing a single tag that\'s been applied to an+-- Amazon Web Services resource.+--+-- /See:/ 'newTagListEntry' smart constructor.+data TagListEntry = TagListEntry'+  { -- | The value for an Amazon Web Services resource tag.+    value :: Prelude.Maybe Prelude.Text,+    -- | The key for an Amazon Web Services resource tag.+    key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagListEntry' 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:+--+-- 'value', 'tagListEntry_value' - The value for an Amazon Web Services resource tag.+--+-- 'key', 'tagListEntry_key' - The key for an Amazon Web Services resource tag.+newTagListEntry ::+  -- | 'key'+  Prelude.Text ->+  TagListEntry+newTagListEntry pKey_ =+  TagListEntry' {value = Prelude.Nothing, key = pKey_}++-- | The value for an Amazon Web Services resource tag.+tagListEntry_value :: Lens.Lens' TagListEntry (Prelude.Maybe Prelude.Text)+tagListEntry_value = Lens.lens (\TagListEntry' {value} -> value) (\s@TagListEntry' {} a -> s {value = a} :: TagListEntry)++-- | The key for an Amazon Web Services resource tag.+tagListEntry_key :: Lens.Lens' TagListEntry Prelude.Text+tagListEntry_key = Lens.lens (\TagListEntry' {key} -> key) (\s@TagListEntry' {} a -> s {key = a} :: TagListEntry)++instance Data.FromJSON TagListEntry where+  parseJSON =+    Data.withObject+      "TagListEntry"+      ( \x ->+          TagListEntry'+            Prelude.<$> (x Data..:? "Value")+            Prelude.<*> (x Data..: "Key")+      )++instance Prelude.Hashable TagListEntry where+  hashWithSalt _salt TagListEntry' {..} =+    _salt+      `Prelude.hashWithSalt` value+      `Prelude.hashWithSalt` key++instance Prelude.NFData TagListEntry where+  rnf TagListEntry' {..} =+    Prelude.rnf value `Prelude.seq` Prelude.rnf key++instance Data.ToJSON TagListEntry where+  toJSON TagListEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Value" Data..=) Prelude.<$> value,+            Prelude.Just ("Key" Data..= key)+          ]+      )
+ gen/Amazonka/DataSync/Types/TaskExecutionListEntry.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.DataSync.Types.TaskExecutionListEntry+-- 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.DataSync.Types.TaskExecutionListEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.TaskExecutionStatus+import qualified Amazonka.Prelude as Prelude++-- | Represents a single entry in a list of task executions.+-- @TaskExecutionListEntry@ returns an array that contains a list of+-- specific invocations of a task when the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_ListTaskExecutions.html ListTaskExecutions>+-- operation is called.+--+-- /See:/ 'newTaskExecutionListEntry' smart constructor.+data TaskExecutionListEntry = TaskExecutionListEntry'+  { -- | The status of a task execution.+    status :: Prelude.Maybe TaskExecutionStatus,+    -- | The Amazon Resource Name (ARN) of the task that was executed.+    taskExecutionArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TaskExecutionListEntry' 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:+--+-- 'status', 'taskExecutionListEntry_status' - The status of a task execution.+--+-- 'taskExecutionArn', 'taskExecutionListEntry_taskExecutionArn' - The Amazon Resource Name (ARN) of the task that was executed.+newTaskExecutionListEntry ::+  TaskExecutionListEntry+newTaskExecutionListEntry =+  TaskExecutionListEntry'+    { status = Prelude.Nothing,+      taskExecutionArn = Prelude.Nothing+    }++-- | The status of a task execution.+taskExecutionListEntry_status :: Lens.Lens' TaskExecutionListEntry (Prelude.Maybe TaskExecutionStatus)+taskExecutionListEntry_status = Lens.lens (\TaskExecutionListEntry' {status} -> status) (\s@TaskExecutionListEntry' {} a -> s {status = a} :: TaskExecutionListEntry)++-- | The Amazon Resource Name (ARN) of the task that was executed.+taskExecutionListEntry_taskExecutionArn :: Lens.Lens' TaskExecutionListEntry (Prelude.Maybe Prelude.Text)+taskExecutionListEntry_taskExecutionArn = Lens.lens (\TaskExecutionListEntry' {taskExecutionArn} -> taskExecutionArn) (\s@TaskExecutionListEntry' {} a -> s {taskExecutionArn = a} :: TaskExecutionListEntry)++instance Data.FromJSON TaskExecutionListEntry where+  parseJSON =+    Data.withObject+      "TaskExecutionListEntry"+      ( \x ->+          TaskExecutionListEntry'+            Prelude.<$> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "TaskExecutionArn")+      )++instance Prelude.Hashable TaskExecutionListEntry where+  hashWithSalt _salt TaskExecutionListEntry' {..} =+    _salt+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` taskExecutionArn++instance Prelude.NFData TaskExecutionListEntry where+  rnf TaskExecutionListEntry' {..} =+    Prelude.rnf status+      `Prelude.seq` Prelude.rnf taskExecutionArn
+ gen/Amazonka/DataSync/Types/TaskExecutionResultDetail.hs view
@@ -0,0 +1,190 @@+{-# 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.DataSync.Types.TaskExecutionResultDetail+-- 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.DataSync.Types.TaskExecutionResultDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.PhaseStatus+import qualified Amazonka.Prelude as Prelude++-- | Describes the detailed result of a @TaskExecution@ operation. This+-- result includes the time in milliseconds spent in each phase, the status+-- of the task execution, and the errors encountered.+--+-- /See:/ 'newTaskExecutionResultDetail' smart constructor.+data TaskExecutionResultDetail = TaskExecutionResultDetail'+  { -- | Errors that DataSync encountered during execution of the task. You can+    -- use this error code to help troubleshoot issues.+    errorCode :: Prelude.Maybe Prelude.Text,+    -- | Detailed description of an error that was encountered during the task+    -- execution. You can use this information to help troubleshoot issues.+    errorDetail :: Prelude.Maybe Prelude.Text,+    -- | The total time in milliseconds that DataSync spent in the PREPARING+    -- phase.+    prepareDuration :: Prelude.Maybe Prelude.Natural,+    -- | The status of the PREPARING phase.+    prepareStatus :: Prelude.Maybe PhaseStatus,+    -- | The total time in milliseconds that DataSync took to transfer the file+    -- from the source to the destination location.+    totalDuration :: Prelude.Maybe Prelude.Natural,+    -- | The total time in milliseconds that DataSync spent in the TRANSFERRING+    -- phase.+    transferDuration :: Prelude.Maybe Prelude.Natural,+    -- | The status of the TRANSFERRING phase.+    transferStatus :: Prelude.Maybe PhaseStatus,+    -- | The total time in milliseconds that DataSync spent in the VERIFYING+    -- phase.+    verifyDuration :: Prelude.Maybe Prelude.Natural,+    -- | The status of the VERIFYING phase.+    verifyStatus :: Prelude.Maybe PhaseStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TaskExecutionResultDetail' 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:+--+-- 'errorCode', 'taskExecutionResultDetail_errorCode' - Errors that DataSync encountered during execution of the task. You can+-- use this error code to help troubleshoot issues.+--+-- 'errorDetail', 'taskExecutionResultDetail_errorDetail' - Detailed description of an error that was encountered during the task+-- execution. You can use this information to help troubleshoot issues.+--+-- 'prepareDuration', 'taskExecutionResultDetail_prepareDuration' - The total time in milliseconds that DataSync spent in the PREPARING+-- phase.+--+-- 'prepareStatus', 'taskExecutionResultDetail_prepareStatus' - The status of the PREPARING phase.+--+-- 'totalDuration', 'taskExecutionResultDetail_totalDuration' - The total time in milliseconds that DataSync took to transfer the file+-- from the source to the destination location.+--+-- 'transferDuration', 'taskExecutionResultDetail_transferDuration' - The total time in milliseconds that DataSync spent in the TRANSFERRING+-- phase.+--+-- 'transferStatus', 'taskExecutionResultDetail_transferStatus' - The status of the TRANSFERRING phase.+--+-- 'verifyDuration', 'taskExecutionResultDetail_verifyDuration' - The total time in milliseconds that DataSync spent in the VERIFYING+-- phase.+--+-- 'verifyStatus', 'taskExecutionResultDetail_verifyStatus' - The status of the VERIFYING phase.+newTaskExecutionResultDetail ::+  TaskExecutionResultDetail+newTaskExecutionResultDetail =+  TaskExecutionResultDetail'+    { errorCode =+        Prelude.Nothing,+      errorDetail = Prelude.Nothing,+      prepareDuration = Prelude.Nothing,+      prepareStatus = Prelude.Nothing,+      totalDuration = Prelude.Nothing,+      transferDuration = Prelude.Nothing,+      transferStatus = Prelude.Nothing,+      verifyDuration = Prelude.Nothing,+      verifyStatus = Prelude.Nothing+    }++-- | Errors that DataSync encountered during execution of the task. You can+-- use this error code to help troubleshoot issues.+taskExecutionResultDetail_errorCode :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Text)+taskExecutionResultDetail_errorCode = Lens.lens (\TaskExecutionResultDetail' {errorCode} -> errorCode) (\s@TaskExecutionResultDetail' {} a -> s {errorCode = a} :: TaskExecutionResultDetail)++-- | Detailed description of an error that was encountered during the task+-- execution. You can use this information to help troubleshoot issues.+taskExecutionResultDetail_errorDetail :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Text)+taskExecutionResultDetail_errorDetail = Lens.lens (\TaskExecutionResultDetail' {errorDetail} -> errorDetail) (\s@TaskExecutionResultDetail' {} a -> s {errorDetail = a} :: TaskExecutionResultDetail)++-- | The total time in milliseconds that DataSync spent in the PREPARING+-- phase.+taskExecutionResultDetail_prepareDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)+taskExecutionResultDetail_prepareDuration = Lens.lens (\TaskExecutionResultDetail' {prepareDuration} -> prepareDuration) (\s@TaskExecutionResultDetail' {} a -> s {prepareDuration = a} :: TaskExecutionResultDetail)++-- | The status of the PREPARING phase.+taskExecutionResultDetail_prepareStatus :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe PhaseStatus)+taskExecutionResultDetail_prepareStatus = Lens.lens (\TaskExecutionResultDetail' {prepareStatus} -> prepareStatus) (\s@TaskExecutionResultDetail' {} a -> s {prepareStatus = a} :: TaskExecutionResultDetail)++-- | The total time in milliseconds that DataSync took to transfer the file+-- from the source to the destination location.+taskExecutionResultDetail_totalDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)+taskExecutionResultDetail_totalDuration = Lens.lens (\TaskExecutionResultDetail' {totalDuration} -> totalDuration) (\s@TaskExecutionResultDetail' {} a -> s {totalDuration = a} :: TaskExecutionResultDetail)++-- | The total time in milliseconds that DataSync spent in the TRANSFERRING+-- phase.+taskExecutionResultDetail_transferDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)+taskExecutionResultDetail_transferDuration = Lens.lens (\TaskExecutionResultDetail' {transferDuration} -> transferDuration) (\s@TaskExecutionResultDetail' {} a -> s {transferDuration = a} :: TaskExecutionResultDetail)++-- | The status of the TRANSFERRING phase.+taskExecutionResultDetail_transferStatus :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe PhaseStatus)+taskExecutionResultDetail_transferStatus = Lens.lens (\TaskExecutionResultDetail' {transferStatus} -> transferStatus) (\s@TaskExecutionResultDetail' {} a -> s {transferStatus = a} :: TaskExecutionResultDetail)++-- | The total time in milliseconds that DataSync spent in the VERIFYING+-- phase.+taskExecutionResultDetail_verifyDuration :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe Prelude.Natural)+taskExecutionResultDetail_verifyDuration = Lens.lens (\TaskExecutionResultDetail' {verifyDuration} -> verifyDuration) (\s@TaskExecutionResultDetail' {} a -> s {verifyDuration = a} :: TaskExecutionResultDetail)++-- | The status of the VERIFYING phase.+taskExecutionResultDetail_verifyStatus :: Lens.Lens' TaskExecutionResultDetail (Prelude.Maybe PhaseStatus)+taskExecutionResultDetail_verifyStatus = Lens.lens (\TaskExecutionResultDetail' {verifyStatus} -> verifyStatus) (\s@TaskExecutionResultDetail' {} a -> s {verifyStatus = a} :: TaskExecutionResultDetail)++instance Data.FromJSON TaskExecutionResultDetail where+  parseJSON =+    Data.withObject+      "TaskExecutionResultDetail"+      ( \x ->+          TaskExecutionResultDetail'+            Prelude.<$> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorDetail")+            Prelude.<*> (x Data..:? "PrepareDuration")+            Prelude.<*> (x Data..:? "PrepareStatus")+            Prelude.<*> (x Data..:? "TotalDuration")+            Prelude.<*> (x Data..:? "TransferDuration")+            Prelude.<*> (x Data..:? "TransferStatus")+            Prelude.<*> (x Data..:? "VerifyDuration")+            Prelude.<*> (x Data..:? "VerifyStatus")+      )++instance Prelude.Hashable TaskExecutionResultDetail where+  hashWithSalt _salt TaskExecutionResultDetail' {..} =+    _salt+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorDetail+      `Prelude.hashWithSalt` prepareDuration+      `Prelude.hashWithSalt` prepareStatus+      `Prelude.hashWithSalt` totalDuration+      `Prelude.hashWithSalt` transferDuration+      `Prelude.hashWithSalt` transferStatus+      `Prelude.hashWithSalt` verifyDuration+      `Prelude.hashWithSalt` verifyStatus++instance Prelude.NFData TaskExecutionResultDetail where+  rnf TaskExecutionResultDetail' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorDetail+      `Prelude.seq` Prelude.rnf prepareDuration+      `Prelude.seq` Prelude.rnf prepareStatus+      `Prelude.seq` Prelude.rnf totalDuration+      `Prelude.seq` Prelude.rnf transferDuration+      `Prelude.seq` Prelude.rnf transferStatus+      `Prelude.seq` Prelude.rnf verifyDuration+      `Prelude.seq` Prelude.rnf verifyStatus
+ gen/Amazonka/DataSync/Types/TaskExecutionStatus.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.DataSync.Types.TaskExecutionStatus+-- 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.DataSync.Types.TaskExecutionStatus+  ( TaskExecutionStatus+      ( ..,+        TaskExecutionStatus_ERROR,+        TaskExecutionStatus_LAUNCHING,+        TaskExecutionStatus_PREPARING,+        TaskExecutionStatus_QUEUED,+        TaskExecutionStatus_SUCCESS,+        TaskExecutionStatus_TRANSFERRING,+        TaskExecutionStatus_VERIFYING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TaskExecutionStatus = TaskExecutionStatus'+  { fromTaskExecutionStatus ::+      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 TaskExecutionStatus_ERROR :: TaskExecutionStatus+pattern TaskExecutionStatus_ERROR = TaskExecutionStatus' "ERROR"++pattern TaskExecutionStatus_LAUNCHING :: TaskExecutionStatus+pattern TaskExecutionStatus_LAUNCHING = TaskExecutionStatus' "LAUNCHING"++pattern TaskExecutionStatus_PREPARING :: TaskExecutionStatus+pattern TaskExecutionStatus_PREPARING = TaskExecutionStatus' "PREPARING"++pattern TaskExecutionStatus_QUEUED :: TaskExecutionStatus+pattern TaskExecutionStatus_QUEUED = TaskExecutionStatus' "QUEUED"++pattern TaskExecutionStatus_SUCCESS :: TaskExecutionStatus+pattern TaskExecutionStatus_SUCCESS = TaskExecutionStatus' "SUCCESS"++pattern TaskExecutionStatus_TRANSFERRING :: TaskExecutionStatus+pattern TaskExecutionStatus_TRANSFERRING = TaskExecutionStatus' "TRANSFERRING"++pattern TaskExecutionStatus_VERIFYING :: TaskExecutionStatus+pattern TaskExecutionStatus_VERIFYING = TaskExecutionStatus' "VERIFYING"++{-# COMPLETE+  TaskExecutionStatus_ERROR,+  TaskExecutionStatus_LAUNCHING,+  TaskExecutionStatus_PREPARING,+  TaskExecutionStatus_QUEUED,+  TaskExecutionStatus_SUCCESS,+  TaskExecutionStatus_TRANSFERRING,+  TaskExecutionStatus_VERIFYING,+  TaskExecutionStatus'+  #-}
+ gen/Amazonka/DataSync/Types/TaskFilter.hs view
@@ -0,0 +1,119 @@+{-# 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.DataSync.Types.TaskFilter+-- 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.DataSync.Types.TaskFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.Operator+import Amazonka.DataSync.Types.TaskFilterName+import qualified Amazonka.Prelude as Prelude++-- | You can use API filters to narrow down the list of resources returned by+-- @ListTasks@. For example, to retrieve all tasks on a source location,+-- you can use @ListTasks@ with filter name @LocationId@ and+-- @Operator Equals@ with the ARN for the location.+--+-- For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/query-resources.html filtering DataSync resources>.+--+-- /See:/ 'newTaskFilter' smart constructor.+data TaskFilter = TaskFilter'+  { -- | The name of the filter being used. Each API call supports a list of+    -- filters that are available for it. For example, @LocationId@ for+    -- @ListTasks@.+    name :: TaskFilterName,+    -- | The values that you want to filter for. For example, you might want to+    -- display only tasks for a specific destination location.+    values :: [Prelude.Text],+    -- | The operator that is used to compare filter values (for example,+    -- @Equals@ or @Contains@).+    operator :: Operator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TaskFilter' 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', 'taskFilter_name' - The name of the filter being used. Each API call supports a list of+-- filters that are available for it. For example, @LocationId@ for+-- @ListTasks@.+--+-- 'values', 'taskFilter_values' - The values that you want to filter for. For example, you might want to+-- display only tasks for a specific destination location.+--+-- 'operator', 'taskFilter_operator' - The operator that is used to compare filter values (for example,+-- @Equals@ or @Contains@).+newTaskFilter ::+  -- | 'name'+  TaskFilterName ->+  -- | 'operator'+  Operator ->+  TaskFilter+newTaskFilter pName_ pOperator_ =+  TaskFilter'+    { name = pName_,+      values = Prelude.mempty,+      operator = pOperator_+    }++-- | The name of the filter being used. Each API call supports a list of+-- filters that are available for it. For example, @LocationId@ for+-- @ListTasks@.+taskFilter_name :: Lens.Lens' TaskFilter TaskFilterName+taskFilter_name = Lens.lens (\TaskFilter' {name} -> name) (\s@TaskFilter' {} a -> s {name = a} :: TaskFilter)++-- | The values that you want to filter for. For example, you might want to+-- display only tasks for a specific destination location.+taskFilter_values :: Lens.Lens' TaskFilter [Prelude.Text]+taskFilter_values = Lens.lens (\TaskFilter' {values} -> values) (\s@TaskFilter' {} a -> s {values = a} :: TaskFilter) Prelude.. Lens.coerced++-- | The operator that is used to compare filter values (for example,+-- @Equals@ or @Contains@).+taskFilter_operator :: Lens.Lens' TaskFilter Operator+taskFilter_operator = Lens.lens (\TaskFilter' {operator} -> operator) (\s@TaskFilter' {} a -> s {operator = a} :: TaskFilter)++instance Prelude.Hashable TaskFilter where+  hashWithSalt _salt TaskFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData TaskFilter where+  rnf TaskFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON TaskFilter where+  toJSON TaskFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Values" Data..= values),+            Prelude.Just ("Operator" Data..= operator)+          ]+      )
+ gen/Amazonka/DataSync/Types/TaskFilterName.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.DataSync.Types.TaskFilterName+-- 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.DataSync.Types.TaskFilterName+  ( TaskFilterName+      ( ..,+        TaskFilterName_CreationTime,+        TaskFilterName_LocationId+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TaskFilterName = TaskFilterName'+  { fromTaskFilterName ::+      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 TaskFilterName_CreationTime :: TaskFilterName+pattern TaskFilterName_CreationTime = TaskFilterName' "CreationTime"++pattern TaskFilterName_LocationId :: TaskFilterName+pattern TaskFilterName_LocationId = TaskFilterName' "LocationId"++{-# COMPLETE+  TaskFilterName_CreationTime,+  TaskFilterName_LocationId,+  TaskFilterName'+  #-}
+ gen/Amazonka/DataSync/Types/TaskListEntry.hs view
@@ -0,0 +1,101 @@+{-# 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.DataSync.Types.TaskListEntry+-- 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.DataSync.Types.TaskListEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types.TaskStatus+import qualified Amazonka.Prelude as Prelude++-- | Represents a single entry in a list of tasks. @TaskListEntry@ returns an+-- array that contains a list of tasks when the+-- <https://docs.aws.amazon.com/datasync/latest/userguide/API_ListTasks.html ListTasks>+-- operation is called. A task includes the source and destination file+-- systems to sync and the options to use for the tasks.+--+-- /See:/ 'newTaskListEntry' smart constructor.+data TaskListEntry = TaskListEntry'+  { -- | The name of the task.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the task.+    status :: Prelude.Maybe TaskStatus,+    -- | The Amazon Resource Name (ARN) of the task.+    taskArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TaskListEntry' 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', 'taskListEntry_name' - The name of the task.+--+-- 'status', 'taskListEntry_status' - The status of the task.+--+-- 'taskArn', 'taskListEntry_taskArn' - The Amazon Resource Name (ARN) of the task.+newTaskListEntry ::+  TaskListEntry+newTaskListEntry =+  TaskListEntry'+    { name = Prelude.Nothing,+      status = Prelude.Nothing,+      taskArn = Prelude.Nothing+    }++-- | The name of the task.+taskListEntry_name :: Lens.Lens' TaskListEntry (Prelude.Maybe Prelude.Text)+taskListEntry_name = Lens.lens (\TaskListEntry' {name} -> name) (\s@TaskListEntry' {} a -> s {name = a} :: TaskListEntry)++-- | The status of the task.+taskListEntry_status :: Lens.Lens' TaskListEntry (Prelude.Maybe TaskStatus)+taskListEntry_status = Lens.lens (\TaskListEntry' {status} -> status) (\s@TaskListEntry' {} a -> s {status = a} :: TaskListEntry)++-- | The Amazon Resource Name (ARN) of the task.+taskListEntry_taskArn :: Lens.Lens' TaskListEntry (Prelude.Maybe Prelude.Text)+taskListEntry_taskArn = Lens.lens (\TaskListEntry' {taskArn} -> taskArn) (\s@TaskListEntry' {} a -> s {taskArn = a} :: TaskListEntry)++instance Data.FromJSON TaskListEntry where+  parseJSON =+    Data.withObject+      "TaskListEntry"+      ( \x ->+          TaskListEntry'+            Prelude.<$> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "TaskArn")+      )++instance Prelude.Hashable TaskListEntry where+  hashWithSalt _salt TaskListEntry' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` taskArn++instance Prelude.NFData TaskListEntry where+  rnf TaskListEntry' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf taskArn
+ gen/Amazonka/DataSync/Types/TaskQueueing.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.DataSync.Types.TaskQueueing+-- 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.DataSync.Types.TaskQueueing+  ( TaskQueueing+      ( ..,+        TaskQueueing_DISABLED,+        TaskQueueing_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TaskQueueing = TaskQueueing'+  { fromTaskQueueing ::+      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 TaskQueueing_DISABLED :: TaskQueueing+pattern TaskQueueing_DISABLED = TaskQueueing' "DISABLED"++pattern TaskQueueing_ENABLED :: TaskQueueing+pattern TaskQueueing_ENABLED = TaskQueueing' "ENABLED"++{-# COMPLETE+  TaskQueueing_DISABLED,+  TaskQueueing_ENABLED,+  TaskQueueing'+  #-}
+ gen/Amazonka/DataSync/Types/TaskSchedule.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.DataSync.Types.TaskSchedule+-- 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.DataSync.Types.TaskSchedule 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 the schedule you want your task to use for repeated+-- executions. For more information, see+-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html Schedule Expressions for Rules>.+--+-- /See:/ 'newTaskSchedule' smart constructor.+data TaskSchedule = TaskSchedule'+  { -- | A cron expression that specifies when DataSync initiates a scheduled+    -- transfer from a source to a destination location.+    scheduleExpression :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TaskSchedule' 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:+--+-- 'scheduleExpression', 'taskSchedule_scheduleExpression' - A cron expression that specifies when DataSync initiates a scheduled+-- transfer from a source to a destination location.+newTaskSchedule ::+  -- | 'scheduleExpression'+  Prelude.Text ->+  TaskSchedule+newTaskSchedule pScheduleExpression_ =+  TaskSchedule'+    { scheduleExpression =+        pScheduleExpression_+    }++-- | A cron expression that specifies when DataSync initiates a scheduled+-- transfer from a source to a destination location.+taskSchedule_scheduleExpression :: Lens.Lens' TaskSchedule Prelude.Text+taskSchedule_scheduleExpression = Lens.lens (\TaskSchedule' {scheduleExpression} -> scheduleExpression) (\s@TaskSchedule' {} a -> s {scheduleExpression = a} :: TaskSchedule)++instance Data.FromJSON TaskSchedule where+  parseJSON =+    Data.withObject+      "TaskSchedule"+      ( \x ->+          TaskSchedule'+            Prelude.<$> (x Data..: "ScheduleExpression")+      )++instance Prelude.Hashable TaskSchedule where+  hashWithSalt _salt TaskSchedule' {..} =+    _salt `Prelude.hashWithSalt` scheduleExpression++instance Prelude.NFData TaskSchedule where+  rnf TaskSchedule' {..} =+    Prelude.rnf scheduleExpression++instance Data.ToJSON TaskSchedule where+  toJSON TaskSchedule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("ScheduleExpression" Data..= scheduleExpression)+          ]+      )
+ gen/Amazonka/DataSync/Types/TaskStatus.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.DataSync.Types.TaskStatus+-- 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.DataSync.Types.TaskStatus+  ( TaskStatus+      ( ..,+        TaskStatus_AVAILABLE,+        TaskStatus_CREATING,+        TaskStatus_QUEUED,+        TaskStatus_RUNNING,+        TaskStatus_UNAVAILABLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TaskStatus = TaskStatus'+  { fromTaskStatus ::+      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 TaskStatus_AVAILABLE :: TaskStatus+pattern TaskStatus_AVAILABLE = TaskStatus' "AVAILABLE"++pattern TaskStatus_CREATING :: TaskStatus+pattern TaskStatus_CREATING = TaskStatus' "CREATING"++pattern TaskStatus_QUEUED :: TaskStatus+pattern TaskStatus_QUEUED = TaskStatus' "QUEUED"++pattern TaskStatus_RUNNING :: TaskStatus+pattern TaskStatus_RUNNING = TaskStatus' "RUNNING"++pattern TaskStatus_UNAVAILABLE :: TaskStatus+pattern TaskStatus_UNAVAILABLE = TaskStatus' "UNAVAILABLE"++{-# COMPLETE+  TaskStatus_AVAILABLE,+  TaskStatus_CREATING,+  TaskStatus_QUEUED,+  TaskStatus_RUNNING,+  TaskStatus_UNAVAILABLE,+  TaskStatus'+  #-}
+ gen/Amazonka/DataSync/Types/TransferMode.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.DataSync.Types.TransferMode+-- 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.DataSync.Types.TransferMode+  ( TransferMode+      ( ..,+        TransferMode_ALL,+        TransferMode_CHANGED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TransferMode = TransferMode'+  { fromTransferMode ::+      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 TransferMode_ALL :: TransferMode+pattern TransferMode_ALL = TransferMode' "ALL"++pattern TransferMode_CHANGED :: TransferMode+pattern TransferMode_CHANGED = TransferMode' "CHANGED"++{-# COMPLETE+  TransferMode_ALL,+  TransferMode_CHANGED,+  TransferMode'+  #-}
+ gen/Amazonka/DataSync/Types/Uid.hs view
@@ -0,0 +1,78 @@+{-# 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.DataSync.Types.Uid+-- 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.DataSync.Types.Uid+  ( Uid+      ( ..,+        Uid_BOTH,+        Uid_INT_VALUE,+        Uid_NAME,+        Uid_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Uid = Uid' {fromUid :: 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 Uid_BOTH :: Uid+pattern Uid_BOTH = Uid' "BOTH"++pattern Uid_INT_VALUE :: Uid+pattern Uid_INT_VALUE = Uid' "INT_VALUE"++pattern Uid_NAME :: Uid+pattern Uid_NAME = Uid' "NAME"++pattern Uid_NONE :: Uid+pattern Uid_NONE = Uid' "NONE"++{-# COMPLETE+  Uid_BOTH,+  Uid_INT_VALUE,+  Uid_NAME,+  Uid_NONE,+  Uid'+  #-}
+ gen/Amazonka/DataSync/Types/VerifyMode.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.DataSync.Types.VerifyMode+-- 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.DataSync.Types.VerifyMode+  ( VerifyMode+      ( ..,+        VerifyMode_NONE,+        VerifyMode_ONLY_FILES_TRANSFERRED,+        VerifyMode_POINT_IN_TIME_CONSISTENT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VerifyMode = VerifyMode'+  { fromVerifyMode ::+      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 VerifyMode_NONE :: VerifyMode+pattern VerifyMode_NONE = VerifyMode' "NONE"++pattern VerifyMode_ONLY_FILES_TRANSFERRED :: VerifyMode+pattern VerifyMode_ONLY_FILES_TRANSFERRED = VerifyMode' "ONLY_FILES_TRANSFERRED"++pattern VerifyMode_POINT_IN_TIME_CONSISTENT :: VerifyMode+pattern VerifyMode_POINT_IN_TIME_CONSISTENT = VerifyMode' "POINT_IN_TIME_CONSISTENT"++{-# COMPLETE+  VerifyMode_NONE,+  VerifyMode_ONLY_FILES_TRANSFERRED,+  VerifyMode_POINT_IN_TIME_CONSISTENT,+  VerifyMode'+  #-}
+ gen/Amazonka/DataSync/UntagResource.hs view
@@ -0,0 +1,176 @@+{-# 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.DataSync.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)+--+-- Removes tags from an Amazon Web Services resource.+module Amazonka.DataSync.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_keys,++    -- * 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.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | UntagResourceRequest+--+-- /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | Specifies the Amazon Resource Name (ARN) of the resource to remove the+    -- tags from.+    resourceArn :: Prelude.Text,+    -- | Specifies the keys in the tags that you want to remove.+    keys :: 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' - Specifies the Amazon Resource Name (ARN) of the resource to remove the+-- tags from.+--+-- 'keys', 'untagResource_keys' - Specifies the keys in the tags that you want to remove.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'keys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ pKeys_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      keys = Lens.coerced Lens.# pKeys_+    }++-- | Specifies the Amazon Resource Name (ARN) of the resource to remove the+-- tags from.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Specifies the keys in the tags that you want to remove.+untagResource_keys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_keys = Lens.lens (\UntagResource' {keys} -> keys) (\s@UntagResource' {} a -> s {keys = 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` keys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf keys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.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 ("Keys" Data..= keys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /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/DataSync/UpdateAgent.hs view
@@ -0,0 +1,167 @@+{-# 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.DataSync.UpdateAgent+-- 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 agent.+module Amazonka.DataSync.UpdateAgent+  ( -- * Creating a Request+    UpdateAgent (..),+    newUpdateAgent,++    -- * Request Lenses+    updateAgent_name,+    updateAgent_agentArn,++    -- * Destructuring the Response+    UpdateAgentResponse (..),+    newUpdateAgentResponse,++    -- * Response Lenses+    updateAgentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | UpdateAgentRequest+--+-- /See:/ 'newUpdateAgent' smart constructor.+data UpdateAgent = UpdateAgent'+  { -- | The name that you want to use to configure the agent.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the agent to update.+    agentArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAgent' 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', 'updateAgent_name' - The name that you want to use to configure the agent.+--+-- 'agentArn', 'updateAgent_agentArn' - The Amazon Resource Name (ARN) of the agent to update.+newUpdateAgent ::+  -- | 'agentArn'+  Prelude.Text ->+  UpdateAgent+newUpdateAgent pAgentArn_ =+  UpdateAgent'+    { name = Prelude.Nothing,+      agentArn = pAgentArn_+    }++-- | The name that you want to use to configure the agent.+updateAgent_name :: Lens.Lens' UpdateAgent (Prelude.Maybe Prelude.Text)+updateAgent_name = Lens.lens (\UpdateAgent' {name} -> name) (\s@UpdateAgent' {} a -> s {name = a} :: UpdateAgent)++-- | The Amazon Resource Name (ARN) of the agent to update.+updateAgent_agentArn :: Lens.Lens' UpdateAgent Prelude.Text+updateAgent_agentArn = Lens.lens (\UpdateAgent' {agentArn} -> agentArn) (\s@UpdateAgent' {} a -> s {agentArn = a} :: UpdateAgent)++instance Core.AWSRequest UpdateAgent where+  type AWSResponse UpdateAgent = UpdateAgentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateAgentResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateAgent where+  hashWithSalt _salt UpdateAgent' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` agentArn++instance Prelude.NFData UpdateAgent where+  rnf UpdateAgent' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf agentArn++instance Data.ToHeaders UpdateAgent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.UpdateAgent" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAgent where+  toJSON UpdateAgent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            Prelude.Just ("AgentArn" Data..= agentArn)+          ]+      )++instance Data.ToPath UpdateAgent where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateAgent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAgentResponse' smart constructor.+data UpdateAgentResponse = UpdateAgentResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAgentResponse' 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', 'updateAgentResponse_httpStatus' - The response's http status code.+newUpdateAgentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAgentResponse+newUpdateAgentResponse pHttpStatus_ =+  UpdateAgentResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateAgentResponse_httpStatus :: Lens.Lens' UpdateAgentResponse Prelude.Int+updateAgentResponse_httpStatus = Lens.lens (\UpdateAgentResponse' {httpStatus} -> httpStatus) (\s@UpdateAgentResponse' {} a -> s {httpStatus = a} :: UpdateAgentResponse)++instance Prelude.NFData UpdateAgentResponse where+  rnf UpdateAgentResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/UpdateLocationHdfs.hs view
@@ -0,0 +1,386 @@+{-# 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.DataSync.UpdateLocationHdfs+-- 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 some parameters of a previously created location for a Hadoop+-- Distributed File System cluster.+module Amazonka.DataSync.UpdateLocationHdfs+  ( -- * Creating a Request+    UpdateLocationHdfs (..),+    newUpdateLocationHdfs,++    -- * Request Lenses+    updateLocationHdfs_agentArns,+    updateLocationHdfs_authenticationType,+    updateLocationHdfs_blockSize,+    updateLocationHdfs_kerberosKeytab,+    updateLocationHdfs_kerberosKrb5Conf,+    updateLocationHdfs_kerberosPrincipal,+    updateLocationHdfs_kmsKeyProviderUri,+    updateLocationHdfs_nameNodes,+    updateLocationHdfs_qopConfiguration,+    updateLocationHdfs_replicationFactor,+    updateLocationHdfs_simpleUser,+    updateLocationHdfs_subdirectory,+    updateLocationHdfs_locationArn,++    -- * Destructuring the Response+    UpdateLocationHdfsResponse (..),+    newUpdateLocationHdfsResponse,++    -- * Response Lenses+    updateLocationHdfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLocationHdfs' smart constructor.+data UpdateLocationHdfs = UpdateLocationHdfs'+  { -- | The ARNs of the agents that are used to connect to the HDFS cluster.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The type of authentication used to determine the identity of the user.+    authenticationType :: Prelude.Maybe HdfsAuthenticationType,+    -- | The size of the data blocks to write into the HDFS cluster.+    blockSize :: Prelude.Maybe Prelude.Natural,+    -- | The Kerberos key table (keytab) that contains mappings between the+    -- defined Kerberos principal and the encrypted keys. You can load the+    -- keytab from a file by providing the file\'s address. If you use the CLI,+    -- it performs base64 encoding for you. Otherwise, provide the+    -- base64-encoded text.+    kerberosKeytab :: Prelude.Maybe Data.Base64,+    -- | The @krb5.conf@ file that contains the Kerberos configuration+    -- information. You can load the @krb5.conf@ file by providing the file\'s+    -- address. If you\'re using the CLI, it performs the base64 encoding for+    -- you. Otherwise, provide the base64-encoded text.+    kerberosKrb5Conf :: Prelude.Maybe Data.Base64,+    -- | The Kerberos principal with access to the files and folders on the HDFS+    -- cluster.+    kerberosPrincipal :: Prelude.Maybe Prelude.Text,+    -- | The URI of the HDFS cluster\'s Key Management Server (KMS).+    kmsKeyProviderUri :: Prelude.Maybe Prelude.Text,+    -- | The NameNode that manages the HDFS namespace. The NameNode performs+    -- operations such as opening, closing, and renaming files and directories.+    -- The NameNode contains the information to map blocks of data to the+    -- DataNodes. You can use only one NameNode.+    nameNodes :: Prelude.Maybe (Prelude.NonEmpty HdfsNameNode),+    -- | The Quality of Protection (QOP) configuration specifies the Remote+    -- Procedure Call (RPC) and data transfer privacy settings configured on+    -- the Hadoop Distributed File System (HDFS) cluster.+    qopConfiguration :: Prelude.Maybe QopConfiguration,+    -- | The number of DataNodes to replicate the data to when writing to the+    -- HDFS cluster.+    replicationFactor :: Prelude.Maybe Prelude.Natural,+    -- | The user name used to identify the client on the host operating system.+    simpleUser :: Prelude.Maybe Prelude.Text,+    -- | A subdirectory in the HDFS cluster. This subdirectory is used to read+    -- data from or write data to the HDFS cluster.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the source HDFS cluster location.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationHdfs' 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:+--+-- 'agentArns', 'updateLocationHdfs_agentArns' - The ARNs of the agents that are used to connect to the HDFS cluster.+--+-- 'authenticationType', 'updateLocationHdfs_authenticationType' - The type of authentication used to determine the identity of the user.+--+-- 'blockSize', 'updateLocationHdfs_blockSize' - The size of the data blocks to write into the HDFS cluster.+--+-- 'kerberosKeytab', 'updateLocationHdfs_kerberosKeytab' - The Kerberos key table (keytab) that contains mappings between the+-- defined Kerberos principal and the encrypted keys. You can load the+-- keytab from a file by providing the file\'s address. If you use the CLI,+-- it performs base64 encoding for you. Otherwise, provide the+-- base64-encoded text.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'kerberosKrb5Conf', 'updateLocationHdfs_kerberosKrb5Conf' - The @krb5.conf@ file that contains the Kerberos configuration+-- information. You can load the @krb5.conf@ file by providing the file\'s+-- address. If you\'re using the CLI, it performs the base64 encoding for+-- you. Otherwise, provide the base64-encoded text.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'kerberosPrincipal', 'updateLocationHdfs_kerberosPrincipal' - The Kerberos principal with access to the files and folders on the HDFS+-- cluster.+--+-- 'kmsKeyProviderUri', 'updateLocationHdfs_kmsKeyProviderUri' - The URI of the HDFS cluster\'s Key Management Server (KMS).+--+-- 'nameNodes', 'updateLocationHdfs_nameNodes' - The NameNode that manages the HDFS namespace. The NameNode performs+-- operations such as opening, closing, and renaming files and directories.+-- The NameNode contains the information to map blocks of data to the+-- DataNodes. You can use only one NameNode.+--+-- 'qopConfiguration', 'updateLocationHdfs_qopConfiguration' - The Quality of Protection (QOP) configuration specifies the Remote+-- Procedure Call (RPC) and data transfer privacy settings configured on+-- the Hadoop Distributed File System (HDFS) cluster.+--+-- 'replicationFactor', 'updateLocationHdfs_replicationFactor' - The number of DataNodes to replicate the data to when writing to the+-- HDFS cluster.+--+-- 'simpleUser', 'updateLocationHdfs_simpleUser' - The user name used to identify the client on the host operating system.+--+-- 'subdirectory', 'updateLocationHdfs_subdirectory' - A subdirectory in the HDFS cluster. This subdirectory is used to read+-- data from or write data to the HDFS cluster.+--+-- 'locationArn', 'updateLocationHdfs_locationArn' - The Amazon Resource Name (ARN) of the source HDFS cluster location.+newUpdateLocationHdfs ::+  -- | 'locationArn'+  Prelude.Text ->+  UpdateLocationHdfs+newUpdateLocationHdfs pLocationArn_ =+  UpdateLocationHdfs'+    { agentArns = Prelude.Nothing,+      authenticationType = Prelude.Nothing,+      blockSize = Prelude.Nothing,+      kerberosKeytab = Prelude.Nothing,+      kerberosKrb5Conf = Prelude.Nothing,+      kerberosPrincipal = Prelude.Nothing,+      kmsKeyProviderUri = Prelude.Nothing,+      nameNodes = Prelude.Nothing,+      qopConfiguration = Prelude.Nothing,+      replicationFactor = Prelude.Nothing,+      simpleUser = Prelude.Nothing,+      subdirectory = Prelude.Nothing,+      locationArn = pLocationArn_+    }++-- | The ARNs of the agents that are used to connect to the HDFS cluster.+updateLocationHdfs_agentArns :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateLocationHdfs_agentArns = Lens.lens (\UpdateLocationHdfs' {agentArns} -> agentArns) (\s@UpdateLocationHdfs' {} a -> s {agentArns = a} :: UpdateLocationHdfs) Prelude.. Lens.mapping Lens.coerced++-- | The type of authentication used to determine the identity of the user.+updateLocationHdfs_authenticationType :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe HdfsAuthenticationType)+updateLocationHdfs_authenticationType = Lens.lens (\UpdateLocationHdfs' {authenticationType} -> authenticationType) (\s@UpdateLocationHdfs' {} a -> s {authenticationType = a} :: UpdateLocationHdfs)++-- | The size of the data blocks to write into the HDFS cluster.+updateLocationHdfs_blockSize :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.Natural)+updateLocationHdfs_blockSize = Lens.lens (\UpdateLocationHdfs' {blockSize} -> blockSize) (\s@UpdateLocationHdfs' {} a -> s {blockSize = a} :: UpdateLocationHdfs)++-- | The Kerberos key table (keytab) that contains mappings between the+-- defined Kerberos principal and the encrypted keys. You can load the+-- keytab from a file by providing the file\'s address. If you use the CLI,+-- it performs base64 encoding for you. Otherwise, provide the+-- base64-encoded text.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+updateLocationHdfs_kerberosKeytab :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.ByteString)+updateLocationHdfs_kerberosKeytab = Lens.lens (\UpdateLocationHdfs' {kerberosKeytab} -> kerberosKeytab) (\s@UpdateLocationHdfs' {} a -> s {kerberosKeytab = a} :: UpdateLocationHdfs) Prelude.. Lens.mapping Data._Base64++-- | The @krb5.conf@ file that contains the Kerberos configuration+-- information. You can load the @krb5.conf@ file by providing the file\'s+-- address. If you\'re using the CLI, it performs the base64 encoding for+-- you. Otherwise, provide the base64-encoded text.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+updateLocationHdfs_kerberosKrb5Conf :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.ByteString)+updateLocationHdfs_kerberosKrb5Conf = Lens.lens (\UpdateLocationHdfs' {kerberosKrb5Conf} -> kerberosKrb5Conf) (\s@UpdateLocationHdfs' {} a -> s {kerberosKrb5Conf = a} :: UpdateLocationHdfs) Prelude.. Lens.mapping Data._Base64++-- | The Kerberos principal with access to the files and folders on the HDFS+-- cluster.+updateLocationHdfs_kerberosPrincipal :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.Text)+updateLocationHdfs_kerberosPrincipal = Lens.lens (\UpdateLocationHdfs' {kerberosPrincipal} -> kerberosPrincipal) (\s@UpdateLocationHdfs' {} a -> s {kerberosPrincipal = a} :: UpdateLocationHdfs)++-- | The URI of the HDFS cluster\'s Key Management Server (KMS).+updateLocationHdfs_kmsKeyProviderUri :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.Text)+updateLocationHdfs_kmsKeyProviderUri = Lens.lens (\UpdateLocationHdfs' {kmsKeyProviderUri} -> kmsKeyProviderUri) (\s@UpdateLocationHdfs' {} a -> s {kmsKeyProviderUri = a} :: UpdateLocationHdfs)++-- | The NameNode that manages the HDFS namespace. The NameNode performs+-- operations such as opening, closing, and renaming files and directories.+-- The NameNode contains the information to map blocks of data to the+-- DataNodes. You can use only one NameNode.+updateLocationHdfs_nameNodes :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe (Prelude.NonEmpty HdfsNameNode))+updateLocationHdfs_nameNodes = Lens.lens (\UpdateLocationHdfs' {nameNodes} -> nameNodes) (\s@UpdateLocationHdfs' {} a -> s {nameNodes = a} :: UpdateLocationHdfs) Prelude.. Lens.mapping Lens.coerced++-- | The Quality of Protection (QOP) configuration specifies the Remote+-- Procedure Call (RPC) and data transfer privacy settings configured on+-- the Hadoop Distributed File System (HDFS) cluster.+updateLocationHdfs_qopConfiguration :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe QopConfiguration)+updateLocationHdfs_qopConfiguration = Lens.lens (\UpdateLocationHdfs' {qopConfiguration} -> qopConfiguration) (\s@UpdateLocationHdfs' {} a -> s {qopConfiguration = a} :: UpdateLocationHdfs)++-- | The number of DataNodes to replicate the data to when writing to the+-- HDFS cluster.+updateLocationHdfs_replicationFactor :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.Natural)+updateLocationHdfs_replicationFactor = Lens.lens (\UpdateLocationHdfs' {replicationFactor} -> replicationFactor) (\s@UpdateLocationHdfs' {} a -> s {replicationFactor = a} :: UpdateLocationHdfs)++-- | The user name used to identify the client on the host operating system.+updateLocationHdfs_simpleUser :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.Text)+updateLocationHdfs_simpleUser = Lens.lens (\UpdateLocationHdfs' {simpleUser} -> simpleUser) (\s@UpdateLocationHdfs' {} a -> s {simpleUser = a} :: UpdateLocationHdfs)++-- | A subdirectory in the HDFS cluster. This subdirectory is used to read+-- data from or write data to the HDFS cluster.+updateLocationHdfs_subdirectory :: Lens.Lens' UpdateLocationHdfs (Prelude.Maybe Prelude.Text)+updateLocationHdfs_subdirectory = Lens.lens (\UpdateLocationHdfs' {subdirectory} -> subdirectory) (\s@UpdateLocationHdfs' {} a -> s {subdirectory = a} :: UpdateLocationHdfs)++-- | The Amazon Resource Name (ARN) of the source HDFS cluster location.+updateLocationHdfs_locationArn :: Lens.Lens' UpdateLocationHdfs Prelude.Text+updateLocationHdfs_locationArn = Lens.lens (\UpdateLocationHdfs' {locationArn} -> locationArn) (\s@UpdateLocationHdfs' {} a -> s {locationArn = a} :: UpdateLocationHdfs)++instance Core.AWSRequest UpdateLocationHdfs where+  type+    AWSResponse UpdateLocationHdfs =+      UpdateLocationHdfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateLocationHdfsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateLocationHdfs where+  hashWithSalt _salt UpdateLocationHdfs' {..} =+    _salt+      `Prelude.hashWithSalt` agentArns+      `Prelude.hashWithSalt` authenticationType+      `Prelude.hashWithSalt` blockSize+      `Prelude.hashWithSalt` kerberosKeytab+      `Prelude.hashWithSalt` kerberosKrb5Conf+      `Prelude.hashWithSalt` kerberosPrincipal+      `Prelude.hashWithSalt` kmsKeyProviderUri+      `Prelude.hashWithSalt` nameNodes+      `Prelude.hashWithSalt` qopConfiguration+      `Prelude.hashWithSalt` replicationFactor+      `Prelude.hashWithSalt` simpleUser+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` locationArn++instance Prelude.NFData UpdateLocationHdfs where+  rnf UpdateLocationHdfs' {..} =+    Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf authenticationType+      `Prelude.seq` Prelude.rnf blockSize+      `Prelude.seq` Prelude.rnf kerberosKeytab+      `Prelude.seq` Prelude.rnf kerberosKrb5Conf+      `Prelude.seq` Prelude.rnf kerberosPrincipal+      `Prelude.seq` Prelude.rnf kmsKeyProviderUri+      `Prelude.seq` Prelude.rnf nameNodes+      `Prelude.seq` Prelude.rnf qopConfiguration+      `Prelude.seq` Prelude.rnf replicationFactor+      `Prelude.seq` Prelude.rnf simpleUser+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf locationArn++instance Data.ToHeaders UpdateLocationHdfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.UpdateLocationHdfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateLocationHdfs where+  toJSON UpdateLocationHdfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AgentArns" Data..=) Prelude.<$> agentArns,+            ("AuthenticationType" Data..=)+              Prelude.<$> authenticationType,+            ("BlockSize" Data..=) Prelude.<$> blockSize,+            ("KerberosKeytab" Data..=)+              Prelude.<$> kerberosKeytab,+            ("KerberosKrb5Conf" Data..=)+              Prelude.<$> kerberosKrb5Conf,+            ("KerberosPrincipal" Data..=)+              Prelude.<$> kerberosPrincipal,+            ("KmsKeyProviderUri" Data..=)+              Prelude.<$> kmsKeyProviderUri,+            ("NameNodes" Data..=) Prelude.<$> nameNodes,+            ("QopConfiguration" Data..=)+              Prelude.<$> qopConfiguration,+            ("ReplicationFactor" Data..=)+              Prelude.<$> replicationFactor,+            ("SimpleUser" Data..=) Prelude.<$> simpleUser,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            Prelude.Just ("LocationArn" Data..= locationArn)+          ]+      )++instance Data.ToPath UpdateLocationHdfs where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateLocationHdfs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLocationHdfsResponse' smart constructor.+data UpdateLocationHdfsResponse = UpdateLocationHdfsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationHdfsResponse' 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', 'updateLocationHdfsResponse_httpStatus' - The response's http status code.+newUpdateLocationHdfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateLocationHdfsResponse+newUpdateLocationHdfsResponse pHttpStatus_ =+  UpdateLocationHdfsResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateLocationHdfsResponse_httpStatus :: Lens.Lens' UpdateLocationHdfsResponse Prelude.Int+updateLocationHdfsResponse_httpStatus = Lens.lens (\UpdateLocationHdfsResponse' {httpStatus} -> httpStatus) (\s@UpdateLocationHdfsResponse' {} a -> s {httpStatus = a} :: UpdateLocationHdfsResponse)++instance Prelude.NFData UpdateLocationHdfsResponse where+  rnf UpdateLocationHdfsResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/UpdateLocationNfs.hs view
@@ -0,0 +1,279 @@+{-# 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.DataSync.UpdateLocationNfs+-- 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 some of the parameters of a previously created location for+-- Network File System (NFS) access. For information about creating an NFS+-- location, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html Creating a location for NFS>.+module Amazonka.DataSync.UpdateLocationNfs+  ( -- * Creating a Request+    UpdateLocationNfs (..),+    newUpdateLocationNfs,++    -- * Request Lenses+    updateLocationNfs_mountOptions,+    updateLocationNfs_onPremConfig,+    updateLocationNfs_subdirectory,+    updateLocationNfs_locationArn,++    -- * Destructuring the Response+    UpdateLocationNfsResponse (..),+    newUpdateLocationNfsResponse,++    -- * Response Lenses+    updateLocationNfsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLocationNfs' smart constructor.+data UpdateLocationNfs = UpdateLocationNfs'+  { mountOptions :: Prelude.Maybe NfsMountOptions,+    onPremConfig :: Prelude.Maybe OnPremConfig,+    -- | The subdirectory in the NFS file system that is used to read data from+    -- the NFS source location or write data to the NFS destination. The NFS+    -- path should be a path that\'s exported by the NFS server, or a+    -- subdirectory of that path. The path should be such that it can be+    -- mounted by other NFS clients in your network.+    --+    -- To see all the paths exported by your NFS server, run+    -- \"@showmount -e nfs-server-name@\" from an NFS client that has access to+    -- your server. You can specify any directory that appears in the results,+    -- and any subdirectory of that directory. Ensure that the NFS export is+    -- accessible without Kerberos authentication.+    --+    -- To transfer all the data in the folder that you specified, DataSync must+    -- have permissions to read all the data. To ensure this, either configure+    -- the NFS export with @no_root_squash@, or ensure that the files you want+    -- DataSync to access have permissions that allow read access for all+    -- users. Doing either option enables the agent to read the files. For the+    -- agent to access directories, you must additionally enable all execute+    -- access.+    --+    -- If you are copying data to or from your Snowcone device, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+    -- for more information.+    --+    -- For information about NFS export configuration, see 18.7. The+    -- \/etc\/exports Configuration File in the Red Hat Enterprise Linux+    -- documentation.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the NFS location to update.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationNfs' 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:+--+-- 'mountOptions', 'updateLocationNfs_mountOptions' - Undocumented member.+--+-- 'onPremConfig', 'updateLocationNfs_onPremConfig' - Undocumented member.+--+-- 'subdirectory', 'updateLocationNfs_subdirectory' - The subdirectory in the NFS file system that is used to read data from+-- the NFS source location or write data to the NFS destination. The NFS+-- path should be a path that\'s exported by the NFS server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other NFS clients in your network.+--+-- To see all the paths exported by your NFS server, run+-- \"@showmount -e nfs-server-name@\" from an NFS client that has access to+-- your server. You can specify any directory that appears in the results,+-- and any subdirectory of that directory. Ensure that the NFS export is+-- accessible without Kerberos authentication.+--+-- To transfer all the data in the folder that you specified, DataSync must+-- have permissions to read all the data. To ensure this, either configure+-- the NFS export with @no_root_squash@, or ensure that the files you want+-- DataSync to access have permissions that allow read access for all+-- users. Doing either option enables the agent to read the files. For the+-- agent to access directories, you must additionally enable all execute+-- access.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+--+-- For information about NFS export configuration, see 18.7. The+-- \/etc\/exports Configuration File in the Red Hat Enterprise Linux+-- documentation.+--+-- 'locationArn', 'updateLocationNfs_locationArn' - The Amazon Resource Name (ARN) of the NFS location to update.+newUpdateLocationNfs ::+  -- | 'locationArn'+  Prelude.Text ->+  UpdateLocationNfs+newUpdateLocationNfs pLocationArn_ =+  UpdateLocationNfs'+    { mountOptions = Prelude.Nothing,+      onPremConfig = Prelude.Nothing,+      subdirectory = Prelude.Nothing,+      locationArn = pLocationArn_+    }++-- | Undocumented member.+updateLocationNfs_mountOptions :: Lens.Lens' UpdateLocationNfs (Prelude.Maybe NfsMountOptions)+updateLocationNfs_mountOptions = Lens.lens (\UpdateLocationNfs' {mountOptions} -> mountOptions) (\s@UpdateLocationNfs' {} a -> s {mountOptions = a} :: UpdateLocationNfs)++-- | Undocumented member.+updateLocationNfs_onPremConfig :: Lens.Lens' UpdateLocationNfs (Prelude.Maybe OnPremConfig)+updateLocationNfs_onPremConfig = Lens.lens (\UpdateLocationNfs' {onPremConfig} -> onPremConfig) (\s@UpdateLocationNfs' {} a -> s {onPremConfig = a} :: UpdateLocationNfs)++-- | The subdirectory in the NFS file system that is used to read data from+-- the NFS source location or write data to the NFS destination. The NFS+-- path should be a path that\'s exported by the NFS server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other NFS clients in your network.+--+-- To see all the paths exported by your NFS server, run+-- \"@showmount -e nfs-server-name@\" from an NFS client that has access to+-- your server. You can specify any directory that appears in the results,+-- and any subdirectory of that directory. Ensure that the NFS export is+-- accessible without Kerberos authentication.+--+-- To transfer all the data in the folder that you specified, DataSync must+-- have permissions to read all the data. To ensure this, either configure+-- the NFS export with @no_root_squash@, or ensure that the files you want+-- DataSync to access have permissions that allow read access for all+-- users. Doing either option enables the agent to read the files. For the+-- agent to access directories, you must additionally enable all execute+-- access.+--+-- If you are copying data to or from your Snowcone device, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone NFS Server on Snowcone>+-- for more information.+--+-- For information about NFS export configuration, see 18.7. The+-- \/etc\/exports Configuration File in the Red Hat Enterprise Linux+-- documentation.+updateLocationNfs_subdirectory :: Lens.Lens' UpdateLocationNfs (Prelude.Maybe Prelude.Text)+updateLocationNfs_subdirectory = Lens.lens (\UpdateLocationNfs' {subdirectory} -> subdirectory) (\s@UpdateLocationNfs' {} a -> s {subdirectory = a} :: UpdateLocationNfs)++-- | The Amazon Resource Name (ARN) of the NFS location to update.+updateLocationNfs_locationArn :: Lens.Lens' UpdateLocationNfs Prelude.Text+updateLocationNfs_locationArn = Lens.lens (\UpdateLocationNfs' {locationArn} -> locationArn) (\s@UpdateLocationNfs' {} a -> s {locationArn = a} :: UpdateLocationNfs)++instance Core.AWSRequest UpdateLocationNfs where+  type+    AWSResponse UpdateLocationNfs =+      UpdateLocationNfsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateLocationNfsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateLocationNfs where+  hashWithSalt _salt UpdateLocationNfs' {..} =+    _salt+      `Prelude.hashWithSalt` mountOptions+      `Prelude.hashWithSalt` onPremConfig+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` locationArn++instance Prelude.NFData UpdateLocationNfs where+  rnf UpdateLocationNfs' {..} =+    Prelude.rnf mountOptions+      `Prelude.seq` Prelude.rnf onPremConfig+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf locationArn++instance Data.ToHeaders UpdateLocationNfs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.UpdateLocationNfs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateLocationNfs where+  toJSON UpdateLocationNfs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MountOptions" Data..=) Prelude.<$> mountOptions,+            ("OnPremConfig" Data..=) Prelude.<$> onPremConfig,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            Prelude.Just ("LocationArn" Data..= locationArn)+          ]+      )++instance Data.ToPath UpdateLocationNfs where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateLocationNfs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLocationNfsResponse' smart constructor.+data UpdateLocationNfsResponse = UpdateLocationNfsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationNfsResponse' 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', 'updateLocationNfsResponse_httpStatus' - The response's http status code.+newUpdateLocationNfsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateLocationNfsResponse+newUpdateLocationNfsResponse pHttpStatus_ =+  UpdateLocationNfsResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateLocationNfsResponse_httpStatus :: Lens.Lens' UpdateLocationNfsResponse Prelude.Int+updateLocationNfsResponse_httpStatus = Lens.lens (\UpdateLocationNfsResponse' {httpStatus} -> httpStatus) (\s@UpdateLocationNfsResponse' {} a -> s {httpStatus = a} :: UpdateLocationNfsResponse)++instance Prelude.NFData UpdateLocationNfsResponse where+  rnf UpdateLocationNfsResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/UpdateLocationObjectStorage.hs view
@@ -0,0 +1,320 @@+{-# 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.DataSync.UpdateLocationObjectStorage+-- 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 some parameters of an existing object storage location that+-- DataSync accesses for a transfer. For information about creating a+-- self-managed object storage location, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html Creating a location for object storage>.+module Amazonka.DataSync.UpdateLocationObjectStorage+  ( -- * Creating a Request+    UpdateLocationObjectStorage (..),+    newUpdateLocationObjectStorage,++    -- * Request Lenses+    updateLocationObjectStorage_accessKey,+    updateLocationObjectStorage_agentArns,+    updateLocationObjectStorage_secretKey,+    updateLocationObjectStorage_serverCertificate,+    updateLocationObjectStorage_serverPort,+    updateLocationObjectStorage_serverProtocol,+    updateLocationObjectStorage_subdirectory,+    updateLocationObjectStorage_locationArn,++    -- * Destructuring the Response+    UpdateLocationObjectStorageResponse (..),+    newUpdateLocationObjectStorageResponse,++    -- * Response Lenses+    updateLocationObjectStorageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLocationObjectStorage' smart constructor.+data UpdateLocationObjectStorage = UpdateLocationObjectStorage'+  { -- | Specifies the access key (for example, a user name) if credentials are+    -- required to authenticate with the object storage server.+    accessKey :: Prelude.Maybe Prelude.Text,+    -- | Specifies the Amazon Resource Names (ARNs) of the DataSync agents that+    -- can securely connect with your location.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | Specifies the secret key (for example, a password) if credentials are+    -- required to authenticate with the object storage server.+    secretKey :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Specifies a certificate to authenticate with an object storage system+    -- that uses a private or self-signed certificate authority (CA). You must+    -- specify a Base64-encoded @.pem@ file (for example,+    -- @file:\/\/\/home\/user\/.ssh\/storage_sys_certificate.pem@). The+    -- certificate can be up to 32768 bytes (before Base64 encoding).+    --+    -- To use this parameter, configure @ServerProtocol@ to @HTTPS@.+    --+    -- Updating the certificate doesn\'t interfere with tasks that you have in+    -- progress.+    serverCertificate :: Prelude.Maybe Data.Base64,+    -- | Specifies the port that your object storage server accepts inbound+    -- network traffic on (for example, port 443).+    serverPort :: Prelude.Maybe Prelude.Natural,+    -- | Specifies the protocol that your object storage server uses to+    -- communicate.+    serverProtocol :: Prelude.Maybe ObjectStorageServerProtocol,+    -- | Specifies the object prefix for your object storage server. If this is a+    -- source location, DataSync only copies objects with this prefix. If this+    -- is a destination location, DataSync writes all objects with this prefix.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | Specifies the ARN of the object storage system location that you\'re+    -- updating.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationObjectStorage' 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:+--+-- 'accessKey', 'updateLocationObjectStorage_accessKey' - Specifies the access key (for example, a user name) if credentials are+-- required to authenticate with the object storage server.+--+-- 'agentArns', 'updateLocationObjectStorage_agentArns' - Specifies the Amazon Resource Names (ARNs) of the DataSync agents that+-- can securely connect with your location.+--+-- 'secretKey', 'updateLocationObjectStorage_secretKey' - Specifies the secret key (for example, a password) if credentials are+-- required to authenticate with the object storage server.+--+-- 'serverCertificate', 'updateLocationObjectStorage_serverCertificate' - Specifies a certificate to authenticate with an object storage system+-- that uses a private or self-signed certificate authority (CA). You must+-- specify a Base64-encoded @.pem@ file (for example,+-- @file:\/\/\/home\/user\/.ssh\/storage_sys_certificate.pem@). The+-- certificate can be up to 32768 bytes (before Base64 encoding).+--+-- To use this parameter, configure @ServerProtocol@ to @HTTPS@.+--+-- Updating the certificate doesn\'t interfere with tasks that you have in+-- progress.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'serverPort', 'updateLocationObjectStorage_serverPort' - Specifies the port that your object storage server accepts inbound+-- network traffic on (for example, port 443).+--+-- 'serverProtocol', 'updateLocationObjectStorage_serverProtocol' - Specifies the protocol that your object storage server uses to+-- communicate.+--+-- 'subdirectory', 'updateLocationObjectStorage_subdirectory' - Specifies the object prefix for your object storage server. If this is a+-- source location, DataSync only copies objects with this prefix. If this+-- is a destination location, DataSync writes all objects with this prefix.+--+-- 'locationArn', 'updateLocationObjectStorage_locationArn' - Specifies the ARN of the object storage system location that you\'re+-- updating.+newUpdateLocationObjectStorage ::+  -- | 'locationArn'+  Prelude.Text ->+  UpdateLocationObjectStorage+newUpdateLocationObjectStorage pLocationArn_ =+  UpdateLocationObjectStorage'+    { accessKey =+        Prelude.Nothing,+      agentArns = Prelude.Nothing,+      secretKey = Prelude.Nothing,+      serverCertificate = Prelude.Nothing,+      serverPort = Prelude.Nothing,+      serverProtocol = Prelude.Nothing,+      subdirectory = Prelude.Nothing,+      locationArn = pLocationArn_+    }++-- | Specifies the access key (for example, a user name) if credentials are+-- required to authenticate with the object storage server.+updateLocationObjectStorage_accessKey :: Lens.Lens' UpdateLocationObjectStorage (Prelude.Maybe Prelude.Text)+updateLocationObjectStorage_accessKey = Lens.lens (\UpdateLocationObjectStorage' {accessKey} -> accessKey) (\s@UpdateLocationObjectStorage' {} a -> s {accessKey = a} :: UpdateLocationObjectStorage)++-- | Specifies the Amazon Resource Names (ARNs) of the DataSync agents that+-- can securely connect with your location.+updateLocationObjectStorage_agentArns :: Lens.Lens' UpdateLocationObjectStorage (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateLocationObjectStorage_agentArns = Lens.lens (\UpdateLocationObjectStorage' {agentArns} -> agentArns) (\s@UpdateLocationObjectStorage' {} a -> s {agentArns = a} :: UpdateLocationObjectStorage) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the secret key (for example, a password) if credentials are+-- required to authenticate with the object storage server.+updateLocationObjectStorage_secretKey :: Lens.Lens' UpdateLocationObjectStorage (Prelude.Maybe Prelude.Text)+updateLocationObjectStorage_secretKey = Lens.lens (\UpdateLocationObjectStorage' {secretKey} -> secretKey) (\s@UpdateLocationObjectStorage' {} a -> s {secretKey = a} :: UpdateLocationObjectStorage) Prelude.. Lens.mapping Data._Sensitive++-- | Specifies a certificate to authenticate with an object storage system+-- that uses a private or self-signed certificate authority (CA). You must+-- specify a Base64-encoded @.pem@ file (for example,+-- @file:\/\/\/home\/user\/.ssh\/storage_sys_certificate.pem@). The+-- certificate can be up to 32768 bytes (before Base64 encoding).+--+-- To use this parameter, configure @ServerProtocol@ to @HTTPS@.+--+-- Updating the certificate doesn\'t interfere with tasks that you have in+-- progress.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+updateLocationObjectStorage_serverCertificate :: Lens.Lens' UpdateLocationObjectStorage (Prelude.Maybe Prelude.ByteString)+updateLocationObjectStorage_serverCertificate = Lens.lens (\UpdateLocationObjectStorage' {serverCertificate} -> serverCertificate) (\s@UpdateLocationObjectStorage' {} a -> s {serverCertificate = a} :: UpdateLocationObjectStorage) Prelude.. Lens.mapping Data._Base64++-- | Specifies the port that your object storage server accepts inbound+-- network traffic on (for example, port 443).+updateLocationObjectStorage_serverPort :: Lens.Lens' UpdateLocationObjectStorage (Prelude.Maybe Prelude.Natural)+updateLocationObjectStorage_serverPort = Lens.lens (\UpdateLocationObjectStorage' {serverPort} -> serverPort) (\s@UpdateLocationObjectStorage' {} a -> s {serverPort = a} :: UpdateLocationObjectStorage)++-- | Specifies the protocol that your object storage server uses to+-- communicate.+updateLocationObjectStorage_serverProtocol :: Lens.Lens' UpdateLocationObjectStorage (Prelude.Maybe ObjectStorageServerProtocol)+updateLocationObjectStorage_serverProtocol = Lens.lens (\UpdateLocationObjectStorage' {serverProtocol} -> serverProtocol) (\s@UpdateLocationObjectStorage' {} a -> s {serverProtocol = a} :: UpdateLocationObjectStorage)++-- | Specifies the object prefix for your object storage server. If this is a+-- source location, DataSync only copies objects with this prefix. If this+-- is a destination location, DataSync writes all objects with this prefix.+updateLocationObjectStorage_subdirectory :: Lens.Lens' UpdateLocationObjectStorage (Prelude.Maybe Prelude.Text)+updateLocationObjectStorage_subdirectory = Lens.lens (\UpdateLocationObjectStorage' {subdirectory} -> subdirectory) (\s@UpdateLocationObjectStorage' {} a -> s {subdirectory = a} :: UpdateLocationObjectStorage)++-- | Specifies the ARN of the object storage system location that you\'re+-- updating.+updateLocationObjectStorage_locationArn :: Lens.Lens' UpdateLocationObjectStorage Prelude.Text+updateLocationObjectStorage_locationArn = Lens.lens (\UpdateLocationObjectStorage' {locationArn} -> locationArn) (\s@UpdateLocationObjectStorage' {} a -> s {locationArn = a} :: UpdateLocationObjectStorage)++instance Core.AWSRequest UpdateLocationObjectStorage where+  type+    AWSResponse UpdateLocationObjectStorage =+      UpdateLocationObjectStorageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateLocationObjectStorageResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateLocationObjectStorage where+  hashWithSalt _salt UpdateLocationObjectStorage' {..} =+    _salt+      `Prelude.hashWithSalt` accessKey+      `Prelude.hashWithSalt` agentArns+      `Prelude.hashWithSalt` secretKey+      `Prelude.hashWithSalt` serverCertificate+      `Prelude.hashWithSalt` serverPort+      `Prelude.hashWithSalt` serverProtocol+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` locationArn++instance Prelude.NFData UpdateLocationObjectStorage where+  rnf UpdateLocationObjectStorage' {..} =+    Prelude.rnf accessKey+      `Prelude.seq` Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf secretKey+      `Prelude.seq` Prelude.rnf serverCertificate+      `Prelude.seq` Prelude.rnf serverPort+      `Prelude.seq` Prelude.rnf serverProtocol+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf locationArn++instance Data.ToHeaders UpdateLocationObjectStorage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.UpdateLocationObjectStorage" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateLocationObjectStorage where+  toJSON UpdateLocationObjectStorage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessKey" Data..=) Prelude.<$> accessKey,+            ("AgentArns" Data..=) Prelude.<$> agentArns,+            ("SecretKey" Data..=) Prelude.<$> secretKey,+            ("ServerCertificate" Data..=)+              Prelude.<$> serverCertificate,+            ("ServerPort" Data..=) Prelude.<$> serverPort,+            ("ServerProtocol" Data..=)+              Prelude.<$> serverProtocol,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            Prelude.Just ("LocationArn" Data..= locationArn)+          ]+      )++instance Data.ToPath UpdateLocationObjectStorage where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateLocationObjectStorage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLocationObjectStorageResponse' smart constructor.+data UpdateLocationObjectStorageResponse = UpdateLocationObjectStorageResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationObjectStorageResponse' 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', 'updateLocationObjectStorageResponse_httpStatus' - The response's http status code.+newUpdateLocationObjectStorageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateLocationObjectStorageResponse+newUpdateLocationObjectStorageResponse pHttpStatus_ =+  UpdateLocationObjectStorageResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateLocationObjectStorageResponse_httpStatus :: Lens.Lens' UpdateLocationObjectStorageResponse Prelude.Int+updateLocationObjectStorageResponse_httpStatus = Lens.lens (\UpdateLocationObjectStorageResponse' {httpStatus} -> httpStatus) (\s@UpdateLocationObjectStorageResponse' {} a -> s {httpStatus = a} :: UpdateLocationObjectStorageResponse)++instance+  Prelude.NFData+    UpdateLocationObjectStorageResponse+  where+  rnf UpdateLocationObjectStorageResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/UpdateLocationSmb.hs view
@@ -0,0 +1,316 @@+{-# 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.DataSync.UpdateLocationSmb+-- 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 some of the parameters of a previously created location for+-- Server Message Block (SMB) file system access. For information about+-- creating an SMB location, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html Creating a location for SMB>.+module Amazonka.DataSync.UpdateLocationSmb+  ( -- * Creating a Request+    UpdateLocationSmb (..),+    newUpdateLocationSmb,++    -- * Request Lenses+    updateLocationSmb_agentArns,+    updateLocationSmb_domain,+    updateLocationSmb_mountOptions,+    updateLocationSmb_password,+    updateLocationSmb_subdirectory,+    updateLocationSmb_user,+    updateLocationSmb_locationArn,++    -- * Destructuring the Response+    UpdateLocationSmbResponse (..),+    newUpdateLocationSmbResponse,++    -- * Response Lenses+    updateLocationSmbResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLocationSmb' smart constructor.+data UpdateLocationSmb = UpdateLocationSmb'+  { -- | The Amazon Resource Names (ARNs) of agents to use for a Simple Message+    -- Block (SMB) location.+    agentArns :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The name of the Windows domain that the SMB server belongs to.+    domain :: Prelude.Maybe Prelude.Text,+    mountOptions :: Prelude.Maybe SmbMountOptions,+    -- | The password of the user who can mount the share has the permissions to+    -- access files and folders in the SMB share.+    password :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The subdirectory in the SMB file system that is used to read data from+    -- the SMB source location or write data to the SMB destination. The SMB+    -- path should be a path that\'s exported by the SMB server, or a+    -- subdirectory of that path. The path should be such that it can be+    -- mounted by other SMB clients in your network.+    --+    -- @Subdirectory@ must be specified with forward slashes. For example,+    -- @\/path\/to\/folder@.+    --+    -- To transfer all the data in the folder that you specified, DataSync must+    -- have permissions to mount the SMB share and to access all the data in+    -- that share. To ensure this, do either of the following:+    --+    -- -   Ensure that the user\/password specified belongs to the user who can+    --     mount the share and who has the appropriate permissions for all of+    --     the files and directories that you want DataSync to access.+    --+    -- -   Use credentials of a member of the Backup Operators group to mount+    --     the share.+    --+    -- Doing either of these options enables the agent to access the data. For+    -- the agent to access directories, you must also enable all execute+    -- access.+    subdirectory :: Prelude.Maybe Prelude.Text,+    -- | The user who can mount the share has the permissions to access files and+    -- folders in the SMB share.+    user :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the SMB location to update.+    locationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationSmb' 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:+--+-- 'agentArns', 'updateLocationSmb_agentArns' - The Amazon Resource Names (ARNs) of agents to use for a Simple Message+-- Block (SMB) location.+--+-- 'domain', 'updateLocationSmb_domain' - The name of the Windows domain that the SMB server belongs to.+--+-- 'mountOptions', 'updateLocationSmb_mountOptions' - Undocumented member.+--+-- 'password', 'updateLocationSmb_password' - The password of the user who can mount the share has the permissions to+-- access files and folders in the SMB share.+--+-- 'subdirectory', 'updateLocationSmb_subdirectory' - The subdirectory in the SMB file system that is used to read data from+-- the SMB source location or write data to the SMB destination. The SMB+-- path should be a path that\'s exported by the SMB server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other SMB clients in your network.+--+-- @Subdirectory@ must be specified with forward slashes. For example,+-- @\/path\/to\/folder@.+--+-- To transfer all the data in the folder that you specified, DataSync must+-- have permissions to mount the SMB share and to access all the data in+-- that share. To ensure this, do either of the following:+--+-- -   Ensure that the user\/password specified belongs to the user who can+--     mount the share and who has the appropriate permissions for all of+--     the files and directories that you want DataSync to access.+--+-- -   Use credentials of a member of the Backup Operators group to mount+--     the share.+--+-- Doing either of these options enables the agent to access the data. For+-- the agent to access directories, you must also enable all execute+-- access.+--+-- 'user', 'updateLocationSmb_user' - The user who can mount the share has the permissions to access files and+-- folders in the SMB share.+--+-- 'locationArn', 'updateLocationSmb_locationArn' - The Amazon Resource Name (ARN) of the SMB location to update.+newUpdateLocationSmb ::+  -- | 'locationArn'+  Prelude.Text ->+  UpdateLocationSmb+newUpdateLocationSmb pLocationArn_ =+  UpdateLocationSmb'+    { agentArns = Prelude.Nothing,+      domain = Prelude.Nothing,+      mountOptions = Prelude.Nothing,+      password = Prelude.Nothing,+      subdirectory = Prelude.Nothing,+      user = Prelude.Nothing,+      locationArn = pLocationArn_+    }++-- | The Amazon Resource Names (ARNs) of agents to use for a Simple Message+-- Block (SMB) location.+updateLocationSmb_agentArns :: Lens.Lens' UpdateLocationSmb (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateLocationSmb_agentArns = Lens.lens (\UpdateLocationSmb' {agentArns} -> agentArns) (\s@UpdateLocationSmb' {} a -> s {agentArns = a} :: UpdateLocationSmb) Prelude.. Lens.mapping Lens.coerced++-- | The name of the Windows domain that the SMB server belongs to.+updateLocationSmb_domain :: Lens.Lens' UpdateLocationSmb (Prelude.Maybe Prelude.Text)+updateLocationSmb_domain = Lens.lens (\UpdateLocationSmb' {domain} -> domain) (\s@UpdateLocationSmb' {} a -> s {domain = a} :: UpdateLocationSmb)++-- | Undocumented member.+updateLocationSmb_mountOptions :: Lens.Lens' UpdateLocationSmb (Prelude.Maybe SmbMountOptions)+updateLocationSmb_mountOptions = Lens.lens (\UpdateLocationSmb' {mountOptions} -> mountOptions) (\s@UpdateLocationSmb' {} a -> s {mountOptions = a} :: UpdateLocationSmb)++-- | The password of the user who can mount the share has the permissions to+-- access files and folders in the SMB share.+updateLocationSmb_password :: Lens.Lens' UpdateLocationSmb (Prelude.Maybe Prelude.Text)+updateLocationSmb_password = Lens.lens (\UpdateLocationSmb' {password} -> password) (\s@UpdateLocationSmb' {} a -> s {password = a} :: UpdateLocationSmb) Prelude.. Lens.mapping Data._Sensitive++-- | The subdirectory in the SMB file system that is used to read data from+-- the SMB source location or write data to the SMB destination. The SMB+-- path should be a path that\'s exported by the SMB server, or a+-- subdirectory of that path. The path should be such that it can be+-- mounted by other SMB clients in your network.+--+-- @Subdirectory@ must be specified with forward slashes. For example,+-- @\/path\/to\/folder@.+--+-- To transfer all the data in the folder that you specified, DataSync must+-- have permissions to mount the SMB share and to access all the data in+-- that share. To ensure this, do either of the following:+--+-- -   Ensure that the user\/password specified belongs to the user who can+--     mount the share and who has the appropriate permissions for all of+--     the files and directories that you want DataSync to access.+--+-- -   Use credentials of a member of the Backup Operators group to mount+--     the share.+--+-- Doing either of these options enables the agent to access the data. For+-- the agent to access directories, you must also enable all execute+-- access.+updateLocationSmb_subdirectory :: Lens.Lens' UpdateLocationSmb (Prelude.Maybe Prelude.Text)+updateLocationSmb_subdirectory = Lens.lens (\UpdateLocationSmb' {subdirectory} -> subdirectory) (\s@UpdateLocationSmb' {} a -> s {subdirectory = a} :: UpdateLocationSmb)++-- | The user who can mount the share has the permissions to access files and+-- folders in the SMB share.+updateLocationSmb_user :: Lens.Lens' UpdateLocationSmb (Prelude.Maybe Prelude.Text)+updateLocationSmb_user = Lens.lens (\UpdateLocationSmb' {user} -> user) (\s@UpdateLocationSmb' {} a -> s {user = a} :: UpdateLocationSmb)++-- | The Amazon Resource Name (ARN) of the SMB location to update.+updateLocationSmb_locationArn :: Lens.Lens' UpdateLocationSmb Prelude.Text+updateLocationSmb_locationArn = Lens.lens (\UpdateLocationSmb' {locationArn} -> locationArn) (\s@UpdateLocationSmb' {} a -> s {locationArn = a} :: UpdateLocationSmb)++instance Core.AWSRequest UpdateLocationSmb where+  type+    AWSResponse UpdateLocationSmb =+      UpdateLocationSmbResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateLocationSmbResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateLocationSmb where+  hashWithSalt _salt UpdateLocationSmb' {..} =+    _salt+      `Prelude.hashWithSalt` agentArns+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` mountOptions+      `Prelude.hashWithSalt` password+      `Prelude.hashWithSalt` subdirectory+      `Prelude.hashWithSalt` user+      `Prelude.hashWithSalt` locationArn++instance Prelude.NFData UpdateLocationSmb where+  rnf UpdateLocationSmb' {..} =+    Prelude.rnf agentArns+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf mountOptions+      `Prelude.seq` Prelude.rnf password+      `Prelude.seq` Prelude.rnf subdirectory+      `Prelude.seq` Prelude.rnf user+      `Prelude.seq` Prelude.rnf locationArn++instance Data.ToHeaders UpdateLocationSmb where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.UpdateLocationSmb" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateLocationSmb where+  toJSON UpdateLocationSmb' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AgentArns" Data..=) Prelude.<$> agentArns,+            ("Domain" Data..=) Prelude.<$> domain,+            ("MountOptions" Data..=) Prelude.<$> mountOptions,+            ("Password" Data..=) Prelude.<$> password,+            ("Subdirectory" Data..=) Prelude.<$> subdirectory,+            ("User" Data..=) Prelude.<$> user,+            Prelude.Just ("LocationArn" Data..= locationArn)+          ]+      )++instance Data.ToPath UpdateLocationSmb where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateLocationSmb where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLocationSmbResponse' smart constructor.+data UpdateLocationSmbResponse = UpdateLocationSmbResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLocationSmbResponse' 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', 'updateLocationSmbResponse_httpStatus' - The response's http status code.+newUpdateLocationSmbResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateLocationSmbResponse+newUpdateLocationSmbResponse pHttpStatus_ =+  UpdateLocationSmbResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateLocationSmbResponse_httpStatus :: Lens.Lens' UpdateLocationSmbResponse Prelude.Int+updateLocationSmbResponse_httpStatus = Lens.lens (\UpdateLocationSmbResponse' {httpStatus} -> httpStatus) (\s@UpdateLocationSmbResponse' {} a -> s {httpStatus = a} :: UpdateLocationSmbResponse)++instance Prelude.NFData UpdateLocationSmbResponse where+  rnf UpdateLocationSmbResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/UpdateTask.hs view
@@ -0,0 +1,267 @@+{-# 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.DataSync.UpdateTask+-- 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 metadata associated with a task.+module Amazonka.DataSync.UpdateTask+  ( -- * Creating a Request+    UpdateTask (..),+    newUpdateTask,++    -- * Request Lenses+    updateTask_cloudWatchLogGroupArn,+    updateTask_excludes,+    updateTask_includes,+    updateTask_name,+    updateTask_options,+    updateTask_schedule,+    updateTask_taskArn,++    -- * Destructuring the Response+    UpdateTaskResponse (..),+    newUpdateTaskResponse,++    -- * Response Lenses+    updateTaskResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | UpdateTaskResponse+--+-- /See:/ 'newUpdateTask' smart constructor.+data UpdateTask = UpdateTask'+  { -- | The Amazon Resource Name (ARN) of the resource name of the Amazon+    -- CloudWatch log group.+    cloudWatchLogGroupArn :: Prelude.Maybe Prelude.Text,+    -- | Specifies a list of filter rules that exclude specific data during your+    -- transfer. For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    excludes :: Prelude.Maybe [FilterRule],+    -- | Specifies a list of filter rules that include specific data during your+    -- transfer. For more information and examples, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+    includes :: Prelude.Maybe [FilterRule],+    -- | The name of the task to update.+    name :: Prelude.Maybe Prelude.Text,+    options :: Prelude.Maybe Options,+    -- | Specifies a schedule used to periodically transfer files from a source+    -- to a destination location. You can configure your task to execute+    -- hourly, daily, weekly or on specific days of the week. You control when+    -- in the day or hour you want the task to execute. The time you specify is+    -- UTC time. For more information, see+    -- <https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html Scheduling your task>.+    schedule :: Prelude.Maybe TaskSchedule,+    -- | The Amazon Resource Name (ARN) of the resource name of the task to+    -- update.+    taskArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTask' 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:+--+-- 'cloudWatchLogGroupArn', 'updateTask_cloudWatchLogGroupArn' - The Amazon Resource Name (ARN) of the resource name of the Amazon+-- CloudWatch log group.+--+-- 'excludes', 'updateTask_excludes' - Specifies a list of filter rules that exclude specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'includes', 'updateTask_includes' - Specifies a list of filter rules that include specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+--+-- 'name', 'updateTask_name' - The name of the task to update.+--+-- 'options', 'updateTask_options' - Undocumented member.+--+-- 'schedule', 'updateTask_schedule' - Specifies a schedule used to periodically transfer files from a source+-- to a destination location. You can configure your task to execute+-- hourly, daily, weekly or on specific days of the week. You control when+-- in the day or hour you want the task to execute. The time you specify is+-- UTC time. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html Scheduling your task>.+--+-- 'taskArn', 'updateTask_taskArn' - The Amazon Resource Name (ARN) of the resource name of the task to+-- update.+newUpdateTask ::+  -- | 'taskArn'+  Prelude.Text ->+  UpdateTask+newUpdateTask pTaskArn_ =+  UpdateTask'+    { cloudWatchLogGroupArn =+        Prelude.Nothing,+      excludes = Prelude.Nothing,+      includes = Prelude.Nothing,+      name = Prelude.Nothing,+      options = Prelude.Nothing,+      schedule = Prelude.Nothing,+      taskArn = pTaskArn_+    }++-- | The Amazon Resource Name (ARN) of the resource name of the Amazon+-- CloudWatch log group.+updateTask_cloudWatchLogGroupArn :: Lens.Lens' UpdateTask (Prelude.Maybe Prelude.Text)+updateTask_cloudWatchLogGroupArn = Lens.lens (\UpdateTask' {cloudWatchLogGroupArn} -> cloudWatchLogGroupArn) (\s@UpdateTask' {} a -> s {cloudWatchLogGroupArn = a} :: UpdateTask)++-- | Specifies a list of filter rules that exclude specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+updateTask_excludes :: Lens.Lens' UpdateTask (Prelude.Maybe [FilterRule])+updateTask_excludes = Lens.lens (\UpdateTask' {excludes} -> excludes) (\s@UpdateTask' {} a -> s {excludes = a} :: UpdateTask) Prelude.. Lens.mapping Lens.coerced++-- | Specifies a list of filter rules that include specific data during your+-- transfer. For more information and examples, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html Filtering data transferred by DataSync>.+updateTask_includes :: Lens.Lens' UpdateTask (Prelude.Maybe [FilterRule])+updateTask_includes = Lens.lens (\UpdateTask' {includes} -> includes) (\s@UpdateTask' {} a -> s {includes = a} :: UpdateTask) Prelude.. Lens.mapping Lens.coerced++-- | The name of the task to update.+updateTask_name :: Lens.Lens' UpdateTask (Prelude.Maybe Prelude.Text)+updateTask_name = Lens.lens (\UpdateTask' {name} -> name) (\s@UpdateTask' {} a -> s {name = a} :: UpdateTask)++-- | Undocumented member.+updateTask_options :: Lens.Lens' UpdateTask (Prelude.Maybe Options)+updateTask_options = Lens.lens (\UpdateTask' {options} -> options) (\s@UpdateTask' {} a -> s {options = a} :: UpdateTask)++-- | Specifies a schedule used to periodically transfer files from a source+-- to a destination location. You can configure your task to execute+-- hourly, daily, weekly or on specific days of the week. You control when+-- in the day or hour you want the task to execute. The time you specify is+-- UTC time. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html Scheduling your task>.+updateTask_schedule :: Lens.Lens' UpdateTask (Prelude.Maybe TaskSchedule)+updateTask_schedule = Lens.lens (\UpdateTask' {schedule} -> schedule) (\s@UpdateTask' {} a -> s {schedule = a} :: UpdateTask)++-- | The Amazon Resource Name (ARN) of the resource name of the task to+-- update.+updateTask_taskArn :: Lens.Lens' UpdateTask Prelude.Text+updateTask_taskArn = Lens.lens (\UpdateTask' {taskArn} -> taskArn) (\s@UpdateTask' {} a -> s {taskArn = a} :: UpdateTask)++instance Core.AWSRequest UpdateTask where+  type AWSResponse UpdateTask = UpdateTaskResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateTaskResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateTask where+  hashWithSalt _salt UpdateTask' {..} =+    _salt+      `Prelude.hashWithSalt` cloudWatchLogGroupArn+      `Prelude.hashWithSalt` excludes+      `Prelude.hashWithSalt` includes+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` options+      `Prelude.hashWithSalt` schedule+      `Prelude.hashWithSalt` taskArn++instance Prelude.NFData UpdateTask where+  rnf UpdateTask' {..} =+    Prelude.rnf cloudWatchLogGroupArn+      `Prelude.seq` Prelude.rnf excludes+      `Prelude.seq` Prelude.rnf includes+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf options+      `Prelude.seq` Prelude.rnf schedule+      `Prelude.seq` Prelude.rnf taskArn++instance Data.ToHeaders UpdateTask where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ("FmrsService.UpdateTask" :: Prelude.ByteString),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateTask where+  toJSON UpdateTask' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CloudWatchLogGroupArn" Data..=)+              Prelude.<$> cloudWatchLogGroupArn,+            ("Excludes" Data..=) Prelude.<$> excludes,+            ("Includes" Data..=) Prelude.<$> includes,+            ("Name" Data..=) Prelude.<$> name,+            ("Options" Data..=) Prelude.<$> options,+            ("Schedule" Data..=) Prelude.<$> schedule,+            Prelude.Just ("TaskArn" Data..= taskArn)+          ]+      )++instance Data.ToPath UpdateTask where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateTask where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateTaskResponse' smart constructor.+data UpdateTaskResponse = UpdateTaskResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTaskResponse' 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', 'updateTaskResponse_httpStatus' - The response's http status code.+newUpdateTaskResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateTaskResponse+newUpdateTaskResponse pHttpStatus_ =+  UpdateTaskResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateTaskResponse_httpStatus :: Lens.Lens' UpdateTaskResponse Prelude.Int+updateTaskResponse_httpStatus = Lens.lens (\UpdateTaskResponse' {httpStatus} -> httpStatus) (\s@UpdateTaskResponse' {} a -> s {httpStatus = a} :: UpdateTaskResponse)++instance Prelude.NFData UpdateTaskResponse where+  rnf UpdateTaskResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/UpdateTaskExecution.hs view
@@ -0,0 +1,187 @@+{-# 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.DataSync.UpdateTaskExecution+-- 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 execution of a task.+--+-- You can modify bandwidth throttling for a task execution that is running+-- or queued. For more information, see+-- <https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html#adjust-bandwidth-throttling Adjusting Bandwidth Throttling for a Task Execution>.+--+-- The only @Option@ that can be modified by @UpdateTaskExecution@ is+-- @ @<https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-BytesPerSecond BytesPerSecond>@ @.+module Amazonka.DataSync.UpdateTaskExecution+  ( -- * Creating a Request+    UpdateTaskExecution (..),+    newUpdateTaskExecution,++    -- * Request Lenses+    updateTaskExecution_taskExecutionArn,+    updateTaskExecution_options,++    -- * Destructuring the Response+    UpdateTaskExecutionResponse (..),+    newUpdateTaskExecutionResponse,++    -- * Response Lenses+    updateTaskExecutionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateTaskExecution' smart constructor.+data UpdateTaskExecution = UpdateTaskExecution'+  { -- | The Amazon Resource Name (ARN) of the specific task execution that is+    -- being updated.+    taskExecutionArn :: Prelude.Text,+    options :: Options+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTaskExecution' 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:+--+-- 'taskExecutionArn', 'updateTaskExecution_taskExecutionArn' - The Amazon Resource Name (ARN) of the specific task execution that is+-- being updated.+--+-- 'options', 'updateTaskExecution_options' - Undocumented member.+newUpdateTaskExecution ::+  -- | 'taskExecutionArn'+  Prelude.Text ->+  -- | 'options'+  Options ->+  UpdateTaskExecution+newUpdateTaskExecution pTaskExecutionArn_ pOptions_ =+  UpdateTaskExecution'+    { taskExecutionArn =+        pTaskExecutionArn_,+      options = pOptions_+    }++-- | The Amazon Resource Name (ARN) of the specific task execution that is+-- being updated.+updateTaskExecution_taskExecutionArn :: Lens.Lens' UpdateTaskExecution Prelude.Text+updateTaskExecution_taskExecutionArn = Lens.lens (\UpdateTaskExecution' {taskExecutionArn} -> taskExecutionArn) (\s@UpdateTaskExecution' {} a -> s {taskExecutionArn = a} :: UpdateTaskExecution)++-- | Undocumented member.+updateTaskExecution_options :: Lens.Lens' UpdateTaskExecution Options+updateTaskExecution_options = Lens.lens (\UpdateTaskExecution' {options} -> options) (\s@UpdateTaskExecution' {} a -> s {options = a} :: UpdateTaskExecution)++instance Core.AWSRequest UpdateTaskExecution where+  type+    AWSResponse UpdateTaskExecution =+      UpdateTaskExecutionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateTaskExecutionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateTaskExecution where+  hashWithSalt _salt UpdateTaskExecution' {..} =+    _salt+      `Prelude.hashWithSalt` taskExecutionArn+      `Prelude.hashWithSalt` options++instance Prelude.NFData UpdateTaskExecution where+  rnf UpdateTaskExecution' {..} =+    Prelude.rnf taskExecutionArn+      `Prelude.seq` Prelude.rnf options++instance Data.ToHeaders UpdateTaskExecution where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "FmrsService.UpdateTaskExecution" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateTaskExecution where+  toJSON UpdateTaskExecution' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("TaskExecutionArn" Data..= taskExecutionArn),+            Prelude.Just ("Options" Data..= options)+          ]+      )++instance Data.ToPath UpdateTaskExecution where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateTaskExecution where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateTaskExecutionResponse' smart constructor.+data UpdateTaskExecutionResponse = UpdateTaskExecutionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTaskExecutionResponse' 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', 'updateTaskExecutionResponse_httpStatus' - The response's http status code.+newUpdateTaskExecutionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateTaskExecutionResponse+newUpdateTaskExecutionResponse pHttpStatus_ =+  UpdateTaskExecutionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+updateTaskExecutionResponse_httpStatus :: Lens.Lens' UpdateTaskExecutionResponse Prelude.Int+updateTaskExecutionResponse_httpStatus = Lens.lens (\UpdateTaskExecutionResponse' {httpStatus} -> httpStatus) (\s@UpdateTaskExecutionResponse' {} a -> s {httpStatus = a} :: UpdateTaskExecutionResponse)++instance Prelude.NFData UpdateTaskExecutionResponse where+  rnf UpdateTaskExecutionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/DataSync/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.DataSync.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.DataSync.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.DataSync.Lens+import Amazonka.DataSync.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.DataSync+import Test.Amazonka.DataSync.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "DataSync"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/DataSync.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.DataSync+-- 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.DataSync+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/DataSync/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.DataSync.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.DataSync.Internal where
+ test/Test/Amazonka/Gen/DataSync.hs view
@@ -0,0 +1,918 @@+{-# 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.DataSync+-- 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.DataSync where++import Amazonka.DataSync+import qualified Data.Proxy as Proxy+import Test.Amazonka.DataSync.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"+--         [ requestCancelTaskExecution $+--             newCancelTaskExecution+--+--         , requestCreateAgent $+--             newCreateAgent+--+--         , requestCreateLocationEfs $+--             newCreateLocationEfs+--+--         , requestCreateLocationFsxLustre $+--             newCreateLocationFsxLustre+--+--         , requestCreateLocationFsxOntap $+--             newCreateLocationFsxOntap+--+--         , requestCreateLocationFsxOpenZfs $+--             newCreateLocationFsxOpenZfs+--+--         , requestCreateLocationFsxWindows $+--             newCreateLocationFsxWindows+--+--         , requestCreateLocationHdfs $+--             newCreateLocationHdfs+--+--         , requestCreateLocationNfs $+--             newCreateLocationNfs+--+--         , requestCreateLocationObjectStorage $+--             newCreateLocationObjectStorage+--+--         , requestCreateLocationS3 $+--             newCreateLocationS3+--+--         , requestCreateLocationSmb $+--             newCreateLocationSmb+--+--         , requestCreateTask $+--             newCreateTask+--+--         , requestDeleteAgent $+--             newDeleteAgent+--+--         , requestDeleteLocation $+--             newDeleteLocation+--+--         , requestDeleteTask $+--             newDeleteTask+--+--         , requestDescribeAgent $+--             newDescribeAgent+--+--         , requestDescribeLocationEfs $+--             newDescribeLocationEfs+--+--         , requestDescribeLocationFsxLustre $+--             newDescribeLocationFsxLustre+--+--         , requestDescribeLocationFsxOntap $+--             newDescribeLocationFsxOntap+--+--         , requestDescribeLocationFsxOpenZfs $+--             newDescribeLocationFsxOpenZfs+--+--         , requestDescribeLocationFsxWindows $+--             newDescribeLocationFsxWindows+--+--         , requestDescribeLocationHdfs $+--             newDescribeLocationHdfs+--+--         , requestDescribeLocationNfs $+--             newDescribeLocationNfs+--+--         , requestDescribeLocationObjectStorage $+--             newDescribeLocationObjectStorage+--+--         , requestDescribeLocationS3 $+--             newDescribeLocationS3+--+--         , requestDescribeLocationSmb $+--             newDescribeLocationSmb+--+--         , requestDescribeTask $+--             newDescribeTask+--+--         , requestDescribeTaskExecution $+--             newDescribeTaskExecution+--+--         , requestListAgents $+--             newListAgents+--+--         , requestListLocations $+--             newListLocations+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListTaskExecutions $+--             newListTaskExecutions+--+--         , requestListTasks $+--             newListTasks+--+--         , requestStartTaskExecution $+--             newStartTaskExecution+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAgent $+--             newUpdateAgent+--+--         , requestUpdateLocationHdfs $+--             newUpdateLocationHdfs+--+--         , requestUpdateLocationNfs $+--             newUpdateLocationNfs+--+--         , requestUpdateLocationObjectStorage $+--             newUpdateLocationObjectStorage+--+--         , requestUpdateLocationSmb $+--             newUpdateLocationSmb+--+--         , requestUpdateTask $+--             newUpdateTask+--+--         , requestUpdateTaskExecution $+--             newUpdateTaskExecution+--+--           ]++--     , testGroup "response"+--         [ responseCancelTaskExecution $+--             newCancelTaskExecutionResponse+--+--         , responseCreateAgent $+--             newCreateAgentResponse+--+--         , responseCreateLocationEfs $+--             newCreateLocationEfsResponse+--+--         , responseCreateLocationFsxLustre $+--             newCreateLocationFsxLustreResponse+--+--         , responseCreateLocationFsxOntap $+--             newCreateLocationFsxOntapResponse+--+--         , responseCreateLocationFsxOpenZfs $+--             newCreateLocationFsxOpenZfsResponse+--+--         , responseCreateLocationFsxWindows $+--             newCreateLocationFsxWindowsResponse+--+--         , responseCreateLocationHdfs $+--             newCreateLocationHdfsResponse+--+--         , responseCreateLocationNfs $+--             newCreateLocationNfsResponse+--+--         , responseCreateLocationObjectStorage $+--             newCreateLocationObjectStorageResponse+--+--         , responseCreateLocationS3 $+--             newCreateLocationS3Response+--+--         , responseCreateLocationSmb $+--             newCreateLocationSmbResponse+--+--         , responseCreateTask $+--             newCreateTaskResponse+--+--         , responseDeleteAgent $+--             newDeleteAgentResponse+--+--         , responseDeleteLocation $+--             newDeleteLocationResponse+--+--         , responseDeleteTask $+--             newDeleteTaskResponse+--+--         , responseDescribeAgent $+--             newDescribeAgentResponse+--+--         , responseDescribeLocationEfs $+--             newDescribeLocationEfsResponse+--+--         , responseDescribeLocationFsxLustre $+--             newDescribeLocationFsxLustreResponse+--+--         , responseDescribeLocationFsxOntap $+--             newDescribeLocationFsxOntapResponse+--+--         , responseDescribeLocationFsxOpenZfs $+--             newDescribeLocationFsxOpenZfsResponse+--+--         , responseDescribeLocationFsxWindows $+--             newDescribeLocationFsxWindowsResponse+--+--         , responseDescribeLocationHdfs $+--             newDescribeLocationHdfsResponse+--+--         , responseDescribeLocationNfs $+--             newDescribeLocationNfsResponse+--+--         , responseDescribeLocationObjectStorage $+--             newDescribeLocationObjectStorageResponse+--+--         , responseDescribeLocationS3 $+--             newDescribeLocationS3Response+--+--         , responseDescribeLocationSmb $+--             newDescribeLocationSmbResponse+--+--         , responseDescribeTask $+--             newDescribeTaskResponse+--+--         , responseDescribeTaskExecution $+--             newDescribeTaskExecutionResponse+--+--         , responseListAgents $+--             newListAgentsResponse+--+--         , responseListLocations $+--             newListLocationsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListTaskExecutions $+--             newListTaskExecutionsResponse+--+--         , responseListTasks $+--             newListTasksResponse+--+--         , responseStartTaskExecution $+--             newStartTaskExecutionResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAgent $+--             newUpdateAgentResponse+--+--         , responseUpdateLocationHdfs $+--             newUpdateLocationHdfsResponse+--+--         , responseUpdateLocationNfs $+--             newUpdateLocationNfsResponse+--+--         , responseUpdateLocationObjectStorage $+--             newUpdateLocationObjectStorageResponse+--+--         , responseUpdateLocationSmb $+--             newUpdateLocationSmbResponse+--+--         , responseUpdateTask $+--             newUpdateTaskResponse+--+--         , responseUpdateTaskExecution $+--             newUpdateTaskExecutionResponse+--+--           ]+--     ]++-- Requests++requestCancelTaskExecution :: CancelTaskExecution -> TestTree+requestCancelTaskExecution =+  req+    "CancelTaskExecution"+    "fixture/CancelTaskExecution.yaml"++requestCreateAgent :: CreateAgent -> TestTree+requestCreateAgent =+  req+    "CreateAgent"+    "fixture/CreateAgent.yaml"++requestCreateLocationEfs :: CreateLocationEfs -> TestTree+requestCreateLocationEfs =+  req+    "CreateLocationEfs"+    "fixture/CreateLocationEfs.yaml"++requestCreateLocationFsxLustre :: CreateLocationFsxLustre -> TestTree+requestCreateLocationFsxLustre =+  req+    "CreateLocationFsxLustre"+    "fixture/CreateLocationFsxLustre.yaml"++requestCreateLocationFsxOntap :: CreateLocationFsxOntap -> TestTree+requestCreateLocationFsxOntap =+  req+    "CreateLocationFsxOntap"+    "fixture/CreateLocationFsxOntap.yaml"++requestCreateLocationFsxOpenZfs :: CreateLocationFsxOpenZfs -> TestTree+requestCreateLocationFsxOpenZfs =+  req+    "CreateLocationFsxOpenZfs"+    "fixture/CreateLocationFsxOpenZfs.yaml"++requestCreateLocationFsxWindows :: CreateLocationFsxWindows -> TestTree+requestCreateLocationFsxWindows =+  req+    "CreateLocationFsxWindows"+    "fixture/CreateLocationFsxWindows.yaml"++requestCreateLocationHdfs :: CreateLocationHdfs -> TestTree+requestCreateLocationHdfs =+  req+    "CreateLocationHdfs"+    "fixture/CreateLocationHdfs.yaml"++requestCreateLocationNfs :: CreateLocationNfs -> TestTree+requestCreateLocationNfs =+  req+    "CreateLocationNfs"+    "fixture/CreateLocationNfs.yaml"++requestCreateLocationObjectStorage :: CreateLocationObjectStorage -> TestTree+requestCreateLocationObjectStorage =+  req+    "CreateLocationObjectStorage"+    "fixture/CreateLocationObjectStorage.yaml"++requestCreateLocationS3 :: CreateLocationS3 -> TestTree+requestCreateLocationS3 =+  req+    "CreateLocationS3"+    "fixture/CreateLocationS3.yaml"++requestCreateLocationSmb :: CreateLocationSmb -> TestTree+requestCreateLocationSmb =+  req+    "CreateLocationSmb"+    "fixture/CreateLocationSmb.yaml"++requestCreateTask :: CreateTask -> TestTree+requestCreateTask =+  req+    "CreateTask"+    "fixture/CreateTask.yaml"++requestDeleteAgent :: DeleteAgent -> TestTree+requestDeleteAgent =+  req+    "DeleteAgent"+    "fixture/DeleteAgent.yaml"++requestDeleteLocation :: DeleteLocation -> TestTree+requestDeleteLocation =+  req+    "DeleteLocation"+    "fixture/DeleteLocation.yaml"++requestDeleteTask :: DeleteTask -> TestTree+requestDeleteTask =+  req+    "DeleteTask"+    "fixture/DeleteTask.yaml"++requestDescribeAgent :: DescribeAgent -> TestTree+requestDescribeAgent =+  req+    "DescribeAgent"+    "fixture/DescribeAgent.yaml"++requestDescribeLocationEfs :: DescribeLocationEfs -> TestTree+requestDescribeLocationEfs =+  req+    "DescribeLocationEfs"+    "fixture/DescribeLocationEfs.yaml"++requestDescribeLocationFsxLustre :: DescribeLocationFsxLustre -> TestTree+requestDescribeLocationFsxLustre =+  req+    "DescribeLocationFsxLustre"+    "fixture/DescribeLocationFsxLustre.yaml"++requestDescribeLocationFsxOntap :: DescribeLocationFsxOntap -> TestTree+requestDescribeLocationFsxOntap =+  req+    "DescribeLocationFsxOntap"+    "fixture/DescribeLocationFsxOntap.yaml"++requestDescribeLocationFsxOpenZfs :: DescribeLocationFsxOpenZfs -> TestTree+requestDescribeLocationFsxOpenZfs =+  req+    "DescribeLocationFsxOpenZfs"+    "fixture/DescribeLocationFsxOpenZfs.yaml"++requestDescribeLocationFsxWindows :: DescribeLocationFsxWindows -> TestTree+requestDescribeLocationFsxWindows =+  req+    "DescribeLocationFsxWindows"+    "fixture/DescribeLocationFsxWindows.yaml"++requestDescribeLocationHdfs :: DescribeLocationHdfs -> TestTree+requestDescribeLocationHdfs =+  req+    "DescribeLocationHdfs"+    "fixture/DescribeLocationHdfs.yaml"++requestDescribeLocationNfs :: DescribeLocationNfs -> TestTree+requestDescribeLocationNfs =+  req+    "DescribeLocationNfs"+    "fixture/DescribeLocationNfs.yaml"++requestDescribeLocationObjectStorage :: DescribeLocationObjectStorage -> TestTree+requestDescribeLocationObjectStorage =+  req+    "DescribeLocationObjectStorage"+    "fixture/DescribeLocationObjectStorage.yaml"++requestDescribeLocationS3 :: DescribeLocationS3 -> TestTree+requestDescribeLocationS3 =+  req+    "DescribeLocationS3"+    "fixture/DescribeLocationS3.yaml"++requestDescribeLocationSmb :: DescribeLocationSmb -> TestTree+requestDescribeLocationSmb =+  req+    "DescribeLocationSmb"+    "fixture/DescribeLocationSmb.yaml"++requestDescribeTask :: DescribeTask -> TestTree+requestDescribeTask =+  req+    "DescribeTask"+    "fixture/DescribeTask.yaml"++requestDescribeTaskExecution :: DescribeTaskExecution -> TestTree+requestDescribeTaskExecution =+  req+    "DescribeTaskExecution"+    "fixture/DescribeTaskExecution.yaml"++requestListAgents :: ListAgents -> TestTree+requestListAgents =+  req+    "ListAgents"+    "fixture/ListAgents.yaml"++requestListLocations :: ListLocations -> TestTree+requestListLocations =+  req+    "ListLocations"+    "fixture/ListLocations.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListTaskExecutions :: ListTaskExecutions -> TestTree+requestListTaskExecutions =+  req+    "ListTaskExecutions"+    "fixture/ListTaskExecutions.yaml"++requestListTasks :: ListTasks -> TestTree+requestListTasks =+  req+    "ListTasks"+    "fixture/ListTasks.yaml"++requestStartTaskExecution :: StartTaskExecution -> TestTree+requestStartTaskExecution =+  req+    "StartTaskExecution"+    "fixture/StartTaskExecution.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAgent :: UpdateAgent -> TestTree+requestUpdateAgent =+  req+    "UpdateAgent"+    "fixture/UpdateAgent.yaml"++requestUpdateLocationHdfs :: UpdateLocationHdfs -> TestTree+requestUpdateLocationHdfs =+  req+    "UpdateLocationHdfs"+    "fixture/UpdateLocationHdfs.yaml"++requestUpdateLocationNfs :: UpdateLocationNfs -> TestTree+requestUpdateLocationNfs =+  req+    "UpdateLocationNfs"+    "fixture/UpdateLocationNfs.yaml"++requestUpdateLocationObjectStorage :: UpdateLocationObjectStorage -> TestTree+requestUpdateLocationObjectStorage =+  req+    "UpdateLocationObjectStorage"+    "fixture/UpdateLocationObjectStorage.yaml"++requestUpdateLocationSmb :: UpdateLocationSmb -> TestTree+requestUpdateLocationSmb =+  req+    "UpdateLocationSmb"+    "fixture/UpdateLocationSmb.yaml"++requestUpdateTask :: UpdateTask -> TestTree+requestUpdateTask =+  req+    "UpdateTask"+    "fixture/UpdateTask.yaml"++requestUpdateTaskExecution :: UpdateTaskExecution -> TestTree+requestUpdateTaskExecution =+  req+    "UpdateTaskExecution"+    "fixture/UpdateTaskExecution.yaml"++-- Responses++responseCancelTaskExecution :: CancelTaskExecutionResponse -> TestTree+responseCancelTaskExecution =+  res+    "CancelTaskExecutionResponse"+    "fixture/CancelTaskExecutionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelTaskExecution)++responseCreateAgent :: CreateAgentResponse -> TestTree+responseCreateAgent =+  res+    "CreateAgentResponse"+    "fixture/CreateAgentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAgent)++responseCreateLocationEfs :: CreateLocationEfsResponse -> TestTree+responseCreateLocationEfs =+  res+    "CreateLocationEfsResponse"+    "fixture/CreateLocationEfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationEfs)++responseCreateLocationFsxLustre :: CreateLocationFsxLustreResponse -> TestTree+responseCreateLocationFsxLustre =+  res+    "CreateLocationFsxLustreResponse"+    "fixture/CreateLocationFsxLustreResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationFsxLustre)++responseCreateLocationFsxOntap :: CreateLocationFsxOntapResponse -> TestTree+responseCreateLocationFsxOntap =+  res+    "CreateLocationFsxOntapResponse"+    "fixture/CreateLocationFsxOntapResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationFsxOntap)++responseCreateLocationFsxOpenZfs :: CreateLocationFsxOpenZfsResponse -> TestTree+responseCreateLocationFsxOpenZfs =+  res+    "CreateLocationFsxOpenZfsResponse"+    "fixture/CreateLocationFsxOpenZfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationFsxOpenZfs)++responseCreateLocationFsxWindows :: CreateLocationFsxWindowsResponse -> TestTree+responseCreateLocationFsxWindows =+  res+    "CreateLocationFsxWindowsResponse"+    "fixture/CreateLocationFsxWindowsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationFsxWindows)++responseCreateLocationHdfs :: CreateLocationHdfsResponse -> TestTree+responseCreateLocationHdfs =+  res+    "CreateLocationHdfsResponse"+    "fixture/CreateLocationHdfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationHdfs)++responseCreateLocationNfs :: CreateLocationNfsResponse -> TestTree+responseCreateLocationNfs =+  res+    "CreateLocationNfsResponse"+    "fixture/CreateLocationNfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationNfs)++responseCreateLocationObjectStorage :: CreateLocationObjectStorageResponse -> TestTree+responseCreateLocationObjectStorage =+  res+    "CreateLocationObjectStorageResponse"+    "fixture/CreateLocationObjectStorageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationObjectStorage)++responseCreateLocationS3 :: CreateLocationS3Response -> TestTree+responseCreateLocationS3 =+  res+    "CreateLocationS3Response"+    "fixture/CreateLocationS3Response.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationS3)++responseCreateLocationSmb :: CreateLocationSmbResponse -> TestTree+responseCreateLocationSmb =+  res+    "CreateLocationSmbResponse"+    "fixture/CreateLocationSmbResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLocationSmb)++responseCreateTask :: CreateTaskResponse -> TestTree+responseCreateTask =+  res+    "CreateTaskResponse"+    "fixture/CreateTaskResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateTask)++responseDeleteAgent :: DeleteAgentResponse -> TestTree+responseDeleteAgent =+  res+    "DeleteAgentResponse"+    "fixture/DeleteAgentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAgent)++responseDeleteLocation :: DeleteLocationResponse -> TestTree+responseDeleteLocation =+  res+    "DeleteLocationResponse"+    "fixture/DeleteLocationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteLocation)++responseDeleteTask :: DeleteTaskResponse -> TestTree+responseDeleteTask =+  res+    "DeleteTaskResponse"+    "fixture/DeleteTaskResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteTask)++responseDescribeAgent :: DescribeAgentResponse -> TestTree+responseDescribeAgent =+  res+    "DescribeAgentResponse"+    "fixture/DescribeAgentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAgent)++responseDescribeLocationEfs :: DescribeLocationEfsResponse -> TestTree+responseDescribeLocationEfs =+  res+    "DescribeLocationEfsResponse"+    "fixture/DescribeLocationEfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationEfs)++responseDescribeLocationFsxLustre :: DescribeLocationFsxLustreResponse -> TestTree+responseDescribeLocationFsxLustre =+  res+    "DescribeLocationFsxLustreResponse"+    "fixture/DescribeLocationFsxLustreResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationFsxLustre)++responseDescribeLocationFsxOntap :: DescribeLocationFsxOntapResponse -> TestTree+responseDescribeLocationFsxOntap =+  res+    "DescribeLocationFsxOntapResponse"+    "fixture/DescribeLocationFsxOntapResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationFsxOntap)++responseDescribeLocationFsxOpenZfs :: DescribeLocationFsxOpenZfsResponse -> TestTree+responseDescribeLocationFsxOpenZfs =+  res+    "DescribeLocationFsxOpenZfsResponse"+    "fixture/DescribeLocationFsxOpenZfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationFsxOpenZfs)++responseDescribeLocationFsxWindows :: DescribeLocationFsxWindowsResponse -> TestTree+responseDescribeLocationFsxWindows =+  res+    "DescribeLocationFsxWindowsResponse"+    "fixture/DescribeLocationFsxWindowsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationFsxWindows)++responseDescribeLocationHdfs :: DescribeLocationHdfsResponse -> TestTree+responseDescribeLocationHdfs =+  res+    "DescribeLocationHdfsResponse"+    "fixture/DescribeLocationHdfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationHdfs)++responseDescribeLocationNfs :: DescribeLocationNfsResponse -> TestTree+responseDescribeLocationNfs =+  res+    "DescribeLocationNfsResponse"+    "fixture/DescribeLocationNfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationNfs)++responseDescribeLocationObjectStorage :: DescribeLocationObjectStorageResponse -> TestTree+responseDescribeLocationObjectStorage =+  res+    "DescribeLocationObjectStorageResponse"+    "fixture/DescribeLocationObjectStorageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationObjectStorage)++responseDescribeLocationS3 :: DescribeLocationS3Response -> TestTree+responseDescribeLocationS3 =+  res+    "DescribeLocationS3Response"+    "fixture/DescribeLocationS3Response.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationS3)++responseDescribeLocationSmb :: DescribeLocationSmbResponse -> TestTree+responseDescribeLocationSmb =+  res+    "DescribeLocationSmbResponse"+    "fixture/DescribeLocationSmbResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLocationSmb)++responseDescribeTask :: DescribeTaskResponse -> TestTree+responseDescribeTask =+  res+    "DescribeTaskResponse"+    "fixture/DescribeTaskResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeTask)++responseDescribeTaskExecution :: DescribeTaskExecutionResponse -> TestTree+responseDescribeTaskExecution =+  res+    "DescribeTaskExecutionResponse"+    "fixture/DescribeTaskExecutionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeTaskExecution)++responseListAgents :: ListAgentsResponse -> TestTree+responseListAgents =+  res+    "ListAgentsResponse"+    "fixture/ListAgentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAgents)++responseListLocations :: ListLocationsResponse -> TestTree+responseListLocations =+  res+    "ListLocationsResponse"+    "fixture/ListLocationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListLocations)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListTaskExecutions :: ListTaskExecutionsResponse -> TestTree+responseListTaskExecutions =+  res+    "ListTaskExecutionsResponse"+    "fixture/ListTaskExecutionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTaskExecutions)++responseListTasks :: ListTasksResponse -> TestTree+responseListTasks =+  res+    "ListTasksResponse"+    "fixture/ListTasksResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTasks)++responseStartTaskExecution :: StartTaskExecutionResponse -> TestTree+responseStartTaskExecution =+  res+    "StartTaskExecutionResponse"+    "fixture/StartTaskExecutionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartTaskExecution)++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)++responseUpdateAgent :: UpdateAgentResponse -> TestTree+responseUpdateAgent =+  res+    "UpdateAgentResponse"+    "fixture/UpdateAgentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAgent)++responseUpdateLocationHdfs :: UpdateLocationHdfsResponse -> TestTree+responseUpdateLocationHdfs =+  res+    "UpdateLocationHdfsResponse"+    "fixture/UpdateLocationHdfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLocationHdfs)++responseUpdateLocationNfs :: UpdateLocationNfsResponse -> TestTree+responseUpdateLocationNfs =+  res+    "UpdateLocationNfsResponse"+    "fixture/UpdateLocationNfsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLocationNfs)++responseUpdateLocationObjectStorage :: UpdateLocationObjectStorageResponse -> TestTree+responseUpdateLocationObjectStorage =+  res+    "UpdateLocationObjectStorageResponse"+    "fixture/UpdateLocationObjectStorageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLocationObjectStorage)++responseUpdateLocationSmb :: UpdateLocationSmbResponse -> TestTree+responseUpdateLocationSmb =+  res+    "UpdateLocationSmbResponse"+    "fixture/UpdateLocationSmbResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLocationSmb)++responseUpdateTask :: UpdateTaskResponse -> TestTree+responseUpdateTask =+  res+    "UpdateTaskResponse"+    "fixture/UpdateTaskResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateTask)++responseUpdateTaskExecution :: UpdateTaskExecutionResponse -> TestTree+responseUpdateTaskExecution =+  res+    "UpdateTaskExecutionResponse"+    "fixture/UpdateTaskExecutionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateTaskExecution)