packages feed

amazonka-mgn (empty) → 2.0

raw patch · 258 files changed

+24797/−0 lines, 258 filesdep +amazonka-coredep +amazonka-mgndep +amazonka-test

Dependencies added: amazonka-core, amazonka-mgn, 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 Application Migration Service SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-02-26@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-mgn)+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.MGN](http://hackage.haskell.org/package/amazonka-mgn/docs/Amazonka-MGN.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-mgn` 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-mgn.cabal view
@@ -0,0 +1,219 @@+cabal-version:      2.2+name:               amazonka-mgn+version:            2.0+synopsis:           Amazon Application Migration Service 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 @2020-02-26@ 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.MGN.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.MGN" 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-mgn++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.MGN+    Amazonka.MGN.ArchiveApplication+    Amazonka.MGN.ArchiveWave+    Amazonka.MGN.AssociateApplications+    Amazonka.MGN.AssociateSourceServers+    Amazonka.MGN.ChangeServerLifeCycleState+    Amazonka.MGN.CreateApplication+    Amazonka.MGN.CreateLaunchConfigurationTemplate+    Amazonka.MGN.CreateReplicationConfigurationTemplate+    Amazonka.MGN.CreateWave+    Amazonka.MGN.DeleteApplication+    Amazonka.MGN.DeleteJob+    Amazonka.MGN.DeleteLaunchConfigurationTemplate+    Amazonka.MGN.DeleteReplicationConfigurationTemplate+    Amazonka.MGN.DeleteSourceServer+    Amazonka.MGN.DeleteVcenterClient+    Amazonka.MGN.DeleteWave+    Amazonka.MGN.DescribeJobLogItems+    Amazonka.MGN.DescribeJobs+    Amazonka.MGN.DescribeLaunchConfigurationTemplates+    Amazonka.MGN.DescribeReplicationConfigurationTemplates+    Amazonka.MGN.DescribeSourceServers+    Amazonka.MGN.DescribeVcenterClients+    Amazonka.MGN.DisassociateApplications+    Amazonka.MGN.DisassociateSourceServers+    Amazonka.MGN.DisconnectFromService+    Amazonka.MGN.FinalizeCutover+    Amazonka.MGN.GetLaunchConfiguration+    Amazonka.MGN.GetReplicationConfiguration+    Amazonka.MGN.InitializeService+    Amazonka.MGN.Lens+    Amazonka.MGN.ListApplications+    Amazonka.MGN.ListSourceServerActions+    Amazonka.MGN.ListTagsForResource+    Amazonka.MGN.ListTemplateActions+    Amazonka.MGN.ListWaves+    Amazonka.MGN.MarkAsArchived+    Amazonka.MGN.PutSourceServerAction+    Amazonka.MGN.PutTemplateAction+    Amazonka.MGN.RemoveSourceServerAction+    Amazonka.MGN.RemoveTemplateAction+    Amazonka.MGN.RetryDataReplication+    Amazonka.MGN.StartCutover+    Amazonka.MGN.StartReplication+    Amazonka.MGN.StartTest+    Amazonka.MGN.TagResource+    Amazonka.MGN.TerminateTargetInstances+    Amazonka.MGN.Types+    Amazonka.MGN.Types.Application+    Amazonka.MGN.Types.ApplicationAggregatedStatus+    Amazonka.MGN.Types.ApplicationHealthStatus+    Amazonka.MGN.Types.ApplicationProgressStatus+    Amazonka.MGN.Types.BootMode+    Amazonka.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycle+    Amazonka.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycleState+    Amazonka.MGN.Types.CPU+    Amazonka.MGN.Types.DataReplicationError+    Amazonka.MGN.Types.DataReplicationErrorString+    Amazonka.MGN.Types.DataReplicationInfo+    Amazonka.MGN.Types.DataReplicationInfoReplicatedDisk+    Amazonka.MGN.Types.DataReplicationInitiation+    Amazonka.MGN.Types.DataReplicationInitiationStep+    Amazonka.MGN.Types.DataReplicationInitiationStepName+    Amazonka.MGN.Types.DataReplicationInitiationStepStatus+    Amazonka.MGN.Types.DataReplicationState+    Amazonka.MGN.Types.DescribeJobsRequestFilters+    Amazonka.MGN.Types.DescribeSourceServersRequestFilters+    Amazonka.MGN.Types.Disk+    Amazonka.MGN.Types.FirstBoot+    Amazonka.MGN.Types.IdentificationHints+    Amazonka.MGN.Types.InitiatedBy+    Amazonka.MGN.Types.Job+    Amazonka.MGN.Types.JobLog+    Amazonka.MGN.Types.JobLogEvent+    Amazonka.MGN.Types.JobLogEventData+    Amazonka.MGN.Types.JobPostLaunchActionsLaunchStatus+    Amazonka.MGN.Types.JobStatus+    Amazonka.MGN.Types.JobType+    Amazonka.MGN.Types.LaunchConfiguration+    Amazonka.MGN.Types.LaunchConfigurationTemplate+    Amazonka.MGN.Types.LaunchDisposition+    Amazonka.MGN.Types.LaunchedInstance+    Amazonka.MGN.Types.LaunchStatus+    Amazonka.MGN.Types.LaunchTemplateDiskConf+    Amazonka.MGN.Types.Licensing+    Amazonka.MGN.Types.LifeCycle+    Amazonka.MGN.Types.LifeCycleLastCutover+    Amazonka.MGN.Types.LifeCycleLastCutoverFinalized+    Amazonka.MGN.Types.LifeCycleLastCutoverInitiated+    Amazonka.MGN.Types.LifeCycleLastCutoverReverted+    Amazonka.MGN.Types.LifeCycleLastTest+    Amazonka.MGN.Types.LifeCycleLastTestFinalized+    Amazonka.MGN.Types.LifeCycleLastTestInitiated+    Amazonka.MGN.Types.LifeCycleLastTestReverted+    Amazonka.MGN.Types.LifeCycleState+    Amazonka.MGN.Types.ListApplicationsRequestFilters+    Amazonka.MGN.Types.ListWavesRequestFilters+    Amazonka.MGN.Types.NetworkInterface+    Amazonka.MGN.Types.OS+    Amazonka.MGN.Types.ParticipatingServer+    Amazonka.MGN.Types.PostLaunchActionExecutionStatus+    Amazonka.MGN.Types.PostLaunchActions+    Amazonka.MGN.Types.PostLaunchActionsDeploymentType+    Amazonka.MGN.Types.PostLaunchActionsStatus+    Amazonka.MGN.Types.ReplicationConfiguration+    Amazonka.MGN.Types.ReplicationConfigurationDataPlaneRouting+    Amazonka.MGN.Types.ReplicationConfigurationDefaultLargeStagingDiskType+    Amazonka.MGN.Types.ReplicationConfigurationEbsEncryption+    Amazonka.MGN.Types.ReplicationConfigurationReplicatedDisk+    Amazonka.MGN.Types.ReplicationConfigurationReplicatedDiskStagingDiskType+    Amazonka.MGN.Types.ReplicationConfigurationTemplate+    Amazonka.MGN.Types.ReplicationType+    Amazonka.MGN.Types.SourceProperties+    Amazonka.MGN.Types.SourceServer+    Amazonka.MGN.Types.SourceServerActionDocument+    Amazonka.MGN.Types.SourceServerActionsRequestFilters+    Amazonka.MGN.Types.SsmDocument+    Amazonka.MGN.Types.SsmDocumentType+    Amazonka.MGN.Types.SsmParameterStoreParameter+    Amazonka.MGN.Types.SsmParameterStoreParameterType+    Amazonka.MGN.Types.TargetInstanceTypeRightSizingMethod+    Amazonka.MGN.Types.TemplateActionDocument+    Amazonka.MGN.Types.TemplateActionsRequestFilters+    Amazonka.MGN.Types.VcenterClient+    Amazonka.MGN.Types.VolumeType+    Amazonka.MGN.Types.Wave+    Amazonka.MGN.Types.WaveAggregatedStatus+    Amazonka.MGN.Types.WaveHealthStatus+    Amazonka.MGN.Types.WaveProgressStatus+    Amazonka.MGN.UnarchiveApplication+    Amazonka.MGN.UnarchiveWave+    Amazonka.MGN.UntagResource+    Amazonka.MGN.UpdateApplication+    Amazonka.MGN.UpdateLaunchConfiguration+    Amazonka.MGN.UpdateLaunchConfigurationTemplate+    Amazonka.MGN.UpdateReplicationConfiguration+    Amazonka.MGN.UpdateReplicationConfigurationTemplate+    Amazonka.MGN.UpdateSourceServerReplicationType+    Amazonka.MGN.UpdateWave+    Amazonka.MGN.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-mgn-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.Gen.MGN+    Test.Amazonka.MGN+    Test.Amazonka.MGN.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-mgn+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/ArchiveApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ArchiveApplicationResponse.proto view
+ fixture/ArchiveWave.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ArchiveWaveResponse.proto view
+ fixture/AssociateApplications.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/AssociateApplicationsResponse.proto view
+ fixture/AssociateSourceServers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/AssociateSourceServersResponse.proto view
+ fixture/ChangeServerLifeCycleState.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ChangeServerLifeCycleStateResponse.proto view
+ fixture/CreateApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/CreateApplicationResponse.proto view
+ fixture/CreateLaunchConfigurationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/CreateLaunchConfigurationTemplateResponse.proto view
+ fixture/CreateReplicationConfigurationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/CreateReplicationConfigurationTemplateResponse.proto view
+ fixture/CreateWave.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/CreateWaveResponse.proto view
+ fixture/DeleteApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DeleteApplicationResponse.proto view
+ fixture/DeleteJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DeleteJobResponse.proto view
+ fixture/DeleteLaunchConfigurationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DeleteLaunchConfigurationTemplateResponse.proto view
+ fixture/DeleteReplicationConfigurationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DeleteReplicationConfigurationTemplateResponse.proto view
+ fixture/DeleteSourceServer.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DeleteSourceServerResponse.proto view
+ fixture/DeleteVcenterClient.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DeleteVcenterClientResponse.proto view
+ fixture/DeleteWave.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DeleteWaveResponse.proto view
+ fixture/DescribeJobLogItems.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DescribeJobLogItemsResponse.proto view
+ fixture/DescribeJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DescribeJobsResponse.proto view
+ fixture/DescribeLaunchConfigurationTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DescribeLaunchConfigurationTemplatesResponse.proto view
+ fixture/DescribeReplicationConfigurationTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DescribeReplicationConfigurationTemplatesResponse.proto view
+ fixture/DescribeSourceServers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DescribeSourceServersResponse.proto view
+ fixture/DescribeVcenterClients.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DescribeVcenterClientsResponse.proto view
+ fixture/DisassociateApplications.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DisassociateApplicationsResponse.proto view
+ fixture/DisassociateSourceServers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DisassociateSourceServersResponse.proto view
+ fixture/DisconnectFromService.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/DisconnectFromServiceResponse.proto view
+ fixture/FinalizeCutover.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/FinalizeCutoverResponse.proto view
+ fixture/GetLaunchConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/GetLaunchConfigurationResponse.proto view
+ fixture/GetReplicationConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/GetReplicationConfigurationResponse.proto view
+ fixture/InitializeService.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/InitializeServiceResponse.proto view
+ fixture/ListApplications.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ListApplicationsResponse.proto view
+ fixture/ListSourceServerActions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ListSourceServerActionsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ListTemplateActions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ListTemplateActionsResponse.proto view
+ fixture/ListWaves.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/ListWavesResponse.proto view
+ fixture/MarkAsArchived.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/MarkAsArchivedResponse.proto view
+ fixture/PutSourceServerAction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/PutSourceServerActionResponse.proto view
+ fixture/PutTemplateAction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/PutTemplateActionResponse.proto view
+ fixture/RemoveSourceServerAction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/RemoveSourceServerActionResponse.proto view
+ fixture/RemoveTemplateAction.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/RemoveTemplateActionResponse.proto view
+ fixture/RetryDataReplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/RetryDataReplicationResponse.proto view
+ fixture/StartCutover.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/StartCutoverResponse.proto view
+ fixture/StartReplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/StartReplicationResponse.proto view
+ fixture/StartTest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/StartTestResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/TerminateTargetInstances.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/TerminateTargetInstancesResponse.proto view
+ fixture/UnarchiveApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UnarchiveApplicationResponse.proto view
+ fixture/UnarchiveWave.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UnarchiveWaveResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateApplication.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateApplicationResponse.proto view
+ fixture/UpdateLaunchConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateLaunchConfigurationResponse.proto view
+ fixture/UpdateLaunchConfigurationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateLaunchConfigurationTemplateResponse.proto view
+ fixture/UpdateReplicationConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateReplicationConfigurationResponse.proto view
+ fixture/UpdateReplicationConfigurationTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateReplicationConfigurationTemplateResponse.proto view
+ fixture/UpdateSourceServerReplicationType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateSourceServerReplicationTypeResponse.proto view
+ fixture/UpdateWave.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mgn/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mgn.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/UpdateWaveResponse.proto view
+ gen/Amazonka/MGN.hs view
@@ -0,0 +1,765 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.MGN+-- 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 @2020-02-26@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- The Application Migration Service service.+module Amazonka.MGN+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** UninitializedAccountException+    _UninitializedAccountException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** ArchiveApplication+    ArchiveApplication (ArchiveApplication'),+    newArchiveApplication,+    Application (Application'),+    newApplication,++    -- ** ArchiveWave+    ArchiveWave (ArchiveWave'),+    newArchiveWave,+    Wave (Wave'),+    newWave,++    -- ** AssociateApplications+    AssociateApplications (AssociateApplications'),+    newAssociateApplications,+    AssociateApplicationsResponse (AssociateApplicationsResponse'),+    newAssociateApplicationsResponse,++    -- ** AssociateSourceServers+    AssociateSourceServers (AssociateSourceServers'),+    newAssociateSourceServers,+    AssociateSourceServersResponse (AssociateSourceServersResponse'),+    newAssociateSourceServersResponse,++    -- ** ChangeServerLifeCycleState+    ChangeServerLifeCycleState (ChangeServerLifeCycleState'),+    newChangeServerLifeCycleState,+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** CreateApplication+    CreateApplication (CreateApplication'),+    newCreateApplication,+    Application (Application'),+    newApplication,++    -- ** CreateLaunchConfigurationTemplate+    CreateLaunchConfigurationTemplate (CreateLaunchConfigurationTemplate'),+    newCreateLaunchConfigurationTemplate,+    LaunchConfigurationTemplate (LaunchConfigurationTemplate'),+    newLaunchConfigurationTemplate,++    -- ** CreateReplicationConfigurationTemplate+    CreateReplicationConfigurationTemplate (CreateReplicationConfigurationTemplate'),+    newCreateReplicationConfigurationTemplate,+    ReplicationConfigurationTemplate (ReplicationConfigurationTemplate'),+    newReplicationConfigurationTemplate,++    -- ** CreateWave+    CreateWave (CreateWave'),+    newCreateWave,+    Wave (Wave'),+    newWave,++    -- ** DeleteApplication+    DeleteApplication (DeleteApplication'),+    newDeleteApplication,+    DeleteApplicationResponse (DeleteApplicationResponse'),+    newDeleteApplicationResponse,++    -- ** DeleteJob+    DeleteJob (DeleteJob'),+    newDeleteJob,+    DeleteJobResponse (DeleteJobResponse'),+    newDeleteJobResponse,++    -- ** DeleteLaunchConfigurationTemplate+    DeleteLaunchConfigurationTemplate (DeleteLaunchConfigurationTemplate'),+    newDeleteLaunchConfigurationTemplate,+    DeleteLaunchConfigurationTemplateResponse (DeleteLaunchConfigurationTemplateResponse'),+    newDeleteLaunchConfigurationTemplateResponse,++    -- ** DeleteReplicationConfigurationTemplate+    DeleteReplicationConfigurationTemplate (DeleteReplicationConfigurationTemplate'),+    newDeleteReplicationConfigurationTemplate,+    DeleteReplicationConfigurationTemplateResponse (DeleteReplicationConfigurationTemplateResponse'),+    newDeleteReplicationConfigurationTemplateResponse,++    -- ** DeleteSourceServer+    DeleteSourceServer (DeleteSourceServer'),+    newDeleteSourceServer,+    DeleteSourceServerResponse (DeleteSourceServerResponse'),+    newDeleteSourceServerResponse,++    -- ** DeleteVcenterClient+    DeleteVcenterClient (DeleteVcenterClient'),+    newDeleteVcenterClient,+    DeleteVcenterClientResponse (DeleteVcenterClientResponse'),+    newDeleteVcenterClientResponse,++    -- ** DeleteWave+    DeleteWave (DeleteWave'),+    newDeleteWave,+    DeleteWaveResponse (DeleteWaveResponse'),+    newDeleteWaveResponse,++    -- ** DescribeJobLogItems (Paginated)+    DescribeJobLogItems (DescribeJobLogItems'),+    newDescribeJobLogItems,+    DescribeJobLogItemsResponse (DescribeJobLogItemsResponse'),+    newDescribeJobLogItemsResponse,++    -- ** DescribeJobs (Paginated)+    DescribeJobs (DescribeJobs'),+    newDescribeJobs,+    DescribeJobsResponse (DescribeJobsResponse'),+    newDescribeJobsResponse,++    -- ** DescribeLaunchConfigurationTemplates (Paginated)+    DescribeLaunchConfigurationTemplates (DescribeLaunchConfigurationTemplates'),+    newDescribeLaunchConfigurationTemplates,+    DescribeLaunchConfigurationTemplatesResponse (DescribeLaunchConfigurationTemplatesResponse'),+    newDescribeLaunchConfigurationTemplatesResponse,++    -- ** DescribeReplicationConfigurationTemplates (Paginated)+    DescribeReplicationConfigurationTemplates (DescribeReplicationConfigurationTemplates'),+    newDescribeReplicationConfigurationTemplates,+    DescribeReplicationConfigurationTemplatesResponse (DescribeReplicationConfigurationTemplatesResponse'),+    newDescribeReplicationConfigurationTemplatesResponse,++    -- ** DescribeSourceServers (Paginated)+    DescribeSourceServers (DescribeSourceServers'),+    newDescribeSourceServers,+    DescribeSourceServersResponse (DescribeSourceServersResponse'),+    newDescribeSourceServersResponse,++    -- ** DescribeVcenterClients (Paginated)+    DescribeVcenterClients (DescribeVcenterClients'),+    newDescribeVcenterClients,+    DescribeVcenterClientsResponse (DescribeVcenterClientsResponse'),+    newDescribeVcenterClientsResponse,++    -- ** DisassociateApplications+    DisassociateApplications (DisassociateApplications'),+    newDisassociateApplications,+    DisassociateApplicationsResponse (DisassociateApplicationsResponse'),+    newDisassociateApplicationsResponse,++    -- ** DisassociateSourceServers+    DisassociateSourceServers (DisassociateSourceServers'),+    newDisassociateSourceServers,+    DisassociateSourceServersResponse (DisassociateSourceServersResponse'),+    newDisassociateSourceServersResponse,++    -- ** DisconnectFromService+    DisconnectFromService (DisconnectFromService'),+    newDisconnectFromService,+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** FinalizeCutover+    FinalizeCutover (FinalizeCutover'),+    newFinalizeCutover,+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** GetLaunchConfiguration+    GetLaunchConfiguration (GetLaunchConfiguration'),+    newGetLaunchConfiguration,+    LaunchConfiguration (LaunchConfiguration'),+    newLaunchConfiguration,++    -- ** GetReplicationConfiguration+    GetReplicationConfiguration (GetReplicationConfiguration'),+    newGetReplicationConfiguration,+    ReplicationConfiguration (ReplicationConfiguration'),+    newReplicationConfiguration,++    -- ** InitializeService+    InitializeService (InitializeService'),+    newInitializeService,+    InitializeServiceResponse (InitializeServiceResponse'),+    newInitializeServiceResponse,++    -- ** ListApplications (Paginated)+    ListApplications (ListApplications'),+    newListApplications,+    ListApplicationsResponse (ListApplicationsResponse'),+    newListApplicationsResponse,++    -- ** ListSourceServerActions (Paginated)+    ListSourceServerActions (ListSourceServerActions'),+    newListSourceServerActions,+    ListSourceServerActionsResponse (ListSourceServerActionsResponse'),+    newListSourceServerActionsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListTemplateActions (Paginated)+    ListTemplateActions (ListTemplateActions'),+    newListTemplateActions,+    ListTemplateActionsResponse (ListTemplateActionsResponse'),+    newListTemplateActionsResponse,++    -- ** ListWaves (Paginated)+    ListWaves (ListWaves'),+    newListWaves,+    ListWavesResponse (ListWavesResponse'),+    newListWavesResponse,++    -- ** MarkAsArchived+    MarkAsArchived (MarkAsArchived'),+    newMarkAsArchived,+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** PutSourceServerAction+    PutSourceServerAction (PutSourceServerAction'),+    newPutSourceServerAction,+    SourceServerActionDocument (SourceServerActionDocument'),+    newSourceServerActionDocument,++    -- ** PutTemplateAction+    PutTemplateAction (PutTemplateAction'),+    newPutTemplateAction,+    TemplateActionDocument (TemplateActionDocument'),+    newTemplateActionDocument,++    -- ** RemoveSourceServerAction+    RemoveSourceServerAction (RemoveSourceServerAction'),+    newRemoveSourceServerAction,+    RemoveSourceServerActionResponse (RemoveSourceServerActionResponse'),+    newRemoveSourceServerActionResponse,++    -- ** RemoveTemplateAction+    RemoveTemplateAction (RemoveTemplateAction'),+    newRemoveTemplateAction,+    RemoveTemplateActionResponse (RemoveTemplateActionResponse'),+    newRemoveTemplateActionResponse,++    -- ** RetryDataReplication+    RetryDataReplication (RetryDataReplication'),+    newRetryDataReplication,+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** StartCutover+    StartCutover (StartCutover'),+    newStartCutover,+    StartCutoverResponse (StartCutoverResponse'),+    newStartCutoverResponse,++    -- ** StartReplication+    StartReplication (StartReplication'),+    newStartReplication,+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** StartTest+    StartTest (StartTest'),+    newStartTest,+    StartTestResponse (StartTestResponse'),+    newStartTestResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** TerminateTargetInstances+    TerminateTargetInstances (TerminateTargetInstances'),+    newTerminateTargetInstances,+    TerminateTargetInstancesResponse (TerminateTargetInstancesResponse'),+    newTerminateTargetInstancesResponse,++    -- ** UnarchiveApplication+    UnarchiveApplication (UnarchiveApplication'),+    newUnarchiveApplication,+    Application (Application'),+    newApplication,++    -- ** UnarchiveWave+    UnarchiveWave (UnarchiveWave'),+    newUnarchiveWave,+    Wave (Wave'),+    newWave,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateApplication+    UpdateApplication (UpdateApplication'),+    newUpdateApplication,+    Application (Application'),+    newApplication,++    -- ** UpdateLaunchConfiguration+    UpdateLaunchConfiguration (UpdateLaunchConfiguration'),+    newUpdateLaunchConfiguration,+    LaunchConfiguration (LaunchConfiguration'),+    newLaunchConfiguration,++    -- ** UpdateLaunchConfigurationTemplate+    UpdateLaunchConfigurationTemplate (UpdateLaunchConfigurationTemplate'),+    newUpdateLaunchConfigurationTemplate,+    LaunchConfigurationTemplate (LaunchConfigurationTemplate'),+    newLaunchConfigurationTemplate,++    -- ** UpdateReplicationConfiguration+    UpdateReplicationConfiguration (UpdateReplicationConfiguration'),+    newUpdateReplicationConfiguration,+    ReplicationConfiguration (ReplicationConfiguration'),+    newReplicationConfiguration,++    -- ** UpdateReplicationConfigurationTemplate+    UpdateReplicationConfigurationTemplate (UpdateReplicationConfigurationTemplate'),+    newUpdateReplicationConfigurationTemplate,+    ReplicationConfigurationTemplate (ReplicationConfigurationTemplate'),+    newReplicationConfigurationTemplate,++    -- ** UpdateSourceServerReplicationType+    UpdateSourceServerReplicationType (UpdateSourceServerReplicationType'),+    newUpdateSourceServerReplicationType,+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** UpdateWave+    UpdateWave (UpdateWave'),+    newUpdateWave,+    Wave (Wave'),+    newWave,++    -- * Types++    -- ** ApplicationHealthStatus+    ApplicationHealthStatus (..),++    -- ** ApplicationProgressStatus+    ApplicationProgressStatus (..),++    -- ** BootMode+    BootMode (..),++    -- ** ChangeServerLifeCycleStateSourceServerLifecycleState+    ChangeServerLifeCycleStateSourceServerLifecycleState (..),++    -- ** DataReplicationErrorString+    DataReplicationErrorString (..),++    -- ** DataReplicationInitiationStepName+    DataReplicationInitiationStepName (..),++    -- ** DataReplicationInitiationStepStatus+    DataReplicationInitiationStepStatus (..),++    -- ** DataReplicationState+    DataReplicationState (..),++    -- ** FirstBoot+    FirstBoot (..),++    -- ** InitiatedBy+    InitiatedBy (..),++    -- ** JobLogEvent+    JobLogEvent (..),++    -- ** JobStatus+    JobStatus (..),++    -- ** JobType+    JobType (..),++    -- ** LaunchDisposition+    LaunchDisposition (..),++    -- ** LaunchStatus+    LaunchStatus (..),++    -- ** LifeCycleState+    LifeCycleState (..),++    -- ** PostLaunchActionExecutionStatus+    PostLaunchActionExecutionStatus (..),++    -- ** PostLaunchActionsDeploymentType+    PostLaunchActionsDeploymentType (..),++    -- ** ReplicationConfigurationDataPlaneRouting+    ReplicationConfigurationDataPlaneRouting (..),++    -- ** ReplicationConfigurationDefaultLargeStagingDiskType+    ReplicationConfigurationDefaultLargeStagingDiskType (..),++    -- ** ReplicationConfigurationEbsEncryption+    ReplicationConfigurationEbsEncryption (..),++    -- ** ReplicationConfigurationReplicatedDiskStagingDiskType+    ReplicationConfigurationReplicatedDiskStagingDiskType (..),++    -- ** ReplicationType+    ReplicationType (..),++    -- ** SsmDocumentType+    SsmDocumentType (..),++    -- ** SsmParameterStoreParameterType+    SsmParameterStoreParameterType (..),++    -- ** TargetInstanceTypeRightSizingMethod+    TargetInstanceTypeRightSizingMethod (..),++    -- ** VolumeType+    VolumeType (..),++    -- ** WaveHealthStatus+    WaveHealthStatus (..),++    -- ** WaveProgressStatus+    WaveProgressStatus (..),++    -- ** Application+    Application (Application'),+    newApplication,++    -- ** ApplicationAggregatedStatus+    ApplicationAggregatedStatus (ApplicationAggregatedStatus'),+    newApplicationAggregatedStatus,++    -- ** CPU+    CPU (CPU'),+    newCPU,++    -- ** ChangeServerLifeCycleStateSourceServerLifecycle+    ChangeServerLifeCycleStateSourceServerLifecycle (ChangeServerLifeCycleStateSourceServerLifecycle'),+    newChangeServerLifeCycleStateSourceServerLifecycle,++    -- ** DataReplicationError+    DataReplicationError (DataReplicationError'),+    newDataReplicationError,++    -- ** DataReplicationInfo+    DataReplicationInfo (DataReplicationInfo'),+    newDataReplicationInfo,++    -- ** DataReplicationInfoReplicatedDisk+    DataReplicationInfoReplicatedDisk (DataReplicationInfoReplicatedDisk'),+    newDataReplicationInfoReplicatedDisk,++    -- ** DataReplicationInitiation+    DataReplicationInitiation (DataReplicationInitiation'),+    newDataReplicationInitiation,++    -- ** DataReplicationInitiationStep+    DataReplicationInitiationStep (DataReplicationInitiationStep'),+    newDataReplicationInitiationStep,++    -- ** DescribeJobsRequestFilters+    DescribeJobsRequestFilters (DescribeJobsRequestFilters'),+    newDescribeJobsRequestFilters,++    -- ** DescribeSourceServersRequestFilters+    DescribeSourceServersRequestFilters (DescribeSourceServersRequestFilters'),+    newDescribeSourceServersRequestFilters,++    -- ** Disk+    Disk (Disk'),+    newDisk,++    -- ** IdentificationHints+    IdentificationHints (IdentificationHints'),+    newIdentificationHints,++    -- ** Job+    Job (Job'),+    newJob,++    -- ** JobLog+    JobLog (JobLog'),+    newJobLog,++    -- ** JobLogEventData+    JobLogEventData (JobLogEventData'),+    newJobLogEventData,++    -- ** JobPostLaunchActionsLaunchStatus+    JobPostLaunchActionsLaunchStatus (JobPostLaunchActionsLaunchStatus'),+    newJobPostLaunchActionsLaunchStatus,++    -- ** LaunchConfiguration+    LaunchConfiguration (LaunchConfiguration'),+    newLaunchConfiguration,++    -- ** LaunchConfigurationTemplate+    LaunchConfigurationTemplate (LaunchConfigurationTemplate'),+    newLaunchConfigurationTemplate,++    -- ** LaunchTemplateDiskConf+    LaunchTemplateDiskConf (LaunchTemplateDiskConf'),+    newLaunchTemplateDiskConf,++    -- ** LaunchedInstance+    LaunchedInstance (LaunchedInstance'),+    newLaunchedInstance,++    -- ** Licensing+    Licensing (Licensing'),+    newLicensing,++    -- ** LifeCycle+    LifeCycle (LifeCycle'),+    newLifeCycle,++    -- ** LifeCycleLastCutover+    LifeCycleLastCutover (LifeCycleLastCutover'),+    newLifeCycleLastCutover,++    -- ** LifeCycleLastCutoverFinalized+    LifeCycleLastCutoverFinalized (LifeCycleLastCutoverFinalized'),+    newLifeCycleLastCutoverFinalized,++    -- ** LifeCycleLastCutoverInitiated+    LifeCycleLastCutoverInitiated (LifeCycleLastCutoverInitiated'),+    newLifeCycleLastCutoverInitiated,++    -- ** LifeCycleLastCutoverReverted+    LifeCycleLastCutoverReverted (LifeCycleLastCutoverReverted'),+    newLifeCycleLastCutoverReverted,++    -- ** LifeCycleLastTest+    LifeCycleLastTest (LifeCycleLastTest'),+    newLifeCycleLastTest,++    -- ** LifeCycleLastTestFinalized+    LifeCycleLastTestFinalized (LifeCycleLastTestFinalized'),+    newLifeCycleLastTestFinalized,++    -- ** LifeCycleLastTestInitiated+    LifeCycleLastTestInitiated (LifeCycleLastTestInitiated'),+    newLifeCycleLastTestInitiated,++    -- ** LifeCycleLastTestReverted+    LifeCycleLastTestReverted (LifeCycleLastTestReverted'),+    newLifeCycleLastTestReverted,++    -- ** ListApplicationsRequestFilters+    ListApplicationsRequestFilters (ListApplicationsRequestFilters'),+    newListApplicationsRequestFilters,++    -- ** ListWavesRequestFilters+    ListWavesRequestFilters (ListWavesRequestFilters'),+    newListWavesRequestFilters,++    -- ** NetworkInterface+    NetworkInterface (NetworkInterface'),+    newNetworkInterface,++    -- ** OS+    OS (OS'),+    newOS,++    -- ** ParticipatingServer+    ParticipatingServer (ParticipatingServer'),+    newParticipatingServer,++    -- ** PostLaunchActions+    PostLaunchActions (PostLaunchActions'),+    newPostLaunchActions,++    -- ** PostLaunchActionsStatus+    PostLaunchActionsStatus (PostLaunchActionsStatus'),+    newPostLaunchActionsStatus,++    -- ** ReplicationConfiguration+    ReplicationConfiguration (ReplicationConfiguration'),+    newReplicationConfiguration,++    -- ** ReplicationConfigurationReplicatedDisk+    ReplicationConfigurationReplicatedDisk (ReplicationConfigurationReplicatedDisk'),+    newReplicationConfigurationReplicatedDisk,++    -- ** ReplicationConfigurationTemplate+    ReplicationConfigurationTemplate (ReplicationConfigurationTemplate'),+    newReplicationConfigurationTemplate,++    -- ** SourceProperties+    SourceProperties (SourceProperties'),+    newSourceProperties,++    -- ** SourceServer+    SourceServer (SourceServer'),+    newSourceServer,++    -- ** SourceServerActionDocument+    SourceServerActionDocument (SourceServerActionDocument'),+    newSourceServerActionDocument,++    -- ** SourceServerActionsRequestFilters+    SourceServerActionsRequestFilters (SourceServerActionsRequestFilters'),+    newSourceServerActionsRequestFilters,++    -- ** SsmDocument+    SsmDocument (SsmDocument'),+    newSsmDocument,++    -- ** SsmParameterStoreParameter+    SsmParameterStoreParameter (SsmParameterStoreParameter'),+    newSsmParameterStoreParameter,++    -- ** TemplateActionDocument+    TemplateActionDocument (TemplateActionDocument'),+    newTemplateActionDocument,++    -- ** TemplateActionsRequestFilters+    TemplateActionsRequestFilters (TemplateActionsRequestFilters'),+    newTemplateActionsRequestFilters,++    -- ** VcenterClient+    VcenterClient (VcenterClient'),+    newVcenterClient,++    -- ** Wave+    Wave (Wave'),+    newWave,++    -- ** WaveAggregatedStatus+    WaveAggregatedStatus (WaveAggregatedStatus'),+    newWaveAggregatedStatus,+  )+where++import Amazonka.MGN.ArchiveApplication+import Amazonka.MGN.ArchiveWave+import Amazonka.MGN.AssociateApplications+import Amazonka.MGN.AssociateSourceServers+import Amazonka.MGN.ChangeServerLifeCycleState+import Amazonka.MGN.CreateApplication+import Amazonka.MGN.CreateLaunchConfigurationTemplate+import Amazonka.MGN.CreateReplicationConfigurationTemplate+import Amazonka.MGN.CreateWave+import Amazonka.MGN.DeleteApplication+import Amazonka.MGN.DeleteJob+import Amazonka.MGN.DeleteLaunchConfigurationTemplate+import Amazonka.MGN.DeleteReplicationConfigurationTemplate+import Amazonka.MGN.DeleteSourceServer+import Amazonka.MGN.DeleteVcenterClient+import Amazonka.MGN.DeleteWave+import Amazonka.MGN.DescribeJobLogItems+import Amazonka.MGN.DescribeJobs+import Amazonka.MGN.DescribeLaunchConfigurationTemplates+import Amazonka.MGN.DescribeReplicationConfigurationTemplates+import Amazonka.MGN.DescribeSourceServers+import Amazonka.MGN.DescribeVcenterClients+import Amazonka.MGN.DisassociateApplications+import Amazonka.MGN.DisassociateSourceServers+import Amazonka.MGN.DisconnectFromService+import Amazonka.MGN.FinalizeCutover+import Amazonka.MGN.GetLaunchConfiguration+import Amazonka.MGN.GetReplicationConfiguration+import Amazonka.MGN.InitializeService+import Amazonka.MGN.Lens+import Amazonka.MGN.ListApplications+import Amazonka.MGN.ListSourceServerActions+import Amazonka.MGN.ListTagsForResource+import Amazonka.MGN.ListTemplateActions+import Amazonka.MGN.ListWaves+import Amazonka.MGN.MarkAsArchived+import Amazonka.MGN.PutSourceServerAction+import Amazonka.MGN.PutTemplateAction+import Amazonka.MGN.RemoveSourceServerAction+import Amazonka.MGN.RemoveTemplateAction+import Amazonka.MGN.RetryDataReplication+import Amazonka.MGN.StartCutover+import Amazonka.MGN.StartReplication+import Amazonka.MGN.StartTest+import Amazonka.MGN.TagResource+import Amazonka.MGN.TerminateTargetInstances+import Amazonka.MGN.Types+import Amazonka.MGN.UnarchiveApplication+import Amazonka.MGN.UnarchiveWave+import Amazonka.MGN.UntagResource+import Amazonka.MGN.UpdateApplication+import Amazonka.MGN.UpdateLaunchConfiguration+import Amazonka.MGN.UpdateLaunchConfigurationTemplate+import Amazonka.MGN.UpdateReplicationConfiguration+import Amazonka.MGN.UpdateReplicationConfigurationTemplate+import Amazonka.MGN.UpdateSourceServerReplicationType+import Amazonka.MGN.UpdateWave+import Amazonka.MGN.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 'MGN'.++-- $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/MGN/ArchiveApplication.hs view
@@ -0,0 +1,128 @@+{-# 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.MGN.ArchiveApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Archive application.+module Amazonka.MGN.ArchiveApplication+  ( -- * Creating a Request+    ArchiveApplication (..),+    newArchiveApplication,++    -- * Request Lenses+    archiveApplication_applicationID,++    -- * Destructuring the Response+    Application (..),+    newApplication,++    -- * Response Lenses+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newArchiveApplication' smart constructor.+data ArchiveApplication = ArchiveApplication'+  { -- | Application ID.+    applicationID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ArchiveApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationID', 'archiveApplication_applicationID' - Application ID.+newArchiveApplication ::+  -- | 'applicationID'+  Prelude.Text ->+  ArchiveApplication+newArchiveApplication pApplicationID_ =+  ArchiveApplication'+    { applicationID =+        pApplicationID_+    }++-- | Application ID.+archiveApplication_applicationID :: Lens.Lens' ArchiveApplication Prelude.Text+archiveApplication_applicationID = Lens.lens (\ArchiveApplication' {applicationID} -> applicationID) (\s@ArchiveApplication' {} a -> s {applicationID = a} :: ArchiveApplication)++instance Core.AWSRequest ArchiveApplication where+  type AWSResponse ArchiveApplication = Application+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable ArchiveApplication where+  hashWithSalt _salt ArchiveApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationID++instance Prelude.NFData ArchiveApplication where+  rnf ArchiveApplication' {..} =+    Prelude.rnf applicationID++instance Data.ToHeaders ArchiveApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ArchiveApplication where+  toJSON ArchiveApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("applicationID" Data..= applicationID)+          ]+      )++instance Data.ToPath ArchiveApplication where+  toPath = Prelude.const "/ArchiveApplication"++instance Data.ToQuery ArchiveApplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/ArchiveWave.hs view
@@ -0,0 +1,121 @@+{-# 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.MGN.ArchiveWave+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Archive wave.+module Amazonka.MGN.ArchiveWave+  ( -- * Creating a Request+    ArchiveWave (..),+    newArchiveWave,++    -- * Request Lenses+    archiveWave_waveID,++    -- * Destructuring the Response+    Wave (..),+    newWave,++    -- * Response Lenses+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newArchiveWave' smart constructor.+data ArchiveWave = ArchiveWave'+  { -- | Wave ID.+    waveID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ArchiveWave' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'waveID', 'archiveWave_waveID' - Wave ID.+newArchiveWave ::+  -- | 'waveID'+  Prelude.Text ->+  ArchiveWave+newArchiveWave pWaveID_ =+  ArchiveWave' {waveID = pWaveID_}++-- | Wave ID.+archiveWave_waveID :: Lens.Lens' ArchiveWave Prelude.Text+archiveWave_waveID = Lens.lens (\ArchiveWave' {waveID} -> waveID) (\s@ArchiveWave' {} a -> s {waveID = a} :: ArchiveWave)++instance Core.AWSRequest ArchiveWave where+  type AWSResponse ArchiveWave = Wave+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable ArchiveWave where+  hashWithSalt _salt ArchiveWave' {..} =+    _salt `Prelude.hashWithSalt` waveID++instance Prelude.NFData ArchiveWave where+  rnf ArchiveWave' {..} = Prelude.rnf waveID++instance Data.ToHeaders ArchiveWave where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ArchiveWave where+  toJSON ArchiveWave' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("waveID" Data..= waveID)]+      )++instance Data.ToPath ArchiveWave where+  toPath = Prelude.const "/ArchiveWave"++instance Data.ToQuery ArchiveWave where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/AssociateApplications.hs view
@@ -0,0 +1,174 @@+{-# 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.MGN.AssociateApplications+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associate applications to wave.+module Amazonka.MGN.AssociateApplications+  ( -- * Creating a Request+    AssociateApplications (..),+    newAssociateApplications,++    -- * Request Lenses+    associateApplications_applicationIDs,+    associateApplications_waveID,++    -- * Destructuring the Response+    AssociateApplicationsResponse (..),+    newAssociateApplicationsResponse,++    -- * Response Lenses+    associateApplicationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateApplications' smart constructor.+data AssociateApplications = AssociateApplications'+  { -- | Application IDs list.+    applicationIDs :: Prelude.NonEmpty Prelude.Text,+    -- | Wave ID.+    waveID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateApplications' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationIDs', 'associateApplications_applicationIDs' - Application IDs list.+--+-- 'waveID', 'associateApplications_waveID' - Wave ID.+newAssociateApplications ::+  -- | 'applicationIDs'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'waveID'+  Prelude.Text ->+  AssociateApplications+newAssociateApplications pApplicationIDs_ pWaveID_ =+  AssociateApplications'+    { applicationIDs =+        Lens.coerced Lens.# pApplicationIDs_,+      waveID = pWaveID_+    }++-- | Application IDs list.+associateApplications_applicationIDs :: Lens.Lens' AssociateApplications (Prelude.NonEmpty Prelude.Text)+associateApplications_applicationIDs = Lens.lens (\AssociateApplications' {applicationIDs} -> applicationIDs) (\s@AssociateApplications' {} a -> s {applicationIDs = a} :: AssociateApplications) Prelude.. Lens.coerced++-- | Wave ID.+associateApplications_waveID :: Lens.Lens' AssociateApplications Prelude.Text+associateApplications_waveID = Lens.lens (\AssociateApplications' {waveID} -> waveID) (\s@AssociateApplications' {} a -> s {waveID = a} :: AssociateApplications)++instance Core.AWSRequest AssociateApplications where+  type+    AWSResponse AssociateApplications =+      AssociateApplicationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          AssociateApplicationsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociateApplications where+  hashWithSalt _salt AssociateApplications' {..} =+    _salt+      `Prelude.hashWithSalt` applicationIDs+      `Prelude.hashWithSalt` waveID++instance Prelude.NFData AssociateApplications where+  rnf AssociateApplications' {..} =+    Prelude.rnf applicationIDs+      `Prelude.seq` Prelude.rnf waveID++instance Data.ToHeaders AssociateApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateApplications where+  toJSON AssociateApplications' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("applicationIDs" Data..= applicationIDs),+            Prelude.Just ("waveID" Data..= waveID)+          ]+      )++instance Data.ToPath AssociateApplications where+  toPath = Prelude.const "/AssociateApplications"++instance Data.ToQuery AssociateApplications where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateApplicationsResponse' smart constructor.+data AssociateApplicationsResponse = AssociateApplicationsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateApplicationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'associateApplicationsResponse_httpStatus' - The response's http status code.+newAssociateApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateApplicationsResponse+newAssociateApplicationsResponse pHttpStatus_ =+  AssociateApplicationsResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+associateApplicationsResponse_httpStatus :: Lens.Lens' AssociateApplicationsResponse Prelude.Int+associateApplicationsResponse_httpStatus = Lens.lens (\AssociateApplicationsResponse' {httpStatus} -> httpStatus) (\s@AssociateApplicationsResponse' {} a -> s {httpStatus = a} :: AssociateApplicationsResponse)++instance Prelude.NFData AssociateApplicationsResponse where+  rnf AssociateApplicationsResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/AssociateSourceServers.hs view
@@ -0,0 +1,181 @@+{-# 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.MGN.AssociateSourceServers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associate source servers to application.+module Amazonka.MGN.AssociateSourceServers+  ( -- * Creating a Request+    AssociateSourceServers (..),+    newAssociateSourceServers,++    -- * Request Lenses+    associateSourceServers_applicationID,+    associateSourceServers_sourceServerIDs,++    -- * Destructuring the Response+    AssociateSourceServersResponse (..),+    newAssociateSourceServersResponse,++    -- * Response Lenses+    associateSourceServersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateSourceServers' smart constructor.+data AssociateSourceServers = AssociateSourceServers'+  { -- | Application ID.+    applicationID :: Prelude.Text,+    -- | Source server IDs list.+    sourceServerIDs :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateSourceServers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationID', 'associateSourceServers_applicationID' - Application ID.+--+-- 'sourceServerIDs', 'associateSourceServers_sourceServerIDs' - Source server IDs list.+newAssociateSourceServers ::+  -- | 'applicationID'+  Prelude.Text ->+  -- | 'sourceServerIDs'+  Prelude.NonEmpty Prelude.Text ->+  AssociateSourceServers+newAssociateSourceServers+  pApplicationID_+  pSourceServerIDs_ =+    AssociateSourceServers'+      { applicationID =+          pApplicationID_,+        sourceServerIDs =+          Lens.coerced Lens.# pSourceServerIDs_+      }++-- | Application ID.+associateSourceServers_applicationID :: Lens.Lens' AssociateSourceServers Prelude.Text+associateSourceServers_applicationID = Lens.lens (\AssociateSourceServers' {applicationID} -> applicationID) (\s@AssociateSourceServers' {} a -> s {applicationID = a} :: AssociateSourceServers)++-- | Source server IDs list.+associateSourceServers_sourceServerIDs :: Lens.Lens' AssociateSourceServers (Prelude.NonEmpty Prelude.Text)+associateSourceServers_sourceServerIDs = Lens.lens (\AssociateSourceServers' {sourceServerIDs} -> sourceServerIDs) (\s@AssociateSourceServers' {} a -> s {sourceServerIDs = a} :: AssociateSourceServers) Prelude.. Lens.coerced++instance Core.AWSRequest AssociateSourceServers where+  type+    AWSResponse AssociateSourceServers =+      AssociateSourceServersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          AssociateSourceServersResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociateSourceServers where+  hashWithSalt _salt AssociateSourceServers' {..} =+    _salt+      `Prelude.hashWithSalt` applicationID+      `Prelude.hashWithSalt` sourceServerIDs++instance Prelude.NFData AssociateSourceServers where+  rnf AssociateSourceServers' {..} =+    Prelude.rnf applicationID+      `Prelude.seq` Prelude.rnf sourceServerIDs++instance Data.ToHeaders AssociateSourceServers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateSourceServers where+  toJSON AssociateSourceServers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("applicationID" Data..= applicationID),+            Prelude.Just+              ("sourceServerIDs" Data..= sourceServerIDs)+          ]+      )++instance Data.ToPath AssociateSourceServers where+  toPath = Prelude.const "/AssociateSourceServers"++instance Data.ToQuery AssociateSourceServers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateSourceServersResponse' smart constructor.+data AssociateSourceServersResponse = AssociateSourceServersResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateSourceServersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'associateSourceServersResponse_httpStatus' - The response's http status code.+newAssociateSourceServersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateSourceServersResponse+newAssociateSourceServersResponse pHttpStatus_ =+  AssociateSourceServersResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+associateSourceServersResponse_httpStatus :: Lens.Lens' AssociateSourceServersResponse Prelude.Int+associateSourceServersResponse_httpStatus = Lens.lens (\AssociateSourceServersResponse' {httpStatus} -> httpStatus) (\s@AssociateSourceServersResponse' {} a -> s {httpStatus = a} :: AssociateSourceServersResponse)++instance+  Prelude.NFData+    AssociateSourceServersResponse+  where+  rnf AssociateSourceServersResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/ChangeServerLifeCycleState.hs view
@@ -0,0 +1,155 @@+{-# 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.MGN.ChangeServerLifeCycleState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows the user to set the SourceServer.LifeCycle.state property for+-- specific Source Server IDs to one of the following: READY_FOR_TEST or+-- READY_FOR_CUTOVER. This command only works if the Source Server is+-- already launchable (dataReplicationInfo.lagDuration is not null.)+module Amazonka.MGN.ChangeServerLifeCycleState+  ( -- * Creating a Request+    ChangeServerLifeCycleState (..),+    newChangeServerLifeCycleState,++    -- * Request Lenses+    changeServerLifeCycleState_lifeCycle,+    changeServerLifeCycleState_sourceServerID,++    -- * Destructuring the Response+    SourceServer (..),+    newSourceServer,++    -- * Response Lenses+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newChangeServerLifeCycleState' smart constructor.+data ChangeServerLifeCycleState = ChangeServerLifeCycleState'+  { -- | The request to change the source server migration lifecycle state.+    lifeCycle :: ChangeServerLifeCycleStateSourceServerLifecycle,+    -- | The request to change the source server migration lifecycle state by+    -- source server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChangeServerLifeCycleState' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lifeCycle', 'changeServerLifeCycleState_lifeCycle' - The request to change the source server migration lifecycle state.+--+-- 'sourceServerID', 'changeServerLifeCycleState_sourceServerID' - The request to change the source server migration lifecycle state by+-- source server ID.+newChangeServerLifeCycleState ::+  -- | 'lifeCycle'+  ChangeServerLifeCycleStateSourceServerLifecycle ->+  -- | 'sourceServerID'+  Prelude.Text ->+  ChangeServerLifeCycleState+newChangeServerLifeCycleState+  pLifeCycle_+  pSourceServerID_ =+    ChangeServerLifeCycleState'+      { lifeCycle =+          pLifeCycle_,+        sourceServerID = pSourceServerID_+      }++-- | The request to change the source server migration lifecycle state.+changeServerLifeCycleState_lifeCycle :: Lens.Lens' ChangeServerLifeCycleState ChangeServerLifeCycleStateSourceServerLifecycle+changeServerLifeCycleState_lifeCycle = Lens.lens (\ChangeServerLifeCycleState' {lifeCycle} -> lifeCycle) (\s@ChangeServerLifeCycleState' {} a -> s {lifeCycle = a} :: ChangeServerLifeCycleState)++-- | The request to change the source server migration lifecycle state by+-- source server ID.+changeServerLifeCycleState_sourceServerID :: Lens.Lens' ChangeServerLifeCycleState Prelude.Text+changeServerLifeCycleState_sourceServerID = Lens.lens (\ChangeServerLifeCycleState' {sourceServerID} -> sourceServerID) (\s@ChangeServerLifeCycleState' {} a -> s {sourceServerID = a} :: ChangeServerLifeCycleState)++instance Core.AWSRequest ChangeServerLifeCycleState where+  type+    AWSResponse ChangeServerLifeCycleState =+      SourceServer+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable ChangeServerLifeCycleState where+  hashWithSalt _salt ChangeServerLifeCycleState' {..} =+    _salt+      `Prelude.hashWithSalt` lifeCycle+      `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData ChangeServerLifeCycleState where+  rnf ChangeServerLifeCycleState' {..} =+    Prelude.rnf lifeCycle+      `Prelude.seq` Prelude.rnf sourceServerID++instance Data.ToHeaders ChangeServerLifeCycleState where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ChangeServerLifeCycleState where+  toJSON ChangeServerLifeCycleState' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("lifeCycle" Data..= lifeCycle),+            Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath ChangeServerLifeCycleState where+  toPath = Prelude.const "/ChangeServerLifeCycleState"++instance Data.ToQuery ChangeServerLifeCycleState where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/CreateApplication.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.MGN.CreateApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create application.+module Amazonka.MGN.CreateApplication+  ( -- * Creating a Request+    CreateApplication (..),+    newCreateApplication,++    -- * Request Lenses+    createApplication_description,+    createApplication_tags,+    createApplication_name,++    -- * Destructuring the Response+    Application (..),+    newApplication,++    -- * Response Lenses+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateApplication' smart constructor.+data CreateApplication = CreateApplication'+  { -- | Application description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Application tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Application name.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createApplication_description' - Application description.+--+-- 'tags', 'createApplication_tags' - Application tags.+--+-- 'name', 'createApplication_name' - Application name.+newCreateApplication ::+  -- | 'name'+  Prelude.Text ->+  CreateApplication+newCreateApplication pName_ =+  CreateApplication'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | Application description.+createApplication_description :: Lens.Lens' CreateApplication (Prelude.Maybe Prelude.Text)+createApplication_description = Lens.lens (\CreateApplication' {description} -> description) (\s@CreateApplication' {} a -> s {description = a} :: CreateApplication)++-- | Application tags.+createApplication_tags :: Lens.Lens' CreateApplication (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createApplication_tags = Lens.lens (\CreateApplication' {tags} -> tags) (\s@CreateApplication' {} a -> s {tags = a} :: CreateApplication) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Application name.+createApplication_name :: Lens.Lens' CreateApplication Prelude.Text+createApplication_name = Lens.lens (\CreateApplication' {name} -> name) (\s@CreateApplication' {} a -> s {name = a} :: CreateApplication)++instance Core.AWSRequest CreateApplication where+  type AWSResponse CreateApplication = Application+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateApplication where+  hashWithSalt _salt CreateApplication' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateApplication where+  rnf CreateApplication' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateApplication where+  toJSON CreateApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateApplication where+  toPath = Prelude.const "/CreateApplication"++instance Data.ToQuery CreateApplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/CreateLaunchConfigurationTemplate.hs view
@@ -0,0 +1,341 @@+{-# 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.MGN.CreateLaunchConfigurationTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Launch Configuration Template.+module Amazonka.MGN.CreateLaunchConfigurationTemplate+  ( -- * Creating a Request+    CreateLaunchConfigurationTemplate (..),+    newCreateLaunchConfigurationTemplate,++    -- * Request Lenses+    createLaunchConfigurationTemplate_associatePublicIpAddress,+    createLaunchConfigurationTemplate_bootMode,+    createLaunchConfigurationTemplate_copyPrivateIp,+    createLaunchConfigurationTemplate_copyTags,+    createLaunchConfigurationTemplate_enableMapAutoTagging,+    createLaunchConfigurationTemplate_largeVolumeConf,+    createLaunchConfigurationTemplate_launchDisposition,+    createLaunchConfigurationTemplate_licensing,+    createLaunchConfigurationTemplate_mapAutoTaggingMpeID,+    createLaunchConfigurationTemplate_postLaunchActions,+    createLaunchConfigurationTemplate_smallVolumeConf,+    createLaunchConfigurationTemplate_smallVolumeMaxSize,+    createLaunchConfigurationTemplate_tags,+    createLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod,++    -- * Destructuring the Response+    LaunchConfigurationTemplate (..),+    newLaunchConfigurationTemplate,++    -- * Response Lenses+    launchConfigurationTemplate_arn,+    launchConfigurationTemplate_associatePublicIpAddress,+    launchConfigurationTemplate_bootMode,+    launchConfigurationTemplate_copyPrivateIp,+    launchConfigurationTemplate_copyTags,+    launchConfigurationTemplate_ec2LaunchTemplateID,+    launchConfigurationTemplate_enableMapAutoTagging,+    launchConfigurationTemplate_largeVolumeConf,+    launchConfigurationTemplate_launchDisposition,+    launchConfigurationTemplate_licensing,+    launchConfigurationTemplate_mapAutoTaggingMpeID,+    launchConfigurationTemplate_postLaunchActions,+    launchConfigurationTemplate_smallVolumeConf,+    launchConfigurationTemplate_smallVolumeMaxSize,+    launchConfigurationTemplate_tags,+    launchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    launchConfigurationTemplate_launchConfigurationTemplateID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLaunchConfigurationTemplate' smart constructor.+data CreateLaunchConfigurationTemplate = CreateLaunchConfigurationTemplate'+  { -- | Associate public Ip address.+    associatePublicIpAddress :: Prelude.Maybe Prelude.Bool,+    -- | Launch configuration template boot mode.+    bootMode :: Prelude.Maybe BootMode,+    -- | Copy private Ip.+    copyPrivateIp :: Prelude.Maybe Prelude.Bool,+    -- | Copy tags.+    copyTags :: Prelude.Maybe Prelude.Bool,+    -- | Enable map auto tagging.+    enableMapAutoTagging :: Prelude.Maybe Prelude.Bool,+    -- | Large volume config.+    largeVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,+    -- | Launch disposition.+    launchDisposition :: Prelude.Maybe LaunchDisposition,+    licensing :: Prelude.Maybe Licensing,+    -- | Launch configuration template map auto tagging MPE ID.+    mapAutoTaggingMpeID :: Prelude.Maybe Prelude.Text,+    -- | Launch configuration template post launch actions.+    postLaunchActions :: Prelude.Maybe PostLaunchActions,+    -- | Small volume config.+    smallVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,+    -- | Small volume maximum size.+    smallVolumeMaxSize :: Prelude.Maybe Prelude.Natural,+    -- | Request to associate tags during creation of a Launch Configuration+    -- Template.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Target instance type right-sizing method.+    targetInstanceTypeRightSizingMethod :: Prelude.Maybe TargetInstanceTypeRightSizingMethod+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLaunchConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatePublicIpAddress', 'createLaunchConfigurationTemplate_associatePublicIpAddress' - Associate public Ip address.+--+-- 'bootMode', 'createLaunchConfigurationTemplate_bootMode' - Launch configuration template boot mode.+--+-- 'copyPrivateIp', 'createLaunchConfigurationTemplate_copyPrivateIp' - Copy private Ip.+--+-- 'copyTags', 'createLaunchConfigurationTemplate_copyTags' - Copy tags.+--+-- 'enableMapAutoTagging', 'createLaunchConfigurationTemplate_enableMapAutoTagging' - Enable map auto tagging.+--+-- 'largeVolumeConf', 'createLaunchConfigurationTemplate_largeVolumeConf' - Large volume config.+--+-- 'launchDisposition', 'createLaunchConfigurationTemplate_launchDisposition' - Launch disposition.+--+-- 'licensing', 'createLaunchConfigurationTemplate_licensing' - Undocumented member.+--+-- 'mapAutoTaggingMpeID', 'createLaunchConfigurationTemplate_mapAutoTaggingMpeID' - Launch configuration template map auto tagging MPE ID.+--+-- 'postLaunchActions', 'createLaunchConfigurationTemplate_postLaunchActions' - Launch configuration template post launch actions.+--+-- 'smallVolumeConf', 'createLaunchConfigurationTemplate_smallVolumeConf' - Small volume config.+--+-- 'smallVolumeMaxSize', 'createLaunchConfigurationTemplate_smallVolumeMaxSize' - Small volume maximum size.+--+-- 'tags', 'createLaunchConfigurationTemplate_tags' - Request to associate tags during creation of a Launch Configuration+-- Template.+--+-- 'targetInstanceTypeRightSizingMethod', 'createLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod' - Target instance type right-sizing method.+newCreateLaunchConfigurationTemplate ::+  CreateLaunchConfigurationTemplate+newCreateLaunchConfigurationTemplate =+  CreateLaunchConfigurationTemplate'+    { associatePublicIpAddress =+        Prelude.Nothing,+      bootMode = Prelude.Nothing,+      copyPrivateIp = Prelude.Nothing,+      copyTags = Prelude.Nothing,+      enableMapAutoTagging = Prelude.Nothing,+      largeVolumeConf = Prelude.Nothing,+      launchDisposition = Prelude.Nothing,+      licensing = Prelude.Nothing,+      mapAutoTaggingMpeID = Prelude.Nothing,+      postLaunchActions = Prelude.Nothing,+      smallVolumeConf = Prelude.Nothing,+      smallVolumeMaxSize = Prelude.Nothing,+      tags = Prelude.Nothing,+      targetInstanceTypeRightSizingMethod =+        Prelude.Nothing+    }++-- | Associate public Ip address.+createLaunchConfigurationTemplate_associatePublicIpAddress :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+createLaunchConfigurationTemplate_associatePublicIpAddress = Lens.lens (\CreateLaunchConfigurationTemplate' {associatePublicIpAddress} -> associatePublicIpAddress) (\s@CreateLaunchConfigurationTemplate' {} a -> s {associatePublicIpAddress = a} :: CreateLaunchConfigurationTemplate)++-- | Launch configuration template boot mode.+createLaunchConfigurationTemplate_bootMode :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe BootMode)+createLaunchConfigurationTemplate_bootMode = Lens.lens (\CreateLaunchConfigurationTemplate' {bootMode} -> bootMode) (\s@CreateLaunchConfigurationTemplate' {} a -> s {bootMode = a} :: CreateLaunchConfigurationTemplate)++-- | Copy private Ip.+createLaunchConfigurationTemplate_copyPrivateIp :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+createLaunchConfigurationTemplate_copyPrivateIp = Lens.lens (\CreateLaunchConfigurationTemplate' {copyPrivateIp} -> copyPrivateIp) (\s@CreateLaunchConfigurationTemplate' {} a -> s {copyPrivateIp = a} :: CreateLaunchConfigurationTemplate)++-- | Copy tags.+createLaunchConfigurationTemplate_copyTags :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+createLaunchConfigurationTemplate_copyTags = Lens.lens (\CreateLaunchConfigurationTemplate' {copyTags} -> copyTags) (\s@CreateLaunchConfigurationTemplate' {} a -> s {copyTags = a} :: CreateLaunchConfigurationTemplate)++-- | Enable map auto tagging.+createLaunchConfigurationTemplate_enableMapAutoTagging :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+createLaunchConfigurationTemplate_enableMapAutoTagging = Lens.lens (\CreateLaunchConfigurationTemplate' {enableMapAutoTagging} -> enableMapAutoTagging) (\s@CreateLaunchConfigurationTemplate' {} a -> s {enableMapAutoTagging = a} :: CreateLaunchConfigurationTemplate)++-- | Large volume config.+createLaunchConfigurationTemplate_largeVolumeConf :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)+createLaunchConfigurationTemplate_largeVolumeConf = Lens.lens (\CreateLaunchConfigurationTemplate' {largeVolumeConf} -> largeVolumeConf) (\s@CreateLaunchConfigurationTemplate' {} a -> s {largeVolumeConf = a} :: CreateLaunchConfigurationTemplate)++-- | Launch disposition.+createLaunchConfigurationTemplate_launchDisposition :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe LaunchDisposition)+createLaunchConfigurationTemplate_launchDisposition = Lens.lens (\CreateLaunchConfigurationTemplate' {launchDisposition} -> launchDisposition) (\s@CreateLaunchConfigurationTemplate' {} a -> s {launchDisposition = a} :: CreateLaunchConfigurationTemplate)++-- | Undocumented member.+createLaunchConfigurationTemplate_licensing :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe Licensing)+createLaunchConfigurationTemplate_licensing = Lens.lens (\CreateLaunchConfigurationTemplate' {licensing} -> licensing) (\s@CreateLaunchConfigurationTemplate' {} a -> s {licensing = a} :: CreateLaunchConfigurationTemplate)++-- | Launch configuration template map auto tagging MPE ID.+createLaunchConfigurationTemplate_mapAutoTaggingMpeID :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)+createLaunchConfigurationTemplate_mapAutoTaggingMpeID = Lens.lens (\CreateLaunchConfigurationTemplate' {mapAutoTaggingMpeID} -> mapAutoTaggingMpeID) (\s@CreateLaunchConfigurationTemplate' {} a -> s {mapAutoTaggingMpeID = a} :: CreateLaunchConfigurationTemplate)++-- | Launch configuration template post launch actions.+createLaunchConfigurationTemplate_postLaunchActions :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe PostLaunchActions)+createLaunchConfigurationTemplate_postLaunchActions = Lens.lens (\CreateLaunchConfigurationTemplate' {postLaunchActions} -> postLaunchActions) (\s@CreateLaunchConfigurationTemplate' {} a -> s {postLaunchActions = a} :: CreateLaunchConfigurationTemplate)++-- | Small volume config.+createLaunchConfigurationTemplate_smallVolumeConf :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)+createLaunchConfigurationTemplate_smallVolumeConf = Lens.lens (\CreateLaunchConfigurationTemplate' {smallVolumeConf} -> smallVolumeConf) (\s@CreateLaunchConfigurationTemplate' {} a -> s {smallVolumeConf = a} :: CreateLaunchConfigurationTemplate)++-- | Small volume maximum size.+createLaunchConfigurationTemplate_smallVolumeMaxSize :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Natural)+createLaunchConfigurationTemplate_smallVolumeMaxSize = Lens.lens (\CreateLaunchConfigurationTemplate' {smallVolumeMaxSize} -> smallVolumeMaxSize) (\s@CreateLaunchConfigurationTemplate' {} a -> s {smallVolumeMaxSize = a} :: CreateLaunchConfigurationTemplate)++-- | Request to associate tags during creation of a Launch Configuration+-- Template.+createLaunchConfigurationTemplate_tags :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createLaunchConfigurationTemplate_tags = Lens.lens (\CreateLaunchConfigurationTemplate' {tags} -> tags) (\s@CreateLaunchConfigurationTemplate' {} a -> s {tags = a} :: CreateLaunchConfigurationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Target instance type right-sizing method.+createLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod :: Lens.Lens' CreateLaunchConfigurationTemplate (Prelude.Maybe TargetInstanceTypeRightSizingMethod)+createLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod = Lens.lens (\CreateLaunchConfigurationTemplate' {targetInstanceTypeRightSizingMethod} -> targetInstanceTypeRightSizingMethod) (\s@CreateLaunchConfigurationTemplate' {} a -> s {targetInstanceTypeRightSizingMethod = a} :: CreateLaunchConfigurationTemplate)++instance+  Core.AWSRequest+    CreateLaunchConfigurationTemplate+  where+  type+    AWSResponse CreateLaunchConfigurationTemplate =+      LaunchConfigurationTemplate+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance+  Prelude.Hashable+    CreateLaunchConfigurationTemplate+  where+  hashWithSalt+    _salt+    CreateLaunchConfigurationTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` associatePublicIpAddress+        `Prelude.hashWithSalt` bootMode+        `Prelude.hashWithSalt` copyPrivateIp+        `Prelude.hashWithSalt` copyTags+        `Prelude.hashWithSalt` enableMapAutoTagging+        `Prelude.hashWithSalt` largeVolumeConf+        `Prelude.hashWithSalt` launchDisposition+        `Prelude.hashWithSalt` licensing+        `Prelude.hashWithSalt` mapAutoTaggingMpeID+        `Prelude.hashWithSalt` postLaunchActions+        `Prelude.hashWithSalt` smallVolumeConf+        `Prelude.hashWithSalt` smallVolumeMaxSize+        `Prelude.hashWithSalt` tags+        `Prelude.hashWithSalt` targetInstanceTypeRightSizingMethod++instance+  Prelude.NFData+    CreateLaunchConfigurationTemplate+  where+  rnf CreateLaunchConfigurationTemplate' {..} =+    Prelude.rnf associatePublicIpAddress+      `Prelude.seq` Prelude.rnf bootMode+      `Prelude.seq` Prelude.rnf copyPrivateIp+      `Prelude.seq` Prelude.rnf copyTags+      `Prelude.seq` Prelude.rnf enableMapAutoTagging+      `Prelude.seq` Prelude.rnf largeVolumeConf+      `Prelude.seq` Prelude.rnf launchDisposition+      `Prelude.seq` Prelude.rnf licensing+      `Prelude.seq` Prelude.rnf mapAutoTaggingMpeID+      `Prelude.seq` Prelude.rnf postLaunchActions+      `Prelude.seq` Prelude.rnf smallVolumeConf+      `Prelude.seq` Prelude.rnf smallVolumeMaxSize+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf+        targetInstanceTypeRightSizingMethod++instance+  Data.ToHeaders+    CreateLaunchConfigurationTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    CreateLaunchConfigurationTemplate+  where+  toJSON CreateLaunchConfigurationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("associatePublicIpAddress" Data..=)+              Prelude.<$> associatePublicIpAddress,+            ("bootMode" Data..=) Prelude.<$> bootMode,+            ("copyPrivateIp" Data..=) Prelude.<$> copyPrivateIp,+            ("copyTags" Data..=) Prelude.<$> copyTags,+            ("enableMapAutoTagging" Data..=)+              Prelude.<$> enableMapAutoTagging,+            ("largeVolumeConf" Data..=)+              Prelude.<$> largeVolumeConf,+            ("launchDisposition" Data..=)+              Prelude.<$> launchDisposition,+            ("licensing" Data..=) Prelude.<$> licensing,+            ("mapAutoTaggingMpeID" Data..=)+              Prelude.<$> mapAutoTaggingMpeID,+            ("postLaunchActions" Data..=)+              Prelude.<$> postLaunchActions,+            ("smallVolumeConf" Data..=)+              Prelude.<$> smallVolumeConf,+            ("smallVolumeMaxSize" Data..=)+              Prelude.<$> smallVolumeMaxSize,+            ("tags" Data..=) Prelude.<$> tags,+            ("targetInstanceTypeRightSizingMethod" Data..=)+              Prelude.<$> targetInstanceTypeRightSizingMethod+          ]+      )++instance+  Data.ToPath+    CreateLaunchConfigurationTemplate+  where+  toPath =+    Prelude.const "/CreateLaunchConfigurationTemplate"++instance+  Data.ToQuery+    CreateLaunchConfigurationTemplate+  where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/CreateReplicationConfigurationTemplate.hs view
@@ -0,0 +1,407 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.CreateReplicationConfigurationTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new ReplicationConfigurationTemplate.+module Amazonka.MGN.CreateReplicationConfigurationTemplate+  ( -- * Creating a Request+    CreateReplicationConfigurationTemplate (..),+    newCreateReplicationConfigurationTemplate,++    -- * Request Lenses+    createReplicationConfigurationTemplate_ebsEncryptionKeyArn,+    createReplicationConfigurationTemplate_tags,+    createReplicationConfigurationTemplate_associateDefaultSecurityGroup,+    createReplicationConfigurationTemplate_bandwidthThrottling,+    createReplicationConfigurationTemplate_createPublicIP,+    createReplicationConfigurationTemplate_dataPlaneRouting,+    createReplicationConfigurationTemplate_defaultLargeStagingDiskType,+    createReplicationConfigurationTemplate_ebsEncryption,+    createReplicationConfigurationTemplate_replicationServerInstanceType,+    createReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    createReplicationConfigurationTemplate_stagingAreaSubnetId,+    createReplicationConfigurationTemplate_stagingAreaTags,+    createReplicationConfigurationTemplate_useDedicatedReplicationServer,++    -- * Destructuring the Response+    ReplicationConfigurationTemplate (..),+    newReplicationConfigurationTemplate,++    -- * Response Lenses+    replicationConfigurationTemplate_arn,+    replicationConfigurationTemplate_associateDefaultSecurityGroup,+    replicationConfigurationTemplate_bandwidthThrottling,+    replicationConfigurationTemplate_createPublicIP,+    replicationConfigurationTemplate_dataPlaneRouting,+    replicationConfigurationTemplate_defaultLargeStagingDiskType,+    replicationConfigurationTemplate_ebsEncryption,+    replicationConfigurationTemplate_ebsEncryptionKeyArn,+    replicationConfigurationTemplate_replicationServerInstanceType,+    replicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    replicationConfigurationTemplate_stagingAreaSubnetId,+    replicationConfigurationTemplate_stagingAreaTags,+    replicationConfigurationTemplate_tags,+    replicationConfigurationTemplate_useDedicatedReplicationServer,+    replicationConfigurationTemplate_replicationConfigurationTemplateID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateReplicationConfigurationTemplate' smart constructor.+data CreateReplicationConfigurationTemplate = CreateReplicationConfigurationTemplate'+  { -- | Request to configure an EBS encryption key during Replication Settings+    -- template creation.+    ebsEncryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Request to configure tags during Replication Settings template creation.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Request to associate the default Application Migration Service Security+    -- group with the Replication Settings template.+    associateDefaultSecurityGroup :: Prelude.Bool,+    -- | Request to configure bandwidth throttling during Replication Settings+    -- template creation.+    bandwidthThrottling :: Prelude.Natural,+    -- | Request to create Public IP during Replication Settings template+    -- creation.+    createPublicIP :: Prelude.Bool,+    -- | Request to configure data plane routing during Replication Settings+    -- template creation.+    dataPlaneRouting :: ReplicationConfigurationDataPlaneRouting,+    -- | Request to configure the default large staging disk EBS volume type+    -- during Replication Settings template creation.+    defaultLargeStagingDiskType :: ReplicationConfigurationDefaultLargeStagingDiskType,+    -- | Request to configure EBS encryption during Replication Settings template+    -- creation.+    ebsEncryption :: ReplicationConfigurationEbsEncryption,+    -- | Request to configure the Replication Server instance type during+    -- Replication Settings template creation.+    replicationServerInstanceType :: Prelude.Text,+    -- | Request to configure the Replication Server Security group ID during+    -- Replication Settings template creation.+    replicationServersSecurityGroupsIDs :: [Prelude.Text],+    -- | Request to configure the Staging Area subnet ID during Replication+    -- Settings template creation.+    stagingAreaSubnetId :: Prelude.Text,+    -- | Request to configure Staging Area tags during Replication Settings+    -- template creation.+    stagingAreaTags :: Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Request to use Dedicated Replication Servers during Replication Settings+    -- template creation.+    useDedicatedReplicationServer :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateReplicationConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ebsEncryptionKeyArn', 'createReplicationConfigurationTemplate_ebsEncryptionKeyArn' - Request to configure an EBS encryption key during Replication Settings+-- template creation.+--+-- 'tags', 'createReplicationConfigurationTemplate_tags' - Request to configure tags during Replication Settings template creation.+--+-- 'associateDefaultSecurityGroup', 'createReplicationConfigurationTemplate_associateDefaultSecurityGroup' - Request to associate the default Application Migration Service Security+-- group with the Replication Settings template.+--+-- 'bandwidthThrottling', 'createReplicationConfigurationTemplate_bandwidthThrottling' - Request to configure bandwidth throttling during Replication Settings+-- template creation.+--+-- 'createPublicIP', 'createReplicationConfigurationTemplate_createPublicIP' - Request to create Public IP during Replication Settings template+-- creation.+--+-- 'dataPlaneRouting', 'createReplicationConfigurationTemplate_dataPlaneRouting' - Request to configure data plane routing during Replication Settings+-- template creation.+--+-- 'defaultLargeStagingDiskType', 'createReplicationConfigurationTemplate_defaultLargeStagingDiskType' - Request to configure the default large staging disk EBS volume type+-- during Replication Settings template creation.+--+-- 'ebsEncryption', 'createReplicationConfigurationTemplate_ebsEncryption' - Request to configure EBS encryption during Replication Settings template+-- creation.+--+-- 'replicationServerInstanceType', 'createReplicationConfigurationTemplate_replicationServerInstanceType' - Request to configure the Replication Server instance type during+-- Replication Settings template creation.+--+-- 'replicationServersSecurityGroupsIDs', 'createReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs' - Request to configure the Replication Server Security group ID during+-- Replication Settings template creation.+--+-- 'stagingAreaSubnetId', 'createReplicationConfigurationTemplate_stagingAreaSubnetId' - Request to configure the Staging Area subnet ID during Replication+-- Settings template creation.+--+-- 'stagingAreaTags', 'createReplicationConfigurationTemplate_stagingAreaTags' - Request to configure Staging Area tags during Replication Settings+-- template creation.+--+-- 'useDedicatedReplicationServer', 'createReplicationConfigurationTemplate_useDedicatedReplicationServer' - Request to use Dedicated Replication Servers during Replication Settings+-- template creation.+newCreateReplicationConfigurationTemplate ::+  -- | 'associateDefaultSecurityGroup'+  Prelude.Bool ->+  -- | 'bandwidthThrottling'+  Prelude.Natural ->+  -- | 'createPublicIP'+  Prelude.Bool ->+  -- | 'dataPlaneRouting'+  ReplicationConfigurationDataPlaneRouting ->+  -- | 'defaultLargeStagingDiskType'+  ReplicationConfigurationDefaultLargeStagingDiskType ->+  -- | 'ebsEncryption'+  ReplicationConfigurationEbsEncryption ->+  -- | 'replicationServerInstanceType'+  Prelude.Text ->+  -- | 'stagingAreaSubnetId'+  Prelude.Text ->+  -- | 'useDedicatedReplicationServer'+  Prelude.Bool ->+  CreateReplicationConfigurationTemplate+newCreateReplicationConfigurationTemplate+  pAssociateDefaultSecurityGroup_+  pBandwidthThrottling_+  pCreatePublicIP_+  pDataPlaneRouting_+  pDefaultLargeStagingDiskType_+  pEbsEncryption_+  pReplicationServerInstanceType_+  pStagingAreaSubnetId_+  pUseDedicatedReplicationServer_ =+    CreateReplicationConfigurationTemplate'+      { ebsEncryptionKeyArn =+          Prelude.Nothing,+        tags = Prelude.Nothing,+        associateDefaultSecurityGroup =+          pAssociateDefaultSecurityGroup_,+        bandwidthThrottling =+          pBandwidthThrottling_,+        createPublicIP = pCreatePublicIP_,+        dataPlaneRouting =+          pDataPlaneRouting_,+        defaultLargeStagingDiskType =+          pDefaultLargeStagingDiskType_,+        ebsEncryption = pEbsEncryption_,+        replicationServerInstanceType =+          pReplicationServerInstanceType_,+        replicationServersSecurityGroupsIDs =+          Prelude.mempty,+        stagingAreaSubnetId =+          pStagingAreaSubnetId_,+        stagingAreaTags = Prelude.mempty,+        useDedicatedReplicationServer =+          pUseDedicatedReplicationServer_+      }++-- | Request to configure an EBS encryption key during Replication Settings+-- template creation.+createReplicationConfigurationTemplate_ebsEncryptionKeyArn :: Lens.Lens' CreateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+createReplicationConfigurationTemplate_ebsEncryptionKeyArn = Lens.lens (\CreateReplicationConfigurationTemplate' {ebsEncryptionKeyArn} -> ebsEncryptionKeyArn) (\s@CreateReplicationConfigurationTemplate' {} a -> s {ebsEncryptionKeyArn = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure tags during Replication Settings template creation.+createReplicationConfigurationTemplate_tags :: Lens.Lens' CreateReplicationConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createReplicationConfigurationTemplate_tags = Lens.lens (\CreateReplicationConfigurationTemplate' {tags} -> tags) (\s@CreateReplicationConfigurationTemplate' {} a -> s {tags = a} :: CreateReplicationConfigurationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Request to associate the default Application Migration Service Security+-- group with the Replication Settings template.+createReplicationConfigurationTemplate_associateDefaultSecurityGroup :: Lens.Lens' CreateReplicationConfigurationTemplate Prelude.Bool+createReplicationConfigurationTemplate_associateDefaultSecurityGroup = Lens.lens (\CreateReplicationConfigurationTemplate' {associateDefaultSecurityGroup} -> associateDefaultSecurityGroup) (\s@CreateReplicationConfigurationTemplate' {} a -> s {associateDefaultSecurityGroup = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure bandwidth throttling during Replication Settings+-- template creation.+createReplicationConfigurationTemplate_bandwidthThrottling :: Lens.Lens' CreateReplicationConfigurationTemplate Prelude.Natural+createReplicationConfigurationTemplate_bandwidthThrottling = Lens.lens (\CreateReplicationConfigurationTemplate' {bandwidthThrottling} -> bandwidthThrottling) (\s@CreateReplicationConfigurationTemplate' {} a -> s {bandwidthThrottling = a} :: CreateReplicationConfigurationTemplate)++-- | Request to create Public IP during Replication Settings template+-- creation.+createReplicationConfigurationTemplate_createPublicIP :: Lens.Lens' CreateReplicationConfigurationTemplate Prelude.Bool+createReplicationConfigurationTemplate_createPublicIP = Lens.lens (\CreateReplicationConfigurationTemplate' {createPublicIP} -> createPublicIP) (\s@CreateReplicationConfigurationTemplate' {} a -> s {createPublicIP = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure data plane routing during Replication Settings+-- template creation.+createReplicationConfigurationTemplate_dataPlaneRouting :: Lens.Lens' CreateReplicationConfigurationTemplate ReplicationConfigurationDataPlaneRouting+createReplicationConfigurationTemplate_dataPlaneRouting = Lens.lens (\CreateReplicationConfigurationTemplate' {dataPlaneRouting} -> dataPlaneRouting) (\s@CreateReplicationConfigurationTemplate' {} a -> s {dataPlaneRouting = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure the default large staging disk EBS volume type+-- during Replication Settings template creation.+createReplicationConfigurationTemplate_defaultLargeStagingDiskType :: Lens.Lens' CreateReplicationConfigurationTemplate ReplicationConfigurationDefaultLargeStagingDiskType+createReplicationConfigurationTemplate_defaultLargeStagingDiskType = Lens.lens (\CreateReplicationConfigurationTemplate' {defaultLargeStagingDiskType} -> defaultLargeStagingDiskType) (\s@CreateReplicationConfigurationTemplate' {} a -> s {defaultLargeStagingDiskType = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure EBS encryption during Replication Settings template+-- creation.+createReplicationConfigurationTemplate_ebsEncryption :: Lens.Lens' CreateReplicationConfigurationTemplate ReplicationConfigurationEbsEncryption+createReplicationConfigurationTemplate_ebsEncryption = Lens.lens (\CreateReplicationConfigurationTemplate' {ebsEncryption} -> ebsEncryption) (\s@CreateReplicationConfigurationTemplate' {} a -> s {ebsEncryption = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure the Replication Server instance type during+-- Replication Settings template creation.+createReplicationConfigurationTemplate_replicationServerInstanceType :: Lens.Lens' CreateReplicationConfigurationTemplate Prelude.Text+createReplicationConfigurationTemplate_replicationServerInstanceType = Lens.lens (\CreateReplicationConfigurationTemplate' {replicationServerInstanceType} -> replicationServerInstanceType) (\s@CreateReplicationConfigurationTemplate' {} a -> s {replicationServerInstanceType = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure the Replication Server Security group ID during+-- Replication Settings template creation.+createReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs :: Lens.Lens' CreateReplicationConfigurationTemplate [Prelude.Text]+createReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs = Lens.lens (\CreateReplicationConfigurationTemplate' {replicationServersSecurityGroupsIDs} -> replicationServersSecurityGroupsIDs) (\s@CreateReplicationConfigurationTemplate' {} a -> s {replicationServersSecurityGroupsIDs = a} :: CreateReplicationConfigurationTemplate) Prelude.. Lens.coerced++-- | Request to configure the Staging Area subnet ID during Replication+-- Settings template creation.+createReplicationConfigurationTemplate_stagingAreaSubnetId :: Lens.Lens' CreateReplicationConfigurationTemplate Prelude.Text+createReplicationConfigurationTemplate_stagingAreaSubnetId = Lens.lens (\CreateReplicationConfigurationTemplate' {stagingAreaSubnetId} -> stagingAreaSubnetId) (\s@CreateReplicationConfigurationTemplate' {} a -> s {stagingAreaSubnetId = a} :: CreateReplicationConfigurationTemplate)++-- | Request to configure Staging Area tags during Replication Settings+-- template creation.+createReplicationConfigurationTemplate_stagingAreaTags :: Lens.Lens' CreateReplicationConfigurationTemplate (Prelude.HashMap Prelude.Text Prelude.Text)+createReplicationConfigurationTemplate_stagingAreaTags = Lens.lens (\CreateReplicationConfigurationTemplate' {stagingAreaTags} -> stagingAreaTags) (\s@CreateReplicationConfigurationTemplate' {} a -> s {stagingAreaTags = a} :: CreateReplicationConfigurationTemplate) Prelude.. Data._Sensitive Prelude.. Lens.coerced++-- | Request to use Dedicated Replication Servers during Replication Settings+-- template creation.+createReplicationConfigurationTemplate_useDedicatedReplicationServer :: Lens.Lens' CreateReplicationConfigurationTemplate Prelude.Bool+createReplicationConfigurationTemplate_useDedicatedReplicationServer = Lens.lens (\CreateReplicationConfigurationTemplate' {useDedicatedReplicationServer} -> useDedicatedReplicationServer) (\s@CreateReplicationConfigurationTemplate' {} a -> s {useDedicatedReplicationServer = a} :: CreateReplicationConfigurationTemplate)++instance+  Core.AWSRequest+    CreateReplicationConfigurationTemplate+  where+  type+    AWSResponse+      CreateReplicationConfigurationTemplate =+      ReplicationConfigurationTemplate+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance+  Prelude.Hashable+    CreateReplicationConfigurationTemplate+  where+  hashWithSalt+    _salt+    CreateReplicationConfigurationTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` ebsEncryptionKeyArn+        `Prelude.hashWithSalt` tags+        `Prelude.hashWithSalt` associateDefaultSecurityGroup+        `Prelude.hashWithSalt` bandwidthThrottling+        `Prelude.hashWithSalt` createPublicIP+        `Prelude.hashWithSalt` dataPlaneRouting+        `Prelude.hashWithSalt` defaultLargeStagingDiskType+        `Prelude.hashWithSalt` ebsEncryption+        `Prelude.hashWithSalt` replicationServerInstanceType+        `Prelude.hashWithSalt` replicationServersSecurityGroupsIDs+        `Prelude.hashWithSalt` stagingAreaSubnetId+        `Prelude.hashWithSalt` stagingAreaTags+        `Prelude.hashWithSalt` useDedicatedReplicationServer++instance+  Prelude.NFData+    CreateReplicationConfigurationTemplate+  where+  rnf CreateReplicationConfigurationTemplate' {..} =+    Prelude.rnf ebsEncryptionKeyArn+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf associateDefaultSecurityGroup+      `Prelude.seq` Prelude.rnf bandwidthThrottling+      `Prelude.seq` Prelude.rnf createPublicIP+      `Prelude.seq` Prelude.rnf dataPlaneRouting+      `Prelude.seq` Prelude.rnf defaultLargeStagingDiskType+      `Prelude.seq` Prelude.rnf ebsEncryption+      `Prelude.seq` Prelude.rnf replicationServerInstanceType+      `Prelude.seq` Prelude.rnf replicationServersSecurityGroupsIDs+      `Prelude.seq` Prelude.rnf stagingAreaSubnetId+      `Prelude.seq` Prelude.rnf stagingAreaTags+      `Prelude.seq` Prelude.rnf useDedicatedReplicationServer++instance+  Data.ToHeaders+    CreateReplicationConfigurationTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    CreateReplicationConfigurationTemplate+  where+  toJSON CreateReplicationConfigurationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ebsEncryptionKeyArn" Data..=)+              Prelude.<$> ebsEncryptionKeyArn,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ( "associateDefaultSecurityGroup"+                  Data..= associateDefaultSecurityGroup+              ),+            Prelude.Just+              ("bandwidthThrottling" Data..= bandwidthThrottling),+            Prelude.Just+              ("createPublicIP" Data..= createPublicIP),+            Prelude.Just+              ("dataPlaneRouting" Data..= dataPlaneRouting),+            Prelude.Just+              ( "defaultLargeStagingDiskType"+                  Data..= defaultLargeStagingDiskType+              ),+            Prelude.Just ("ebsEncryption" Data..= ebsEncryption),+            Prelude.Just+              ( "replicationServerInstanceType"+                  Data..= replicationServerInstanceType+              ),+            Prelude.Just+              ( "replicationServersSecurityGroupsIDs"+                  Data..= replicationServersSecurityGroupsIDs+              ),+            Prelude.Just+              ("stagingAreaSubnetId" Data..= stagingAreaSubnetId),+            Prelude.Just+              ("stagingAreaTags" Data..= stagingAreaTags),+            Prelude.Just+              ( "useDedicatedReplicationServer"+                  Data..= useDedicatedReplicationServer+              )+          ]+      )++instance+  Data.ToPath+    CreateReplicationConfigurationTemplate+  where+  toPath =+    Prelude.const+      "/CreateReplicationConfigurationTemplate"++instance+  Data.ToQuery+    CreateReplicationConfigurationTemplate+  where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/CreateWave.hs view
@@ -0,0 +1,152 @@+{-# 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.MGN.CreateWave+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create wave.+module Amazonka.MGN.CreateWave+  ( -- * Creating a Request+    CreateWave (..),+    newCreateWave,++    -- * Request Lenses+    createWave_description,+    createWave_tags,+    createWave_name,++    -- * Destructuring the Response+    Wave (..),+    newWave,++    -- * Response Lenses+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateWave' smart constructor.+data CreateWave = CreateWave'+  { -- | Wave description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Wave tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Wave name.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWave' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createWave_description' - Wave description.+--+-- 'tags', 'createWave_tags' - Wave tags.+--+-- 'name', 'createWave_name' - Wave name.+newCreateWave ::+  -- | 'name'+  Prelude.Text ->+  CreateWave+newCreateWave pName_ =+  CreateWave'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | Wave description.+createWave_description :: Lens.Lens' CreateWave (Prelude.Maybe Prelude.Text)+createWave_description = Lens.lens (\CreateWave' {description} -> description) (\s@CreateWave' {} a -> s {description = a} :: CreateWave)++-- | Wave tags.+createWave_tags :: Lens.Lens' CreateWave (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWave_tags = Lens.lens (\CreateWave' {tags} -> tags) (\s@CreateWave' {} a -> s {tags = a} :: CreateWave) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Wave name.+createWave_name :: Lens.Lens' CreateWave Prelude.Text+createWave_name = Lens.lens (\CreateWave' {name} -> name) (\s@CreateWave' {} a -> s {name = a} :: CreateWave)++instance Core.AWSRequest CreateWave where+  type AWSResponse CreateWave = Wave+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateWave where+  hashWithSalt _salt CreateWave' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateWave where+  rnf CreateWave' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateWave where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateWave where+  toJSON CreateWave' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateWave where+  toPath = Prelude.const "/CreateWave"++instance Data.ToQuery CreateWave where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/DeleteApplication.hs view
@@ -0,0 +1,155 @@+{-# 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.MGN.DeleteApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete application.+module Amazonka.MGN.DeleteApplication+  ( -- * Creating a Request+    DeleteApplication (..),+    newDeleteApplication,++    -- * Request Lenses+    deleteApplication_applicationID,++    -- * Destructuring the Response+    DeleteApplicationResponse (..),+    newDeleteApplicationResponse,++    -- * Response Lenses+    deleteApplicationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteApplication' smart constructor.+data DeleteApplication = DeleteApplication'+  { -- | Application ID.+    applicationID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationID', 'deleteApplication_applicationID' - Application ID.+newDeleteApplication ::+  -- | 'applicationID'+  Prelude.Text ->+  DeleteApplication+newDeleteApplication pApplicationID_ =+  DeleteApplication' {applicationID = pApplicationID_}++-- | Application ID.+deleteApplication_applicationID :: Lens.Lens' DeleteApplication Prelude.Text+deleteApplication_applicationID = Lens.lens (\DeleteApplication' {applicationID} -> applicationID) (\s@DeleteApplication' {} a -> s {applicationID = a} :: DeleteApplication)++instance Core.AWSRequest DeleteApplication where+  type+    AWSResponse DeleteApplication =+      DeleteApplicationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteApplicationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteApplication where+  hashWithSalt _salt DeleteApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationID++instance Prelude.NFData DeleteApplication where+  rnf DeleteApplication' {..} =+    Prelude.rnf applicationID++instance Data.ToHeaders DeleteApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteApplication where+  toJSON DeleteApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("applicationID" Data..= applicationID)+          ]+      )++instance Data.ToPath DeleteApplication where+  toPath = Prelude.const "/DeleteApplication"++instance Data.ToQuery DeleteApplication where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteApplicationResponse' smart constructor.+data DeleteApplicationResponse = DeleteApplicationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteApplicationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteApplicationResponse_httpStatus' - The response's http status code.+newDeleteApplicationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteApplicationResponse+newDeleteApplicationResponse pHttpStatus_ =+  DeleteApplicationResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteApplicationResponse_httpStatus :: Lens.Lens' DeleteApplicationResponse Prelude.Int+deleteApplicationResponse_httpStatus = Lens.lens (\DeleteApplicationResponse' {httpStatus} -> httpStatus) (\s@DeleteApplicationResponse' {} a -> s {httpStatus = a} :: DeleteApplicationResponse)++instance Prelude.NFData DeleteApplicationResponse where+  rnf DeleteApplicationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DeleteJob.hs view
@@ -0,0 +1,145 @@+{-# 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.MGN.DeleteJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a single Job by ID.+module Amazonka.MGN.DeleteJob+  ( -- * Creating a Request+    DeleteJob (..),+    newDeleteJob,++    -- * Request Lenses+    deleteJob_jobID,++    -- * Destructuring the Response+    DeleteJobResponse (..),+    newDeleteJobResponse,++    -- * Response Lenses+    deleteJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteJob' smart constructor.+data DeleteJob = DeleteJob'+  { -- | Request to delete Job from service by Job ID.+    jobID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobID', 'deleteJob_jobID' - Request to delete Job from service by Job ID.+newDeleteJob ::+  -- | 'jobID'+  Prelude.Text ->+  DeleteJob+newDeleteJob pJobID_ = DeleteJob' {jobID = pJobID_}++-- | Request to delete Job from service by Job ID.+deleteJob_jobID :: Lens.Lens' DeleteJob Prelude.Text+deleteJob_jobID = Lens.lens (\DeleteJob' {jobID} -> jobID) (\s@DeleteJob' {} a -> s {jobID = a} :: DeleteJob)++instance Core.AWSRequest DeleteJob where+  type AWSResponse DeleteJob = DeleteJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteJob where+  hashWithSalt _salt DeleteJob' {..} =+    _salt `Prelude.hashWithSalt` jobID++instance Prelude.NFData DeleteJob where+  rnf DeleteJob' {..} = Prelude.rnf jobID++instance Data.ToHeaders DeleteJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteJob where+  toJSON DeleteJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("jobID" Data..= jobID)]+      )++instance Data.ToPath DeleteJob where+  toPath = Prelude.const "/DeleteJob"++instance Data.ToQuery DeleteJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteJobResponse' smart constructor.+data DeleteJobResponse = DeleteJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteJobResponse_httpStatus' - The response's http status code.+newDeleteJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteJobResponse+newDeleteJobResponse pHttpStatus_ =+  DeleteJobResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteJobResponse_httpStatus :: Lens.Lens' DeleteJobResponse Prelude.Int+deleteJobResponse_httpStatus = Lens.lens (\DeleteJobResponse' {httpStatus} -> httpStatus) (\s@DeleteJobResponse' {} a -> s {httpStatus = a} :: DeleteJobResponse)++instance Prelude.NFData DeleteJobResponse where+  rnf DeleteJobResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DeleteLaunchConfigurationTemplate.hs view
@@ -0,0 +1,190 @@+{-# 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.MGN.DeleteLaunchConfigurationTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a single Launch Configuration Template by ID.+module Amazonka.MGN.DeleteLaunchConfigurationTemplate+  ( -- * Creating a Request+    DeleteLaunchConfigurationTemplate (..),+    newDeleteLaunchConfigurationTemplate,++    -- * Request Lenses+    deleteLaunchConfigurationTemplate_launchConfigurationTemplateID,++    -- * Destructuring the Response+    DeleteLaunchConfigurationTemplateResponse (..),+    newDeleteLaunchConfigurationTemplateResponse,++    -- * Response Lenses+    deleteLaunchConfigurationTemplateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteLaunchConfigurationTemplate' smart constructor.+data DeleteLaunchConfigurationTemplate = DeleteLaunchConfigurationTemplate'+  { -- | ID of resource to be deleted.+    launchConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLaunchConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchConfigurationTemplateID', 'deleteLaunchConfigurationTemplate_launchConfigurationTemplateID' - ID of resource to be deleted.+newDeleteLaunchConfigurationTemplate ::+  -- | 'launchConfigurationTemplateID'+  Prelude.Text ->+  DeleteLaunchConfigurationTemplate+newDeleteLaunchConfigurationTemplate+  pLaunchConfigurationTemplateID_ =+    DeleteLaunchConfigurationTemplate'+      { launchConfigurationTemplateID =+          pLaunchConfigurationTemplateID_+      }++-- | ID of resource to be deleted.+deleteLaunchConfigurationTemplate_launchConfigurationTemplateID :: Lens.Lens' DeleteLaunchConfigurationTemplate Prelude.Text+deleteLaunchConfigurationTemplate_launchConfigurationTemplateID = Lens.lens (\DeleteLaunchConfigurationTemplate' {launchConfigurationTemplateID} -> launchConfigurationTemplateID) (\s@DeleteLaunchConfigurationTemplate' {} a -> s {launchConfigurationTemplateID = a} :: DeleteLaunchConfigurationTemplate)++instance+  Core.AWSRequest+    DeleteLaunchConfigurationTemplate+  where+  type+    AWSResponse DeleteLaunchConfigurationTemplate =+      DeleteLaunchConfigurationTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteLaunchConfigurationTemplateResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteLaunchConfigurationTemplate+  where+  hashWithSalt+    _salt+    DeleteLaunchConfigurationTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` launchConfigurationTemplateID++instance+  Prelude.NFData+    DeleteLaunchConfigurationTemplate+  where+  rnf DeleteLaunchConfigurationTemplate' {..} =+    Prelude.rnf launchConfigurationTemplateID++instance+  Data.ToHeaders+    DeleteLaunchConfigurationTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DeleteLaunchConfigurationTemplate+  where+  toJSON DeleteLaunchConfigurationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "launchConfigurationTemplateID"+                  Data..= launchConfigurationTemplateID+              )+          ]+      )++instance+  Data.ToPath+    DeleteLaunchConfigurationTemplate+  where+  toPath =+    Prelude.const "/DeleteLaunchConfigurationTemplate"++instance+  Data.ToQuery+    DeleteLaunchConfigurationTemplate+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteLaunchConfigurationTemplateResponse' smart constructor.+data DeleteLaunchConfigurationTemplateResponse = DeleteLaunchConfigurationTemplateResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLaunchConfigurationTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteLaunchConfigurationTemplateResponse_httpStatus' - The response's http status code.+newDeleteLaunchConfigurationTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteLaunchConfigurationTemplateResponse+newDeleteLaunchConfigurationTemplateResponse+  pHttpStatus_ =+    DeleteLaunchConfigurationTemplateResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+deleteLaunchConfigurationTemplateResponse_httpStatus :: Lens.Lens' DeleteLaunchConfigurationTemplateResponse Prelude.Int+deleteLaunchConfigurationTemplateResponse_httpStatus = Lens.lens (\DeleteLaunchConfigurationTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteLaunchConfigurationTemplateResponse' {} a -> s {httpStatus = a} :: DeleteLaunchConfigurationTemplateResponse)++instance+  Prelude.NFData+    DeleteLaunchConfigurationTemplateResponse+  where+  rnf DeleteLaunchConfigurationTemplateResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DeleteReplicationConfigurationTemplate.hs view
@@ -0,0 +1,196 @@+{-# 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.MGN.DeleteReplicationConfigurationTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a single Replication Configuration Template by ID+module Amazonka.MGN.DeleteReplicationConfigurationTemplate+  ( -- * Creating a Request+    DeleteReplicationConfigurationTemplate (..),+    newDeleteReplicationConfigurationTemplate,++    -- * Request Lenses+    deleteReplicationConfigurationTemplate_replicationConfigurationTemplateID,++    -- * Destructuring the Response+    DeleteReplicationConfigurationTemplateResponse (..),+    newDeleteReplicationConfigurationTemplateResponse,++    -- * Response Lenses+    deleteReplicationConfigurationTemplateResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteReplicationConfigurationTemplate' smart constructor.+data DeleteReplicationConfigurationTemplate = DeleteReplicationConfigurationTemplate'+  { -- | Request to delete Replication Configuration Template from service by+    -- Replication Configuration Template ID.+    replicationConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteReplicationConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replicationConfigurationTemplateID', 'deleteReplicationConfigurationTemplate_replicationConfigurationTemplateID' - Request to delete Replication Configuration Template from service by+-- Replication Configuration Template ID.+newDeleteReplicationConfigurationTemplate ::+  -- | 'replicationConfigurationTemplateID'+  Prelude.Text ->+  DeleteReplicationConfigurationTemplate+newDeleteReplicationConfigurationTemplate+  pReplicationConfigurationTemplateID_ =+    DeleteReplicationConfigurationTemplate'+      { replicationConfigurationTemplateID =+          pReplicationConfigurationTemplateID_+      }++-- | Request to delete Replication Configuration Template from service by+-- Replication Configuration Template ID.+deleteReplicationConfigurationTemplate_replicationConfigurationTemplateID :: Lens.Lens' DeleteReplicationConfigurationTemplate Prelude.Text+deleteReplicationConfigurationTemplate_replicationConfigurationTemplateID = Lens.lens (\DeleteReplicationConfigurationTemplate' {replicationConfigurationTemplateID} -> replicationConfigurationTemplateID) (\s@DeleteReplicationConfigurationTemplate' {} a -> s {replicationConfigurationTemplateID = a} :: DeleteReplicationConfigurationTemplate)++instance+  Core.AWSRequest+    DeleteReplicationConfigurationTemplate+  where+  type+    AWSResponse+      DeleteReplicationConfigurationTemplate =+      DeleteReplicationConfigurationTemplateResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteReplicationConfigurationTemplateResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteReplicationConfigurationTemplate+  where+  hashWithSalt+    _salt+    DeleteReplicationConfigurationTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` replicationConfigurationTemplateID++instance+  Prelude.NFData+    DeleteReplicationConfigurationTemplate+  where+  rnf DeleteReplicationConfigurationTemplate' {..} =+    Prelude.rnf replicationConfigurationTemplateID++instance+  Data.ToHeaders+    DeleteReplicationConfigurationTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DeleteReplicationConfigurationTemplate+  where+  toJSON DeleteReplicationConfigurationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "replicationConfigurationTemplateID"+                  Data..= replicationConfigurationTemplateID+              )+          ]+      )++instance+  Data.ToPath+    DeleteReplicationConfigurationTemplate+  where+  toPath =+    Prelude.const+      "/DeleteReplicationConfigurationTemplate"++instance+  Data.ToQuery+    DeleteReplicationConfigurationTemplate+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteReplicationConfigurationTemplateResponse' smart constructor.+data DeleteReplicationConfigurationTemplateResponse = DeleteReplicationConfigurationTemplateResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteReplicationConfigurationTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteReplicationConfigurationTemplateResponse_httpStatus' - The response's http status code.+newDeleteReplicationConfigurationTemplateResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteReplicationConfigurationTemplateResponse+newDeleteReplicationConfigurationTemplateResponse+  pHttpStatus_ =+    DeleteReplicationConfigurationTemplateResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+deleteReplicationConfigurationTemplateResponse_httpStatus :: Lens.Lens' DeleteReplicationConfigurationTemplateResponse Prelude.Int+deleteReplicationConfigurationTemplateResponse_httpStatus = Lens.lens (\DeleteReplicationConfigurationTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteReplicationConfigurationTemplateResponse' {} a -> s {httpStatus = a} :: DeleteReplicationConfigurationTemplateResponse)++instance+  Prelude.NFData+    DeleteReplicationConfigurationTemplateResponse+  where+  rnf+    DeleteReplicationConfigurationTemplateResponse' {..} =+      Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DeleteSourceServer.hs view
@@ -0,0 +1,158 @@+{-# 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.MGN.DeleteSourceServer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a single source server by ID.+module Amazonka.MGN.DeleteSourceServer+  ( -- * Creating a Request+    DeleteSourceServer (..),+    newDeleteSourceServer,++    -- * Request Lenses+    deleteSourceServer_sourceServerID,++    -- * Destructuring the Response+    DeleteSourceServerResponse (..),+    newDeleteSourceServerResponse,++    -- * Response Lenses+    deleteSourceServerResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSourceServer' smart constructor.+data DeleteSourceServer = DeleteSourceServer'+  { -- | Request to delete Source Server from service by Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSourceServer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'deleteSourceServer_sourceServerID' - Request to delete Source Server from service by Server ID.+newDeleteSourceServer ::+  -- | 'sourceServerID'+  Prelude.Text ->+  DeleteSourceServer+newDeleteSourceServer pSourceServerID_ =+  DeleteSourceServer'+    { sourceServerID =+        pSourceServerID_+    }++-- | Request to delete Source Server from service by Server ID.+deleteSourceServer_sourceServerID :: Lens.Lens' DeleteSourceServer Prelude.Text+deleteSourceServer_sourceServerID = Lens.lens (\DeleteSourceServer' {sourceServerID} -> sourceServerID) (\s@DeleteSourceServer' {} a -> s {sourceServerID = a} :: DeleteSourceServer)++instance Core.AWSRequest DeleteSourceServer where+  type+    AWSResponse DeleteSourceServer =+      DeleteSourceServerResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSourceServerResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteSourceServer where+  hashWithSalt _salt DeleteSourceServer' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData DeleteSourceServer where+  rnf DeleteSourceServer' {..} =+    Prelude.rnf sourceServerID++instance Data.ToHeaders DeleteSourceServer where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSourceServer where+  toJSON DeleteSourceServer' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath DeleteSourceServer where+  toPath = Prelude.const "/DeleteSourceServer"++instance Data.ToQuery DeleteSourceServer where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSourceServerResponse' smart constructor.+data DeleteSourceServerResponse = DeleteSourceServerResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSourceServerResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteSourceServerResponse_httpStatus' - The response's http status code.+newDeleteSourceServerResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSourceServerResponse+newDeleteSourceServerResponse pHttpStatus_ =+  DeleteSourceServerResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteSourceServerResponse_httpStatus :: Lens.Lens' DeleteSourceServerResponse Prelude.Int+deleteSourceServerResponse_httpStatus = Lens.lens (\DeleteSourceServerResponse' {httpStatus} -> httpStatus) (\s@DeleteSourceServerResponse' {} a -> s {httpStatus = a} :: DeleteSourceServerResponse)++instance Prelude.NFData DeleteSourceServerResponse where+  rnf DeleteSourceServerResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DeleteVcenterClient.hs view
@@ -0,0 +1,135 @@+{-# 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.MGN.DeleteVcenterClient+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a given vCenter client by ID.+module Amazonka.MGN.DeleteVcenterClient+  ( -- * Creating a Request+    DeleteVcenterClient (..),+    newDeleteVcenterClient,++    -- * Request Lenses+    deleteVcenterClient_vcenterClientID,++    -- * Destructuring the Response+    DeleteVcenterClientResponse (..),+    newDeleteVcenterClientResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteVcenterClient' smart constructor.+data DeleteVcenterClient = DeleteVcenterClient'+  { -- | ID of resource to be deleted.+    vcenterClientID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVcenterClient' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vcenterClientID', 'deleteVcenterClient_vcenterClientID' - ID of resource to be deleted.+newDeleteVcenterClient ::+  -- | 'vcenterClientID'+  Prelude.Text ->+  DeleteVcenterClient+newDeleteVcenterClient pVcenterClientID_ =+  DeleteVcenterClient'+    { vcenterClientID =+        pVcenterClientID_+    }++-- | ID of resource to be deleted.+deleteVcenterClient_vcenterClientID :: Lens.Lens' DeleteVcenterClient Prelude.Text+deleteVcenterClient_vcenterClientID = Lens.lens (\DeleteVcenterClient' {vcenterClientID} -> vcenterClientID) (\s@DeleteVcenterClient' {} a -> s {vcenterClientID = a} :: DeleteVcenterClient)++instance Core.AWSRequest DeleteVcenterClient where+  type+    AWSResponse DeleteVcenterClient =+      DeleteVcenterClientResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteVcenterClientResponse'++instance Prelude.Hashable DeleteVcenterClient where+  hashWithSalt _salt DeleteVcenterClient' {..} =+    _salt `Prelude.hashWithSalt` vcenterClientID++instance Prelude.NFData DeleteVcenterClient where+  rnf DeleteVcenterClient' {..} =+    Prelude.rnf vcenterClientID++instance Data.ToHeaders DeleteVcenterClient where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteVcenterClient where+  toJSON DeleteVcenterClient' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("vcenterClientID" Data..= vcenterClientID)+          ]+      )++instance Data.ToPath DeleteVcenterClient where+  toPath = Prelude.const "/DeleteVcenterClient"++instance Data.ToQuery DeleteVcenterClient where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVcenterClientResponse' smart constructor.+data DeleteVcenterClientResponse = DeleteVcenterClientResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVcenterClientResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteVcenterClientResponse ::+  DeleteVcenterClientResponse+newDeleteVcenterClientResponse =+  DeleteVcenterClientResponse'++instance Prelude.NFData DeleteVcenterClientResponse where+  rnf _ = ()
+ gen/Amazonka/MGN/DeleteWave.hs view
@@ -0,0 +1,146 @@+{-# 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.MGN.DeleteWave+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete wave.+module Amazonka.MGN.DeleteWave+  ( -- * Creating a Request+    DeleteWave (..),+    newDeleteWave,++    -- * Request Lenses+    deleteWave_waveID,++    -- * Destructuring the Response+    DeleteWaveResponse (..),+    newDeleteWaveResponse,++    -- * Response Lenses+    deleteWaveResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteWave' smart constructor.+data DeleteWave = DeleteWave'+  { -- | Wave ID.+    waveID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWave' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'waveID', 'deleteWave_waveID' - Wave ID.+newDeleteWave ::+  -- | 'waveID'+  Prelude.Text ->+  DeleteWave+newDeleteWave pWaveID_ =+  DeleteWave' {waveID = pWaveID_}++-- | Wave ID.+deleteWave_waveID :: Lens.Lens' DeleteWave Prelude.Text+deleteWave_waveID = Lens.lens (\DeleteWave' {waveID} -> waveID) (\s@DeleteWave' {} a -> s {waveID = a} :: DeleteWave)++instance Core.AWSRequest DeleteWave where+  type AWSResponse DeleteWave = DeleteWaveResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteWaveResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteWave where+  hashWithSalt _salt DeleteWave' {..} =+    _salt `Prelude.hashWithSalt` waveID++instance Prelude.NFData DeleteWave where+  rnf DeleteWave' {..} = Prelude.rnf waveID++instance Data.ToHeaders DeleteWave where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteWave where+  toJSON DeleteWave' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("waveID" Data..= waveID)]+      )++instance Data.ToPath DeleteWave where+  toPath = Prelude.const "/DeleteWave"++instance Data.ToQuery DeleteWave where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteWaveResponse' smart constructor.+data DeleteWaveResponse = DeleteWaveResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWaveResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteWaveResponse_httpStatus' - The response's http status code.+newDeleteWaveResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteWaveResponse+newDeleteWaveResponse pHttpStatus_ =+  DeleteWaveResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteWaveResponse_httpStatus :: Lens.Lens' DeleteWaveResponse Prelude.Int+deleteWaveResponse_httpStatus = Lens.lens (\DeleteWaveResponse' {httpStatus} -> httpStatus) (\s@DeleteWaveResponse' {} a -> s {httpStatus = a} :: DeleteWaveResponse)++instance Prelude.NFData DeleteWaveResponse where+  rnf DeleteWaveResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DescribeJobLogItems.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.DescribeJobLogItems+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves detailed job log items with paging.+--+-- This operation returns paginated results.+module Amazonka.MGN.DescribeJobLogItems+  ( -- * Creating a Request+    DescribeJobLogItems (..),+    newDescribeJobLogItems,++    -- * Request Lenses+    describeJobLogItems_maxResults,+    describeJobLogItems_nextToken,+    describeJobLogItems_jobID,++    -- * Destructuring the Response+    DescribeJobLogItemsResponse (..),+    newDescribeJobLogItemsResponse,++    -- * Response Lenses+    describeJobLogItemsResponse_items,+    describeJobLogItemsResponse_nextToken,+    describeJobLogItemsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeJobLogItems' smart constructor.+data DescribeJobLogItems = DescribeJobLogItems'+  { -- | Request to describe Job log item maximum results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Request to describe Job log next token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Request to describe Job log job ID.+    jobID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobLogItems' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeJobLogItems_maxResults' - Request to describe Job log item maximum results.+--+-- 'nextToken', 'describeJobLogItems_nextToken' - Request to describe Job log next token.+--+-- 'jobID', 'describeJobLogItems_jobID' - Request to describe Job log job ID.+newDescribeJobLogItems ::+  -- | 'jobID'+  Prelude.Text ->+  DescribeJobLogItems+newDescribeJobLogItems pJobID_ =+  DescribeJobLogItems'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      jobID = pJobID_+    }++-- | Request to describe Job log item maximum results.+describeJobLogItems_maxResults :: Lens.Lens' DescribeJobLogItems (Prelude.Maybe Prelude.Natural)+describeJobLogItems_maxResults = Lens.lens (\DescribeJobLogItems' {maxResults} -> maxResults) (\s@DescribeJobLogItems' {} a -> s {maxResults = a} :: DescribeJobLogItems)++-- | Request to describe Job log next token.+describeJobLogItems_nextToken :: Lens.Lens' DescribeJobLogItems (Prelude.Maybe Prelude.Text)+describeJobLogItems_nextToken = Lens.lens (\DescribeJobLogItems' {nextToken} -> nextToken) (\s@DescribeJobLogItems' {} a -> s {nextToken = a} :: DescribeJobLogItems)++-- | Request to describe Job log job ID.+describeJobLogItems_jobID :: Lens.Lens' DescribeJobLogItems Prelude.Text+describeJobLogItems_jobID = Lens.lens (\DescribeJobLogItems' {jobID} -> jobID) (\s@DescribeJobLogItems' {} a -> s {jobID = a} :: DescribeJobLogItems)++instance Core.AWSPager DescribeJobLogItems where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeJobLogItemsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeJobLogItemsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeJobLogItems_nextToken+          Lens..~ rs+          Lens.^? describeJobLogItemsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeJobLogItems where+  type+    AWSResponse DescribeJobLogItems =+      DescribeJobLogItemsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeJobLogItemsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeJobLogItems where+  hashWithSalt _salt DescribeJobLogItems' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` jobID++instance Prelude.NFData DescribeJobLogItems where+  rnf DescribeJobLogItems' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf jobID++instance Data.ToHeaders DescribeJobLogItems where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeJobLogItems where+  toJSON DescribeJobLogItems' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("jobID" Data..= jobID)+          ]+      )++instance Data.ToPath DescribeJobLogItems where+  toPath = Prelude.const "/DescribeJobLogItems"++instance Data.ToQuery DescribeJobLogItems where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeJobLogItemsResponse' smart constructor.+data DescribeJobLogItemsResponse = DescribeJobLogItemsResponse'+  { -- | Request to describe Job log response items.+    items :: Prelude.Maybe [JobLog],+    -- | Request to describe Job log response next token.+    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 'DescribeJobLogItemsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'describeJobLogItemsResponse_items' - Request to describe Job log response items.+--+-- 'nextToken', 'describeJobLogItemsResponse_nextToken' - Request to describe Job log response next token.+--+-- 'httpStatus', 'describeJobLogItemsResponse_httpStatus' - The response's http status code.+newDescribeJobLogItemsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeJobLogItemsResponse+newDescribeJobLogItemsResponse pHttpStatus_ =+  DescribeJobLogItemsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Request to describe Job log response items.+describeJobLogItemsResponse_items :: Lens.Lens' DescribeJobLogItemsResponse (Prelude.Maybe [JobLog])+describeJobLogItemsResponse_items = Lens.lens (\DescribeJobLogItemsResponse' {items} -> items) (\s@DescribeJobLogItemsResponse' {} a -> s {items = a} :: DescribeJobLogItemsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Request to describe Job log response next token.+describeJobLogItemsResponse_nextToken :: Lens.Lens' DescribeJobLogItemsResponse (Prelude.Maybe Prelude.Text)+describeJobLogItemsResponse_nextToken = Lens.lens (\DescribeJobLogItemsResponse' {nextToken} -> nextToken) (\s@DescribeJobLogItemsResponse' {} a -> s {nextToken = a} :: DescribeJobLogItemsResponse)++-- | The response's http status code.+describeJobLogItemsResponse_httpStatus :: Lens.Lens' DescribeJobLogItemsResponse Prelude.Int+describeJobLogItemsResponse_httpStatus = Lens.lens (\DescribeJobLogItemsResponse' {httpStatus} -> httpStatus) (\s@DescribeJobLogItemsResponse' {} a -> s {httpStatus = a} :: DescribeJobLogItemsResponse)++instance Prelude.NFData DescribeJobLogItemsResponse where+  rnf DescribeJobLogItemsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DescribeJobs.hs view
@@ -0,0 +1,232 @@+{-# 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.MGN.DescribeJobs+-- 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 Jobs. Use the JobsID and fromDate and toData filters+-- to limit which jobs are returned. The response is sorted by+-- creationDataTime - latest date first. Jobs are normally created by the+-- StartTest, StartCutover, and TerminateTargetInstances APIs. Jobs are+-- also created by DiagnosticLaunch and TerminateDiagnosticInstances, which+-- are APIs available only to *Support* and only used in response to+-- relevant support tickets.+--+-- This operation returns paginated results.+module Amazonka.MGN.DescribeJobs+  ( -- * Creating a Request+    DescribeJobs (..),+    newDescribeJobs,++    -- * Request Lenses+    describeJobs_filters,+    describeJobs_maxResults,+    describeJobs_nextToken,++    -- * Destructuring the Response+    DescribeJobsResponse (..),+    newDescribeJobsResponse,++    -- * Response Lenses+    describeJobsResponse_items,+    describeJobsResponse_nextToken,+    describeJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeJobs' smart constructor.+data DescribeJobs = DescribeJobs'+  { -- | Request to describe Job log filters.+    filters :: Prelude.Maybe DescribeJobsRequestFilters,+    -- | Request to describe job log items by max results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Request to describe job log items by next token.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeJobs_filters' - Request to describe Job log filters.+--+-- 'maxResults', 'describeJobs_maxResults' - Request to describe job log items by max results.+--+-- 'nextToken', 'describeJobs_nextToken' - Request to describe job log items by next token.+newDescribeJobs ::+  DescribeJobs+newDescribeJobs =+  DescribeJobs'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Request to describe Job log filters.+describeJobs_filters :: Lens.Lens' DescribeJobs (Prelude.Maybe DescribeJobsRequestFilters)+describeJobs_filters = Lens.lens (\DescribeJobs' {filters} -> filters) (\s@DescribeJobs' {} a -> s {filters = a} :: DescribeJobs)++-- | Request to describe job log items by max results.+describeJobs_maxResults :: Lens.Lens' DescribeJobs (Prelude.Maybe Prelude.Natural)+describeJobs_maxResults = Lens.lens (\DescribeJobs' {maxResults} -> maxResults) (\s@DescribeJobs' {} a -> s {maxResults = a} :: DescribeJobs)++-- | Request to describe job log items by next token.+describeJobs_nextToken :: Lens.Lens' DescribeJobs (Prelude.Maybe Prelude.Text)+describeJobs_nextToken = Lens.lens (\DescribeJobs' {nextToken} -> nextToken) (\s@DescribeJobs' {} a -> s {nextToken = a} :: DescribeJobs)++instance Core.AWSPager DescribeJobs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeJobsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeJobsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeJobs_nextToken+          Lens..~ rs+          Lens.^? describeJobsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeJobs where+  type AWSResponse DescribeJobs = DescribeJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeJobsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeJobs where+  hashWithSalt _salt DescribeJobs' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeJobs where+  rnf DescribeJobs' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeJobs where+  toJSON DescribeJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeJobs where+  toPath = Prelude.const "/DescribeJobs"++instance Data.ToQuery DescribeJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeJobsResponse' smart constructor.+data DescribeJobsResponse = DescribeJobsResponse'+  { -- | Request to describe Job log items.+    items :: Prelude.Maybe [Job],+    -- | Request to describe Job response by next token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'describeJobsResponse_items' - Request to describe Job log items.+--+-- 'nextToken', 'describeJobsResponse_nextToken' - Request to describe Job response by next token.+--+-- 'httpStatus', 'describeJobsResponse_httpStatus' - The response's http status code.+newDescribeJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeJobsResponse+newDescribeJobsResponse pHttpStatus_ =+  DescribeJobsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Request to describe Job log items.+describeJobsResponse_items :: Lens.Lens' DescribeJobsResponse (Prelude.Maybe [Job])+describeJobsResponse_items = Lens.lens (\DescribeJobsResponse' {items} -> items) (\s@DescribeJobsResponse' {} a -> s {items = a} :: DescribeJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Request to describe Job response by next token.+describeJobsResponse_nextToken :: Lens.Lens' DescribeJobsResponse (Prelude.Maybe Prelude.Text)+describeJobsResponse_nextToken = Lens.lens (\DescribeJobsResponse' {nextToken} -> nextToken) (\s@DescribeJobsResponse' {} a -> s {nextToken = a} :: DescribeJobsResponse)++-- | The response's http status code.+describeJobsResponse_httpStatus :: Lens.Lens' DescribeJobsResponse Prelude.Int+describeJobsResponse_httpStatus = Lens.lens (\DescribeJobsResponse' {httpStatus} -> httpStatus) (\s@DescribeJobsResponse' {} a -> s {httpStatus = a} :: DescribeJobsResponse)++instance Prelude.NFData DescribeJobsResponse where+  rnf DescribeJobsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DescribeLaunchConfigurationTemplates.hs view
@@ -0,0 +1,273 @@+{-# 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.MGN.DescribeLaunchConfigurationTemplates+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all Launch Configuration Templates, filtered by Launch+-- Configuration Template IDs+--+-- This operation returns paginated results.+module Amazonka.MGN.DescribeLaunchConfigurationTemplates+  ( -- * Creating a Request+    DescribeLaunchConfigurationTemplates (..),+    newDescribeLaunchConfigurationTemplates,++    -- * Request Lenses+    describeLaunchConfigurationTemplates_launchConfigurationTemplateIDs,+    describeLaunchConfigurationTemplates_maxResults,+    describeLaunchConfigurationTemplates_nextToken,++    -- * Destructuring the Response+    DescribeLaunchConfigurationTemplatesResponse (..),+    newDescribeLaunchConfigurationTemplatesResponse,++    -- * Response Lenses+    describeLaunchConfigurationTemplatesResponse_items,+    describeLaunchConfigurationTemplatesResponse_nextToken,+    describeLaunchConfigurationTemplatesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeLaunchConfigurationTemplates' smart constructor.+data DescribeLaunchConfigurationTemplates = DescribeLaunchConfigurationTemplates'+  { -- | Request to filter Launch Configuration Templates list by Launch+    -- Configuration Template ID.+    launchConfigurationTemplateIDs :: Prelude.Maybe [Prelude.Text],+    -- | Maximum results to be returned in DescribeLaunchConfigurationTemplates.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next pagination token returned from+    -- DescribeLaunchConfigurationTemplates.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLaunchConfigurationTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchConfigurationTemplateIDs', 'describeLaunchConfigurationTemplates_launchConfigurationTemplateIDs' - Request to filter Launch Configuration Templates list by Launch+-- Configuration Template ID.+--+-- 'maxResults', 'describeLaunchConfigurationTemplates_maxResults' - Maximum results to be returned in DescribeLaunchConfigurationTemplates.+--+-- 'nextToken', 'describeLaunchConfigurationTemplates_nextToken' - Next pagination token returned from+-- DescribeLaunchConfigurationTemplates.+newDescribeLaunchConfigurationTemplates ::+  DescribeLaunchConfigurationTemplates+newDescribeLaunchConfigurationTemplates =+  DescribeLaunchConfigurationTemplates'+    { launchConfigurationTemplateIDs =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Request to filter Launch Configuration Templates list by Launch+-- Configuration Template ID.+describeLaunchConfigurationTemplates_launchConfigurationTemplateIDs :: Lens.Lens' DescribeLaunchConfigurationTemplates (Prelude.Maybe [Prelude.Text])+describeLaunchConfigurationTemplates_launchConfigurationTemplateIDs = Lens.lens (\DescribeLaunchConfigurationTemplates' {launchConfigurationTemplateIDs} -> launchConfigurationTemplateIDs) (\s@DescribeLaunchConfigurationTemplates' {} a -> s {launchConfigurationTemplateIDs = a} :: DescribeLaunchConfigurationTemplates) Prelude.. Lens.mapping Lens.coerced++-- | Maximum results to be returned in DescribeLaunchConfigurationTemplates.+describeLaunchConfigurationTemplates_maxResults :: Lens.Lens' DescribeLaunchConfigurationTemplates (Prelude.Maybe Prelude.Natural)+describeLaunchConfigurationTemplates_maxResults = Lens.lens (\DescribeLaunchConfigurationTemplates' {maxResults} -> maxResults) (\s@DescribeLaunchConfigurationTemplates' {} a -> s {maxResults = a} :: DescribeLaunchConfigurationTemplates)++-- | Next pagination token returned from+-- DescribeLaunchConfigurationTemplates.+describeLaunchConfigurationTemplates_nextToken :: Lens.Lens' DescribeLaunchConfigurationTemplates (Prelude.Maybe Prelude.Text)+describeLaunchConfigurationTemplates_nextToken = Lens.lens (\DescribeLaunchConfigurationTemplates' {nextToken} -> nextToken) (\s@DescribeLaunchConfigurationTemplates' {} a -> s {nextToken = a} :: DescribeLaunchConfigurationTemplates)++instance+  Core.AWSPager+    DescribeLaunchConfigurationTemplates+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeLaunchConfigurationTemplatesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeLaunchConfigurationTemplatesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeLaunchConfigurationTemplates_nextToken+          Lens..~ rs+          Lens.^? describeLaunchConfigurationTemplatesResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    DescribeLaunchConfigurationTemplates+  where+  type+    AWSResponse DescribeLaunchConfigurationTemplates =+      DescribeLaunchConfigurationTemplatesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeLaunchConfigurationTemplatesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeLaunchConfigurationTemplates+  where+  hashWithSalt+    _salt+    DescribeLaunchConfigurationTemplates' {..} =+      _salt+        `Prelude.hashWithSalt` launchConfigurationTemplateIDs+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken++instance+  Prelude.NFData+    DescribeLaunchConfigurationTemplates+  where+  rnf DescribeLaunchConfigurationTemplates' {..} =+    Prelude.rnf launchConfigurationTemplateIDs+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance+  Data.ToHeaders+    DescribeLaunchConfigurationTemplates+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeLaunchConfigurationTemplates+  where+  toJSON DescribeLaunchConfigurationTemplates' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("launchConfigurationTemplateIDs" Data..=)+              Prelude.<$> launchConfigurationTemplateIDs,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance+  Data.ToPath+    DescribeLaunchConfigurationTemplates+  where+  toPath =+    Prelude.const+      "/DescribeLaunchConfigurationTemplates"++instance+  Data.ToQuery+    DescribeLaunchConfigurationTemplates+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeLaunchConfigurationTemplatesResponse' smart constructor.+data DescribeLaunchConfigurationTemplatesResponse = DescribeLaunchConfigurationTemplatesResponse'+  { -- | List of items returned by DescribeLaunchConfigurationTemplates.+    items :: Prelude.Maybe [LaunchConfigurationTemplate],+    -- | Next pagination token returned from+    -- DescribeLaunchConfigurationTemplates.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeLaunchConfigurationTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'describeLaunchConfigurationTemplatesResponse_items' - List of items returned by DescribeLaunchConfigurationTemplates.+--+-- 'nextToken', 'describeLaunchConfigurationTemplatesResponse_nextToken' - Next pagination token returned from+-- DescribeLaunchConfigurationTemplates.+--+-- 'httpStatus', 'describeLaunchConfigurationTemplatesResponse_httpStatus' - The response's http status code.+newDescribeLaunchConfigurationTemplatesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeLaunchConfigurationTemplatesResponse+newDescribeLaunchConfigurationTemplatesResponse+  pHttpStatus_ =+    DescribeLaunchConfigurationTemplatesResponse'+      { items =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | List of items returned by DescribeLaunchConfigurationTemplates.+describeLaunchConfigurationTemplatesResponse_items :: Lens.Lens' DescribeLaunchConfigurationTemplatesResponse (Prelude.Maybe [LaunchConfigurationTemplate])+describeLaunchConfigurationTemplatesResponse_items = Lens.lens (\DescribeLaunchConfigurationTemplatesResponse' {items} -> items) (\s@DescribeLaunchConfigurationTemplatesResponse' {} a -> s {items = a} :: DescribeLaunchConfigurationTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next pagination token returned from+-- DescribeLaunchConfigurationTemplates.+describeLaunchConfigurationTemplatesResponse_nextToken :: Lens.Lens' DescribeLaunchConfigurationTemplatesResponse (Prelude.Maybe Prelude.Text)+describeLaunchConfigurationTemplatesResponse_nextToken = Lens.lens (\DescribeLaunchConfigurationTemplatesResponse' {nextToken} -> nextToken) (\s@DescribeLaunchConfigurationTemplatesResponse' {} a -> s {nextToken = a} :: DescribeLaunchConfigurationTemplatesResponse)++-- | The response's http status code.+describeLaunchConfigurationTemplatesResponse_httpStatus :: Lens.Lens' DescribeLaunchConfigurationTemplatesResponse Prelude.Int+describeLaunchConfigurationTemplatesResponse_httpStatus = Lens.lens (\DescribeLaunchConfigurationTemplatesResponse' {httpStatus} -> httpStatus) (\s@DescribeLaunchConfigurationTemplatesResponse' {} a -> s {httpStatus = a} :: DescribeLaunchConfigurationTemplatesResponse)++instance+  Prelude.NFData+    DescribeLaunchConfigurationTemplatesResponse+  where+  rnf DescribeLaunchConfigurationTemplatesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DescribeReplicationConfigurationTemplates.hs view
@@ -0,0 +1,269 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.DescribeReplicationConfigurationTemplates+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all ReplicationConfigurationTemplates, filtered by Source Server+-- IDs.+--+-- This operation returns paginated results.+module Amazonka.MGN.DescribeReplicationConfigurationTemplates+  ( -- * Creating a Request+    DescribeReplicationConfigurationTemplates (..),+    newDescribeReplicationConfigurationTemplates,++    -- * Request Lenses+    describeReplicationConfigurationTemplates_maxResults,+    describeReplicationConfigurationTemplates_nextToken,+    describeReplicationConfigurationTemplates_replicationConfigurationTemplateIDs,++    -- * Destructuring the Response+    DescribeReplicationConfigurationTemplatesResponse (..),+    newDescribeReplicationConfigurationTemplatesResponse,++    -- * Response Lenses+    describeReplicationConfigurationTemplatesResponse_items,+    describeReplicationConfigurationTemplatesResponse_nextToken,+    describeReplicationConfigurationTemplatesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeReplicationConfigurationTemplates' smart constructor.+data DescribeReplicationConfigurationTemplates = DescribeReplicationConfigurationTemplates'+  { -- | Request to describe Replication Configuration template by max results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Request to describe Replication Configuration template by next token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Request to describe Replication Configuration template by template IDs.+    replicationConfigurationTemplateIDs :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReplicationConfigurationTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeReplicationConfigurationTemplates_maxResults' - Request to describe Replication Configuration template by max results.+--+-- 'nextToken', 'describeReplicationConfigurationTemplates_nextToken' - Request to describe Replication Configuration template by next token.+--+-- 'replicationConfigurationTemplateIDs', 'describeReplicationConfigurationTemplates_replicationConfigurationTemplateIDs' - Request to describe Replication Configuration template by template IDs.+newDescribeReplicationConfigurationTemplates ::+  DescribeReplicationConfigurationTemplates+newDescribeReplicationConfigurationTemplates =+  DescribeReplicationConfigurationTemplates'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      replicationConfigurationTemplateIDs =+        Prelude.Nothing+    }++-- | Request to describe Replication Configuration template by max results.+describeReplicationConfigurationTemplates_maxResults :: Lens.Lens' DescribeReplicationConfigurationTemplates (Prelude.Maybe Prelude.Natural)+describeReplicationConfigurationTemplates_maxResults = Lens.lens (\DescribeReplicationConfigurationTemplates' {maxResults} -> maxResults) (\s@DescribeReplicationConfigurationTemplates' {} a -> s {maxResults = a} :: DescribeReplicationConfigurationTemplates)++-- | Request to describe Replication Configuration template by next token.+describeReplicationConfigurationTemplates_nextToken :: Lens.Lens' DescribeReplicationConfigurationTemplates (Prelude.Maybe Prelude.Text)+describeReplicationConfigurationTemplates_nextToken = Lens.lens (\DescribeReplicationConfigurationTemplates' {nextToken} -> nextToken) (\s@DescribeReplicationConfigurationTemplates' {} a -> s {nextToken = a} :: DescribeReplicationConfigurationTemplates)++-- | Request to describe Replication Configuration template by template IDs.+describeReplicationConfigurationTemplates_replicationConfigurationTemplateIDs :: Lens.Lens' DescribeReplicationConfigurationTemplates (Prelude.Maybe [Prelude.Text])+describeReplicationConfigurationTemplates_replicationConfigurationTemplateIDs = Lens.lens (\DescribeReplicationConfigurationTemplates' {replicationConfigurationTemplateIDs} -> replicationConfigurationTemplateIDs) (\s@DescribeReplicationConfigurationTemplates' {} a -> s {replicationConfigurationTemplateIDs = a} :: DescribeReplicationConfigurationTemplates) Prelude.. Lens.mapping Lens.coerced++instance+  Core.AWSPager+    DescribeReplicationConfigurationTemplates+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeReplicationConfigurationTemplatesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeReplicationConfigurationTemplatesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeReplicationConfigurationTemplates_nextToken+          Lens..~ rs+          Lens.^? describeReplicationConfigurationTemplatesResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    DescribeReplicationConfigurationTemplates+  where+  type+    AWSResponse+      DescribeReplicationConfigurationTemplates =+      DescribeReplicationConfigurationTemplatesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeReplicationConfigurationTemplatesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeReplicationConfigurationTemplates+  where+  hashWithSalt+    _salt+    DescribeReplicationConfigurationTemplates' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` replicationConfigurationTemplateIDs++instance+  Prelude.NFData+    DescribeReplicationConfigurationTemplates+  where+  rnf DescribeReplicationConfigurationTemplates' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf replicationConfigurationTemplateIDs++instance+  Data.ToHeaders+    DescribeReplicationConfigurationTemplates+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeReplicationConfigurationTemplates+  where+  toJSON DescribeReplicationConfigurationTemplates' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("replicationConfigurationTemplateIDs" Data..=)+              Prelude.<$> replicationConfigurationTemplateIDs+          ]+      )++instance+  Data.ToPath+    DescribeReplicationConfigurationTemplates+  where+  toPath =+    Prelude.const+      "/DescribeReplicationConfigurationTemplates"++instance+  Data.ToQuery+    DescribeReplicationConfigurationTemplates+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeReplicationConfigurationTemplatesResponse' smart constructor.+data DescribeReplicationConfigurationTemplatesResponse = DescribeReplicationConfigurationTemplatesResponse'+  { -- | Request to describe Replication Configuration template by items.+    items :: Prelude.Maybe [ReplicationConfigurationTemplate],+    -- | Request to describe Replication Configuration template by next token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReplicationConfigurationTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'describeReplicationConfigurationTemplatesResponse_items' - Request to describe Replication Configuration template by items.+--+-- 'nextToken', 'describeReplicationConfigurationTemplatesResponse_nextToken' - Request to describe Replication Configuration template by next token.+--+-- 'httpStatus', 'describeReplicationConfigurationTemplatesResponse_httpStatus' - The response's http status code.+newDescribeReplicationConfigurationTemplatesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeReplicationConfigurationTemplatesResponse+newDescribeReplicationConfigurationTemplatesResponse+  pHttpStatus_ =+    DescribeReplicationConfigurationTemplatesResponse'+      { items =+          Prelude.Nothing,+        nextToken =+          Prelude.Nothing,+        httpStatus =+          pHttpStatus_+      }++-- | Request to describe Replication Configuration template by items.+describeReplicationConfigurationTemplatesResponse_items :: Lens.Lens' DescribeReplicationConfigurationTemplatesResponse (Prelude.Maybe [ReplicationConfigurationTemplate])+describeReplicationConfigurationTemplatesResponse_items = Lens.lens (\DescribeReplicationConfigurationTemplatesResponse' {items} -> items) (\s@DescribeReplicationConfigurationTemplatesResponse' {} a -> s {items = a} :: DescribeReplicationConfigurationTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Request to describe Replication Configuration template by next token.+describeReplicationConfigurationTemplatesResponse_nextToken :: Lens.Lens' DescribeReplicationConfigurationTemplatesResponse (Prelude.Maybe Prelude.Text)+describeReplicationConfigurationTemplatesResponse_nextToken = Lens.lens (\DescribeReplicationConfigurationTemplatesResponse' {nextToken} -> nextToken) (\s@DescribeReplicationConfigurationTemplatesResponse' {} a -> s {nextToken = a} :: DescribeReplicationConfigurationTemplatesResponse)++-- | The response's http status code.+describeReplicationConfigurationTemplatesResponse_httpStatus :: Lens.Lens' DescribeReplicationConfigurationTemplatesResponse Prelude.Int+describeReplicationConfigurationTemplatesResponse_httpStatus = Lens.lens (\DescribeReplicationConfigurationTemplatesResponse' {httpStatus} -> httpStatus) (\s@DescribeReplicationConfigurationTemplatesResponse' {} a -> s {httpStatus = a} :: DescribeReplicationConfigurationTemplatesResponse)++instance+  Prelude.NFData+    DescribeReplicationConfigurationTemplatesResponse+  where+  rnf+    DescribeReplicationConfigurationTemplatesResponse' {..} =+      Prelude.rnf items+        `Prelude.seq` Prelude.rnf nextToken+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DescribeSourceServers.hs view
@@ -0,0 +1,229 @@+{-# 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.MGN.DescribeSourceServers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves all SourceServers or multiple SourceServers by ID.+--+-- This operation returns paginated results.+module Amazonka.MGN.DescribeSourceServers+  ( -- * Creating a Request+    DescribeSourceServers (..),+    newDescribeSourceServers,++    -- * Request Lenses+    describeSourceServers_filters,+    describeSourceServers_maxResults,+    describeSourceServers_nextToken,++    -- * Destructuring the Response+    DescribeSourceServersResponse (..),+    newDescribeSourceServersResponse,++    -- * Response Lenses+    describeSourceServersResponse_items,+    describeSourceServersResponse_nextToken,+    describeSourceServersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSourceServers' smart constructor.+data DescribeSourceServers = DescribeSourceServers'+  { -- | Request to filter Source Servers list.+    filters :: Prelude.Maybe DescribeSourceServersRequestFilters,+    -- | Request to filter Source Servers list by maximum results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Request to filter Source Servers list by next token.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSourceServers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeSourceServers_filters' - Request to filter Source Servers list.+--+-- 'maxResults', 'describeSourceServers_maxResults' - Request to filter Source Servers list by maximum results.+--+-- 'nextToken', 'describeSourceServers_nextToken' - Request to filter Source Servers list by next token.+newDescribeSourceServers ::+  DescribeSourceServers+newDescribeSourceServers =+  DescribeSourceServers'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Request to filter Source Servers list.+describeSourceServers_filters :: Lens.Lens' DescribeSourceServers (Prelude.Maybe DescribeSourceServersRequestFilters)+describeSourceServers_filters = Lens.lens (\DescribeSourceServers' {filters} -> filters) (\s@DescribeSourceServers' {} a -> s {filters = a} :: DescribeSourceServers)++-- | Request to filter Source Servers list by maximum results.+describeSourceServers_maxResults :: Lens.Lens' DescribeSourceServers (Prelude.Maybe Prelude.Natural)+describeSourceServers_maxResults = Lens.lens (\DescribeSourceServers' {maxResults} -> maxResults) (\s@DescribeSourceServers' {} a -> s {maxResults = a} :: DescribeSourceServers)++-- | Request to filter Source Servers list by next token.+describeSourceServers_nextToken :: Lens.Lens' DescribeSourceServers (Prelude.Maybe Prelude.Text)+describeSourceServers_nextToken = Lens.lens (\DescribeSourceServers' {nextToken} -> nextToken) (\s@DescribeSourceServers' {} a -> s {nextToken = a} :: DescribeSourceServers)++instance Core.AWSPager DescribeSourceServers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeSourceServersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeSourceServersResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeSourceServers_nextToken+          Lens..~ rs+          Lens.^? describeSourceServersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeSourceServers where+  type+    AWSResponse DescribeSourceServers =+      DescribeSourceServersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSourceServersResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSourceServers where+  hashWithSalt _salt DescribeSourceServers' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeSourceServers where+  rnf DescribeSourceServers' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeSourceServers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeSourceServers where+  toJSON DescribeSourceServers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath DescribeSourceServers where+  toPath = Prelude.const "/DescribeSourceServers"++instance Data.ToQuery DescribeSourceServers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSourceServersResponse' smart constructor.+data DescribeSourceServersResponse = DescribeSourceServersResponse'+  { -- | Request to filter Source Servers list by item.+    items :: Prelude.Maybe [SourceServer],+    -- | Request to filter Source Servers next token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSourceServersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'describeSourceServersResponse_items' - Request to filter Source Servers list by item.+--+-- 'nextToken', 'describeSourceServersResponse_nextToken' - Request to filter Source Servers next token.+--+-- 'httpStatus', 'describeSourceServersResponse_httpStatus' - The response's http status code.+newDescribeSourceServersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSourceServersResponse+newDescribeSourceServersResponse pHttpStatus_ =+  DescribeSourceServersResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Request to filter Source Servers list by item.+describeSourceServersResponse_items :: Lens.Lens' DescribeSourceServersResponse (Prelude.Maybe [SourceServer])+describeSourceServersResponse_items = Lens.lens (\DescribeSourceServersResponse' {items} -> items) (\s@DescribeSourceServersResponse' {} a -> s {items = a} :: DescribeSourceServersResponse) Prelude.. Lens.mapping Lens.coerced++-- | Request to filter Source Servers next token.+describeSourceServersResponse_nextToken :: Lens.Lens' DescribeSourceServersResponse (Prelude.Maybe Prelude.Text)+describeSourceServersResponse_nextToken = Lens.lens (\DescribeSourceServersResponse' {nextToken} -> nextToken) (\s@DescribeSourceServersResponse' {} a -> s {nextToken = a} :: DescribeSourceServersResponse)++-- | The response's http status code.+describeSourceServersResponse_httpStatus :: Lens.Lens' DescribeSourceServersResponse Prelude.Int+describeSourceServersResponse_httpStatus = Lens.lens (\DescribeSourceServersResponse' {httpStatus} -> httpStatus) (\s@DescribeSourceServersResponse' {} a -> s {httpStatus = a} :: DescribeSourceServersResponse)++instance Prelude.NFData DescribeSourceServersResponse where+  rnf DescribeSourceServersResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DescribeVcenterClients.hs view
@@ -0,0 +1,215 @@+{-# 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.MGN.DescribeVcenterClients+-- 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 installed vCenter clients.+--+-- This operation returns paginated results.+module Amazonka.MGN.DescribeVcenterClients+  ( -- * Creating a Request+    DescribeVcenterClients (..),+    newDescribeVcenterClients,++    -- * Request Lenses+    describeVcenterClients_maxResults,+    describeVcenterClients_nextToken,++    -- * Destructuring the Response+    DescribeVcenterClientsResponse (..),+    newDescribeVcenterClientsResponse,++    -- * Response Lenses+    describeVcenterClientsResponse_items,+    describeVcenterClientsResponse_nextToken,+    describeVcenterClientsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeVcenterClients' smart constructor.+data DescribeVcenterClients = DescribeVcenterClients'+  { -- | Maximum results to be returned in DescribeVcenterClients.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next pagination token to be provided for DescribeVcenterClients.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVcenterClients' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'describeVcenterClients_maxResults' - Maximum results to be returned in DescribeVcenterClients.+--+-- 'nextToken', 'describeVcenterClients_nextToken' - Next pagination token to be provided for DescribeVcenterClients.+newDescribeVcenterClients ::+  DescribeVcenterClients+newDescribeVcenterClients =+  DescribeVcenterClients'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Maximum results to be returned in DescribeVcenterClients.+describeVcenterClients_maxResults :: Lens.Lens' DescribeVcenterClients (Prelude.Maybe Prelude.Natural)+describeVcenterClients_maxResults = Lens.lens (\DescribeVcenterClients' {maxResults} -> maxResults) (\s@DescribeVcenterClients' {} a -> s {maxResults = a} :: DescribeVcenterClients)++-- | Next pagination token to be provided for DescribeVcenterClients.+describeVcenterClients_nextToken :: Lens.Lens' DescribeVcenterClients (Prelude.Maybe Prelude.Text)+describeVcenterClients_nextToken = Lens.lens (\DescribeVcenterClients' {nextToken} -> nextToken) (\s@DescribeVcenterClients' {} a -> s {nextToken = a} :: DescribeVcenterClients)++instance Core.AWSPager DescribeVcenterClients where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? describeVcenterClientsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? describeVcenterClientsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& describeVcenterClients_nextToken+          Lens..~ rs+          Lens.^? describeVcenterClientsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest DescribeVcenterClients where+  type+    AWSResponse DescribeVcenterClients =+      DescribeVcenterClientsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeVcenterClientsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeVcenterClients where+  hashWithSalt _salt DescribeVcenterClients' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData DescribeVcenterClients where+  rnf DescribeVcenterClients' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders DescribeVcenterClients where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeVcenterClients where+  toPath = Prelude.const "/DescribeVcenterClients"++instance Data.ToQuery DescribeVcenterClients where+  toQuery DescribeVcenterClients' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newDescribeVcenterClientsResponse' smart constructor.+data DescribeVcenterClientsResponse = DescribeVcenterClientsResponse'+  { -- | List of items returned by DescribeVcenterClients.+    items :: Prelude.Maybe [VcenterClient],+    -- | Next pagination token returned from DescribeVcenterClients.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeVcenterClientsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'describeVcenterClientsResponse_items' - List of items returned by DescribeVcenterClients.+--+-- 'nextToken', 'describeVcenterClientsResponse_nextToken' - Next pagination token returned from DescribeVcenterClients.+--+-- 'httpStatus', 'describeVcenterClientsResponse_httpStatus' - The response's http status code.+newDescribeVcenterClientsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeVcenterClientsResponse+newDescribeVcenterClientsResponse pHttpStatus_ =+  DescribeVcenterClientsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of items returned by DescribeVcenterClients.+describeVcenterClientsResponse_items :: Lens.Lens' DescribeVcenterClientsResponse (Prelude.Maybe [VcenterClient])+describeVcenterClientsResponse_items = Lens.lens (\DescribeVcenterClientsResponse' {items} -> items) (\s@DescribeVcenterClientsResponse' {} a -> s {items = a} :: DescribeVcenterClientsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next pagination token returned from DescribeVcenterClients.+describeVcenterClientsResponse_nextToken :: Lens.Lens' DescribeVcenterClientsResponse (Prelude.Maybe Prelude.Text)+describeVcenterClientsResponse_nextToken = Lens.lens (\DescribeVcenterClientsResponse' {nextToken} -> nextToken) (\s@DescribeVcenterClientsResponse' {} a -> s {nextToken = a} :: DescribeVcenterClientsResponse)++-- | The response's http status code.+describeVcenterClientsResponse_httpStatus :: Lens.Lens' DescribeVcenterClientsResponse Prelude.Int+describeVcenterClientsResponse_httpStatus = Lens.lens (\DescribeVcenterClientsResponse' {httpStatus} -> httpStatus) (\s@DescribeVcenterClientsResponse' {} a -> s {httpStatus = a} :: DescribeVcenterClientsResponse)++instance+  Prelude.NFData+    DescribeVcenterClientsResponse+  where+  rnf DescribeVcenterClientsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DisassociateApplications.hs view
@@ -0,0 +1,177 @@+{-# 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.MGN.DisassociateApplications+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociate applications from wave.+module Amazonka.MGN.DisassociateApplications+  ( -- * Creating a Request+    DisassociateApplications (..),+    newDisassociateApplications,++    -- * Request Lenses+    disassociateApplications_applicationIDs,+    disassociateApplications_waveID,++    -- * Destructuring the Response+    DisassociateApplicationsResponse (..),+    newDisassociateApplicationsResponse,++    -- * Response Lenses+    disassociateApplicationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateApplications' smart constructor.+data DisassociateApplications = DisassociateApplications'+  { -- | Application IDs list.+    applicationIDs :: Prelude.NonEmpty Prelude.Text,+    -- | Wave ID.+    waveID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateApplications' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationIDs', 'disassociateApplications_applicationIDs' - Application IDs list.+--+-- 'waveID', 'disassociateApplications_waveID' - Wave ID.+newDisassociateApplications ::+  -- | 'applicationIDs'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'waveID'+  Prelude.Text ->+  DisassociateApplications+newDisassociateApplications pApplicationIDs_ pWaveID_ =+  DisassociateApplications'+    { applicationIDs =+        Lens.coerced Lens.# pApplicationIDs_,+      waveID = pWaveID_+    }++-- | Application IDs list.+disassociateApplications_applicationIDs :: Lens.Lens' DisassociateApplications (Prelude.NonEmpty Prelude.Text)+disassociateApplications_applicationIDs = Lens.lens (\DisassociateApplications' {applicationIDs} -> applicationIDs) (\s@DisassociateApplications' {} a -> s {applicationIDs = a} :: DisassociateApplications) Prelude.. Lens.coerced++-- | Wave ID.+disassociateApplications_waveID :: Lens.Lens' DisassociateApplications Prelude.Text+disassociateApplications_waveID = Lens.lens (\DisassociateApplications' {waveID} -> waveID) (\s@DisassociateApplications' {} a -> s {waveID = a} :: DisassociateApplications)++instance Core.AWSRequest DisassociateApplications where+  type+    AWSResponse DisassociateApplications =+      DisassociateApplicationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisassociateApplicationsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisassociateApplications where+  hashWithSalt _salt DisassociateApplications' {..} =+    _salt+      `Prelude.hashWithSalt` applicationIDs+      `Prelude.hashWithSalt` waveID++instance Prelude.NFData DisassociateApplications where+  rnf DisassociateApplications' {..} =+    Prelude.rnf applicationIDs+      `Prelude.seq` Prelude.rnf waveID++instance Data.ToHeaders DisassociateApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateApplications where+  toJSON DisassociateApplications' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("applicationIDs" Data..= applicationIDs),+            Prelude.Just ("waveID" Data..= waveID)+          ]+      )++instance Data.ToPath DisassociateApplications where+  toPath = Prelude.const "/DisassociateApplications"++instance Data.ToQuery DisassociateApplications where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateApplicationsResponse' smart constructor.+data DisassociateApplicationsResponse = DisassociateApplicationsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateApplicationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disassociateApplicationsResponse_httpStatus' - The response's http status code.+newDisassociateApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateApplicationsResponse+newDisassociateApplicationsResponse pHttpStatus_ =+  DisassociateApplicationsResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+disassociateApplicationsResponse_httpStatus :: Lens.Lens' DisassociateApplicationsResponse Prelude.Int+disassociateApplicationsResponse_httpStatus = Lens.lens (\DisassociateApplicationsResponse' {httpStatus} -> httpStatus) (\s@DisassociateApplicationsResponse' {} a -> s {httpStatus = a} :: DisassociateApplicationsResponse)++instance+  Prelude.NFData+    DisassociateApplicationsResponse+  where+  rnf DisassociateApplicationsResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DisassociateSourceServers.hs view
@@ -0,0 +1,181 @@+{-# 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.MGN.DisassociateSourceServers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociate source servers from application.+module Amazonka.MGN.DisassociateSourceServers+  ( -- * Creating a Request+    DisassociateSourceServers (..),+    newDisassociateSourceServers,++    -- * Request Lenses+    disassociateSourceServers_applicationID,+    disassociateSourceServers_sourceServerIDs,++    -- * Destructuring the Response+    DisassociateSourceServersResponse (..),+    newDisassociateSourceServersResponse,++    -- * Response Lenses+    disassociateSourceServersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateSourceServers' smart constructor.+data DisassociateSourceServers = DisassociateSourceServers'+  { -- | Application ID.+    applicationID :: Prelude.Text,+    -- | Source server IDs list.+    sourceServerIDs :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateSourceServers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationID', 'disassociateSourceServers_applicationID' - Application ID.+--+-- 'sourceServerIDs', 'disassociateSourceServers_sourceServerIDs' - Source server IDs list.+newDisassociateSourceServers ::+  -- | 'applicationID'+  Prelude.Text ->+  -- | 'sourceServerIDs'+  Prelude.NonEmpty Prelude.Text ->+  DisassociateSourceServers+newDisassociateSourceServers+  pApplicationID_+  pSourceServerIDs_ =+    DisassociateSourceServers'+      { applicationID =+          pApplicationID_,+        sourceServerIDs =+          Lens.coerced Lens.# pSourceServerIDs_+      }++-- | Application ID.+disassociateSourceServers_applicationID :: Lens.Lens' DisassociateSourceServers Prelude.Text+disassociateSourceServers_applicationID = Lens.lens (\DisassociateSourceServers' {applicationID} -> applicationID) (\s@DisassociateSourceServers' {} a -> s {applicationID = a} :: DisassociateSourceServers)++-- | Source server IDs list.+disassociateSourceServers_sourceServerIDs :: Lens.Lens' DisassociateSourceServers (Prelude.NonEmpty Prelude.Text)+disassociateSourceServers_sourceServerIDs = Lens.lens (\DisassociateSourceServers' {sourceServerIDs} -> sourceServerIDs) (\s@DisassociateSourceServers' {} a -> s {sourceServerIDs = a} :: DisassociateSourceServers) Prelude.. Lens.coerced++instance Core.AWSRequest DisassociateSourceServers where+  type+    AWSResponse DisassociateSourceServers =+      DisassociateSourceServersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisassociateSourceServersResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisassociateSourceServers where+  hashWithSalt _salt DisassociateSourceServers' {..} =+    _salt+      `Prelude.hashWithSalt` applicationID+      `Prelude.hashWithSalt` sourceServerIDs++instance Prelude.NFData DisassociateSourceServers where+  rnf DisassociateSourceServers' {..} =+    Prelude.rnf applicationID+      `Prelude.seq` Prelude.rnf sourceServerIDs++instance Data.ToHeaders DisassociateSourceServers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateSourceServers where+  toJSON DisassociateSourceServers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("applicationID" Data..= applicationID),+            Prelude.Just+              ("sourceServerIDs" Data..= sourceServerIDs)+          ]+      )++instance Data.ToPath DisassociateSourceServers where+  toPath = Prelude.const "/DisassociateSourceServers"++instance Data.ToQuery DisassociateSourceServers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateSourceServersResponse' smart constructor.+data DisassociateSourceServersResponse = DisassociateSourceServersResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateSourceServersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'disassociateSourceServersResponse_httpStatus' - The response's http status code.+newDisassociateSourceServersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateSourceServersResponse+newDisassociateSourceServersResponse pHttpStatus_ =+  DisassociateSourceServersResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+disassociateSourceServersResponse_httpStatus :: Lens.Lens' DisassociateSourceServersResponse Prelude.Int+disassociateSourceServersResponse_httpStatus = Lens.lens (\DisassociateSourceServersResponse' {httpStatus} -> httpStatus) (\s@DisassociateSourceServersResponse' {} a -> s {httpStatus = a} :: DisassociateSourceServersResponse)++instance+  Prelude.NFData+    DisassociateSourceServersResponse+  where+  rnf DisassociateSourceServersResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/DisconnectFromService.hs view
@@ -0,0 +1,142 @@+{-# 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.MGN.DisconnectFromService+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disconnects specific Source Servers from Application Migration Service.+-- Data replication is stopped immediately. All AWS resources created by+-- Application Migration Service for enabling the replication of these+-- source servers will be terminated \/ deleted within 90 minutes. Launched+-- Test or Cutover instances will NOT be terminated. If the agent on the+-- source server has not been prevented from communicating with the+-- Application Migration Service service, then it will receive a command to+-- uninstall itself (within approximately 10 minutes). The following+-- properties of the SourceServer will be changed immediately:+-- dataReplicationInfo.dataReplicationState will be set to DISCONNECTED;+-- The totalStorageBytes property for each of+-- dataReplicationInfo.replicatedDisks will be set to zero;+-- dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will+-- be nullified.+module Amazonka.MGN.DisconnectFromService+  ( -- * Creating a Request+    DisconnectFromService (..),+    newDisconnectFromService,++    -- * Request Lenses+    disconnectFromService_sourceServerID,++    -- * Destructuring the Response+    SourceServer (..),+    newSourceServer,++    -- * Response Lenses+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisconnectFromService' smart constructor.+data DisconnectFromService = DisconnectFromService'+  { -- | Request to disconnect Source Server from service by Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisconnectFromService' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'disconnectFromService_sourceServerID' - Request to disconnect Source Server from service by Server ID.+newDisconnectFromService ::+  -- | 'sourceServerID'+  Prelude.Text ->+  DisconnectFromService+newDisconnectFromService pSourceServerID_ =+  DisconnectFromService'+    { sourceServerID =+        pSourceServerID_+    }++-- | Request to disconnect Source Server from service by Server ID.+disconnectFromService_sourceServerID :: Lens.Lens' DisconnectFromService Prelude.Text+disconnectFromService_sourceServerID = Lens.lens (\DisconnectFromService' {sourceServerID} -> sourceServerID) (\s@DisconnectFromService' {} a -> s {sourceServerID = a} :: DisconnectFromService)++instance Core.AWSRequest DisconnectFromService where+  type AWSResponse DisconnectFromService = SourceServer+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable DisconnectFromService where+  hashWithSalt _salt DisconnectFromService' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData DisconnectFromService where+  rnf DisconnectFromService' {..} =+    Prelude.rnf sourceServerID++instance Data.ToHeaders DisconnectFromService where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisconnectFromService where+  toJSON DisconnectFromService' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath DisconnectFromService where+  toPath = Prelude.const "/DisconnectFromService"++instance Data.ToQuery DisconnectFromService where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/FinalizeCutover.hs view
@@ -0,0 +1,136 @@+{-# 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.MGN.FinalizeCutover+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Finalizes the cutover immediately for specific Source Servers. All AWS+-- resources created by Application Migration Service for enabling the+-- replication of these source servers will be terminated \/ deleted within+-- 90 minutes. Launched Test or Cutover instances will NOT be terminated.+-- The AWS Replication Agent will receive a command to uninstall itself+-- (within 10 minutes). The following properties of the SourceServer will+-- be changed immediately: dataReplicationInfo.dataReplicationState will be+-- changed to DISCONNECTED; The SourceServer.lifeCycle.state will be+-- changed to CUTOVER; The totalStorageBytes property fo each of+-- dataReplicationInfo.replicatedDisks will be set to zero;+-- dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration will+-- be nullified.+module Amazonka.MGN.FinalizeCutover+  ( -- * Creating a Request+    FinalizeCutover (..),+    newFinalizeCutover,++    -- * Request Lenses+    finalizeCutover_sourceServerID,++    -- * Destructuring the Response+    SourceServer (..),+    newSourceServer,++    -- * Response Lenses+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newFinalizeCutover' smart constructor.+data FinalizeCutover = FinalizeCutover'+  { -- | Request to finalize Cutover by Source Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FinalizeCutover' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'finalizeCutover_sourceServerID' - Request to finalize Cutover by Source Server ID.+newFinalizeCutover ::+  -- | 'sourceServerID'+  Prelude.Text ->+  FinalizeCutover+newFinalizeCutover pSourceServerID_ =+  FinalizeCutover' {sourceServerID = pSourceServerID_}++-- | Request to finalize Cutover by Source Server ID.+finalizeCutover_sourceServerID :: Lens.Lens' FinalizeCutover Prelude.Text+finalizeCutover_sourceServerID = Lens.lens (\FinalizeCutover' {sourceServerID} -> sourceServerID) (\s@FinalizeCutover' {} a -> s {sourceServerID = a} :: FinalizeCutover)++instance Core.AWSRequest FinalizeCutover where+  type AWSResponse FinalizeCutover = SourceServer+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable FinalizeCutover where+  hashWithSalt _salt FinalizeCutover' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData FinalizeCutover where+  rnf FinalizeCutover' {..} = Prelude.rnf sourceServerID++instance Data.ToHeaders FinalizeCutover where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON FinalizeCutover where+  toJSON FinalizeCutover' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath FinalizeCutover where+  toPath = Prelude.const "/FinalizeCutover"++instance Data.ToQuery FinalizeCutover where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/GetLaunchConfiguration.hs view
@@ -0,0 +1,132 @@+{-# 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.MGN.GetLaunchConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all LaunchConfigurations available, filtered by Source Server IDs.+module Amazonka.MGN.GetLaunchConfiguration+  ( -- * Creating a Request+    GetLaunchConfiguration (..),+    newGetLaunchConfiguration,++    -- * Request Lenses+    getLaunchConfiguration_sourceServerID,++    -- * Destructuring the Response+    LaunchConfiguration (..),+    newLaunchConfiguration,++    -- * Response Lenses+    launchConfiguration_bootMode,+    launchConfiguration_copyPrivateIp,+    launchConfiguration_copyTags,+    launchConfiguration_ec2LaunchTemplateID,+    launchConfiguration_enableMapAutoTagging,+    launchConfiguration_launchDisposition,+    launchConfiguration_licensing,+    launchConfiguration_mapAutoTaggingMpeID,+    launchConfiguration_name,+    launchConfiguration_postLaunchActions,+    launchConfiguration_sourceServerID,+    launchConfiguration_targetInstanceTypeRightSizingMethod,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLaunchConfiguration' smart constructor.+data GetLaunchConfiguration = GetLaunchConfiguration'+  { -- | Request to get Launch Configuration information by Source Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'getLaunchConfiguration_sourceServerID' - Request to get Launch Configuration information by Source Server ID.+newGetLaunchConfiguration ::+  -- | 'sourceServerID'+  Prelude.Text ->+  GetLaunchConfiguration+newGetLaunchConfiguration pSourceServerID_ =+  GetLaunchConfiguration'+    { sourceServerID =+        pSourceServerID_+    }++-- | Request to get Launch Configuration information by Source Server ID.+getLaunchConfiguration_sourceServerID :: Lens.Lens' GetLaunchConfiguration Prelude.Text+getLaunchConfiguration_sourceServerID = Lens.lens (\GetLaunchConfiguration' {sourceServerID} -> sourceServerID) (\s@GetLaunchConfiguration' {} a -> s {sourceServerID = a} :: GetLaunchConfiguration)++instance Core.AWSRequest GetLaunchConfiguration where+  type+    AWSResponse GetLaunchConfiguration =+      LaunchConfiguration+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetLaunchConfiguration where+  hashWithSalt _salt GetLaunchConfiguration' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData GetLaunchConfiguration where+  rnf GetLaunchConfiguration' {..} =+    Prelude.rnf sourceServerID++instance Data.ToHeaders GetLaunchConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetLaunchConfiguration where+  toJSON GetLaunchConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath GetLaunchConfiguration where+  toPath = Prelude.const "/GetLaunchConfiguration"++instance Data.ToQuery GetLaunchConfiguration where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/GetReplicationConfiguration.hs view
@@ -0,0 +1,135 @@+{-# 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.MGN.GetReplicationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all ReplicationConfigurations, filtered by Source Server ID.+module Amazonka.MGN.GetReplicationConfiguration+  ( -- * Creating a Request+    GetReplicationConfiguration (..),+    newGetReplicationConfiguration,++    -- * Request Lenses+    getReplicationConfiguration_sourceServerID,++    -- * Destructuring the Response+    ReplicationConfiguration (..),+    newReplicationConfiguration,++    -- * Response Lenses+    replicationConfiguration_associateDefaultSecurityGroup,+    replicationConfiguration_bandwidthThrottling,+    replicationConfiguration_createPublicIP,+    replicationConfiguration_dataPlaneRouting,+    replicationConfiguration_defaultLargeStagingDiskType,+    replicationConfiguration_ebsEncryption,+    replicationConfiguration_ebsEncryptionKeyArn,+    replicationConfiguration_name,+    replicationConfiguration_replicatedDisks,+    replicationConfiguration_replicationServerInstanceType,+    replicationConfiguration_replicationServersSecurityGroupsIDs,+    replicationConfiguration_sourceServerID,+    replicationConfiguration_stagingAreaSubnetId,+    replicationConfiguration_stagingAreaTags,+    replicationConfiguration_useDedicatedReplicationServer,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetReplicationConfiguration' smart constructor.+data GetReplicationConfiguration = GetReplicationConfiguration'+  { -- | Request to get Replication Configuration by Source Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetReplicationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'getReplicationConfiguration_sourceServerID' - Request to get Replication Configuration by Source Server ID.+newGetReplicationConfiguration ::+  -- | 'sourceServerID'+  Prelude.Text ->+  GetReplicationConfiguration+newGetReplicationConfiguration pSourceServerID_ =+  GetReplicationConfiguration'+    { sourceServerID =+        pSourceServerID_+    }++-- | Request to get Replication Configuration by Source Server ID.+getReplicationConfiguration_sourceServerID :: Lens.Lens' GetReplicationConfiguration Prelude.Text+getReplicationConfiguration_sourceServerID = Lens.lens (\GetReplicationConfiguration' {sourceServerID} -> sourceServerID) (\s@GetReplicationConfiguration' {} a -> s {sourceServerID = a} :: GetReplicationConfiguration)++instance Core.AWSRequest GetReplicationConfiguration where+  type+    AWSResponse GetReplicationConfiguration =+      ReplicationConfiguration+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable GetReplicationConfiguration where+  hashWithSalt _salt GetReplicationConfiguration' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData GetReplicationConfiguration where+  rnf GetReplicationConfiguration' {..} =+    Prelude.rnf sourceServerID++instance Data.ToHeaders GetReplicationConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetReplicationConfiguration where+  toJSON GetReplicationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath GetReplicationConfiguration where+  toPath = Prelude.const "/GetReplicationConfiguration"++instance Data.ToQuery GetReplicationConfiguration where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/InitializeService.hs view
@@ -0,0 +1,132 @@+{-# 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.MGN.InitializeService+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Initialize Application Migration Service.+module Amazonka.MGN.InitializeService+  ( -- * Creating a Request+    InitializeService (..),+    newInitializeService,++    -- * Destructuring the Response+    InitializeServiceResponse (..),+    newInitializeServiceResponse,++    -- * Response Lenses+    initializeServiceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newInitializeService' smart constructor.+data InitializeService = InitializeService'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InitializeService' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newInitializeService ::+  InitializeService+newInitializeService = InitializeService'++instance Core.AWSRequest InitializeService where+  type+    AWSResponse InitializeService =+      InitializeServiceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          InitializeServiceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable InitializeService where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData InitializeService where+  rnf _ = ()++instance Data.ToHeaders InitializeService where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON InitializeService where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath InitializeService where+  toPath = Prelude.const "/InitializeService"++instance Data.ToQuery InitializeService where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newInitializeServiceResponse' smart constructor.+data InitializeServiceResponse = InitializeServiceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InitializeServiceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'initializeServiceResponse_httpStatus' - The response's http status code.+newInitializeServiceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  InitializeServiceResponse+newInitializeServiceResponse pHttpStatus_ =+  InitializeServiceResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+initializeServiceResponse_httpStatus :: Lens.Lens' InitializeServiceResponse Prelude.Int+initializeServiceResponse_httpStatus = Lens.lens (\InitializeServiceResponse' {httpStatus} -> httpStatus) (\s@InitializeServiceResponse' {} a -> s {httpStatus = a} :: InitializeServiceResponse)++instance Prelude.NFData InitializeServiceResponse where+  rnf InitializeServiceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/Lens.hs view
@@ -0,0 +1,1125 @@+{-# 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.MGN.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.MGN.Lens+  ( -- * Operations++    -- ** ArchiveApplication+    archiveApplication_applicationID,+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,++    -- ** ArchiveWave+    archiveWave_waveID,+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,++    -- ** AssociateApplications+    associateApplications_applicationIDs,+    associateApplications_waveID,+    associateApplicationsResponse_httpStatus,++    -- ** AssociateSourceServers+    associateSourceServers_applicationID,+    associateSourceServers_sourceServerIDs,+    associateSourceServersResponse_httpStatus,++    -- ** ChangeServerLifeCycleState+    changeServerLifeCycleState_lifeCycle,+    changeServerLifeCycleState_sourceServerID,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** CreateApplication+    createApplication_description,+    createApplication_tags,+    createApplication_name,+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,++    -- ** CreateLaunchConfigurationTemplate+    createLaunchConfigurationTemplate_associatePublicIpAddress,+    createLaunchConfigurationTemplate_bootMode,+    createLaunchConfigurationTemplate_copyPrivateIp,+    createLaunchConfigurationTemplate_copyTags,+    createLaunchConfigurationTemplate_enableMapAutoTagging,+    createLaunchConfigurationTemplate_largeVolumeConf,+    createLaunchConfigurationTemplate_launchDisposition,+    createLaunchConfigurationTemplate_licensing,+    createLaunchConfigurationTemplate_mapAutoTaggingMpeID,+    createLaunchConfigurationTemplate_postLaunchActions,+    createLaunchConfigurationTemplate_smallVolumeConf,+    createLaunchConfigurationTemplate_smallVolumeMaxSize,+    createLaunchConfigurationTemplate_tags,+    createLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    launchConfigurationTemplate_arn,+    launchConfigurationTemplate_associatePublicIpAddress,+    launchConfigurationTemplate_bootMode,+    launchConfigurationTemplate_copyPrivateIp,+    launchConfigurationTemplate_copyTags,+    launchConfigurationTemplate_ec2LaunchTemplateID,+    launchConfigurationTemplate_enableMapAutoTagging,+    launchConfigurationTemplate_largeVolumeConf,+    launchConfigurationTemplate_launchDisposition,+    launchConfigurationTemplate_licensing,+    launchConfigurationTemplate_mapAutoTaggingMpeID,+    launchConfigurationTemplate_postLaunchActions,+    launchConfigurationTemplate_smallVolumeConf,+    launchConfigurationTemplate_smallVolumeMaxSize,+    launchConfigurationTemplate_tags,+    launchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    launchConfigurationTemplate_launchConfigurationTemplateID,++    -- ** CreateReplicationConfigurationTemplate+    createReplicationConfigurationTemplate_ebsEncryptionKeyArn,+    createReplicationConfigurationTemplate_tags,+    createReplicationConfigurationTemplate_associateDefaultSecurityGroup,+    createReplicationConfigurationTemplate_bandwidthThrottling,+    createReplicationConfigurationTemplate_createPublicIP,+    createReplicationConfigurationTemplate_dataPlaneRouting,+    createReplicationConfigurationTemplate_defaultLargeStagingDiskType,+    createReplicationConfigurationTemplate_ebsEncryption,+    createReplicationConfigurationTemplate_replicationServerInstanceType,+    createReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    createReplicationConfigurationTemplate_stagingAreaSubnetId,+    createReplicationConfigurationTemplate_stagingAreaTags,+    createReplicationConfigurationTemplate_useDedicatedReplicationServer,+    replicationConfigurationTemplate_arn,+    replicationConfigurationTemplate_associateDefaultSecurityGroup,+    replicationConfigurationTemplate_bandwidthThrottling,+    replicationConfigurationTemplate_createPublicIP,+    replicationConfigurationTemplate_dataPlaneRouting,+    replicationConfigurationTemplate_defaultLargeStagingDiskType,+    replicationConfigurationTemplate_ebsEncryption,+    replicationConfigurationTemplate_ebsEncryptionKeyArn,+    replicationConfigurationTemplate_replicationServerInstanceType,+    replicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    replicationConfigurationTemplate_stagingAreaSubnetId,+    replicationConfigurationTemplate_stagingAreaTags,+    replicationConfigurationTemplate_tags,+    replicationConfigurationTemplate_useDedicatedReplicationServer,+    replicationConfigurationTemplate_replicationConfigurationTemplateID,++    -- ** CreateWave+    createWave_description,+    createWave_tags,+    createWave_name,+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,++    -- ** DeleteApplication+    deleteApplication_applicationID,+    deleteApplicationResponse_httpStatus,++    -- ** DeleteJob+    deleteJob_jobID,+    deleteJobResponse_httpStatus,++    -- ** DeleteLaunchConfigurationTemplate+    deleteLaunchConfigurationTemplate_launchConfigurationTemplateID,+    deleteLaunchConfigurationTemplateResponse_httpStatus,++    -- ** DeleteReplicationConfigurationTemplate+    deleteReplicationConfigurationTemplate_replicationConfigurationTemplateID,+    deleteReplicationConfigurationTemplateResponse_httpStatus,++    -- ** DeleteSourceServer+    deleteSourceServer_sourceServerID,+    deleteSourceServerResponse_httpStatus,++    -- ** DeleteVcenterClient+    deleteVcenterClient_vcenterClientID,++    -- ** DeleteWave+    deleteWave_waveID,+    deleteWaveResponse_httpStatus,++    -- ** DescribeJobLogItems+    describeJobLogItems_maxResults,+    describeJobLogItems_nextToken,+    describeJobLogItems_jobID,+    describeJobLogItemsResponse_items,+    describeJobLogItemsResponse_nextToken,+    describeJobLogItemsResponse_httpStatus,++    -- ** DescribeJobs+    describeJobs_filters,+    describeJobs_maxResults,+    describeJobs_nextToken,+    describeJobsResponse_items,+    describeJobsResponse_nextToken,+    describeJobsResponse_httpStatus,++    -- ** DescribeLaunchConfigurationTemplates+    describeLaunchConfigurationTemplates_launchConfigurationTemplateIDs,+    describeLaunchConfigurationTemplates_maxResults,+    describeLaunchConfigurationTemplates_nextToken,+    describeLaunchConfigurationTemplatesResponse_items,+    describeLaunchConfigurationTemplatesResponse_nextToken,+    describeLaunchConfigurationTemplatesResponse_httpStatus,++    -- ** DescribeReplicationConfigurationTemplates+    describeReplicationConfigurationTemplates_maxResults,+    describeReplicationConfigurationTemplates_nextToken,+    describeReplicationConfigurationTemplates_replicationConfigurationTemplateIDs,+    describeReplicationConfigurationTemplatesResponse_items,+    describeReplicationConfigurationTemplatesResponse_nextToken,+    describeReplicationConfigurationTemplatesResponse_httpStatus,++    -- ** DescribeSourceServers+    describeSourceServers_filters,+    describeSourceServers_maxResults,+    describeSourceServers_nextToken,+    describeSourceServersResponse_items,+    describeSourceServersResponse_nextToken,+    describeSourceServersResponse_httpStatus,++    -- ** DescribeVcenterClients+    describeVcenterClients_maxResults,+    describeVcenterClients_nextToken,+    describeVcenterClientsResponse_items,+    describeVcenterClientsResponse_nextToken,+    describeVcenterClientsResponse_httpStatus,++    -- ** DisassociateApplications+    disassociateApplications_applicationIDs,+    disassociateApplications_waveID,+    disassociateApplicationsResponse_httpStatus,++    -- ** DisassociateSourceServers+    disassociateSourceServers_applicationID,+    disassociateSourceServers_sourceServerIDs,+    disassociateSourceServersResponse_httpStatus,++    -- ** DisconnectFromService+    disconnectFromService_sourceServerID,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** FinalizeCutover+    finalizeCutover_sourceServerID,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** GetLaunchConfiguration+    getLaunchConfiguration_sourceServerID,+    launchConfiguration_bootMode,+    launchConfiguration_copyPrivateIp,+    launchConfiguration_copyTags,+    launchConfiguration_ec2LaunchTemplateID,+    launchConfiguration_enableMapAutoTagging,+    launchConfiguration_launchDisposition,+    launchConfiguration_licensing,+    launchConfiguration_mapAutoTaggingMpeID,+    launchConfiguration_name,+    launchConfiguration_postLaunchActions,+    launchConfiguration_sourceServerID,+    launchConfiguration_targetInstanceTypeRightSizingMethod,++    -- ** GetReplicationConfiguration+    getReplicationConfiguration_sourceServerID,+    replicationConfiguration_associateDefaultSecurityGroup,+    replicationConfiguration_bandwidthThrottling,+    replicationConfiguration_createPublicIP,+    replicationConfiguration_dataPlaneRouting,+    replicationConfiguration_defaultLargeStagingDiskType,+    replicationConfiguration_ebsEncryption,+    replicationConfiguration_ebsEncryptionKeyArn,+    replicationConfiguration_name,+    replicationConfiguration_replicatedDisks,+    replicationConfiguration_replicationServerInstanceType,+    replicationConfiguration_replicationServersSecurityGroupsIDs,+    replicationConfiguration_sourceServerID,+    replicationConfiguration_stagingAreaSubnetId,+    replicationConfiguration_stagingAreaTags,+    replicationConfiguration_useDedicatedReplicationServer,++    -- ** InitializeService+    initializeServiceResponse_httpStatus,++    -- ** ListApplications+    listApplications_filters,+    listApplications_maxResults,+    listApplications_nextToken,+    listApplicationsResponse_items,+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,++    -- ** ListSourceServerActions+    listSourceServerActions_filters,+    listSourceServerActions_maxResults,+    listSourceServerActions_nextToken,+    listSourceServerActions_sourceServerID,+    listSourceServerActionsResponse_items,+    listSourceServerActionsResponse_nextToken,+    listSourceServerActionsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListTemplateActions+    listTemplateActions_filters,+    listTemplateActions_maxResults,+    listTemplateActions_nextToken,+    listTemplateActions_launchConfigurationTemplateID,+    listTemplateActionsResponse_items,+    listTemplateActionsResponse_nextToken,+    listTemplateActionsResponse_httpStatus,++    -- ** ListWaves+    listWaves_filters,+    listWaves_maxResults,+    listWaves_nextToken,+    listWavesResponse_items,+    listWavesResponse_nextToken,+    listWavesResponse_httpStatus,++    -- ** MarkAsArchived+    markAsArchived_sourceServerID,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** PutSourceServerAction+    putSourceServerAction_active,+    putSourceServerAction_documentVersion,+    putSourceServerAction_mustSucceedForCutover,+    putSourceServerAction_parameters,+    putSourceServerAction_timeoutSeconds,+    putSourceServerAction_actionID,+    putSourceServerAction_actionName,+    putSourceServerAction_documentIdentifier,+    putSourceServerAction_order,+    putSourceServerAction_sourceServerID,+    sourceServerActionDocument_actionID,+    sourceServerActionDocument_actionName,+    sourceServerActionDocument_active,+    sourceServerActionDocument_documentIdentifier,+    sourceServerActionDocument_documentVersion,+    sourceServerActionDocument_mustSucceedForCutover,+    sourceServerActionDocument_order,+    sourceServerActionDocument_parameters,+    sourceServerActionDocument_timeoutSeconds,++    -- ** PutTemplateAction+    putTemplateAction_active,+    putTemplateAction_documentVersion,+    putTemplateAction_mustSucceedForCutover,+    putTemplateAction_operatingSystem,+    putTemplateAction_parameters,+    putTemplateAction_timeoutSeconds,+    putTemplateAction_actionID,+    putTemplateAction_actionName,+    putTemplateAction_documentIdentifier,+    putTemplateAction_launchConfigurationTemplateID,+    putTemplateAction_order,+    templateActionDocument_actionID,+    templateActionDocument_actionName,+    templateActionDocument_active,+    templateActionDocument_documentIdentifier,+    templateActionDocument_documentVersion,+    templateActionDocument_mustSucceedForCutover,+    templateActionDocument_operatingSystem,+    templateActionDocument_order,+    templateActionDocument_parameters,+    templateActionDocument_timeoutSeconds,++    -- ** RemoveSourceServerAction+    removeSourceServerAction_actionID,+    removeSourceServerAction_sourceServerID,+    removeSourceServerActionResponse_httpStatus,++    -- ** RemoveTemplateAction+    removeTemplateAction_actionID,+    removeTemplateAction_launchConfigurationTemplateID,+    removeTemplateActionResponse_httpStatus,++    -- ** RetryDataReplication+    retryDataReplication_sourceServerID,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** StartCutover+    startCutover_tags,+    startCutover_sourceServerIDs,+    startCutoverResponse_job,+    startCutoverResponse_httpStatus,++    -- ** StartReplication+    startReplication_sourceServerID,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** StartTest+    startTest_tags,+    startTest_sourceServerIDs,+    startTestResponse_job,+    startTestResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,++    -- ** TerminateTargetInstances+    terminateTargetInstances_tags,+    terminateTargetInstances_sourceServerIDs,+    terminateTargetInstancesResponse_job,+    terminateTargetInstancesResponse_httpStatus,++    -- ** UnarchiveApplication+    unarchiveApplication_applicationID,+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,++    -- ** UnarchiveWave+    unarchiveWave_waveID,+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- ** UpdateApplication+    updateApplication_description,+    updateApplication_name,+    updateApplication_applicationID,+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,++    -- ** UpdateLaunchConfiguration+    updateLaunchConfiguration_bootMode,+    updateLaunchConfiguration_copyPrivateIp,+    updateLaunchConfiguration_copyTags,+    updateLaunchConfiguration_enableMapAutoTagging,+    updateLaunchConfiguration_launchDisposition,+    updateLaunchConfiguration_licensing,+    updateLaunchConfiguration_mapAutoTaggingMpeID,+    updateLaunchConfiguration_name,+    updateLaunchConfiguration_postLaunchActions,+    updateLaunchConfiguration_targetInstanceTypeRightSizingMethod,+    updateLaunchConfiguration_sourceServerID,+    launchConfiguration_bootMode,+    launchConfiguration_copyPrivateIp,+    launchConfiguration_copyTags,+    launchConfiguration_ec2LaunchTemplateID,+    launchConfiguration_enableMapAutoTagging,+    launchConfiguration_launchDisposition,+    launchConfiguration_licensing,+    launchConfiguration_mapAutoTaggingMpeID,+    launchConfiguration_name,+    launchConfiguration_postLaunchActions,+    launchConfiguration_sourceServerID,+    launchConfiguration_targetInstanceTypeRightSizingMethod,++    -- ** UpdateLaunchConfigurationTemplate+    updateLaunchConfigurationTemplate_associatePublicIpAddress,+    updateLaunchConfigurationTemplate_bootMode,+    updateLaunchConfigurationTemplate_copyPrivateIp,+    updateLaunchConfigurationTemplate_copyTags,+    updateLaunchConfigurationTemplate_enableMapAutoTagging,+    updateLaunchConfigurationTemplate_largeVolumeConf,+    updateLaunchConfigurationTemplate_launchDisposition,+    updateLaunchConfigurationTemplate_licensing,+    updateLaunchConfigurationTemplate_mapAutoTaggingMpeID,+    updateLaunchConfigurationTemplate_postLaunchActions,+    updateLaunchConfigurationTemplate_smallVolumeConf,+    updateLaunchConfigurationTemplate_smallVolumeMaxSize,+    updateLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    updateLaunchConfigurationTemplate_launchConfigurationTemplateID,+    launchConfigurationTemplate_arn,+    launchConfigurationTemplate_associatePublicIpAddress,+    launchConfigurationTemplate_bootMode,+    launchConfigurationTemplate_copyPrivateIp,+    launchConfigurationTemplate_copyTags,+    launchConfigurationTemplate_ec2LaunchTemplateID,+    launchConfigurationTemplate_enableMapAutoTagging,+    launchConfigurationTemplate_largeVolumeConf,+    launchConfigurationTemplate_launchDisposition,+    launchConfigurationTemplate_licensing,+    launchConfigurationTemplate_mapAutoTaggingMpeID,+    launchConfigurationTemplate_postLaunchActions,+    launchConfigurationTemplate_smallVolumeConf,+    launchConfigurationTemplate_smallVolumeMaxSize,+    launchConfigurationTemplate_tags,+    launchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    launchConfigurationTemplate_launchConfigurationTemplateID,++    -- ** UpdateReplicationConfiguration+    updateReplicationConfiguration_associateDefaultSecurityGroup,+    updateReplicationConfiguration_bandwidthThrottling,+    updateReplicationConfiguration_createPublicIP,+    updateReplicationConfiguration_dataPlaneRouting,+    updateReplicationConfiguration_defaultLargeStagingDiskType,+    updateReplicationConfiguration_ebsEncryption,+    updateReplicationConfiguration_ebsEncryptionKeyArn,+    updateReplicationConfiguration_name,+    updateReplicationConfiguration_replicatedDisks,+    updateReplicationConfiguration_replicationServerInstanceType,+    updateReplicationConfiguration_replicationServersSecurityGroupsIDs,+    updateReplicationConfiguration_stagingAreaSubnetId,+    updateReplicationConfiguration_stagingAreaTags,+    updateReplicationConfiguration_useDedicatedReplicationServer,+    updateReplicationConfiguration_sourceServerID,+    replicationConfiguration_associateDefaultSecurityGroup,+    replicationConfiguration_bandwidthThrottling,+    replicationConfiguration_createPublicIP,+    replicationConfiguration_dataPlaneRouting,+    replicationConfiguration_defaultLargeStagingDiskType,+    replicationConfiguration_ebsEncryption,+    replicationConfiguration_ebsEncryptionKeyArn,+    replicationConfiguration_name,+    replicationConfiguration_replicatedDisks,+    replicationConfiguration_replicationServerInstanceType,+    replicationConfiguration_replicationServersSecurityGroupsIDs,+    replicationConfiguration_sourceServerID,+    replicationConfiguration_stagingAreaSubnetId,+    replicationConfiguration_stagingAreaTags,+    replicationConfiguration_useDedicatedReplicationServer,++    -- ** UpdateReplicationConfigurationTemplate+    updateReplicationConfigurationTemplate_arn,+    updateReplicationConfigurationTemplate_associateDefaultSecurityGroup,+    updateReplicationConfigurationTemplate_bandwidthThrottling,+    updateReplicationConfigurationTemplate_createPublicIP,+    updateReplicationConfigurationTemplate_dataPlaneRouting,+    updateReplicationConfigurationTemplate_defaultLargeStagingDiskType,+    updateReplicationConfigurationTemplate_ebsEncryption,+    updateReplicationConfigurationTemplate_ebsEncryptionKeyArn,+    updateReplicationConfigurationTemplate_replicationServerInstanceType,+    updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    updateReplicationConfigurationTemplate_stagingAreaSubnetId,+    updateReplicationConfigurationTemplate_stagingAreaTags,+    updateReplicationConfigurationTemplate_useDedicatedReplicationServer,+    updateReplicationConfigurationTemplate_replicationConfigurationTemplateID,+    replicationConfigurationTemplate_arn,+    replicationConfigurationTemplate_associateDefaultSecurityGroup,+    replicationConfigurationTemplate_bandwidthThrottling,+    replicationConfigurationTemplate_createPublicIP,+    replicationConfigurationTemplate_dataPlaneRouting,+    replicationConfigurationTemplate_defaultLargeStagingDiskType,+    replicationConfigurationTemplate_ebsEncryption,+    replicationConfigurationTemplate_ebsEncryptionKeyArn,+    replicationConfigurationTemplate_replicationServerInstanceType,+    replicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    replicationConfigurationTemplate_stagingAreaSubnetId,+    replicationConfigurationTemplate_stagingAreaTags,+    replicationConfigurationTemplate_tags,+    replicationConfigurationTemplate_useDedicatedReplicationServer,+    replicationConfigurationTemplate_replicationConfigurationTemplateID,++    -- ** UpdateSourceServerReplicationType+    updateSourceServerReplicationType_replicationType,+    updateSourceServerReplicationType_sourceServerID,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** UpdateWave+    updateWave_description,+    updateWave_name,+    updateWave_waveID,+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,++    -- * Types++    -- ** Application+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,++    -- ** ApplicationAggregatedStatus+    applicationAggregatedStatus_healthStatus,+    applicationAggregatedStatus_lastUpdateDateTime,+    applicationAggregatedStatus_progressStatus,+    applicationAggregatedStatus_totalSourceServers,++    -- ** CPU+    cpu_cores,+    cpu_modelName,++    -- ** ChangeServerLifeCycleStateSourceServerLifecycle+    changeServerLifeCycleStateSourceServerLifecycle_state,++    -- ** DataReplicationError+    dataReplicationError_error,+    dataReplicationError_rawError,++    -- ** DataReplicationInfo+    dataReplicationInfo_dataReplicationError,+    dataReplicationInfo_dataReplicationInitiation,+    dataReplicationInfo_dataReplicationState,+    dataReplicationInfo_etaDateTime,+    dataReplicationInfo_lagDuration,+    dataReplicationInfo_lastSnapshotDateTime,+    dataReplicationInfo_replicatedDisks,++    -- ** DataReplicationInfoReplicatedDisk+    dataReplicationInfoReplicatedDisk_backloggedStorageBytes,+    dataReplicationInfoReplicatedDisk_deviceName,+    dataReplicationInfoReplicatedDisk_replicatedStorageBytes,+    dataReplicationInfoReplicatedDisk_rescannedStorageBytes,+    dataReplicationInfoReplicatedDisk_totalStorageBytes,++    -- ** DataReplicationInitiation+    dataReplicationInitiation_nextAttemptDateTime,+    dataReplicationInitiation_startDateTime,+    dataReplicationInitiation_steps,++    -- ** DataReplicationInitiationStep+    dataReplicationInitiationStep_name,+    dataReplicationInitiationStep_status,++    -- ** DescribeJobsRequestFilters+    describeJobsRequestFilters_fromDate,+    describeJobsRequestFilters_jobIDs,+    describeJobsRequestFilters_toDate,++    -- ** DescribeSourceServersRequestFilters+    describeSourceServersRequestFilters_applicationIDs,+    describeSourceServersRequestFilters_isArchived,+    describeSourceServersRequestFilters_lifeCycleStates,+    describeSourceServersRequestFilters_replicationTypes,+    describeSourceServersRequestFilters_sourceServerIDs,++    -- ** Disk+    disk_bytes,+    disk_deviceName,++    -- ** IdentificationHints+    identificationHints_awsInstanceID,+    identificationHints_fqdn,+    identificationHints_hostname,+    identificationHints_vmPath,+    identificationHints_vmWareUuid,++    -- ** Job+    job_arn,+    job_creationDateTime,+    job_endDateTime,+    job_initiatedBy,+    job_participatingServers,+    job_status,+    job_tags,+    job_type,+    job_jobID,++    -- ** JobLog+    jobLog_event,+    jobLog_eventData,+    jobLog_logDateTime,++    -- ** JobLogEventData+    jobLogEventData_conversionServerID,+    jobLogEventData_rawError,+    jobLogEventData_sourceServerID,+    jobLogEventData_targetInstanceID,++    -- ** JobPostLaunchActionsLaunchStatus+    jobPostLaunchActionsLaunchStatus_executionID,+    jobPostLaunchActionsLaunchStatus_executionStatus,+    jobPostLaunchActionsLaunchStatus_failureReason,+    jobPostLaunchActionsLaunchStatus_ssmDocument,+    jobPostLaunchActionsLaunchStatus_ssmDocumentType,++    -- ** LaunchConfiguration+    launchConfiguration_bootMode,+    launchConfiguration_copyPrivateIp,+    launchConfiguration_copyTags,+    launchConfiguration_ec2LaunchTemplateID,+    launchConfiguration_enableMapAutoTagging,+    launchConfiguration_launchDisposition,+    launchConfiguration_licensing,+    launchConfiguration_mapAutoTaggingMpeID,+    launchConfiguration_name,+    launchConfiguration_postLaunchActions,+    launchConfiguration_sourceServerID,+    launchConfiguration_targetInstanceTypeRightSizingMethod,++    -- ** LaunchConfigurationTemplate+    launchConfigurationTemplate_arn,+    launchConfigurationTemplate_associatePublicIpAddress,+    launchConfigurationTemplate_bootMode,+    launchConfigurationTemplate_copyPrivateIp,+    launchConfigurationTemplate_copyTags,+    launchConfigurationTemplate_ec2LaunchTemplateID,+    launchConfigurationTemplate_enableMapAutoTagging,+    launchConfigurationTemplate_largeVolumeConf,+    launchConfigurationTemplate_launchDisposition,+    launchConfigurationTemplate_licensing,+    launchConfigurationTemplate_mapAutoTaggingMpeID,+    launchConfigurationTemplate_postLaunchActions,+    launchConfigurationTemplate_smallVolumeConf,+    launchConfigurationTemplate_smallVolumeMaxSize,+    launchConfigurationTemplate_tags,+    launchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    launchConfigurationTemplate_launchConfigurationTemplateID,++    -- ** LaunchTemplateDiskConf+    launchTemplateDiskConf_iops,+    launchTemplateDiskConf_throughput,+    launchTemplateDiskConf_volumeType,++    -- ** LaunchedInstance+    launchedInstance_ec2InstanceID,+    launchedInstance_firstBoot,+    launchedInstance_jobID,++    -- ** Licensing+    licensing_osByol,++    -- ** LifeCycle+    lifeCycle_addedToServiceDateTime,+    lifeCycle_elapsedReplicationDuration,+    lifeCycle_firstByteDateTime,+    lifeCycle_lastCutover,+    lifeCycle_lastSeenByServiceDateTime,+    lifeCycle_lastTest,+    lifeCycle_state,++    -- ** LifeCycleLastCutover+    lifeCycleLastCutover_finalized,+    lifeCycleLastCutover_initiated,+    lifeCycleLastCutover_reverted,++    -- ** LifeCycleLastCutoverFinalized+    lifeCycleLastCutoverFinalized_apiCallDateTime,++    -- ** LifeCycleLastCutoverInitiated+    lifeCycleLastCutoverInitiated_apiCallDateTime,+    lifeCycleLastCutoverInitiated_jobID,++    -- ** LifeCycleLastCutoverReverted+    lifeCycleLastCutoverReverted_apiCallDateTime,++    -- ** LifeCycleLastTest+    lifeCycleLastTest_finalized,+    lifeCycleLastTest_initiated,+    lifeCycleLastTest_reverted,++    -- ** LifeCycleLastTestFinalized+    lifeCycleLastTestFinalized_apiCallDateTime,++    -- ** LifeCycleLastTestInitiated+    lifeCycleLastTestInitiated_apiCallDateTime,+    lifeCycleLastTestInitiated_jobID,++    -- ** LifeCycleLastTestReverted+    lifeCycleLastTestReverted_apiCallDateTime,++    -- ** ListApplicationsRequestFilters+    listApplicationsRequestFilters_applicationIDs,+    listApplicationsRequestFilters_isArchived,+    listApplicationsRequestFilters_waveIDs,++    -- ** ListWavesRequestFilters+    listWavesRequestFilters_isArchived,+    listWavesRequestFilters_waveIDs,++    -- ** NetworkInterface+    networkInterface_ips,+    networkInterface_isPrimary,+    networkInterface_macAddress,++    -- ** OS+    os_fullString,++    -- ** ParticipatingServer+    participatingServer_launchStatus,+    participatingServer_launchedEc2InstanceID,+    participatingServer_postLaunchActionsStatus,+    participatingServer_sourceServerID,++    -- ** PostLaunchActions+    postLaunchActions_cloudWatchLogGroupName,+    postLaunchActions_deployment,+    postLaunchActions_s3LogBucket,+    postLaunchActions_s3OutputKeyPrefix,+    postLaunchActions_ssmDocuments,++    -- ** PostLaunchActionsStatus+    postLaunchActionsStatus_postLaunchActionsLaunchStatusList,+    postLaunchActionsStatus_ssmAgentDiscoveryDatetime,++    -- ** ReplicationConfiguration+    replicationConfiguration_associateDefaultSecurityGroup,+    replicationConfiguration_bandwidthThrottling,+    replicationConfiguration_createPublicIP,+    replicationConfiguration_dataPlaneRouting,+    replicationConfiguration_defaultLargeStagingDiskType,+    replicationConfiguration_ebsEncryption,+    replicationConfiguration_ebsEncryptionKeyArn,+    replicationConfiguration_name,+    replicationConfiguration_replicatedDisks,+    replicationConfiguration_replicationServerInstanceType,+    replicationConfiguration_replicationServersSecurityGroupsIDs,+    replicationConfiguration_sourceServerID,+    replicationConfiguration_stagingAreaSubnetId,+    replicationConfiguration_stagingAreaTags,+    replicationConfiguration_useDedicatedReplicationServer,++    -- ** ReplicationConfigurationReplicatedDisk+    replicationConfigurationReplicatedDisk_deviceName,+    replicationConfigurationReplicatedDisk_iops,+    replicationConfigurationReplicatedDisk_isBootDisk,+    replicationConfigurationReplicatedDisk_stagingDiskType,+    replicationConfigurationReplicatedDisk_throughput,++    -- ** ReplicationConfigurationTemplate+    replicationConfigurationTemplate_arn,+    replicationConfigurationTemplate_associateDefaultSecurityGroup,+    replicationConfigurationTemplate_bandwidthThrottling,+    replicationConfigurationTemplate_createPublicIP,+    replicationConfigurationTemplate_dataPlaneRouting,+    replicationConfigurationTemplate_defaultLargeStagingDiskType,+    replicationConfigurationTemplate_ebsEncryption,+    replicationConfigurationTemplate_ebsEncryptionKeyArn,+    replicationConfigurationTemplate_replicationServerInstanceType,+    replicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    replicationConfigurationTemplate_stagingAreaSubnetId,+    replicationConfigurationTemplate_stagingAreaTags,+    replicationConfigurationTemplate_tags,+    replicationConfigurationTemplate_useDedicatedReplicationServer,+    replicationConfigurationTemplate_replicationConfigurationTemplateID,++    -- ** SourceProperties+    sourceProperties_cpus,+    sourceProperties_disks,+    sourceProperties_identificationHints,+    sourceProperties_lastUpdatedDateTime,+    sourceProperties_networkInterfaces,+    sourceProperties_os,+    sourceProperties_ramBytes,+    sourceProperties_recommendedInstanceType,++    -- ** SourceServer+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- ** SourceServerActionDocument+    sourceServerActionDocument_actionID,+    sourceServerActionDocument_actionName,+    sourceServerActionDocument_active,+    sourceServerActionDocument_documentIdentifier,+    sourceServerActionDocument_documentVersion,+    sourceServerActionDocument_mustSucceedForCutover,+    sourceServerActionDocument_order,+    sourceServerActionDocument_parameters,+    sourceServerActionDocument_timeoutSeconds,++    -- ** SourceServerActionsRequestFilters+    sourceServerActionsRequestFilters_actionIDs,++    -- ** SsmDocument+    ssmDocument_mustSucceedForCutover,+    ssmDocument_parameters,+    ssmDocument_timeoutSeconds,+    ssmDocument_actionName,+    ssmDocument_ssmDocumentName,++    -- ** SsmParameterStoreParameter+    ssmParameterStoreParameter_parameterName,+    ssmParameterStoreParameter_parameterType,++    -- ** TemplateActionDocument+    templateActionDocument_actionID,+    templateActionDocument_actionName,+    templateActionDocument_active,+    templateActionDocument_documentIdentifier,+    templateActionDocument_documentVersion,+    templateActionDocument_mustSucceedForCutover,+    templateActionDocument_operatingSystem,+    templateActionDocument_order,+    templateActionDocument_parameters,+    templateActionDocument_timeoutSeconds,++    -- ** TemplateActionsRequestFilters+    templateActionsRequestFilters_actionIDs,++    -- ** VcenterClient+    vcenterClient_arn,+    vcenterClient_datacenterName,+    vcenterClient_hostname,+    vcenterClient_lastSeenDatetime,+    vcenterClient_sourceServerTags,+    vcenterClient_tags,+    vcenterClient_vcenterClientID,+    vcenterClient_vcenterUUID,++    -- ** Wave+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,++    -- ** WaveAggregatedStatus+    waveAggregatedStatus_healthStatus,+    waveAggregatedStatus_lastUpdateDateTime,+    waveAggregatedStatus_progressStatus,+    waveAggregatedStatus_replicationStartedDateTime,+    waveAggregatedStatus_totalApplications,+  )+where++import Amazonka.MGN.ArchiveApplication+import Amazonka.MGN.ArchiveWave+import Amazonka.MGN.AssociateApplications+import Amazonka.MGN.AssociateSourceServers+import Amazonka.MGN.ChangeServerLifeCycleState+import Amazonka.MGN.CreateApplication+import Amazonka.MGN.CreateLaunchConfigurationTemplate+import Amazonka.MGN.CreateReplicationConfigurationTemplate+import Amazonka.MGN.CreateWave+import Amazonka.MGN.DeleteApplication+import Amazonka.MGN.DeleteJob+import Amazonka.MGN.DeleteLaunchConfigurationTemplate+import Amazonka.MGN.DeleteReplicationConfigurationTemplate+import Amazonka.MGN.DeleteSourceServer+import Amazonka.MGN.DeleteVcenterClient+import Amazonka.MGN.DeleteWave+import Amazonka.MGN.DescribeJobLogItems+import Amazonka.MGN.DescribeJobs+import Amazonka.MGN.DescribeLaunchConfigurationTemplates+import Amazonka.MGN.DescribeReplicationConfigurationTemplates+import Amazonka.MGN.DescribeSourceServers+import Amazonka.MGN.DescribeVcenterClients+import Amazonka.MGN.DisassociateApplications+import Amazonka.MGN.DisassociateSourceServers+import Amazonka.MGN.DisconnectFromService+import Amazonka.MGN.FinalizeCutover+import Amazonka.MGN.GetLaunchConfiguration+import Amazonka.MGN.GetReplicationConfiguration+import Amazonka.MGN.InitializeService+import Amazonka.MGN.ListApplications+import Amazonka.MGN.ListSourceServerActions+import Amazonka.MGN.ListTagsForResource+import Amazonka.MGN.ListTemplateActions+import Amazonka.MGN.ListWaves+import Amazonka.MGN.MarkAsArchived+import Amazonka.MGN.PutSourceServerAction+import Amazonka.MGN.PutTemplateAction+import Amazonka.MGN.RemoveSourceServerAction+import Amazonka.MGN.RemoveTemplateAction+import Amazonka.MGN.RetryDataReplication+import Amazonka.MGN.StartCutover+import Amazonka.MGN.StartReplication+import Amazonka.MGN.StartTest+import Amazonka.MGN.TagResource+import Amazonka.MGN.TerminateTargetInstances+import Amazonka.MGN.Types.Application+import Amazonka.MGN.Types.ApplicationAggregatedStatus+import Amazonka.MGN.Types.CPU+import Amazonka.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycle+import Amazonka.MGN.Types.DataReplicationError+import Amazonka.MGN.Types.DataReplicationInfo+import Amazonka.MGN.Types.DataReplicationInfoReplicatedDisk+import Amazonka.MGN.Types.DataReplicationInitiation+import Amazonka.MGN.Types.DataReplicationInitiationStep+import Amazonka.MGN.Types.DescribeJobsRequestFilters+import Amazonka.MGN.Types.DescribeSourceServersRequestFilters+import Amazonka.MGN.Types.Disk+import Amazonka.MGN.Types.IdentificationHints+import Amazonka.MGN.Types.Job+import Amazonka.MGN.Types.JobLog+import Amazonka.MGN.Types.JobLogEventData+import Amazonka.MGN.Types.JobPostLaunchActionsLaunchStatus+import Amazonka.MGN.Types.LaunchConfiguration+import Amazonka.MGN.Types.LaunchConfigurationTemplate+import Amazonka.MGN.Types.LaunchTemplateDiskConf+import Amazonka.MGN.Types.LaunchedInstance+import Amazonka.MGN.Types.Licensing+import Amazonka.MGN.Types.LifeCycle+import Amazonka.MGN.Types.LifeCycleLastCutover+import Amazonka.MGN.Types.LifeCycleLastCutoverFinalized+import Amazonka.MGN.Types.LifeCycleLastCutoverInitiated+import Amazonka.MGN.Types.LifeCycleLastCutoverReverted+import Amazonka.MGN.Types.LifeCycleLastTest+import Amazonka.MGN.Types.LifeCycleLastTestFinalized+import Amazonka.MGN.Types.LifeCycleLastTestInitiated+import Amazonka.MGN.Types.LifeCycleLastTestReverted+import Amazonka.MGN.Types.ListApplicationsRequestFilters+import Amazonka.MGN.Types.ListWavesRequestFilters+import Amazonka.MGN.Types.NetworkInterface+import Amazonka.MGN.Types.OS+import Amazonka.MGN.Types.ParticipatingServer+import Amazonka.MGN.Types.PostLaunchActions+import Amazonka.MGN.Types.PostLaunchActionsStatus+import Amazonka.MGN.Types.ReplicationConfiguration+import Amazonka.MGN.Types.ReplicationConfigurationReplicatedDisk+import Amazonka.MGN.Types.ReplicationConfigurationTemplate+import Amazonka.MGN.Types.SourceProperties+import Amazonka.MGN.Types.SourceServer+import Amazonka.MGN.Types.SourceServerActionDocument+import Amazonka.MGN.Types.SourceServerActionsRequestFilters+import Amazonka.MGN.Types.SsmDocument+import Amazonka.MGN.Types.SsmParameterStoreParameter+import Amazonka.MGN.Types.TemplateActionDocument+import Amazonka.MGN.Types.TemplateActionsRequestFilters+import Amazonka.MGN.Types.VcenterClient+import Amazonka.MGN.Types.Wave+import Amazonka.MGN.Types.WaveAggregatedStatus+import Amazonka.MGN.UnarchiveApplication+import Amazonka.MGN.UnarchiveWave+import Amazonka.MGN.UntagResource+import Amazonka.MGN.UpdateApplication+import Amazonka.MGN.UpdateLaunchConfiguration+import Amazonka.MGN.UpdateLaunchConfigurationTemplate+import Amazonka.MGN.UpdateReplicationConfiguration+import Amazonka.MGN.UpdateReplicationConfigurationTemplate+import Amazonka.MGN.UpdateSourceServerReplicationType+import Amazonka.MGN.UpdateWave
+ gen/Amazonka/MGN/ListApplications.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.ListApplications+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves all applications or multiple applications by ID.+--+-- This operation returns paginated results.+module Amazonka.MGN.ListApplications+  ( -- * Creating a Request+    ListApplications (..),+    newListApplications,++    -- * Request Lenses+    listApplications_filters,+    listApplications_maxResults,+    listApplications_nextToken,++    -- * Destructuring the Response+    ListApplicationsResponse (..),+    newListApplicationsResponse,++    -- * Response Lenses+    listApplicationsResponse_items,+    listApplicationsResponse_nextToken,+    listApplicationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListApplications' smart constructor.+data ListApplications = ListApplications'+  { -- | Applications list filters.+    filters :: Prelude.Maybe ListApplicationsRequestFilters,+    -- | Maximum results to return when listing applications.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Request next token.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApplications' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listApplications_filters' - Applications list filters.+--+-- 'maxResults', 'listApplications_maxResults' - Maximum results to return when listing applications.+--+-- 'nextToken', 'listApplications_nextToken' - Request next token.+newListApplications ::+  ListApplications+newListApplications =+  ListApplications'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Applications list filters.+listApplications_filters :: Lens.Lens' ListApplications (Prelude.Maybe ListApplicationsRequestFilters)+listApplications_filters = Lens.lens (\ListApplications' {filters} -> filters) (\s@ListApplications' {} a -> s {filters = a} :: ListApplications)++-- | Maximum results to return when listing applications.+listApplications_maxResults :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Natural)+listApplications_maxResults = Lens.lens (\ListApplications' {maxResults} -> maxResults) (\s@ListApplications' {} a -> s {maxResults = a} :: ListApplications)++-- | Request next token.+listApplications_nextToken :: Lens.Lens' ListApplications (Prelude.Maybe Prelude.Text)+listApplications_nextToken = Lens.lens (\ListApplications' {nextToken} -> nextToken) (\s@ListApplications' {} a -> s {nextToken = a} :: ListApplications)++instance Core.AWSPager ListApplications where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listApplicationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listApplicationsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listApplications_nextToken+          Lens..~ rs+          Lens.^? listApplicationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListApplications where+  type+    AWSResponse ListApplications =+      ListApplicationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListApplicationsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListApplications where+  hashWithSalt _salt ListApplications' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListApplications where+  rnf ListApplications' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListApplications where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListApplications where+  toJSON ListApplications' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListApplications where+  toPath = Prelude.const "/ListApplications"++instance Data.ToQuery ListApplications where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListApplicationsResponse' smart constructor.+data ListApplicationsResponse = ListApplicationsResponse'+  { -- | Applications list.+    items :: Prelude.Maybe [Application],+    -- | Response next token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApplicationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listApplicationsResponse_items' - Applications list.+--+-- 'nextToken', 'listApplicationsResponse_nextToken' - Response next token.+--+-- 'httpStatus', 'listApplicationsResponse_httpStatus' - The response's http status code.+newListApplicationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListApplicationsResponse+newListApplicationsResponse pHttpStatus_ =+  ListApplicationsResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Applications list.+listApplicationsResponse_items :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe [Application])+listApplicationsResponse_items = Lens.lens (\ListApplicationsResponse' {items} -> items) (\s@ListApplicationsResponse' {} a -> s {items = a} :: ListApplicationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Response next token.+listApplicationsResponse_nextToken :: Lens.Lens' ListApplicationsResponse (Prelude.Maybe Prelude.Text)+listApplicationsResponse_nextToken = Lens.lens (\ListApplicationsResponse' {nextToken} -> nextToken) (\s@ListApplicationsResponse' {} a -> s {nextToken = a} :: ListApplicationsResponse)++-- | The response's http status code.+listApplicationsResponse_httpStatus :: Lens.Lens' ListApplicationsResponse Prelude.Int+listApplicationsResponse_httpStatus = Lens.lens (\ListApplicationsResponse' {httpStatus} -> httpStatus) (\s@ListApplicationsResponse' {} a -> s {httpStatus = a} :: ListApplicationsResponse)++instance Prelude.NFData ListApplicationsResponse where+  rnf ListApplicationsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/ListSourceServerActions.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.ListSourceServerActions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List source server post migration custom actions.+--+-- This operation returns paginated results.+module Amazonka.MGN.ListSourceServerActions+  ( -- * Creating a Request+    ListSourceServerActions (..),+    newListSourceServerActions,++    -- * Request Lenses+    listSourceServerActions_filters,+    listSourceServerActions_maxResults,+    listSourceServerActions_nextToken,+    listSourceServerActions_sourceServerID,++    -- * Destructuring the Response+    ListSourceServerActionsResponse (..),+    newListSourceServerActionsResponse,++    -- * Response Lenses+    listSourceServerActionsResponse_items,+    listSourceServerActionsResponse_nextToken,+    listSourceServerActionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSourceServerActions' smart constructor.+data ListSourceServerActions = ListSourceServerActions'+  { -- | Filters to apply when listing source server post migration custom+    -- actions.+    filters :: Prelude.Maybe SourceServerActionsRequestFilters,+    -- | Maximum amount of items to return when listing source server post+    -- migration custom actions.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next token to use when listing source server post migration custom+    -- actions.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Source server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSourceServerActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSourceServerActions_filters' - Filters to apply when listing source server post migration custom+-- actions.+--+-- 'maxResults', 'listSourceServerActions_maxResults' - Maximum amount of items to return when listing source server post+-- migration custom actions.+--+-- 'nextToken', 'listSourceServerActions_nextToken' - Next token to use when listing source server post migration custom+-- actions.+--+-- 'sourceServerID', 'listSourceServerActions_sourceServerID' - Source server ID.+newListSourceServerActions ::+  -- | 'sourceServerID'+  Prelude.Text ->+  ListSourceServerActions+newListSourceServerActions pSourceServerID_ =+  ListSourceServerActions'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sourceServerID = pSourceServerID_+    }++-- | Filters to apply when listing source server post migration custom+-- actions.+listSourceServerActions_filters :: Lens.Lens' ListSourceServerActions (Prelude.Maybe SourceServerActionsRequestFilters)+listSourceServerActions_filters = Lens.lens (\ListSourceServerActions' {filters} -> filters) (\s@ListSourceServerActions' {} a -> s {filters = a} :: ListSourceServerActions)++-- | Maximum amount of items to return when listing source server post+-- migration custom actions.+listSourceServerActions_maxResults :: Lens.Lens' ListSourceServerActions (Prelude.Maybe Prelude.Natural)+listSourceServerActions_maxResults = Lens.lens (\ListSourceServerActions' {maxResults} -> maxResults) (\s@ListSourceServerActions' {} a -> s {maxResults = a} :: ListSourceServerActions)++-- | Next token to use when listing source server post migration custom+-- actions.+listSourceServerActions_nextToken :: Lens.Lens' ListSourceServerActions (Prelude.Maybe Prelude.Text)+listSourceServerActions_nextToken = Lens.lens (\ListSourceServerActions' {nextToken} -> nextToken) (\s@ListSourceServerActions' {} a -> s {nextToken = a} :: ListSourceServerActions)++-- | Source server ID.+listSourceServerActions_sourceServerID :: Lens.Lens' ListSourceServerActions Prelude.Text+listSourceServerActions_sourceServerID = Lens.lens (\ListSourceServerActions' {sourceServerID} -> sourceServerID) (\s@ListSourceServerActions' {} a -> s {sourceServerID = a} :: ListSourceServerActions)++instance Core.AWSPager ListSourceServerActions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSourceServerActionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSourceServerActionsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSourceServerActions_nextToken+          Lens..~ rs+          Lens.^? listSourceServerActionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSourceServerActions where+  type+    AWSResponse ListSourceServerActions =+      ListSourceServerActionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSourceServerActionsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSourceServerActions where+  hashWithSalt _salt ListSourceServerActions' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData ListSourceServerActions where+  rnf ListSourceServerActions' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sourceServerID++instance Data.ToHeaders ListSourceServerActions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSourceServerActions where+  toJSON ListSourceServerActions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath ListSourceServerActions where+  toPath = Prelude.const "/ListSourceServerActions"++instance Data.ToQuery ListSourceServerActions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSourceServerActionsResponse' smart constructor.+data ListSourceServerActionsResponse = ListSourceServerActionsResponse'+  { -- | List of source server post migration custom actions.+    items :: Prelude.Maybe [SourceServerActionDocument],+    -- | Next token returned when listing source server post migration custom+    -- actions.+    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 'ListSourceServerActionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listSourceServerActionsResponse_items' - List of source server post migration custom actions.+--+-- 'nextToken', 'listSourceServerActionsResponse_nextToken' - Next token returned when listing source server post migration custom+-- actions.+--+-- 'httpStatus', 'listSourceServerActionsResponse_httpStatus' - The response's http status code.+newListSourceServerActionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSourceServerActionsResponse+newListSourceServerActionsResponse pHttpStatus_ =+  ListSourceServerActionsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of source server post migration custom actions.+listSourceServerActionsResponse_items :: Lens.Lens' ListSourceServerActionsResponse (Prelude.Maybe [SourceServerActionDocument])+listSourceServerActionsResponse_items = Lens.lens (\ListSourceServerActionsResponse' {items} -> items) (\s@ListSourceServerActionsResponse' {} a -> s {items = a} :: ListSourceServerActionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token returned when listing source server post migration custom+-- actions.+listSourceServerActionsResponse_nextToken :: Lens.Lens' ListSourceServerActionsResponse (Prelude.Maybe Prelude.Text)+listSourceServerActionsResponse_nextToken = Lens.lens (\ListSourceServerActionsResponse' {nextToken} -> nextToken) (\s@ListSourceServerActionsResponse' {} a -> s {nextToken = a} :: ListSourceServerActionsResponse)++-- | The response's http status code.+listSourceServerActionsResponse_httpStatus :: Lens.Lens' ListSourceServerActionsResponse Prelude.Int+listSourceServerActionsResponse_httpStatus = Lens.lens (\ListSourceServerActionsResponse' {httpStatus} -> httpStatus) (\s@ListSourceServerActionsResponse' {} a -> s {httpStatus = a} :: ListSourceServerActionsResponse)++instance+  Prelude.NFData+    ListSourceServerActionsResponse+  where+  rnf ListSourceServerActionsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/ListTagsForResource.hs view
@@ -0,0 +1,159 @@+{-# 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.MGN.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)+--+-- List all tags for your Application Migration Service resources.+module Amazonka.MGN.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    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.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | List tags for resource request by ARN.+    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:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - List tags for resource request by ARN.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | List tags for resource request by ARN.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | List tags for resource response.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, 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:+--+-- 'tags', 'listTagsForResourceResponse_tags' - List tags for resource response.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List tags for resource response.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping (Data._Sensitive Prelude.. 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 tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/ListTemplateActions.hs view
@@ -0,0 +1,252 @@+{-# 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.MGN.ListTemplateActions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List template post migration custom actions.+--+-- This operation returns paginated results.+module Amazonka.MGN.ListTemplateActions+  ( -- * Creating a Request+    ListTemplateActions (..),+    newListTemplateActions,++    -- * Request Lenses+    listTemplateActions_filters,+    listTemplateActions_maxResults,+    listTemplateActions_nextToken,+    listTemplateActions_launchConfigurationTemplateID,++    -- * Destructuring the Response+    ListTemplateActionsResponse (..),+    newListTemplateActionsResponse,++    -- * Response Lenses+    listTemplateActionsResponse_items,+    listTemplateActionsResponse_nextToken,+    listTemplateActionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTemplateActions' smart constructor.+data ListTemplateActions = ListTemplateActions'+  { -- | Filters to apply when listing template post migration custom actions.+    filters :: Prelude.Maybe TemplateActionsRequestFilters,+    -- | Maximum amount of items to return when listing template post migration+    -- custom actions.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next token to use when listing template post migration custom actions.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Launch configuration template ID.+    launchConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTemplateActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listTemplateActions_filters' - Filters to apply when listing template post migration custom actions.+--+-- 'maxResults', 'listTemplateActions_maxResults' - Maximum amount of items to return when listing template post migration+-- custom actions.+--+-- 'nextToken', 'listTemplateActions_nextToken' - Next token to use when listing template post migration custom actions.+--+-- 'launchConfigurationTemplateID', 'listTemplateActions_launchConfigurationTemplateID' - Launch configuration template ID.+newListTemplateActions ::+  -- | 'launchConfigurationTemplateID'+  Prelude.Text ->+  ListTemplateActions+newListTemplateActions+  pLaunchConfigurationTemplateID_ =+    ListTemplateActions'+      { filters = Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        launchConfigurationTemplateID =+          pLaunchConfigurationTemplateID_+      }++-- | Filters to apply when listing template post migration custom actions.+listTemplateActions_filters :: Lens.Lens' ListTemplateActions (Prelude.Maybe TemplateActionsRequestFilters)+listTemplateActions_filters = Lens.lens (\ListTemplateActions' {filters} -> filters) (\s@ListTemplateActions' {} a -> s {filters = a} :: ListTemplateActions)++-- | Maximum amount of items to return when listing template post migration+-- custom actions.+listTemplateActions_maxResults :: Lens.Lens' ListTemplateActions (Prelude.Maybe Prelude.Natural)+listTemplateActions_maxResults = Lens.lens (\ListTemplateActions' {maxResults} -> maxResults) (\s@ListTemplateActions' {} a -> s {maxResults = a} :: ListTemplateActions)++-- | Next token to use when listing template post migration custom actions.+listTemplateActions_nextToken :: Lens.Lens' ListTemplateActions (Prelude.Maybe Prelude.Text)+listTemplateActions_nextToken = Lens.lens (\ListTemplateActions' {nextToken} -> nextToken) (\s@ListTemplateActions' {} a -> s {nextToken = a} :: ListTemplateActions)++-- | Launch configuration template ID.+listTemplateActions_launchConfigurationTemplateID :: Lens.Lens' ListTemplateActions Prelude.Text+listTemplateActions_launchConfigurationTemplateID = Lens.lens (\ListTemplateActions' {launchConfigurationTemplateID} -> launchConfigurationTemplateID) (\s@ListTemplateActions' {} a -> s {launchConfigurationTemplateID = a} :: ListTemplateActions)++instance Core.AWSPager ListTemplateActions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listTemplateActionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listTemplateActionsResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listTemplateActions_nextToken+          Lens..~ rs+          Lens.^? listTemplateActionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListTemplateActions where+  type+    AWSResponse ListTemplateActions =+      ListTemplateActionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTemplateActionsResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTemplateActions where+  hashWithSalt _salt ListTemplateActions' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` launchConfigurationTemplateID++instance Prelude.NFData ListTemplateActions where+  rnf ListTemplateActions' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf launchConfigurationTemplateID++instance Data.ToHeaders ListTemplateActions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTemplateActions where+  toJSON ListTemplateActions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just+              ( "launchConfigurationTemplateID"+                  Data..= launchConfigurationTemplateID+              )+          ]+      )++instance Data.ToPath ListTemplateActions where+  toPath = Prelude.const "/ListTemplateActions"++instance Data.ToQuery ListTemplateActions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTemplateActionsResponse' smart constructor.+data ListTemplateActionsResponse = ListTemplateActionsResponse'+  { -- | List of template post migration custom actions.+    items :: Prelude.Maybe [TemplateActionDocument],+    -- | Next token returned when listing template post migration custom actions.+    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 'ListTemplateActionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listTemplateActionsResponse_items' - List of template post migration custom actions.+--+-- 'nextToken', 'listTemplateActionsResponse_nextToken' - Next token returned when listing template post migration custom actions.+--+-- 'httpStatus', 'listTemplateActionsResponse_httpStatus' - The response's http status code.+newListTemplateActionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTemplateActionsResponse+newListTemplateActionsResponse pHttpStatus_ =+  ListTemplateActionsResponse'+    { items =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of template post migration custom actions.+listTemplateActionsResponse_items :: Lens.Lens' ListTemplateActionsResponse (Prelude.Maybe [TemplateActionDocument])+listTemplateActionsResponse_items = Lens.lens (\ListTemplateActionsResponse' {items} -> items) (\s@ListTemplateActionsResponse' {} a -> s {items = a} :: ListTemplateActionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token returned when listing template post migration custom actions.+listTemplateActionsResponse_nextToken :: Lens.Lens' ListTemplateActionsResponse (Prelude.Maybe Prelude.Text)+listTemplateActionsResponse_nextToken = Lens.lens (\ListTemplateActionsResponse' {nextToken} -> nextToken) (\s@ListTemplateActionsResponse' {} a -> s {nextToken = a} :: ListTemplateActionsResponse)++-- | The response's http status code.+listTemplateActionsResponse_httpStatus :: Lens.Lens' ListTemplateActionsResponse Prelude.Int+listTemplateActionsResponse_httpStatus = Lens.lens (\ListTemplateActionsResponse' {httpStatus} -> httpStatus) (\s@ListTemplateActionsResponse' {} a -> s {httpStatus = a} :: ListTemplateActionsResponse)++instance Prelude.NFData ListTemplateActionsResponse where+  rnf ListTemplateActionsResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/ListWaves.hs view
@@ -0,0 +1,226 @@+{-# 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.MGN.ListWaves+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves all waves or multiple waves by ID.+--+-- This operation returns paginated results.+module Amazonka.MGN.ListWaves+  ( -- * Creating a Request+    ListWaves (..),+    newListWaves,++    -- * Request Lenses+    listWaves_filters,+    listWaves_maxResults,+    listWaves_nextToken,++    -- * Destructuring the Response+    ListWavesResponse (..),+    newListWavesResponse,++    -- * Response Lenses+    listWavesResponse_items,+    listWavesResponse_nextToken,+    listWavesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListWaves' smart constructor.+data ListWaves = ListWaves'+  { -- | Waves list filters.+    filters :: Prelude.Maybe ListWavesRequestFilters,+    -- | Maximum results to return when listing waves.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Request next token.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWaves' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listWaves_filters' - Waves list filters.+--+-- 'maxResults', 'listWaves_maxResults' - Maximum results to return when listing waves.+--+-- 'nextToken', 'listWaves_nextToken' - Request next token.+newListWaves ::+  ListWaves+newListWaves =+  ListWaves'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Waves list filters.+listWaves_filters :: Lens.Lens' ListWaves (Prelude.Maybe ListWavesRequestFilters)+listWaves_filters = Lens.lens (\ListWaves' {filters} -> filters) (\s@ListWaves' {} a -> s {filters = a} :: ListWaves)++-- | Maximum results to return when listing waves.+listWaves_maxResults :: Lens.Lens' ListWaves (Prelude.Maybe Prelude.Natural)+listWaves_maxResults = Lens.lens (\ListWaves' {maxResults} -> maxResults) (\s@ListWaves' {} a -> s {maxResults = a} :: ListWaves)++-- | Request next token.+listWaves_nextToken :: Lens.Lens' ListWaves (Prelude.Maybe Prelude.Text)+listWaves_nextToken = Lens.lens (\ListWaves' {nextToken} -> nextToken) (\s@ListWaves' {} a -> s {nextToken = a} :: ListWaves)++instance Core.AWSPager ListWaves where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listWavesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listWavesResponse_items+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listWaves_nextToken+          Lens..~ rs+          Lens.^? listWavesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListWaves where+  type AWSResponse ListWaves = ListWavesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListWavesResponse'+            Prelude.<$> (x Data..?> "items" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListWaves where+  hashWithSalt _salt ListWaves' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListWaves where+  rnf ListWaves' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListWaves where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListWaves where+  toJSON ListWaves' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListWaves where+  toPath = Prelude.const "/ListWaves"++instance Data.ToQuery ListWaves where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListWavesResponse' smart constructor.+data ListWavesResponse = ListWavesResponse'+  { -- | Waves list.+    items :: Prelude.Maybe [Wave],+    -- | Response next token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWavesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listWavesResponse_items' - Waves list.+--+-- 'nextToken', 'listWavesResponse_nextToken' - Response next token.+--+-- 'httpStatus', 'listWavesResponse_httpStatus' - The response's http status code.+newListWavesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListWavesResponse+newListWavesResponse pHttpStatus_ =+  ListWavesResponse'+    { items = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Waves list.+listWavesResponse_items :: Lens.Lens' ListWavesResponse (Prelude.Maybe [Wave])+listWavesResponse_items = Lens.lens (\ListWavesResponse' {items} -> items) (\s@ListWavesResponse' {} a -> s {items = a} :: ListWavesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Response next token.+listWavesResponse_nextToken :: Lens.Lens' ListWavesResponse (Prelude.Maybe Prelude.Text)+listWavesResponse_nextToken = Lens.lens (\ListWavesResponse' {nextToken} -> nextToken) (\s@ListWavesResponse' {} a -> s {nextToken = a} :: ListWavesResponse)++-- | The response's http status code.+listWavesResponse_httpStatus :: Lens.Lens' ListWavesResponse Prelude.Int+listWavesResponse_httpStatus = Lens.lens (\ListWavesResponse' {httpStatus} -> httpStatus) (\s@ListWavesResponse' {} a -> s {httpStatus = a} :: ListWavesResponse)++instance Prelude.NFData ListWavesResponse where+  rnf ListWavesResponse' {..} =+    Prelude.rnf items+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/MarkAsArchived.hs view
@@ -0,0 +1,128 @@+{-# 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.MGN.MarkAsArchived+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Archives specific Source Servers by setting the SourceServer.isArchived+-- property to true for specified SourceServers by ID. This command only+-- works for SourceServers with a lifecycle. state which equals+-- DISCONNECTED or CUTOVER.+module Amazonka.MGN.MarkAsArchived+  ( -- * Creating a Request+    MarkAsArchived (..),+    newMarkAsArchived,++    -- * Request Lenses+    markAsArchived_sourceServerID,++    -- * Destructuring the Response+    SourceServer (..),+    newSourceServer,++    -- * Response Lenses+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newMarkAsArchived' smart constructor.+data MarkAsArchived = MarkAsArchived'+  { -- | Mark as archived by Source Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MarkAsArchived' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'markAsArchived_sourceServerID' - Mark as archived by Source Server ID.+newMarkAsArchived ::+  -- | 'sourceServerID'+  Prelude.Text ->+  MarkAsArchived+newMarkAsArchived pSourceServerID_ =+  MarkAsArchived' {sourceServerID = pSourceServerID_}++-- | Mark as archived by Source Server ID.+markAsArchived_sourceServerID :: Lens.Lens' MarkAsArchived Prelude.Text+markAsArchived_sourceServerID = Lens.lens (\MarkAsArchived' {sourceServerID} -> sourceServerID) (\s@MarkAsArchived' {} a -> s {sourceServerID = a} :: MarkAsArchived)++instance Core.AWSRequest MarkAsArchived where+  type AWSResponse MarkAsArchived = SourceServer+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable MarkAsArchived where+  hashWithSalt _salt MarkAsArchived' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData MarkAsArchived where+  rnf MarkAsArchived' {..} = Prelude.rnf sourceServerID++instance Data.ToHeaders MarkAsArchived where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON MarkAsArchived where+  toJSON MarkAsArchived' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath MarkAsArchived where+  toPath = Prelude.const "/MarkAsArchived"++instance Data.ToQuery MarkAsArchived where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/PutSourceServerAction.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.MGN.PutSourceServerAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Put source server post migration custom action.+module Amazonka.MGN.PutSourceServerAction+  ( -- * Creating a Request+    PutSourceServerAction (..),+    newPutSourceServerAction,++    -- * Request Lenses+    putSourceServerAction_active,+    putSourceServerAction_documentVersion,+    putSourceServerAction_mustSucceedForCutover,+    putSourceServerAction_parameters,+    putSourceServerAction_timeoutSeconds,+    putSourceServerAction_actionID,+    putSourceServerAction_actionName,+    putSourceServerAction_documentIdentifier,+    putSourceServerAction_order,+    putSourceServerAction_sourceServerID,++    -- * Destructuring the Response+    SourceServerActionDocument (..),+    newSourceServerActionDocument,++    -- * Response Lenses+    sourceServerActionDocument_actionID,+    sourceServerActionDocument_actionName,+    sourceServerActionDocument_active,+    sourceServerActionDocument_documentIdentifier,+    sourceServerActionDocument_documentVersion,+    sourceServerActionDocument_mustSucceedForCutover,+    sourceServerActionDocument_order,+    sourceServerActionDocument_parameters,+    sourceServerActionDocument_timeoutSeconds,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutSourceServerAction' smart constructor.+data PutSourceServerAction = PutSourceServerAction'+  { -- | Source server post migration custom action active status.+    active :: Prelude.Maybe Prelude.Bool,+    -- | Source server post migration custom action document version.+    documentVersion :: Prelude.Maybe Prelude.Text,+    -- | Source server post migration custom action must succeed for cutover.+    mustSucceedForCutover :: Prelude.Maybe Prelude.Bool,+    -- | Source server post migration custom action parameters.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]),+    -- | Source server post migration custom action timeout in seconds.+    timeoutSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Source server post migration custom action ID.+    actionID :: Prelude.Text,+    -- | Source server post migration custom action name.+    actionName :: Prelude.Text,+    -- | Source server post migration custom action document identifier.+    documentIdentifier :: Prelude.Text,+    -- | Source server post migration custom action order.+    order :: Prelude.Natural,+    -- | Source server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutSourceServerAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'active', 'putSourceServerAction_active' - Source server post migration custom action active status.+--+-- 'documentVersion', 'putSourceServerAction_documentVersion' - Source server post migration custom action document version.+--+-- 'mustSucceedForCutover', 'putSourceServerAction_mustSucceedForCutover' - Source server post migration custom action must succeed for cutover.+--+-- 'parameters', 'putSourceServerAction_parameters' - Source server post migration custom action parameters.+--+-- 'timeoutSeconds', 'putSourceServerAction_timeoutSeconds' - Source server post migration custom action timeout in seconds.+--+-- 'actionID', 'putSourceServerAction_actionID' - Source server post migration custom action ID.+--+-- 'actionName', 'putSourceServerAction_actionName' - Source server post migration custom action name.+--+-- 'documentIdentifier', 'putSourceServerAction_documentIdentifier' - Source server post migration custom action document identifier.+--+-- 'order', 'putSourceServerAction_order' - Source server post migration custom action order.+--+-- 'sourceServerID', 'putSourceServerAction_sourceServerID' - Source server ID.+newPutSourceServerAction ::+  -- | 'actionID'+  Prelude.Text ->+  -- | 'actionName'+  Prelude.Text ->+  -- | 'documentIdentifier'+  Prelude.Text ->+  -- | 'order'+  Prelude.Natural ->+  -- | 'sourceServerID'+  Prelude.Text ->+  PutSourceServerAction+newPutSourceServerAction+  pActionID_+  pActionName_+  pDocumentIdentifier_+  pOrder_+  pSourceServerID_ =+    PutSourceServerAction'+      { active = Prelude.Nothing,+        documentVersion = Prelude.Nothing,+        mustSucceedForCutover = Prelude.Nothing,+        parameters = Prelude.Nothing,+        timeoutSeconds = Prelude.Nothing,+        actionID = pActionID_,+        actionName = pActionName_,+        documentIdentifier = pDocumentIdentifier_,+        order = pOrder_,+        sourceServerID = pSourceServerID_+      }++-- | Source server post migration custom action active status.+putSourceServerAction_active :: Lens.Lens' PutSourceServerAction (Prelude.Maybe Prelude.Bool)+putSourceServerAction_active = Lens.lens (\PutSourceServerAction' {active} -> active) (\s@PutSourceServerAction' {} a -> s {active = a} :: PutSourceServerAction)++-- | Source server post migration custom action document version.+putSourceServerAction_documentVersion :: Lens.Lens' PutSourceServerAction (Prelude.Maybe Prelude.Text)+putSourceServerAction_documentVersion = Lens.lens (\PutSourceServerAction' {documentVersion} -> documentVersion) (\s@PutSourceServerAction' {} a -> s {documentVersion = a} :: PutSourceServerAction)++-- | Source server post migration custom action must succeed for cutover.+putSourceServerAction_mustSucceedForCutover :: Lens.Lens' PutSourceServerAction (Prelude.Maybe Prelude.Bool)+putSourceServerAction_mustSucceedForCutover = Lens.lens (\PutSourceServerAction' {mustSucceedForCutover} -> mustSucceedForCutover) (\s@PutSourceServerAction' {} a -> s {mustSucceedForCutover = a} :: PutSourceServerAction)++-- | Source server post migration custom action parameters.+putSourceServerAction_parameters :: Lens.Lens' PutSourceServerAction (Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]))+putSourceServerAction_parameters = Lens.lens (\PutSourceServerAction' {parameters} -> parameters) (\s@PutSourceServerAction' {} a -> s {parameters = a} :: PutSourceServerAction) Prelude.. Lens.mapping Lens.coerced++-- | Source server post migration custom action timeout in seconds.+putSourceServerAction_timeoutSeconds :: Lens.Lens' PutSourceServerAction (Prelude.Maybe Prelude.Natural)+putSourceServerAction_timeoutSeconds = Lens.lens (\PutSourceServerAction' {timeoutSeconds} -> timeoutSeconds) (\s@PutSourceServerAction' {} a -> s {timeoutSeconds = a} :: PutSourceServerAction)++-- | Source server post migration custom action ID.+putSourceServerAction_actionID :: Lens.Lens' PutSourceServerAction Prelude.Text+putSourceServerAction_actionID = Lens.lens (\PutSourceServerAction' {actionID} -> actionID) (\s@PutSourceServerAction' {} a -> s {actionID = a} :: PutSourceServerAction)++-- | Source server post migration custom action name.+putSourceServerAction_actionName :: Lens.Lens' PutSourceServerAction Prelude.Text+putSourceServerAction_actionName = Lens.lens (\PutSourceServerAction' {actionName} -> actionName) (\s@PutSourceServerAction' {} a -> s {actionName = a} :: PutSourceServerAction)++-- | Source server post migration custom action document identifier.+putSourceServerAction_documentIdentifier :: Lens.Lens' PutSourceServerAction Prelude.Text+putSourceServerAction_documentIdentifier = Lens.lens (\PutSourceServerAction' {documentIdentifier} -> documentIdentifier) (\s@PutSourceServerAction' {} a -> s {documentIdentifier = a} :: PutSourceServerAction)++-- | Source server post migration custom action order.+putSourceServerAction_order :: Lens.Lens' PutSourceServerAction Prelude.Natural+putSourceServerAction_order = Lens.lens (\PutSourceServerAction' {order} -> order) (\s@PutSourceServerAction' {} a -> s {order = a} :: PutSourceServerAction)++-- | Source server ID.+putSourceServerAction_sourceServerID :: Lens.Lens' PutSourceServerAction Prelude.Text+putSourceServerAction_sourceServerID = Lens.lens (\PutSourceServerAction' {sourceServerID} -> sourceServerID) (\s@PutSourceServerAction' {} a -> s {sourceServerID = a} :: PutSourceServerAction)++instance Core.AWSRequest PutSourceServerAction where+  type+    AWSResponse PutSourceServerAction =+      SourceServerActionDocument+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable PutSourceServerAction where+  hashWithSalt _salt PutSourceServerAction' {..} =+    _salt+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` documentVersion+      `Prelude.hashWithSalt` mustSucceedForCutover+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` timeoutSeconds+      `Prelude.hashWithSalt` actionID+      `Prelude.hashWithSalt` actionName+      `Prelude.hashWithSalt` documentIdentifier+      `Prelude.hashWithSalt` order+      `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData PutSourceServerAction where+  rnf PutSourceServerAction' {..} =+    Prelude.rnf active+      `Prelude.seq` Prelude.rnf documentVersion+      `Prelude.seq` Prelude.rnf mustSucceedForCutover+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf timeoutSeconds+      `Prelude.seq` Prelude.rnf actionID+      `Prelude.seq` Prelude.rnf actionName+      `Prelude.seq` Prelude.rnf documentIdentifier+      `Prelude.seq` Prelude.rnf order+      `Prelude.seq` Prelude.rnf sourceServerID++instance Data.ToHeaders PutSourceServerAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutSourceServerAction where+  toJSON PutSourceServerAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("active" Data..=) Prelude.<$> active,+            ("documentVersion" Data..=)+              Prelude.<$> documentVersion,+            ("mustSucceedForCutover" Data..=)+              Prelude.<$> mustSucceedForCutover,+            ("parameters" Data..=) Prelude.<$> parameters,+            ("timeoutSeconds" Data..=)+              Prelude.<$> timeoutSeconds,+            Prelude.Just ("actionID" Data..= actionID),+            Prelude.Just ("actionName" Data..= actionName),+            Prelude.Just+              ("documentIdentifier" Data..= documentIdentifier),+            Prelude.Just ("order" Data..= order),+            Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath PutSourceServerAction where+  toPath = Prelude.const "/PutSourceServerAction"++instance Data.ToQuery PutSourceServerAction where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/PutTemplateAction.hs view
@@ -0,0 +1,284 @@+{-# 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.MGN.PutTemplateAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Put template post migration custom action.+module Amazonka.MGN.PutTemplateAction+  ( -- * Creating a Request+    PutTemplateAction (..),+    newPutTemplateAction,++    -- * Request Lenses+    putTemplateAction_active,+    putTemplateAction_documentVersion,+    putTemplateAction_mustSucceedForCutover,+    putTemplateAction_operatingSystem,+    putTemplateAction_parameters,+    putTemplateAction_timeoutSeconds,+    putTemplateAction_actionID,+    putTemplateAction_actionName,+    putTemplateAction_documentIdentifier,+    putTemplateAction_launchConfigurationTemplateID,+    putTemplateAction_order,++    -- * Destructuring the Response+    TemplateActionDocument (..),+    newTemplateActionDocument,++    -- * Response Lenses+    templateActionDocument_actionID,+    templateActionDocument_actionName,+    templateActionDocument_active,+    templateActionDocument_documentIdentifier,+    templateActionDocument_documentVersion,+    templateActionDocument_mustSucceedForCutover,+    templateActionDocument_operatingSystem,+    templateActionDocument_order,+    templateActionDocument_parameters,+    templateActionDocument_timeoutSeconds,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutTemplateAction' smart constructor.+data PutTemplateAction = PutTemplateAction'+  { -- | Template post migration custom action active status.+    active :: Prelude.Maybe Prelude.Bool,+    -- | Template post migration custom action document version.+    documentVersion :: Prelude.Maybe Prelude.Text,+    -- | Template post migration custom action must succeed for cutover.+    mustSucceedForCutover :: Prelude.Maybe Prelude.Bool,+    -- | Operating system eligible for this template post migration custom+    -- action.+    operatingSystem :: Prelude.Maybe Prelude.Text,+    -- | Template post migration custom action parameters.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]),+    -- | Template post migration custom action timeout in seconds.+    timeoutSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Template post migration custom action ID.+    actionID :: Prelude.Text,+    -- | Template post migration custom action name.+    actionName :: Prelude.Text,+    -- | Template post migration custom action document identifier.+    documentIdentifier :: Prelude.Text,+    -- | Launch configuration template ID.+    launchConfigurationTemplateID :: Prelude.Text,+    -- | Template post migration custom action order.+    order :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutTemplateAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'active', 'putTemplateAction_active' - Template post migration custom action active status.+--+-- 'documentVersion', 'putTemplateAction_documentVersion' - Template post migration custom action document version.+--+-- 'mustSucceedForCutover', 'putTemplateAction_mustSucceedForCutover' - Template post migration custom action must succeed for cutover.+--+-- 'operatingSystem', 'putTemplateAction_operatingSystem' - Operating system eligible for this template post migration custom+-- action.+--+-- 'parameters', 'putTemplateAction_parameters' - Template post migration custom action parameters.+--+-- 'timeoutSeconds', 'putTemplateAction_timeoutSeconds' - Template post migration custom action timeout in seconds.+--+-- 'actionID', 'putTemplateAction_actionID' - Template post migration custom action ID.+--+-- 'actionName', 'putTemplateAction_actionName' - Template post migration custom action name.+--+-- 'documentIdentifier', 'putTemplateAction_documentIdentifier' - Template post migration custom action document identifier.+--+-- 'launchConfigurationTemplateID', 'putTemplateAction_launchConfigurationTemplateID' - Launch configuration template ID.+--+-- 'order', 'putTemplateAction_order' - Template post migration custom action order.+newPutTemplateAction ::+  -- | 'actionID'+  Prelude.Text ->+  -- | 'actionName'+  Prelude.Text ->+  -- | 'documentIdentifier'+  Prelude.Text ->+  -- | 'launchConfigurationTemplateID'+  Prelude.Text ->+  -- | 'order'+  Prelude.Natural ->+  PutTemplateAction+newPutTemplateAction+  pActionID_+  pActionName_+  pDocumentIdentifier_+  pLaunchConfigurationTemplateID_+  pOrder_ =+    PutTemplateAction'+      { active = Prelude.Nothing,+        documentVersion = Prelude.Nothing,+        mustSucceedForCutover = Prelude.Nothing,+        operatingSystem = Prelude.Nothing,+        parameters = Prelude.Nothing,+        timeoutSeconds = Prelude.Nothing,+        actionID = pActionID_,+        actionName = pActionName_,+        documentIdentifier = pDocumentIdentifier_,+        launchConfigurationTemplateID =+          pLaunchConfigurationTemplateID_,+        order = pOrder_+      }++-- | Template post migration custom action active status.+putTemplateAction_active :: Lens.Lens' PutTemplateAction (Prelude.Maybe Prelude.Bool)+putTemplateAction_active = Lens.lens (\PutTemplateAction' {active} -> active) (\s@PutTemplateAction' {} a -> s {active = a} :: PutTemplateAction)++-- | Template post migration custom action document version.+putTemplateAction_documentVersion :: Lens.Lens' PutTemplateAction (Prelude.Maybe Prelude.Text)+putTemplateAction_documentVersion = Lens.lens (\PutTemplateAction' {documentVersion} -> documentVersion) (\s@PutTemplateAction' {} a -> s {documentVersion = a} :: PutTemplateAction)++-- | Template post migration custom action must succeed for cutover.+putTemplateAction_mustSucceedForCutover :: Lens.Lens' PutTemplateAction (Prelude.Maybe Prelude.Bool)+putTemplateAction_mustSucceedForCutover = Lens.lens (\PutTemplateAction' {mustSucceedForCutover} -> mustSucceedForCutover) (\s@PutTemplateAction' {} a -> s {mustSucceedForCutover = a} :: PutTemplateAction)++-- | Operating system eligible for this template post migration custom+-- action.+putTemplateAction_operatingSystem :: Lens.Lens' PutTemplateAction (Prelude.Maybe Prelude.Text)+putTemplateAction_operatingSystem = Lens.lens (\PutTemplateAction' {operatingSystem} -> operatingSystem) (\s@PutTemplateAction' {} a -> s {operatingSystem = a} :: PutTemplateAction)++-- | Template post migration custom action parameters.+putTemplateAction_parameters :: Lens.Lens' PutTemplateAction (Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]))+putTemplateAction_parameters = Lens.lens (\PutTemplateAction' {parameters} -> parameters) (\s@PutTemplateAction' {} a -> s {parameters = a} :: PutTemplateAction) Prelude.. Lens.mapping Lens.coerced++-- | Template post migration custom action timeout in seconds.+putTemplateAction_timeoutSeconds :: Lens.Lens' PutTemplateAction (Prelude.Maybe Prelude.Natural)+putTemplateAction_timeoutSeconds = Lens.lens (\PutTemplateAction' {timeoutSeconds} -> timeoutSeconds) (\s@PutTemplateAction' {} a -> s {timeoutSeconds = a} :: PutTemplateAction)++-- | Template post migration custom action ID.+putTemplateAction_actionID :: Lens.Lens' PutTemplateAction Prelude.Text+putTemplateAction_actionID = Lens.lens (\PutTemplateAction' {actionID} -> actionID) (\s@PutTemplateAction' {} a -> s {actionID = a} :: PutTemplateAction)++-- | Template post migration custom action name.+putTemplateAction_actionName :: Lens.Lens' PutTemplateAction Prelude.Text+putTemplateAction_actionName = Lens.lens (\PutTemplateAction' {actionName} -> actionName) (\s@PutTemplateAction' {} a -> s {actionName = a} :: PutTemplateAction)++-- | Template post migration custom action document identifier.+putTemplateAction_documentIdentifier :: Lens.Lens' PutTemplateAction Prelude.Text+putTemplateAction_documentIdentifier = Lens.lens (\PutTemplateAction' {documentIdentifier} -> documentIdentifier) (\s@PutTemplateAction' {} a -> s {documentIdentifier = a} :: PutTemplateAction)++-- | Launch configuration template ID.+putTemplateAction_launchConfigurationTemplateID :: Lens.Lens' PutTemplateAction Prelude.Text+putTemplateAction_launchConfigurationTemplateID = Lens.lens (\PutTemplateAction' {launchConfigurationTemplateID} -> launchConfigurationTemplateID) (\s@PutTemplateAction' {} a -> s {launchConfigurationTemplateID = a} :: PutTemplateAction)++-- | Template post migration custom action order.+putTemplateAction_order :: Lens.Lens' PutTemplateAction Prelude.Natural+putTemplateAction_order = Lens.lens (\PutTemplateAction' {order} -> order) (\s@PutTemplateAction' {} a -> s {order = a} :: PutTemplateAction)++instance Core.AWSRequest PutTemplateAction where+  type+    AWSResponse PutTemplateAction =+      TemplateActionDocument+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable PutTemplateAction where+  hashWithSalt _salt PutTemplateAction' {..} =+    _salt+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` documentVersion+      `Prelude.hashWithSalt` mustSucceedForCutover+      `Prelude.hashWithSalt` operatingSystem+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` timeoutSeconds+      `Prelude.hashWithSalt` actionID+      `Prelude.hashWithSalt` actionName+      `Prelude.hashWithSalt` documentIdentifier+      `Prelude.hashWithSalt` launchConfigurationTemplateID+      `Prelude.hashWithSalt` order++instance Prelude.NFData PutTemplateAction where+  rnf PutTemplateAction' {..} =+    Prelude.rnf active+      `Prelude.seq` Prelude.rnf documentVersion+      `Prelude.seq` Prelude.rnf mustSucceedForCutover+      `Prelude.seq` Prelude.rnf operatingSystem+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf timeoutSeconds+      `Prelude.seq` Prelude.rnf actionID+      `Prelude.seq` Prelude.rnf actionName+      `Prelude.seq` Prelude.rnf documentIdentifier+      `Prelude.seq` Prelude.rnf launchConfigurationTemplateID+      `Prelude.seq` Prelude.rnf order++instance Data.ToHeaders PutTemplateAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutTemplateAction where+  toJSON PutTemplateAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("active" Data..=) Prelude.<$> active,+            ("documentVersion" Data..=)+              Prelude.<$> documentVersion,+            ("mustSucceedForCutover" Data..=)+              Prelude.<$> mustSucceedForCutover,+            ("operatingSystem" Data..=)+              Prelude.<$> operatingSystem,+            ("parameters" Data..=) Prelude.<$> parameters,+            ("timeoutSeconds" Data..=)+              Prelude.<$> timeoutSeconds,+            Prelude.Just ("actionID" Data..= actionID),+            Prelude.Just ("actionName" Data..= actionName),+            Prelude.Just+              ("documentIdentifier" Data..= documentIdentifier),+            Prelude.Just+              ( "launchConfigurationTemplateID"+                  Data..= launchConfigurationTemplateID+              ),+            Prelude.Just ("order" Data..= order)+          ]+      )++instance Data.ToPath PutTemplateAction where+  toPath = Prelude.const "/PutTemplateAction"++instance Data.ToQuery PutTemplateAction where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/RemoveSourceServerAction.hs view
@@ -0,0 +1,178 @@+{-# 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.MGN.RemoveSourceServerAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Remove source server post migration custom action.+module Amazonka.MGN.RemoveSourceServerAction+  ( -- * Creating a Request+    RemoveSourceServerAction (..),+    newRemoveSourceServerAction,++    -- * Request Lenses+    removeSourceServerAction_actionID,+    removeSourceServerAction_sourceServerID,++    -- * Destructuring the Response+    RemoveSourceServerActionResponse (..),+    newRemoveSourceServerActionResponse,++    -- * Response Lenses+    removeSourceServerActionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveSourceServerAction' smart constructor.+data RemoveSourceServerAction = RemoveSourceServerAction'+  { -- | Source server post migration custom action ID to remove.+    actionID :: Prelude.Text,+    -- | Source server ID of the post migration custom action to remove.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveSourceServerAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionID', 'removeSourceServerAction_actionID' - Source server post migration custom action ID to remove.+--+-- 'sourceServerID', 'removeSourceServerAction_sourceServerID' - Source server ID of the post migration custom action to remove.+newRemoveSourceServerAction ::+  -- | 'actionID'+  Prelude.Text ->+  -- | 'sourceServerID'+  Prelude.Text ->+  RemoveSourceServerAction+newRemoveSourceServerAction+  pActionID_+  pSourceServerID_ =+    RemoveSourceServerAction'+      { actionID = pActionID_,+        sourceServerID = pSourceServerID_+      }++-- | Source server post migration custom action ID to remove.+removeSourceServerAction_actionID :: Lens.Lens' RemoveSourceServerAction Prelude.Text+removeSourceServerAction_actionID = Lens.lens (\RemoveSourceServerAction' {actionID} -> actionID) (\s@RemoveSourceServerAction' {} a -> s {actionID = a} :: RemoveSourceServerAction)++-- | Source server ID of the post migration custom action to remove.+removeSourceServerAction_sourceServerID :: Lens.Lens' RemoveSourceServerAction Prelude.Text+removeSourceServerAction_sourceServerID = Lens.lens (\RemoveSourceServerAction' {sourceServerID} -> sourceServerID) (\s@RemoveSourceServerAction' {} a -> s {sourceServerID = a} :: RemoveSourceServerAction)++instance Core.AWSRequest RemoveSourceServerAction where+  type+    AWSResponse RemoveSourceServerAction =+      RemoveSourceServerActionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          RemoveSourceServerActionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RemoveSourceServerAction where+  hashWithSalt _salt RemoveSourceServerAction' {..} =+    _salt+      `Prelude.hashWithSalt` actionID+      `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData RemoveSourceServerAction where+  rnf RemoveSourceServerAction' {..} =+    Prelude.rnf actionID+      `Prelude.seq` Prelude.rnf sourceServerID++instance Data.ToHeaders RemoveSourceServerAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RemoveSourceServerAction where+  toJSON RemoveSourceServerAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("actionID" Data..= actionID),+            Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath RemoveSourceServerAction where+  toPath = Prelude.const "/RemoveSourceServerAction"++instance Data.ToQuery RemoveSourceServerAction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveSourceServerActionResponse' smart constructor.+data RemoveSourceServerActionResponse = RemoveSourceServerActionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveSourceServerActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'removeSourceServerActionResponse_httpStatus' - The response's http status code.+newRemoveSourceServerActionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveSourceServerActionResponse+newRemoveSourceServerActionResponse pHttpStatus_ =+  RemoveSourceServerActionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+removeSourceServerActionResponse_httpStatus :: Lens.Lens' RemoveSourceServerActionResponse Prelude.Int+removeSourceServerActionResponse_httpStatus = Lens.lens (\RemoveSourceServerActionResponse' {httpStatus} -> httpStatus) (\s@RemoveSourceServerActionResponse' {} a -> s {httpStatus = a} :: RemoveSourceServerActionResponse)++instance+  Prelude.NFData+    RemoveSourceServerActionResponse+  where+  rnf RemoveSourceServerActionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/RemoveTemplateAction.hs view
@@ -0,0 +1,181 @@+{-# 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.MGN.RemoveTemplateAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Remove template post migration custom action.+module Amazonka.MGN.RemoveTemplateAction+  ( -- * Creating a Request+    RemoveTemplateAction (..),+    newRemoveTemplateAction,++    -- * Request Lenses+    removeTemplateAction_actionID,+    removeTemplateAction_launchConfigurationTemplateID,++    -- * Destructuring the Response+    RemoveTemplateActionResponse (..),+    newRemoveTemplateActionResponse,++    -- * Response Lenses+    removeTemplateActionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveTemplateAction' smart constructor.+data RemoveTemplateAction = RemoveTemplateAction'+  { -- | Template post migration custom action ID to remove.+    actionID :: Prelude.Text,+    -- | Launch configuration template ID of the post migration custom action to+    -- remove.+    launchConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveTemplateAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionID', 'removeTemplateAction_actionID' - Template post migration custom action ID to remove.+--+-- 'launchConfigurationTemplateID', 'removeTemplateAction_launchConfigurationTemplateID' - Launch configuration template ID of the post migration custom action to+-- remove.+newRemoveTemplateAction ::+  -- | 'actionID'+  Prelude.Text ->+  -- | 'launchConfigurationTemplateID'+  Prelude.Text ->+  RemoveTemplateAction+newRemoveTemplateAction+  pActionID_+  pLaunchConfigurationTemplateID_ =+    RemoveTemplateAction'+      { actionID = pActionID_,+        launchConfigurationTemplateID =+          pLaunchConfigurationTemplateID_+      }++-- | Template post migration custom action ID to remove.+removeTemplateAction_actionID :: Lens.Lens' RemoveTemplateAction Prelude.Text+removeTemplateAction_actionID = Lens.lens (\RemoveTemplateAction' {actionID} -> actionID) (\s@RemoveTemplateAction' {} a -> s {actionID = a} :: RemoveTemplateAction)++-- | Launch configuration template ID of the post migration custom action to+-- remove.+removeTemplateAction_launchConfigurationTemplateID :: Lens.Lens' RemoveTemplateAction Prelude.Text+removeTemplateAction_launchConfigurationTemplateID = Lens.lens (\RemoveTemplateAction' {launchConfigurationTemplateID} -> launchConfigurationTemplateID) (\s@RemoveTemplateAction' {} a -> s {launchConfigurationTemplateID = a} :: RemoveTemplateAction)++instance Core.AWSRequest RemoveTemplateAction where+  type+    AWSResponse RemoveTemplateAction =+      RemoveTemplateActionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          RemoveTemplateActionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RemoveTemplateAction where+  hashWithSalt _salt RemoveTemplateAction' {..} =+    _salt+      `Prelude.hashWithSalt` actionID+      `Prelude.hashWithSalt` launchConfigurationTemplateID++instance Prelude.NFData RemoveTemplateAction where+  rnf RemoveTemplateAction' {..} =+    Prelude.rnf actionID+      `Prelude.seq` Prelude.rnf launchConfigurationTemplateID++instance Data.ToHeaders RemoveTemplateAction where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RemoveTemplateAction where+  toJSON RemoveTemplateAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("actionID" Data..= actionID),+            Prelude.Just+              ( "launchConfigurationTemplateID"+                  Data..= launchConfigurationTemplateID+              )+          ]+      )++instance Data.ToPath RemoveTemplateAction where+  toPath = Prelude.const "/RemoveTemplateAction"++instance Data.ToQuery RemoveTemplateAction where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveTemplateActionResponse' smart constructor.+data RemoveTemplateActionResponse = RemoveTemplateActionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveTemplateActionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'removeTemplateActionResponse_httpStatus' - The response's http status code.+newRemoveTemplateActionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveTemplateActionResponse+newRemoveTemplateActionResponse pHttpStatus_ =+  RemoveTemplateActionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+removeTemplateActionResponse_httpStatus :: Lens.Lens' RemoveTemplateActionResponse Prelude.Int+removeTemplateActionResponse_httpStatus = Lens.lens (\RemoveTemplateActionResponse' {httpStatus} -> httpStatus) (\s@RemoveTemplateActionResponse' {} a -> s {httpStatus = a} :: RemoveTemplateActionResponse)++instance Prelude.NFData RemoveTemplateActionResponse where+  rnf RemoveTemplateActionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/MGN/RetryDataReplication.hs view
@@ -0,0 +1,132 @@+{-# 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.MGN.RetryDataReplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Causes the data replication initiation sequence to begin immediately+-- upon next Handshake for specified SourceServer IDs, regardless of when+-- the previous initiation started. This command will not work if the+-- SourceServer is not stalled or is in a DISCONNECTED or STOPPED state.+module Amazonka.MGN.RetryDataReplication+  ( -- * Creating a Request+    RetryDataReplication (..),+    newRetryDataReplication,++    -- * Request Lenses+    retryDataReplication_sourceServerID,++    -- * Destructuring the Response+    SourceServer (..),+    newSourceServer,++    -- * Response Lenses+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRetryDataReplication' smart constructor.+data RetryDataReplication = RetryDataReplication'+  { -- | Retry data replication for Source Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RetryDataReplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'retryDataReplication_sourceServerID' - Retry data replication for Source Server ID.+newRetryDataReplication ::+  -- | 'sourceServerID'+  Prelude.Text ->+  RetryDataReplication+newRetryDataReplication pSourceServerID_ =+  RetryDataReplication'+    { sourceServerID =+        pSourceServerID_+    }++-- | Retry data replication for Source Server ID.+retryDataReplication_sourceServerID :: Lens.Lens' RetryDataReplication Prelude.Text+retryDataReplication_sourceServerID = Lens.lens (\RetryDataReplication' {sourceServerID} -> sourceServerID) (\s@RetryDataReplication' {} a -> s {sourceServerID = a} :: RetryDataReplication)++instance Core.AWSRequest RetryDataReplication where+  type AWSResponse RetryDataReplication = SourceServer+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable RetryDataReplication where+  hashWithSalt _salt RetryDataReplication' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData RetryDataReplication where+  rnf RetryDataReplication' {..} =+    Prelude.rnf sourceServerID++instance Data.ToHeaders RetryDataReplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RetryDataReplication where+  toJSON RetryDataReplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath RetryDataReplication where+  toPath = Prelude.const "/RetryDataReplication"++instance Data.ToQuery RetryDataReplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/StartCutover.hs view
@@ -0,0 +1,183 @@+{-# 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.MGN.StartCutover+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Launches a Cutover Instance for specific Source Servers. This command+-- starts a LAUNCH job whose initiatedBy property is StartCutover and+-- changes the SourceServer.lifeCycle.state property to CUTTING_OVER.+module Amazonka.MGN.StartCutover+  ( -- * Creating a Request+    StartCutover (..),+    newStartCutover,++    -- * Request Lenses+    startCutover_tags,+    startCutover_sourceServerIDs,++    -- * Destructuring the Response+    StartCutoverResponse (..),+    newStartCutoverResponse,++    -- * Response Lenses+    startCutoverResponse_job,+    startCutoverResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartCutover' smart constructor.+data StartCutover = StartCutover'+  { -- | Start Cutover by Tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Start Cutover by Source Server IDs.+    sourceServerIDs :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartCutover' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'startCutover_tags' - Start Cutover by Tags.+--+-- 'sourceServerIDs', 'startCutover_sourceServerIDs' - Start Cutover by Source Server IDs.+newStartCutover ::+  -- | 'sourceServerIDs'+  Prelude.NonEmpty Prelude.Text ->+  StartCutover+newStartCutover pSourceServerIDs_ =+  StartCutover'+    { tags = Prelude.Nothing,+      sourceServerIDs =+        Lens.coerced Lens.# pSourceServerIDs_+    }++-- | Start Cutover by Tags.+startCutover_tags :: Lens.Lens' StartCutover (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startCutover_tags = Lens.lens (\StartCutover' {tags} -> tags) (\s@StartCutover' {} a -> s {tags = a} :: StartCutover) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Start Cutover by Source Server IDs.+startCutover_sourceServerIDs :: Lens.Lens' StartCutover (Prelude.NonEmpty Prelude.Text)+startCutover_sourceServerIDs = Lens.lens (\StartCutover' {sourceServerIDs} -> sourceServerIDs) (\s@StartCutover' {} a -> s {sourceServerIDs = a} :: StartCutover) Prelude.. Lens.coerced++instance Core.AWSRequest StartCutover where+  type AWSResponse StartCutover = StartCutoverResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartCutoverResponse'+            Prelude.<$> (x Data..?> "job")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartCutover where+  hashWithSalt _salt StartCutover' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceServerIDs++instance Prelude.NFData StartCutover where+  rnf StartCutover' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceServerIDs++instance Data.ToHeaders StartCutover where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartCutover where+  toJSON StartCutover' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("sourceServerIDs" Data..= sourceServerIDs)+          ]+      )++instance Data.ToPath StartCutover where+  toPath = Prelude.const "/StartCutover"++instance Data.ToQuery StartCutover where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartCutoverResponse' smart constructor.+data StartCutoverResponse = StartCutoverResponse'+  { -- | Start Cutover Job response.+    job :: Prelude.Maybe Job,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartCutoverResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'startCutoverResponse_job' - Start Cutover Job response.+--+-- 'httpStatus', 'startCutoverResponse_httpStatus' - The response's http status code.+newStartCutoverResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartCutoverResponse+newStartCutoverResponse pHttpStatus_ =+  StartCutoverResponse'+    { job = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Start Cutover Job response.+startCutoverResponse_job :: Lens.Lens' StartCutoverResponse (Prelude.Maybe Job)+startCutoverResponse_job = Lens.lens (\StartCutoverResponse' {job} -> job) (\s@StartCutoverResponse' {} a -> s {job = a} :: StartCutoverResponse)++-- | The response's http status code.+startCutoverResponse_httpStatus :: Lens.Lens' StartCutoverResponse Prelude.Int+startCutoverResponse_httpStatus = Lens.lens (\StartCutoverResponse' {httpStatus} -> httpStatus) (\s@StartCutoverResponse' {} a -> s {httpStatus = a} :: StartCutoverResponse)++instance Prelude.NFData StartCutoverResponse where+  rnf StartCutoverResponse' {..} =+    Prelude.rnf job+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/StartReplication.hs view
@@ -0,0 +1,129 @@+{-# 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.MGN.StartReplication+-- 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 replication for SNAPSHOT_SHIPPING agents.+module Amazonka.MGN.StartReplication+  ( -- * Creating a Request+    StartReplication (..),+    newStartReplication,++    -- * Request Lenses+    startReplication_sourceServerID,++    -- * Destructuring the Response+    SourceServer (..),+    newSourceServer,++    -- * Response Lenses+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartReplication' smart constructor.+data StartReplication = StartReplication'+  { -- | ID of source server on which to start replication.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartReplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceServerID', 'startReplication_sourceServerID' - ID of source server on which to start replication.+newStartReplication ::+  -- | 'sourceServerID'+  Prelude.Text ->+  StartReplication+newStartReplication pSourceServerID_ =+  StartReplication'+    { sourceServerID =+        pSourceServerID_+    }++-- | ID of source server on which to start replication.+startReplication_sourceServerID :: Lens.Lens' StartReplication Prelude.Text+startReplication_sourceServerID = Lens.lens (\StartReplication' {sourceServerID} -> sourceServerID) (\s@StartReplication' {} a -> s {sourceServerID = a} :: StartReplication)++instance Core.AWSRequest StartReplication where+  type AWSResponse StartReplication = SourceServer+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable StartReplication where+  hashWithSalt _salt StartReplication' {..} =+    _salt `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData StartReplication where+  rnf StartReplication' {..} =+    Prelude.rnf sourceServerID++instance Data.ToHeaders StartReplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartReplication where+  toJSON StartReplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath StartReplication where+  toPath = Prelude.const "/StartReplication"++instance Data.ToQuery StartReplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/StartTest.hs view
@@ -0,0 +1,183 @@+{-# 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.MGN.StartTest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Launches a Test Instance for specific Source Servers. This command+-- starts a LAUNCH job whose initiatedBy property is StartTest and changes+-- the SourceServer.lifeCycle.state property to TESTING.+module Amazonka.MGN.StartTest+  ( -- * Creating a Request+    StartTest (..),+    newStartTest,++    -- * Request Lenses+    startTest_tags,+    startTest_sourceServerIDs,++    -- * Destructuring the Response+    StartTestResponse (..),+    newStartTestResponse,++    -- * Response Lenses+    startTestResponse_job,+    startTestResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartTest' smart constructor.+data StartTest = StartTest'+  { -- | Start Test by Tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Start Test for Source Server IDs.+    sourceServerIDs :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartTest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'startTest_tags' - Start Test by Tags.+--+-- 'sourceServerIDs', 'startTest_sourceServerIDs' - Start Test for Source Server IDs.+newStartTest ::+  -- | 'sourceServerIDs'+  Prelude.NonEmpty Prelude.Text ->+  StartTest+newStartTest pSourceServerIDs_ =+  StartTest'+    { tags = Prelude.Nothing,+      sourceServerIDs =+        Lens.coerced Lens.# pSourceServerIDs_+    }++-- | Start Test by Tags.+startTest_tags :: Lens.Lens' StartTest (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+startTest_tags = Lens.lens (\StartTest' {tags} -> tags) (\s@StartTest' {} a -> s {tags = a} :: StartTest) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Start Test for Source Server IDs.+startTest_sourceServerIDs :: Lens.Lens' StartTest (Prelude.NonEmpty Prelude.Text)+startTest_sourceServerIDs = Lens.lens (\StartTest' {sourceServerIDs} -> sourceServerIDs) (\s@StartTest' {} a -> s {sourceServerIDs = a} :: StartTest) Prelude.. Lens.coerced++instance Core.AWSRequest StartTest where+  type AWSResponse StartTest = StartTestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartTestResponse'+            Prelude.<$> (x Data..?> "job")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartTest where+  hashWithSalt _salt StartTest' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceServerIDs++instance Prelude.NFData StartTest where+  rnf StartTest' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceServerIDs++instance Data.ToHeaders StartTest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartTest where+  toJSON StartTest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("sourceServerIDs" Data..= sourceServerIDs)+          ]+      )++instance Data.ToPath StartTest where+  toPath = Prelude.const "/StartTest"++instance Data.ToQuery StartTest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartTestResponse' smart constructor.+data StartTestResponse = StartTestResponse'+  { -- | Start Test Job response.+    job :: Prelude.Maybe Job,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartTestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'startTestResponse_job' - Start Test Job response.+--+-- 'httpStatus', 'startTestResponse_httpStatus' - The response's http status code.+newStartTestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartTestResponse+newStartTestResponse pHttpStatus_ =+  StartTestResponse'+    { job = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Start Test Job response.+startTestResponse_job :: Lens.Lens' StartTestResponse (Prelude.Maybe Job)+startTestResponse_job = Lens.lens (\StartTestResponse' {job} -> job) (\s@StartTestResponse' {} a -> s {job = a} :: StartTestResponse)++-- | The response's http status code.+startTestResponse_httpStatus :: Lens.Lens' StartTestResponse Prelude.Int+startTestResponse_httpStatus = Lens.lens (\StartTestResponse' {httpStatus} -> httpStatus) (\s@StartTestResponse' {} a -> s {httpStatus = a} :: StartTestResponse)++instance Prelude.NFData StartTestResponse where+  rnf StartTestResponse' {..} =+    Prelude.rnf job+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/TagResource.hs view
@@ -0,0 +1,146 @@+{-# 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.MGN.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)+--+-- Adds or overwrites only the specified tags for the specified Application+-- Migration Service resource or resources. When you specify an existing+-- tag key, the value is overwritten with the new value. Each resource can+-- have a maximum of 50 tags. Each tag consists of a key and optional+-- value.+module Amazonka.MGN.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | Tag resource by ARN.+    resourceArn :: Prelude.Text,+    -- | Tag resource by Tags.+    tags :: Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, 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' - Tag resource by ARN.+--+-- 'tags', 'tagResource_tags' - Tag resource by Tags.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | Tag resource by ARN.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | Tag resource by Tags.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Data._Sensitive Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull TagResourceResponse'++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+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  {+  }+  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.+newTagResourceResponse ::+  TagResourceResponse+newTagResourceResponse = TagResourceResponse'++instance Prelude.NFData TagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/MGN/TerminateTargetInstances.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.TerminateTargetInstances+-- 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 a job that terminates specific launched EC2 Test and Cutover+-- instances. This command will not work for any Source Server with a+-- lifecycle.state of TESTING, CUTTING_OVER, or CUTOVER.+module Amazonka.MGN.TerminateTargetInstances+  ( -- * Creating a Request+    TerminateTargetInstances (..),+    newTerminateTargetInstances,++    -- * Request Lenses+    terminateTargetInstances_tags,+    terminateTargetInstances_sourceServerIDs,++    -- * Destructuring the Response+    TerminateTargetInstancesResponse (..),+    newTerminateTargetInstancesResponse,++    -- * Response Lenses+    terminateTargetInstancesResponse_job,+    terminateTargetInstancesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTerminateTargetInstances' smart constructor.+data TerminateTargetInstances = TerminateTargetInstances'+  { -- | Terminate Target instance by Tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Terminate Target instance by Source Server IDs.+    sourceServerIDs :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TerminateTargetInstances' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'terminateTargetInstances_tags' - Terminate Target instance by Tags.+--+-- 'sourceServerIDs', 'terminateTargetInstances_sourceServerIDs' - Terminate Target instance by Source Server IDs.+newTerminateTargetInstances ::+  -- | 'sourceServerIDs'+  Prelude.NonEmpty Prelude.Text ->+  TerminateTargetInstances+newTerminateTargetInstances pSourceServerIDs_ =+  TerminateTargetInstances'+    { tags = Prelude.Nothing,+      sourceServerIDs =+        Lens.coerced Lens.# pSourceServerIDs_+    }++-- | Terminate Target instance by Tags.+terminateTargetInstances_tags :: Lens.Lens' TerminateTargetInstances (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+terminateTargetInstances_tags = Lens.lens (\TerminateTargetInstances' {tags} -> tags) (\s@TerminateTargetInstances' {} a -> s {tags = a} :: TerminateTargetInstances) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Terminate Target instance by Source Server IDs.+terminateTargetInstances_sourceServerIDs :: Lens.Lens' TerminateTargetInstances (Prelude.NonEmpty Prelude.Text)+terminateTargetInstances_sourceServerIDs = Lens.lens (\TerminateTargetInstances' {sourceServerIDs} -> sourceServerIDs) (\s@TerminateTargetInstances' {} a -> s {sourceServerIDs = a} :: TerminateTargetInstances) Prelude.. Lens.coerced++instance Core.AWSRequest TerminateTargetInstances where+  type+    AWSResponse TerminateTargetInstances =+      TerminateTargetInstancesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          TerminateTargetInstancesResponse'+            Prelude.<$> (x Data..?> "job")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TerminateTargetInstances where+  hashWithSalt _salt TerminateTargetInstances' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` sourceServerIDs++instance Prelude.NFData TerminateTargetInstances where+  rnf TerminateTargetInstances' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf sourceServerIDs++instance Data.ToHeaders TerminateTargetInstances where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TerminateTargetInstances where+  toJSON TerminateTargetInstances' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("sourceServerIDs" Data..= sourceServerIDs)+          ]+      )++instance Data.ToPath TerminateTargetInstances where+  toPath = Prelude.const "/TerminateTargetInstances"++instance Data.ToQuery TerminateTargetInstances where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTerminateTargetInstancesResponse' smart constructor.+data TerminateTargetInstancesResponse = TerminateTargetInstancesResponse'+  { -- | Terminate Target instance Job response.+    job :: Prelude.Maybe Job,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TerminateTargetInstancesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'job', 'terminateTargetInstancesResponse_job' - Terminate Target instance Job response.+--+-- 'httpStatus', 'terminateTargetInstancesResponse_httpStatus' - The response's http status code.+newTerminateTargetInstancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TerminateTargetInstancesResponse+newTerminateTargetInstancesResponse pHttpStatus_ =+  TerminateTargetInstancesResponse'+    { job =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Terminate Target instance Job response.+terminateTargetInstancesResponse_job :: Lens.Lens' TerminateTargetInstancesResponse (Prelude.Maybe Job)+terminateTargetInstancesResponse_job = Lens.lens (\TerminateTargetInstancesResponse' {job} -> job) (\s@TerminateTargetInstancesResponse' {} a -> s {job = a} :: TerminateTargetInstancesResponse)++-- | The response's http status code.+terminateTargetInstancesResponse_httpStatus :: Lens.Lens' TerminateTargetInstancesResponse Prelude.Int+terminateTargetInstancesResponse_httpStatus = Lens.lens (\TerminateTargetInstancesResponse' {httpStatus} -> httpStatus) (\s@TerminateTargetInstancesResponse' {} a -> s {httpStatus = a} :: TerminateTargetInstancesResponse)++instance+  Prelude.NFData+    TerminateTargetInstancesResponse+  where+  rnf TerminateTargetInstancesResponse' {..} =+    Prelude.rnf job+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MGN/Types.hs view
@@ -0,0 +1,801 @@+{-# 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.MGN.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.MGN.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _UninitializedAccountException,+    _ValidationException,++    -- * ApplicationHealthStatus+    ApplicationHealthStatus (..),++    -- * ApplicationProgressStatus+    ApplicationProgressStatus (..),++    -- * BootMode+    BootMode (..),++    -- * ChangeServerLifeCycleStateSourceServerLifecycleState+    ChangeServerLifeCycleStateSourceServerLifecycleState (..),++    -- * DataReplicationErrorString+    DataReplicationErrorString (..),++    -- * DataReplicationInitiationStepName+    DataReplicationInitiationStepName (..),++    -- * DataReplicationInitiationStepStatus+    DataReplicationInitiationStepStatus (..),++    -- * DataReplicationState+    DataReplicationState (..),++    -- * FirstBoot+    FirstBoot (..),++    -- * InitiatedBy+    InitiatedBy (..),++    -- * JobLogEvent+    JobLogEvent (..),++    -- * JobStatus+    JobStatus (..),++    -- * JobType+    JobType (..),++    -- * LaunchDisposition+    LaunchDisposition (..),++    -- * LaunchStatus+    LaunchStatus (..),++    -- * LifeCycleState+    LifeCycleState (..),++    -- * PostLaunchActionExecutionStatus+    PostLaunchActionExecutionStatus (..),++    -- * PostLaunchActionsDeploymentType+    PostLaunchActionsDeploymentType (..),++    -- * ReplicationConfigurationDataPlaneRouting+    ReplicationConfigurationDataPlaneRouting (..),++    -- * ReplicationConfigurationDefaultLargeStagingDiskType+    ReplicationConfigurationDefaultLargeStagingDiskType (..),++    -- * ReplicationConfigurationEbsEncryption+    ReplicationConfigurationEbsEncryption (..),++    -- * ReplicationConfigurationReplicatedDiskStagingDiskType+    ReplicationConfigurationReplicatedDiskStagingDiskType (..),++    -- * ReplicationType+    ReplicationType (..),++    -- * SsmDocumentType+    SsmDocumentType (..),++    -- * SsmParameterStoreParameterType+    SsmParameterStoreParameterType (..),++    -- * TargetInstanceTypeRightSizingMethod+    TargetInstanceTypeRightSizingMethod (..),++    -- * VolumeType+    VolumeType (..),++    -- * WaveHealthStatus+    WaveHealthStatus (..),++    -- * WaveProgressStatus+    WaveProgressStatus (..),++    -- * Application+    Application (..),+    newApplication,+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,++    -- * ApplicationAggregatedStatus+    ApplicationAggregatedStatus (..),+    newApplicationAggregatedStatus,+    applicationAggregatedStatus_healthStatus,+    applicationAggregatedStatus_lastUpdateDateTime,+    applicationAggregatedStatus_progressStatus,+    applicationAggregatedStatus_totalSourceServers,++    -- * CPU+    CPU (..),+    newCPU,+    cpu_cores,+    cpu_modelName,++    -- * ChangeServerLifeCycleStateSourceServerLifecycle+    ChangeServerLifeCycleStateSourceServerLifecycle (..),+    newChangeServerLifeCycleStateSourceServerLifecycle,+    changeServerLifeCycleStateSourceServerLifecycle_state,++    -- * DataReplicationError+    DataReplicationError (..),+    newDataReplicationError,+    dataReplicationError_error,+    dataReplicationError_rawError,++    -- * DataReplicationInfo+    DataReplicationInfo (..),+    newDataReplicationInfo,+    dataReplicationInfo_dataReplicationError,+    dataReplicationInfo_dataReplicationInitiation,+    dataReplicationInfo_dataReplicationState,+    dataReplicationInfo_etaDateTime,+    dataReplicationInfo_lagDuration,+    dataReplicationInfo_lastSnapshotDateTime,+    dataReplicationInfo_replicatedDisks,++    -- * DataReplicationInfoReplicatedDisk+    DataReplicationInfoReplicatedDisk (..),+    newDataReplicationInfoReplicatedDisk,+    dataReplicationInfoReplicatedDisk_backloggedStorageBytes,+    dataReplicationInfoReplicatedDisk_deviceName,+    dataReplicationInfoReplicatedDisk_replicatedStorageBytes,+    dataReplicationInfoReplicatedDisk_rescannedStorageBytes,+    dataReplicationInfoReplicatedDisk_totalStorageBytes,++    -- * DataReplicationInitiation+    DataReplicationInitiation (..),+    newDataReplicationInitiation,+    dataReplicationInitiation_nextAttemptDateTime,+    dataReplicationInitiation_startDateTime,+    dataReplicationInitiation_steps,++    -- * DataReplicationInitiationStep+    DataReplicationInitiationStep (..),+    newDataReplicationInitiationStep,+    dataReplicationInitiationStep_name,+    dataReplicationInitiationStep_status,++    -- * DescribeJobsRequestFilters+    DescribeJobsRequestFilters (..),+    newDescribeJobsRequestFilters,+    describeJobsRequestFilters_fromDate,+    describeJobsRequestFilters_jobIDs,+    describeJobsRequestFilters_toDate,++    -- * DescribeSourceServersRequestFilters+    DescribeSourceServersRequestFilters (..),+    newDescribeSourceServersRequestFilters,+    describeSourceServersRequestFilters_applicationIDs,+    describeSourceServersRequestFilters_isArchived,+    describeSourceServersRequestFilters_lifeCycleStates,+    describeSourceServersRequestFilters_replicationTypes,+    describeSourceServersRequestFilters_sourceServerIDs,++    -- * Disk+    Disk (..),+    newDisk,+    disk_bytes,+    disk_deviceName,++    -- * IdentificationHints+    IdentificationHints (..),+    newIdentificationHints,+    identificationHints_awsInstanceID,+    identificationHints_fqdn,+    identificationHints_hostname,+    identificationHints_vmPath,+    identificationHints_vmWareUuid,++    -- * Job+    Job (..),+    newJob,+    job_arn,+    job_creationDateTime,+    job_endDateTime,+    job_initiatedBy,+    job_participatingServers,+    job_status,+    job_tags,+    job_type,+    job_jobID,++    -- * JobLog+    JobLog (..),+    newJobLog,+    jobLog_event,+    jobLog_eventData,+    jobLog_logDateTime,++    -- * JobLogEventData+    JobLogEventData (..),+    newJobLogEventData,+    jobLogEventData_conversionServerID,+    jobLogEventData_rawError,+    jobLogEventData_sourceServerID,+    jobLogEventData_targetInstanceID,++    -- * JobPostLaunchActionsLaunchStatus+    JobPostLaunchActionsLaunchStatus (..),+    newJobPostLaunchActionsLaunchStatus,+    jobPostLaunchActionsLaunchStatus_executionID,+    jobPostLaunchActionsLaunchStatus_executionStatus,+    jobPostLaunchActionsLaunchStatus_failureReason,+    jobPostLaunchActionsLaunchStatus_ssmDocument,+    jobPostLaunchActionsLaunchStatus_ssmDocumentType,++    -- * LaunchConfiguration+    LaunchConfiguration (..),+    newLaunchConfiguration,+    launchConfiguration_bootMode,+    launchConfiguration_copyPrivateIp,+    launchConfiguration_copyTags,+    launchConfiguration_ec2LaunchTemplateID,+    launchConfiguration_enableMapAutoTagging,+    launchConfiguration_launchDisposition,+    launchConfiguration_licensing,+    launchConfiguration_mapAutoTaggingMpeID,+    launchConfiguration_name,+    launchConfiguration_postLaunchActions,+    launchConfiguration_sourceServerID,+    launchConfiguration_targetInstanceTypeRightSizingMethod,++    -- * LaunchConfigurationTemplate+    LaunchConfigurationTemplate (..),+    newLaunchConfigurationTemplate,+    launchConfigurationTemplate_arn,+    launchConfigurationTemplate_associatePublicIpAddress,+    launchConfigurationTemplate_bootMode,+    launchConfigurationTemplate_copyPrivateIp,+    launchConfigurationTemplate_copyTags,+    launchConfigurationTemplate_ec2LaunchTemplateID,+    launchConfigurationTemplate_enableMapAutoTagging,+    launchConfigurationTemplate_largeVolumeConf,+    launchConfigurationTemplate_launchDisposition,+    launchConfigurationTemplate_licensing,+    launchConfigurationTemplate_mapAutoTaggingMpeID,+    launchConfigurationTemplate_postLaunchActions,+    launchConfigurationTemplate_smallVolumeConf,+    launchConfigurationTemplate_smallVolumeMaxSize,+    launchConfigurationTemplate_tags,+    launchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    launchConfigurationTemplate_launchConfigurationTemplateID,++    -- * LaunchTemplateDiskConf+    LaunchTemplateDiskConf (..),+    newLaunchTemplateDiskConf,+    launchTemplateDiskConf_iops,+    launchTemplateDiskConf_throughput,+    launchTemplateDiskConf_volumeType,++    -- * LaunchedInstance+    LaunchedInstance (..),+    newLaunchedInstance,+    launchedInstance_ec2InstanceID,+    launchedInstance_firstBoot,+    launchedInstance_jobID,++    -- * Licensing+    Licensing (..),+    newLicensing,+    licensing_osByol,++    -- * LifeCycle+    LifeCycle (..),+    newLifeCycle,+    lifeCycle_addedToServiceDateTime,+    lifeCycle_elapsedReplicationDuration,+    lifeCycle_firstByteDateTime,+    lifeCycle_lastCutover,+    lifeCycle_lastSeenByServiceDateTime,+    lifeCycle_lastTest,+    lifeCycle_state,++    -- * LifeCycleLastCutover+    LifeCycleLastCutover (..),+    newLifeCycleLastCutover,+    lifeCycleLastCutover_finalized,+    lifeCycleLastCutover_initiated,+    lifeCycleLastCutover_reverted,++    -- * LifeCycleLastCutoverFinalized+    LifeCycleLastCutoverFinalized (..),+    newLifeCycleLastCutoverFinalized,+    lifeCycleLastCutoverFinalized_apiCallDateTime,++    -- * LifeCycleLastCutoverInitiated+    LifeCycleLastCutoverInitiated (..),+    newLifeCycleLastCutoverInitiated,+    lifeCycleLastCutoverInitiated_apiCallDateTime,+    lifeCycleLastCutoverInitiated_jobID,++    -- * LifeCycleLastCutoverReverted+    LifeCycleLastCutoverReverted (..),+    newLifeCycleLastCutoverReverted,+    lifeCycleLastCutoverReverted_apiCallDateTime,++    -- * LifeCycleLastTest+    LifeCycleLastTest (..),+    newLifeCycleLastTest,+    lifeCycleLastTest_finalized,+    lifeCycleLastTest_initiated,+    lifeCycleLastTest_reverted,++    -- * LifeCycleLastTestFinalized+    LifeCycleLastTestFinalized (..),+    newLifeCycleLastTestFinalized,+    lifeCycleLastTestFinalized_apiCallDateTime,++    -- * LifeCycleLastTestInitiated+    LifeCycleLastTestInitiated (..),+    newLifeCycleLastTestInitiated,+    lifeCycleLastTestInitiated_apiCallDateTime,+    lifeCycleLastTestInitiated_jobID,++    -- * LifeCycleLastTestReverted+    LifeCycleLastTestReverted (..),+    newLifeCycleLastTestReverted,+    lifeCycleLastTestReverted_apiCallDateTime,++    -- * ListApplicationsRequestFilters+    ListApplicationsRequestFilters (..),+    newListApplicationsRequestFilters,+    listApplicationsRequestFilters_applicationIDs,+    listApplicationsRequestFilters_isArchived,+    listApplicationsRequestFilters_waveIDs,++    -- * ListWavesRequestFilters+    ListWavesRequestFilters (..),+    newListWavesRequestFilters,+    listWavesRequestFilters_isArchived,+    listWavesRequestFilters_waveIDs,++    -- * NetworkInterface+    NetworkInterface (..),+    newNetworkInterface,+    networkInterface_ips,+    networkInterface_isPrimary,+    networkInterface_macAddress,++    -- * OS+    OS (..),+    newOS,+    os_fullString,++    -- * ParticipatingServer+    ParticipatingServer (..),+    newParticipatingServer,+    participatingServer_launchStatus,+    participatingServer_launchedEc2InstanceID,+    participatingServer_postLaunchActionsStatus,+    participatingServer_sourceServerID,++    -- * PostLaunchActions+    PostLaunchActions (..),+    newPostLaunchActions,+    postLaunchActions_cloudWatchLogGroupName,+    postLaunchActions_deployment,+    postLaunchActions_s3LogBucket,+    postLaunchActions_s3OutputKeyPrefix,+    postLaunchActions_ssmDocuments,++    -- * PostLaunchActionsStatus+    PostLaunchActionsStatus (..),+    newPostLaunchActionsStatus,+    postLaunchActionsStatus_postLaunchActionsLaunchStatusList,+    postLaunchActionsStatus_ssmAgentDiscoveryDatetime,++    -- * ReplicationConfiguration+    ReplicationConfiguration (..),+    newReplicationConfiguration,+    replicationConfiguration_associateDefaultSecurityGroup,+    replicationConfiguration_bandwidthThrottling,+    replicationConfiguration_createPublicIP,+    replicationConfiguration_dataPlaneRouting,+    replicationConfiguration_defaultLargeStagingDiskType,+    replicationConfiguration_ebsEncryption,+    replicationConfiguration_ebsEncryptionKeyArn,+    replicationConfiguration_name,+    replicationConfiguration_replicatedDisks,+    replicationConfiguration_replicationServerInstanceType,+    replicationConfiguration_replicationServersSecurityGroupsIDs,+    replicationConfiguration_sourceServerID,+    replicationConfiguration_stagingAreaSubnetId,+    replicationConfiguration_stagingAreaTags,+    replicationConfiguration_useDedicatedReplicationServer,++    -- * ReplicationConfigurationReplicatedDisk+    ReplicationConfigurationReplicatedDisk (..),+    newReplicationConfigurationReplicatedDisk,+    replicationConfigurationReplicatedDisk_deviceName,+    replicationConfigurationReplicatedDisk_iops,+    replicationConfigurationReplicatedDisk_isBootDisk,+    replicationConfigurationReplicatedDisk_stagingDiskType,+    replicationConfigurationReplicatedDisk_throughput,++    -- * ReplicationConfigurationTemplate+    ReplicationConfigurationTemplate (..),+    newReplicationConfigurationTemplate,+    replicationConfigurationTemplate_arn,+    replicationConfigurationTemplate_associateDefaultSecurityGroup,+    replicationConfigurationTemplate_bandwidthThrottling,+    replicationConfigurationTemplate_createPublicIP,+    replicationConfigurationTemplate_dataPlaneRouting,+    replicationConfigurationTemplate_defaultLargeStagingDiskType,+    replicationConfigurationTemplate_ebsEncryption,+    replicationConfigurationTemplate_ebsEncryptionKeyArn,+    replicationConfigurationTemplate_replicationServerInstanceType,+    replicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    replicationConfigurationTemplate_stagingAreaSubnetId,+    replicationConfigurationTemplate_stagingAreaTags,+    replicationConfigurationTemplate_tags,+    replicationConfigurationTemplate_useDedicatedReplicationServer,+    replicationConfigurationTemplate_replicationConfigurationTemplateID,++    -- * SourceProperties+    SourceProperties (..),+    newSourceProperties,+    sourceProperties_cpus,+    sourceProperties_disks,+    sourceProperties_identificationHints,+    sourceProperties_lastUpdatedDateTime,+    sourceProperties_networkInterfaces,+    sourceProperties_os,+    sourceProperties_ramBytes,+    sourceProperties_recommendedInstanceType,++    -- * SourceServer+    SourceServer (..),+    newSourceServer,+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,++    -- * SourceServerActionDocument+    SourceServerActionDocument (..),+    newSourceServerActionDocument,+    sourceServerActionDocument_actionID,+    sourceServerActionDocument_actionName,+    sourceServerActionDocument_active,+    sourceServerActionDocument_documentIdentifier,+    sourceServerActionDocument_documentVersion,+    sourceServerActionDocument_mustSucceedForCutover,+    sourceServerActionDocument_order,+    sourceServerActionDocument_parameters,+    sourceServerActionDocument_timeoutSeconds,++    -- * SourceServerActionsRequestFilters+    SourceServerActionsRequestFilters (..),+    newSourceServerActionsRequestFilters,+    sourceServerActionsRequestFilters_actionIDs,++    -- * SsmDocument+    SsmDocument (..),+    newSsmDocument,+    ssmDocument_mustSucceedForCutover,+    ssmDocument_parameters,+    ssmDocument_timeoutSeconds,+    ssmDocument_actionName,+    ssmDocument_ssmDocumentName,++    -- * SsmParameterStoreParameter+    SsmParameterStoreParameter (..),+    newSsmParameterStoreParameter,+    ssmParameterStoreParameter_parameterName,+    ssmParameterStoreParameter_parameterType,++    -- * TemplateActionDocument+    TemplateActionDocument (..),+    newTemplateActionDocument,+    templateActionDocument_actionID,+    templateActionDocument_actionName,+    templateActionDocument_active,+    templateActionDocument_documentIdentifier,+    templateActionDocument_documentVersion,+    templateActionDocument_mustSucceedForCutover,+    templateActionDocument_operatingSystem,+    templateActionDocument_order,+    templateActionDocument_parameters,+    templateActionDocument_timeoutSeconds,++    -- * TemplateActionsRequestFilters+    TemplateActionsRequestFilters (..),+    newTemplateActionsRequestFilters,+    templateActionsRequestFilters_actionIDs,++    -- * VcenterClient+    VcenterClient (..),+    newVcenterClient,+    vcenterClient_arn,+    vcenterClient_datacenterName,+    vcenterClient_hostname,+    vcenterClient_lastSeenDatetime,+    vcenterClient_sourceServerTags,+    vcenterClient_tags,+    vcenterClient_vcenterClientID,+    vcenterClient_vcenterUUID,++    -- * Wave+    Wave (..),+    newWave,+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,++    -- * WaveAggregatedStatus+    WaveAggregatedStatus (..),+    newWaveAggregatedStatus,+    waveAggregatedStatus_healthStatus,+    waveAggregatedStatus_lastUpdateDateTime,+    waveAggregatedStatus_progressStatus,+    waveAggregatedStatus_replicationStartedDateTime,+    waveAggregatedStatus_totalApplications,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.MGN.Types.Application+import Amazonka.MGN.Types.ApplicationAggregatedStatus+import Amazonka.MGN.Types.ApplicationHealthStatus+import Amazonka.MGN.Types.ApplicationProgressStatus+import Amazonka.MGN.Types.BootMode+import Amazonka.MGN.Types.CPU+import Amazonka.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycle+import Amazonka.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycleState+import Amazonka.MGN.Types.DataReplicationError+import Amazonka.MGN.Types.DataReplicationErrorString+import Amazonka.MGN.Types.DataReplicationInfo+import Amazonka.MGN.Types.DataReplicationInfoReplicatedDisk+import Amazonka.MGN.Types.DataReplicationInitiation+import Amazonka.MGN.Types.DataReplicationInitiationStep+import Amazonka.MGN.Types.DataReplicationInitiationStepName+import Amazonka.MGN.Types.DataReplicationInitiationStepStatus+import Amazonka.MGN.Types.DataReplicationState+import Amazonka.MGN.Types.DescribeJobsRequestFilters+import Amazonka.MGN.Types.DescribeSourceServersRequestFilters+import Amazonka.MGN.Types.Disk+import Amazonka.MGN.Types.FirstBoot+import Amazonka.MGN.Types.IdentificationHints+import Amazonka.MGN.Types.InitiatedBy+import Amazonka.MGN.Types.Job+import Amazonka.MGN.Types.JobLog+import Amazonka.MGN.Types.JobLogEvent+import Amazonka.MGN.Types.JobLogEventData+import Amazonka.MGN.Types.JobPostLaunchActionsLaunchStatus+import Amazonka.MGN.Types.JobStatus+import Amazonka.MGN.Types.JobType+import Amazonka.MGN.Types.LaunchConfiguration+import Amazonka.MGN.Types.LaunchConfigurationTemplate+import Amazonka.MGN.Types.LaunchDisposition+import Amazonka.MGN.Types.LaunchStatus+import Amazonka.MGN.Types.LaunchTemplateDiskConf+import Amazonka.MGN.Types.LaunchedInstance+import Amazonka.MGN.Types.Licensing+import Amazonka.MGN.Types.LifeCycle+import Amazonka.MGN.Types.LifeCycleLastCutover+import Amazonka.MGN.Types.LifeCycleLastCutoverFinalized+import Amazonka.MGN.Types.LifeCycleLastCutoverInitiated+import Amazonka.MGN.Types.LifeCycleLastCutoverReverted+import Amazonka.MGN.Types.LifeCycleLastTest+import Amazonka.MGN.Types.LifeCycleLastTestFinalized+import Amazonka.MGN.Types.LifeCycleLastTestInitiated+import Amazonka.MGN.Types.LifeCycleLastTestReverted+import Amazonka.MGN.Types.LifeCycleState+import Amazonka.MGN.Types.ListApplicationsRequestFilters+import Amazonka.MGN.Types.ListWavesRequestFilters+import Amazonka.MGN.Types.NetworkInterface+import Amazonka.MGN.Types.OS+import Amazonka.MGN.Types.ParticipatingServer+import Amazonka.MGN.Types.PostLaunchActionExecutionStatus+import Amazonka.MGN.Types.PostLaunchActions+import Amazonka.MGN.Types.PostLaunchActionsDeploymentType+import Amazonka.MGN.Types.PostLaunchActionsStatus+import Amazonka.MGN.Types.ReplicationConfiguration+import Amazonka.MGN.Types.ReplicationConfigurationDataPlaneRouting+import Amazonka.MGN.Types.ReplicationConfigurationDefaultLargeStagingDiskType+import Amazonka.MGN.Types.ReplicationConfigurationEbsEncryption+import Amazonka.MGN.Types.ReplicationConfigurationReplicatedDisk+import Amazonka.MGN.Types.ReplicationConfigurationReplicatedDiskStagingDiskType+import Amazonka.MGN.Types.ReplicationConfigurationTemplate+import Amazonka.MGN.Types.ReplicationType+import Amazonka.MGN.Types.SourceProperties+import Amazonka.MGN.Types.SourceServer+import Amazonka.MGN.Types.SourceServerActionDocument+import Amazonka.MGN.Types.SourceServerActionsRequestFilters+import Amazonka.MGN.Types.SsmDocument+import Amazonka.MGN.Types.SsmDocumentType+import Amazonka.MGN.Types.SsmParameterStoreParameter+import Amazonka.MGN.Types.SsmParameterStoreParameterType+import Amazonka.MGN.Types.TargetInstanceTypeRightSizingMethod+import Amazonka.MGN.Types.TemplateActionDocument+import Amazonka.MGN.Types.TemplateActionsRequestFilters+import Amazonka.MGN.Types.VcenterClient+import Amazonka.MGN.Types.VolumeType+import Amazonka.MGN.Types.Wave+import Amazonka.MGN.Types.WaveAggregatedStatus+import Amazonka.MGN.Types.WaveHealthStatus+import Amazonka.MGN.Types.WaveProgressStatus+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-02-26@ of the Amazon Application Migration Service SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "MGN",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "mgn",+      Core.signingName = "mgn",+      Core.version = "2020-02-26",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "MGN",+      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++-- | Operating denied due to a file permission or access check error.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | The request could not be completed due to a conflict with the current+-- state of the target resource.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The server encountered an unexpected condition that prevented it from+-- fulfilling the request.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | Resource not found exception.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The request could not be completed because its exceeded the service+-- quota.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | Reached throttling quota exception.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | Uninitialized account exception.+_UninitializedAccountException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UninitializedAccountException =+  Core._MatchServiceError+    defaultService+    "UninitializedAccountException"+    Prelude.. Core.hasStatus 400++-- | Validate exception.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/MGN/Types/Application.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.Application+-- 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.MGN.Types.Application where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.ApplicationAggregatedStatus+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newApplication' smart constructor.+data Application = Application'+  { -- | Application aggregated status.+    applicationAggregatedStatus :: Prelude.Maybe ApplicationAggregatedStatus,+    -- | Application ID.+    applicationID :: Prelude.Maybe Prelude.Text,+    -- | Application ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Application creation dateTime.+    creationDateTime :: Prelude.Maybe Prelude.Text,+    -- | Application description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Application archival status.+    isArchived :: Prelude.Maybe Prelude.Bool,+    -- | Application last modified dateTime.+    lastModifiedDateTime :: Prelude.Maybe Prelude.Text,+    -- | Application name.+    name :: Prelude.Maybe Prelude.Text,+    -- | Application tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Application wave ID.+    waveID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Application' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationAggregatedStatus', 'application_applicationAggregatedStatus' - Application aggregated status.+--+-- 'applicationID', 'application_applicationID' - Application ID.+--+-- 'arn', 'application_arn' - Application ARN.+--+-- 'creationDateTime', 'application_creationDateTime' - Application creation dateTime.+--+-- 'description', 'application_description' - Application description.+--+-- 'isArchived', 'application_isArchived' - Application archival status.+--+-- 'lastModifiedDateTime', 'application_lastModifiedDateTime' - Application last modified dateTime.+--+-- 'name', 'application_name' - Application name.+--+-- 'tags', 'application_tags' - Application tags.+--+-- 'waveID', 'application_waveID' - Application wave ID.+newApplication ::+  Application+newApplication =+  Application'+    { applicationAggregatedStatus =+        Prelude.Nothing,+      applicationID = Prelude.Nothing,+      arn = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      isArchived = Prelude.Nothing,+      lastModifiedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      tags = Prelude.Nothing,+      waveID = Prelude.Nothing+    }++-- | Application aggregated status.+application_applicationAggregatedStatus :: Lens.Lens' Application (Prelude.Maybe ApplicationAggregatedStatus)+application_applicationAggregatedStatus = Lens.lens (\Application' {applicationAggregatedStatus} -> applicationAggregatedStatus) (\s@Application' {} a -> s {applicationAggregatedStatus = a} :: Application)++-- | Application ID.+application_applicationID :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_applicationID = Lens.lens (\Application' {applicationID} -> applicationID) (\s@Application' {} a -> s {applicationID = a} :: Application)++-- | Application ARN.+application_arn :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_arn = Lens.lens (\Application' {arn} -> arn) (\s@Application' {} a -> s {arn = a} :: Application)++-- | Application creation dateTime.+application_creationDateTime :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_creationDateTime = Lens.lens (\Application' {creationDateTime} -> creationDateTime) (\s@Application' {} a -> s {creationDateTime = a} :: Application)++-- | Application description.+application_description :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_description = Lens.lens (\Application' {description} -> description) (\s@Application' {} a -> s {description = a} :: Application)++-- | Application archival status.+application_isArchived :: Lens.Lens' Application (Prelude.Maybe Prelude.Bool)+application_isArchived = Lens.lens (\Application' {isArchived} -> isArchived) (\s@Application' {} a -> s {isArchived = a} :: Application)++-- | Application last modified dateTime.+application_lastModifiedDateTime :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_lastModifiedDateTime = Lens.lens (\Application' {lastModifiedDateTime} -> lastModifiedDateTime) (\s@Application' {} a -> s {lastModifiedDateTime = a} :: Application)++-- | Application name.+application_name :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_name = Lens.lens (\Application' {name} -> name) (\s@Application' {} a -> s {name = a} :: Application)++-- | Application tags.+application_tags :: Lens.Lens' Application (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+application_tags = Lens.lens (\Application' {tags} -> tags) (\s@Application' {} a -> s {tags = a} :: Application) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Application wave ID.+application_waveID :: Lens.Lens' Application (Prelude.Maybe Prelude.Text)+application_waveID = Lens.lens (\Application' {waveID} -> waveID) (\s@Application' {} a -> s {waveID = a} :: Application)++instance Data.FromJSON Application where+  parseJSON =+    Data.withObject+      "Application"+      ( \x ->+          Application'+            Prelude.<$> (x Data..:? "applicationAggregatedStatus")+            Prelude.<*> (x Data..:? "applicationID")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "isArchived")+            Prelude.<*> (x Data..:? "lastModifiedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "waveID")+      )++instance Prelude.Hashable Application where+  hashWithSalt _salt Application' {..} =+    _salt+      `Prelude.hashWithSalt` applicationAggregatedStatus+      `Prelude.hashWithSalt` applicationID+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` isArchived+      `Prelude.hashWithSalt` lastModifiedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` waveID++instance Prelude.NFData Application where+  rnf Application' {..} =+    Prelude.rnf applicationAggregatedStatus+      `Prelude.seq` Prelude.rnf applicationID+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf isArchived+      `Prelude.seq` Prelude.rnf lastModifiedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf waveID
+ gen/Amazonka/MGN/Types/ApplicationAggregatedStatus.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.MGN.Types.ApplicationAggregatedStatus+-- 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.MGN.Types.ApplicationAggregatedStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.ApplicationHealthStatus+import Amazonka.MGN.Types.ApplicationProgressStatus+import qualified Amazonka.Prelude as Prelude++-- | Application aggregated status.+--+-- /See:/ 'newApplicationAggregatedStatus' smart constructor.+data ApplicationAggregatedStatus = ApplicationAggregatedStatus'+  { -- | Application aggregated status health status.+    healthStatus :: Prelude.Maybe ApplicationHealthStatus,+    -- | Application aggregated status last update dateTime.+    lastUpdateDateTime :: Prelude.Maybe Prelude.Text,+    -- | Application aggregated status progress status.+    progressStatus :: Prelude.Maybe ApplicationProgressStatus,+    -- | Application aggregated status total source servers amount.+    totalSourceServers :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ApplicationAggregatedStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'healthStatus', 'applicationAggregatedStatus_healthStatus' - Application aggregated status health status.+--+-- 'lastUpdateDateTime', 'applicationAggregatedStatus_lastUpdateDateTime' - Application aggregated status last update dateTime.+--+-- 'progressStatus', 'applicationAggregatedStatus_progressStatus' - Application aggregated status progress status.+--+-- 'totalSourceServers', 'applicationAggregatedStatus_totalSourceServers' - Application aggregated status total source servers amount.+newApplicationAggregatedStatus ::+  ApplicationAggregatedStatus+newApplicationAggregatedStatus =+  ApplicationAggregatedStatus'+    { healthStatus =+        Prelude.Nothing,+      lastUpdateDateTime = Prelude.Nothing,+      progressStatus = Prelude.Nothing,+      totalSourceServers = Prelude.Nothing+    }++-- | Application aggregated status health status.+applicationAggregatedStatus_healthStatus :: Lens.Lens' ApplicationAggregatedStatus (Prelude.Maybe ApplicationHealthStatus)+applicationAggregatedStatus_healthStatus = Lens.lens (\ApplicationAggregatedStatus' {healthStatus} -> healthStatus) (\s@ApplicationAggregatedStatus' {} a -> s {healthStatus = a} :: ApplicationAggregatedStatus)++-- | Application aggregated status last update dateTime.+applicationAggregatedStatus_lastUpdateDateTime :: Lens.Lens' ApplicationAggregatedStatus (Prelude.Maybe Prelude.Text)+applicationAggregatedStatus_lastUpdateDateTime = Lens.lens (\ApplicationAggregatedStatus' {lastUpdateDateTime} -> lastUpdateDateTime) (\s@ApplicationAggregatedStatus' {} a -> s {lastUpdateDateTime = a} :: ApplicationAggregatedStatus)++-- | Application aggregated status progress status.+applicationAggregatedStatus_progressStatus :: Lens.Lens' ApplicationAggregatedStatus (Prelude.Maybe ApplicationProgressStatus)+applicationAggregatedStatus_progressStatus = Lens.lens (\ApplicationAggregatedStatus' {progressStatus} -> progressStatus) (\s@ApplicationAggregatedStatus' {} a -> s {progressStatus = a} :: ApplicationAggregatedStatus)++-- | Application aggregated status total source servers amount.+applicationAggregatedStatus_totalSourceServers :: Lens.Lens' ApplicationAggregatedStatus (Prelude.Maybe Prelude.Natural)+applicationAggregatedStatus_totalSourceServers = Lens.lens (\ApplicationAggregatedStatus' {totalSourceServers} -> totalSourceServers) (\s@ApplicationAggregatedStatus' {} a -> s {totalSourceServers = a} :: ApplicationAggregatedStatus)++instance Data.FromJSON ApplicationAggregatedStatus where+  parseJSON =+    Data.withObject+      "ApplicationAggregatedStatus"+      ( \x ->+          ApplicationAggregatedStatus'+            Prelude.<$> (x Data..:? "healthStatus")+            Prelude.<*> (x Data..:? "lastUpdateDateTime")+            Prelude.<*> (x Data..:? "progressStatus")+            Prelude.<*> (x Data..:? "totalSourceServers")+      )++instance Prelude.Hashable ApplicationAggregatedStatus where+  hashWithSalt _salt ApplicationAggregatedStatus' {..} =+    _salt+      `Prelude.hashWithSalt` healthStatus+      `Prelude.hashWithSalt` lastUpdateDateTime+      `Prelude.hashWithSalt` progressStatus+      `Prelude.hashWithSalt` totalSourceServers++instance Prelude.NFData ApplicationAggregatedStatus where+  rnf ApplicationAggregatedStatus' {..} =+    Prelude.rnf healthStatus+      `Prelude.seq` Prelude.rnf lastUpdateDateTime+      `Prelude.seq` Prelude.rnf progressStatus+      `Prelude.seq` Prelude.rnf totalSourceServers
+ gen/Amazonka/MGN/Types/ApplicationHealthStatus.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.MGN.Types.ApplicationHealthStatus+-- 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.MGN.Types.ApplicationHealthStatus+  ( ApplicationHealthStatus+      ( ..,+        ApplicationHealthStatus_ERROR,+        ApplicationHealthStatus_HEALTHY,+        ApplicationHealthStatus_LAGGING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApplicationHealthStatus = ApplicationHealthStatus'+  { fromApplicationHealthStatus ::+      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 ApplicationHealthStatus_ERROR :: ApplicationHealthStatus+pattern ApplicationHealthStatus_ERROR = ApplicationHealthStatus' "ERROR"++pattern ApplicationHealthStatus_HEALTHY :: ApplicationHealthStatus+pattern ApplicationHealthStatus_HEALTHY = ApplicationHealthStatus' "HEALTHY"++pattern ApplicationHealthStatus_LAGGING :: ApplicationHealthStatus+pattern ApplicationHealthStatus_LAGGING = ApplicationHealthStatus' "LAGGING"++{-# COMPLETE+  ApplicationHealthStatus_ERROR,+  ApplicationHealthStatus_HEALTHY,+  ApplicationHealthStatus_LAGGING,+  ApplicationHealthStatus'+  #-}
+ gen/Amazonka/MGN/Types/ApplicationProgressStatus.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.MGN.Types.ApplicationProgressStatus+-- 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.MGN.Types.ApplicationProgressStatus+  ( ApplicationProgressStatus+      ( ..,+        ApplicationProgressStatus_COMPLETED,+        ApplicationProgressStatus_IN_PROGRESS,+        ApplicationProgressStatus_NOT_STARTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ApplicationProgressStatus = ApplicationProgressStatus'+  { fromApplicationProgressStatus ::+      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 ApplicationProgressStatus_COMPLETED :: ApplicationProgressStatus+pattern ApplicationProgressStatus_COMPLETED = ApplicationProgressStatus' "COMPLETED"++pattern ApplicationProgressStatus_IN_PROGRESS :: ApplicationProgressStatus+pattern ApplicationProgressStatus_IN_PROGRESS = ApplicationProgressStatus' "IN_PROGRESS"++pattern ApplicationProgressStatus_NOT_STARTED :: ApplicationProgressStatus+pattern ApplicationProgressStatus_NOT_STARTED = ApplicationProgressStatus' "NOT_STARTED"++{-# COMPLETE+  ApplicationProgressStatus_COMPLETED,+  ApplicationProgressStatus_IN_PROGRESS,+  ApplicationProgressStatus_NOT_STARTED,+  ApplicationProgressStatus'+  #-}
+ gen/Amazonka/MGN/Types/BootMode.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.MGN.Types.BootMode+-- 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.MGN.Types.BootMode+  ( BootMode+      ( ..,+        BootMode_LEGACY_BIOS,+        BootMode_UEFI+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BootMode = BootMode'+  { fromBootMode ::+      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 BootMode_LEGACY_BIOS :: BootMode+pattern BootMode_LEGACY_BIOS = BootMode' "LEGACY_BIOS"++pattern BootMode_UEFI :: BootMode+pattern BootMode_UEFI = BootMode' "UEFI"++{-# COMPLETE+  BootMode_LEGACY_BIOS,+  BootMode_UEFI,+  BootMode'+  #-}
+ gen/Amazonka/MGN/Types/CPU.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.MGN.Types.CPU+-- 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.MGN.Types.CPU 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++-- | Source server CPU information.+--+-- /See:/ 'newCPU' smart constructor.+data CPU = CPU'+  { -- | The number of CPU cores on the source server.+    cores :: Prelude.Maybe Prelude.Natural,+    -- | The source server\'s CPU model name.+    modelName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CPU' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cores', 'cpu_cores' - The number of CPU cores on the source server.+--+-- 'modelName', 'cpu_modelName' - The source server\'s CPU model name.+newCPU ::+  CPU+newCPU =+  CPU'+    { cores = Prelude.Nothing,+      modelName = Prelude.Nothing+    }++-- | The number of CPU cores on the source server.+cpu_cores :: Lens.Lens' CPU (Prelude.Maybe Prelude.Natural)+cpu_cores = Lens.lens (\CPU' {cores} -> cores) (\s@CPU' {} a -> s {cores = a} :: CPU)++-- | The source server\'s CPU model name.+cpu_modelName :: Lens.Lens' CPU (Prelude.Maybe Prelude.Text)+cpu_modelName = Lens.lens (\CPU' {modelName} -> modelName) (\s@CPU' {} a -> s {modelName = a} :: CPU)++instance Data.FromJSON CPU where+  parseJSON =+    Data.withObject+      "CPU"+      ( \x ->+          CPU'+            Prelude.<$> (x Data..:? "cores")+            Prelude.<*> (x Data..:? "modelName")+      )++instance Prelude.Hashable CPU where+  hashWithSalt _salt CPU' {..} =+    _salt+      `Prelude.hashWithSalt` cores+      `Prelude.hashWithSalt` modelName++instance Prelude.NFData CPU where+  rnf CPU' {..} =+    Prelude.rnf cores+      `Prelude.seq` Prelude.rnf modelName
+ gen/Amazonka/MGN/Types/ChangeServerLifeCycleStateSourceServerLifecycle.hs view
@@ -0,0 +1,87 @@+{-# 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.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycle+-- 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.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycle where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycleState+import qualified Amazonka.Prelude as Prelude++-- | The request to change the source server migration lifecycle state.+--+-- /See:/ 'newChangeServerLifeCycleStateSourceServerLifecycle' smart constructor.+data ChangeServerLifeCycleStateSourceServerLifecycle = ChangeServerLifeCycleStateSourceServerLifecycle'+  { -- | The request to change the source server migration lifecycle state.+    state :: ChangeServerLifeCycleStateSourceServerLifecycleState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChangeServerLifeCycleStateSourceServerLifecycle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'state', 'changeServerLifeCycleStateSourceServerLifecycle_state' - The request to change the source server migration lifecycle state.+newChangeServerLifeCycleStateSourceServerLifecycle ::+  -- | 'state'+  ChangeServerLifeCycleStateSourceServerLifecycleState ->+  ChangeServerLifeCycleStateSourceServerLifecycle+newChangeServerLifeCycleStateSourceServerLifecycle+  pState_ =+    ChangeServerLifeCycleStateSourceServerLifecycle'+      { state =+          pState_+      }++-- | The request to change the source server migration lifecycle state.+changeServerLifeCycleStateSourceServerLifecycle_state :: Lens.Lens' ChangeServerLifeCycleStateSourceServerLifecycle ChangeServerLifeCycleStateSourceServerLifecycleState+changeServerLifeCycleStateSourceServerLifecycle_state = Lens.lens (\ChangeServerLifeCycleStateSourceServerLifecycle' {state} -> state) (\s@ChangeServerLifeCycleStateSourceServerLifecycle' {} a -> s {state = a} :: ChangeServerLifeCycleStateSourceServerLifecycle)++instance+  Prelude.Hashable+    ChangeServerLifeCycleStateSourceServerLifecycle+  where+  hashWithSalt+    _salt+    ChangeServerLifeCycleStateSourceServerLifecycle' {..} =+      _salt `Prelude.hashWithSalt` state++instance+  Prelude.NFData+    ChangeServerLifeCycleStateSourceServerLifecycle+  where+  rnf+    ChangeServerLifeCycleStateSourceServerLifecycle' {..} =+      Prelude.rnf state++instance+  Data.ToJSON+    ChangeServerLifeCycleStateSourceServerLifecycle+  where+  toJSON+    ChangeServerLifeCycleStateSourceServerLifecycle' {..} =+      Data.object+        ( Prelude.catMaybes+            [Prelude.Just ("state" Data..= state)]+        )
+ gen/Amazonka/MGN/Types/ChangeServerLifeCycleStateSourceServerLifecycleState.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.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycleState+-- 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.MGN.Types.ChangeServerLifeCycleStateSourceServerLifecycleState+  ( ChangeServerLifeCycleStateSourceServerLifecycleState+      ( ..,+        ChangeServerLifeCycleStateSourceServerLifecycleState_CUTOVER,+        ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_CUTOVER,+        ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_TEST+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ChangeServerLifeCycleStateSourceServerLifecycleState = ChangeServerLifeCycleStateSourceServerLifecycleState'+  { fromChangeServerLifeCycleStateSourceServerLifecycleState ::+      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 ChangeServerLifeCycleStateSourceServerLifecycleState_CUTOVER :: ChangeServerLifeCycleStateSourceServerLifecycleState+pattern ChangeServerLifeCycleStateSourceServerLifecycleState_CUTOVER = ChangeServerLifeCycleStateSourceServerLifecycleState' "CUTOVER"++pattern ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_CUTOVER :: ChangeServerLifeCycleStateSourceServerLifecycleState+pattern ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_CUTOVER = ChangeServerLifeCycleStateSourceServerLifecycleState' "READY_FOR_CUTOVER"++pattern ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_TEST :: ChangeServerLifeCycleStateSourceServerLifecycleState+pattern ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_TEST = ChangeServerLifeCycleStateSourceServerLifecycleState' "READY_FOR_TEST"++{-# COMPLETE+  ChangeServerLifeCycleStateSourceServerLifecycleState_CUTOVER,+  ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_CUTOVER,+  ChangeServerLifeCycleStateSourceServerLifecycleState_READY_FOR_TEST,+  ChangeServerLifeCycleStateSourceServerLifecycleState'+  #-}
+ gen/Amazonka/MGN/Types/DataReplicationError.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.DataReplicationError+-- 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.MGN.Types.DataReplicationError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.DataReplicationErrorString+import qualified Amazonka.Prelude as Prelude++-- | Error in data replication.+--+-- /See:/ 'newDataReplicationError' smart constructor.+data DataReplicationError = DataReplicationError'+  { -- | Error in data replication.+    error :: Prelude.Maybe DataReplicationErrorString,+    -- | Error in data replication.+    rawError :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataReplicationError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'error', 'dataReplicationError_error' - Error in data replication.+--+-- 'rawError', 'dataReplicationError_rawError' - Error in data replication.+newDataReplicationError ::+  DataReplicationError+newDataReplicationError =+  DataReplicationError'+    { error = Prelude.Nothing,+      rawError = Prelude.Nothing+    }++-- | Error in data replication.+dataReplicationError_error :: Lens.Lens' DataReplicationError (Prelude.Maybe DataReplicationErrorString)+dataReplicationError_error = Lens.lens (\DataReplicationError' {error} -> error) (\s@DataReplicationError' {} a -> s {error = a} :: DataReplicationError)++-- | Error in data replication.+dataReplicationError_rawError :: Lens.Lens' DataReplicationError (Prelude.Maybe Prelude.Text)+dataReplicationError_rawError = Lens.lens (\DataReplicationError' {rawError} -> rawError) (\s@DataReplicationError' {} a -> s {rawError = a} :: DataReplicationError)++instance Data.FromJSON DataReplicationError where+  parseJSON =+    Data.withObject+      "DataReplicationError"+      ( \x ->+          DataReplicationError'+            Prelude.<$> (x Data..:? "error")+            Prelude.<*> (x Data..:? "rawError")+      )++instance Prelude.Hashable DataReplicationError where+  hashWithSalt _salt DataReplicationError' {..} =+    _salt+      `Prelude.hashWithSalt` error+      `Prelude.hashWithSalt` rawError++instance Prelude.NFData DataReplicationError where+  rnf DataReplicationError' {..} =+    Prelude.rnf error+      `Prelude.seq` Prelude.rnf rawError
+ gen/Amazonka/MGN/Types/DataReplicationErrorString.hs view
@@ -0,0 +1,141 @@+{-# 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.MGN.Types.DataReplicationErrorString+-- 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.MGN.Types.DataReplicationErrorString+  ( DataReplicationErrorString+      ( ..,+        DataReplicationErrorString_AGENT_NOT_SEEN,+        DataReplicationErrorString_FAILED_TO_ATTACH_STAGING_DISKS,+        DataReplicationErrorString_FAILED_TO_AUTHENTICATE_WITH_SERVICE,+        DataReplicationErrorString_FAILED_TO_BOOT_REPLICATION_SERVER,+        DataReplicationErrorString_FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER,+        DataReplicationErrorString_FAILED_TO_CREATE_SECURITY_GROUP,+        DataReplicationErrorString_FAILED_TO_CREATE_STAGING_DISKS,+        DataReplicationErrorString_FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE,+        DataReplicationErrorString_FAILED_TO_LAUNCH_REPLICATION_SERVER,+        DataReplicationErrorString_FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT,+        DataReplicationErrorString_FAILED_TO_START_DATA_TRANSFER,+        DataReplicationErrorString_LAST_SNAPSHOT_JOB_FAILED,+        DataReplicationErrorString_NOT_CONVERGING,+        DataReplicationErrorString_SNAPSHOTS_FAILURE,+        DataReplicationErrorString_UNSTABLE_NETWORK,+        DataReplicationErrorString_UNSUPPORTED_VM_CONFIGURATION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataReplicationErrorString = DataReplicationErrorString'+  { fromDataReplicationErrorString ::+      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 DataReplicationErrorString_AGENT_NOT_SEEN :: DataReplicationErrorString+pattern DataReplicationErrorString_AGENT_NOT_SEEN = DataReplicationErrorString' "AGENT_NOT_SEEN"++pattern DataReplicationErrorString_FAILED_TO_ATTACH_STAGING_DISKS :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_ATTACH_STAGING_DISKS = DataReplicationErrorString' "FAILED_TO_ATTACH_STAGING_DISKS"++pattern DataReplicationErrorString_FAILED_TO_AUTHENTICATE_WITH_SERVICE :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_AUTHENTICATE_WITH_SERVICE = DataReplicationErrorString' "FAILED_TO_AUTHENTICATE_WITH_SERVICE"++pattern DataReplicationErrorString_FAILED_TO_BOOT_REPLICATION_SERVER :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_BOOT_REPLICATION_SERVER = DataReplicationErrorString' "FAILED_TO_BOOT_REPLICATION_SERVER"++pattern DataReplicationErrorString_FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER = DataReplicationErrorString' "FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER"++pattern DataReplicationErrorString_FAILED_TO_CREATE_SECURITY_GROUP :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_CREATE_SECURITY_GROUP = DataReplicationErrorString' "FAILED_TO_CREATE_SECURITY_GROUP"++pattern DataReplicationErrorString_FAILED_TO_CREATE_STAGING_DISKS :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_CREATE_STAGING_DISKS = DataReplicationErrorString' "FAILED_TO_CREATE_STAGING_DISKS"++pattern DataReplicationErrorString_FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE = DataReplicationErrorString' "FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE"++pattern DataReplicationErrorString_FAILED_TO_LAUNCH_REPLICATION_SERVER :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_LAUNCH_REPLICATION_SERVER = DataReplicationErrorString' "FAILED_TO_LAUNCH_REPLICATION_SERVER"++pattern DataReplicationErrorString_FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT = DataReplicationErrorString' "FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT"++pattern DataReplicationErrorString_FAILED_TO_START_DATA_TRANSFER :: DataReplicationErrorString+pattern DataReplicationErrorString_FAILED_TO_START_DATA_TRANSFER = DataReplicationErrorString' "FAILED_TO_START_DATA_TRANSFER"++pattern DataReplicationErrorString_LAST_SNAPSHOT_JOB_FAILED :: DataReplicationErrorString+pattern DataReplicationErrorString_LAST_SNAPSHOT_JOB_FAILED = DataReplicationErrorString' "LAST_SNAPSHOT_JOB_FAILED"++pattern DataReplicationErrorString_NOT_CONVERGING :: DataReplicationErrorString+pattern DataReplicationErrorString_NOT_CONVERGING = DataReplicationErrorString' "NOT_CONVERGING"++pattern DataReplicationErrorString_SNAPSHOTS_FAILURE :: DataReplicationErrorString+pattern DataReplicationErrorString_SNAPSHOTS_FAILURE = DataReplicationErrorString' "SNAPSHOTS_FAILURE"++pattern DataReplicationErrorString_UNSTABLE_NETWORK :: DataReplicationErrorString+pattern DataReplicationErrorString_UNSTABLE_NETWORK = DataReplicationErrorString' "UNSTABLE_NETWORK"++pattern DataReplicationErrorString_UNSUPPORTED_VM_CONFIGURATION :: DataReplicationErrorString+pattern DataReplicationErrorString_UNSUPPORTED_VM_CONFIGURATION = DataReplicationErrorString' "UNSUPPORTED_VM_CONFIGURATION"++{-# COMPLETE+  DataReplicationErrorString_AGENT_NOT_SEEN,+  DataReplicationErrorString_FAILED_TO_ATTACH_STAGING_DISKS,+  DataReplicationErrorString_FAILED_TO_AUTHENTICATE_WITH_SERVICE,+  DataReplicationErrorString_FAILED_TO_BOOT_REPLICATION_SERVER,+  DataReplicationErrorString_FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER,+  DataReplicationErrorString_FAILED_TO_CREATE_SECURITY_GROUP,+  DataReplicationErrorString_FAILED_TO_CREATE_STAGING_DISKS,+  DataReplicationErrorString_FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE,+  DataReplicationErrorString_FAILED_TO_LAUNCH_REPLICATION_SERVER,+  DataReplicationErrorString_FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT,+  DataReplicationErrorString_FAILED_TO_START_DATA_TRANSFER,+  DataReplicationErrorString_LAST_SNAPSHOT_JOB_FAILED,+  DataReplicationErrorString_NOT_CONVERGING,+  DataReplicationErrorString_SNAPSHOTS_FAILURE,+  DataReplicationErrorString_UNSTABLE_NETWORK,+  DataReplicationErrorString_UNSUPPORTED_VM_CONFIGURATION,+  DataReplicationErrorString'+  #-}
+ gen/Amazonka/MGN/Types/DataReplicationInfo.hs view
@@ -0,0 +1,152 @@+{-# 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.MGN.Types.DataReplicationInfo+-- 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.MGN.Types.DataReplicationInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.DataReplicationError+import Amazonka.MGN.Types.DataReplicationInfoReplicatedDisk+import Amazonka.MGN.Types.DataReplicationInitiation+import Amazonka.MGN.Types.DataReplicationState+import qualified Amazonka.Prelude as Prelude++-- | Request data replication info.+--+-- /See:/ 'newDataReplicationInfo' smart constructor.+data DataReplicationInfo = DataReplicationInfo'+  { -- | Error in obtaining data replication info.+    dataReplicationError :: Prelude.Maybe DataReplicationError,+    -- | Request to query whether data replication has been initiated.+    dataReplicationInitiation :: Prelude.Maybe DataReplicationInitiation,+    -- | Request to query the data replication state.+    dataReplicationState :: Prelude.Maybe DataReplicationState,+    -- | Request to query the time when data replication will be complete.+    etaDateTime :: Prelude.Maybe Prelude.Text,+    -- | Request to query data replication lag duration.+    lagDuration :: Prelude.Maybe Prelude.Text,+    -- | Request to query data replication last snapshot time.+    lastSnapshotDateTime :: Prelude.Maybe Prelude.Text,+    -- | Request to query disks replicated.+    replicatedDisks :: Prelude.Maybe [DataReplicationInfoReplicatedDisk]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataReplicationInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataReplicationError', 'dataReplicationInfo_dataReplicationError' - Error in obtaining data replication info.+--+-- 'dataReplicationInitiation', 'dataReplicationInfo_dataReplicationInitiation' - Request to query whether data replication has been initiated.+--+-- 'dataReplicationState', 'dataReplicationInfo_dataReplicationState' - Request to query the data replication state.+--+-- 'etaDateTime', 'dataReplicationInfo_etaDateTime' - Request to query the time when data replication will be complete.+--+-- 'lagDuration', 'dataReplicationInfo_lagDuration' - Request to query data replication lag duration.+--+-- 'lastSnapshotDateTime', 'dataReplicationInfo_lastSnapshotDateTime' - Request to query data replication last snapshot time.+--+-- 'replicatedDisks', 'dataReplicationInfo_replicatedDisks' - Request to query disks replicated.+newDataReplicationInfo ::+  DataReplicationInfo+newDataReplicationInfo =+  DataReplicationInfo'+    { dataReplicationError =+        Prelude.Nothing,+      dataReplicationInitiation = Prelude.Nothing,+      dataReplicationState = Prelude.Nothing,+      etaDateTime = Prelude.Nothing,+      lagDuration = Prelude.Nothing,+      lastSnapshotDateTime = Prelude.Nothing,+      replicatedDisks = Prelude.Nothing+    }++-- | Error in obtaining data replication info.+dataReplicationInfo_dataReplicationError :: Lens.Lens' DataReplicationInfo (Prelude.Maybe DataReplicationError)+dataReplicationInfo_dataReplicationError = Lens.lens (\DataReplicationInfo' {dataReplicationError} -> dataReplicationError) (\s@DataReplicationInfo' {} a -> s {dataReplicationError = a} :: DataReplicationInfo)++-- | Request to query whether data replication has been initiated.+dataReplicationInfo_dataReplicationInitiation :: Lens.Lens' DataReplicationInfo (Prelude.Maybe DataReplicationInitiation)+dataReplicationInfo_dataReplicationInitiation = Lens.lens (\DataReplicationInfo' {dataReplicationInitiation} -> dataReplicationInitiation) (\s@DataReplicationInfo' {} a -> s {dataReplicationInitiation = a} :: DataReplicationInfo)++-- | Request to query the data replication state.+dataReplicationInfo_dataReplicationState :: Lens.Lens' DataReplicationInfo (Prelude.Maybe DataReplicationState)+dataReplicationInfo_dataReplicationState = Lens.lens (\DataReplicationInfo' {dataReplicationState} -> dataReplicationState) (\s@DataReplicationInfo' {} a -> s {dataReplicationState = a} :: DataReplicationInfo)++-- | Request to query the time when data replication will be complete.+dataReplicationInfo_etaDateTime :: Lens.Lens' DataReplicationInfo (Prelude.Maybe Prelude.Text)+dataReplicationInfo_etaDateTime = Lens.lens (\DataReplicationInfo' {etaDateTime} -> etaDateTime) (\s@DataReplicationInfo' {} a -> s {etaDateTime = a} :: DataReplicationInfo)++-- | Request to query data replication lag duration.+dataReplicationInfo_lagDuration :: Lens.Lens' DataReplicationInfo (Prelude.Maybe Prelude.Text)+dataReplicationInfo_lagDuration = Lens.lens (\DataReplicationInfo' {lagDuration} -> lagDuration) (\s@DataReplicationInfo' {} a -> s {lagDuration = a} :: DataReplicationInfo)++-- | Request to query data replication last snapshot time.+dataReplicationInfo_lastSnapshotDateTime :: Lens.Lens' DataReplicationInfo (Prelude.Maybe Prelude.Text)+dataReplicationInfo_lastSnapshotDateTime = Lens.lens (\DataReplicationInfo' {lastSnapshotDateTime} -> lastSnapshotDateTime) (\s@DataReplicationInfo' {} a -> s {lastSnapshotDateTime = a} :: DataReplicationInfo)++-- | Request to query disks replicated.+dataReplicationInfo_replicatedDisks :: Lens.Lens' DataReplicationInfo (Prelude.Maybe [DataReplicationInfoReplicatedDisk])+dataReplicationInfo_replicatedDisks = Lens.lens (\DataReplicationInfo' {replicatedDisks} -> replicatedDisks) (\s@DataReplicationInfo' {} a -> s {replicatedDisks = a} :: DataReplicationInfo) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DataReplicationInfo where+  parseJSON =+    Data.withObject+      "DataReplicationInfo"+      ( \x ->+          DataReplicationInfo'+            Prelude.<$> (x Data..:? "dataReplicationError")+            Prelude.<*> (x Data..:? "dataReplicationInitiation")+            Prelude.<*> (x Data..:? "dataReplicationState")+            Prelude.<*> (x Data..:? "etaDateTime")+            Prelude.<*> (x Data..:? "lagDuration")+            Prelude.<*> (x Data..:? "lastSnapshotDateTime")+            Prelude.<*> ( x+                            Data..:? "replicatedDisks"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable DataReplicationInfo where+  hashWithSalt _salt DataReplicationInfo' {..} =+    _salt+      `Prelude.hashWithSalt` dataReplicationError+      `Prelude.hashWithSalt` dataReplicationInitiation+      `Prelude.hashWithSalt` dataReplicationState+      `Prelude.hashWithSalt` etaDateTime+      `Prelude.hashWithSalt` lagDuration+      `Prelude.hashWithSalt` lastSnapshotDateTime+      `Prelude.hashWithSalt` replicatedDisks++instance Prelude.NFData DataReplicationInfo where+  rnf DataReplicationInfo' {..} =+    Prelude.rnf dataReplicationError+      `Prelude.seq` Prelude.rnf dataReplicationInitiation+      `Prelude.seq` Prelude.rnf dataReplicationState+      `Prelude.seq` Prelude.rnf etaDateTime+      `Prelude.seq` Prelude.rnf lagDuration+      `Prelude.seq` Prelude.rnf lastSnapshotDateTime+      `Prelude.seq` Prelude.rnf replicatedDisks
+ gen/Amazonka/MGN/Types/DataReplicationInfoReplicatedDisk.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.MGN.Types.DataReplicationInfoReplicatedDisk+-- 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.MGN.Types.DataReplicationInfoReplicatedDisk 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++-- | Request to query disks replicated.+--+-- /See:/ 'newDataReplicationInfoReplicatedDisk' smart constructor.+data DataReplicationInfoReplicatedDisk = DataReplicationInfoReplicatedDisk'+  { -- | Request to query data replication backlog size in bytes.+    backloggedStorageBytes :: Prelude.Maybe Prelude.Natural,+    -- | Request to query device name.+    deviceName :: Prelude.Maybe Prelude.Text,+    -- | Request to query amount of data replicated in bytes.+    replicatedStorageBytes :: Prelude.Maybe Prelude.Natural,+    -- | Request to query amount of data rescanned in bytes.+    rescannedStorageBytes :: Prelude.Maybe Prelude.Natural,+    -- | Request to query total amount of data replicated in bytes.+    totalStorageBytes :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataReplicationInfoReplicatedDisk' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backloggedStorageBytes', 'dataReplicationInfoReplicatedDisk_backloggedStorageBytes' - Request to query data replication backlog size in bytes.+--+-- 'deviceName', 'dataReplicationInfoReplicatedDisk_deviceName' - Request to query device name.+--+-- 'replicatedStorageBytes', 'dataReplicationInfoReplicatedDisk_replicatedStorageBytes' - Request to query amount of data replicated in bytes.+--+-- 'rescannedStorageBytes', 'dataReplicationInfoReplicatedDisk_rescannedStorageBytes' - Request to query amount of data rescanned in bytes.+--+-- 'totalStorageBytes', 'dataReplicationInfoReplicatedDisk_totalStorageBytes' - Request to query total amount of data replicated in bytes.+newDataReplicationInfoReplicatedDisk ::+  DataReplicationInfoReplicatedDisk+newDataReplicationInfoReplicatedDisk =+  DataReplicationInfoReplicatedDisk'+    { backloggedStorageBytes =+        Prelude.Nothing,+      deviceName = Prelude.Nothing,+      replicatedStorageBytes = Prelude.Nothing,+      rescannedStorageBytes = Prelude.Nothing,+      totalStorageBytes = Prelude.Nothing+    }++-- | Request to query data replication backlog size in bytes.+dataReplicationInfoReplicatedDisk_backloggedStorageBytes :: Lens.Lens' DataReplicationInfoReplicatedDisk (Prelude.Maybe Prelude.Natural)+dataReplicationInfoReplicatedDisk_backloggedStorageBytes = Lens.lens (\DataReplicationInfoReplicatedDisk' {backloggedStorageBytes} -> backloggedStorageBytes) (\s@DataReplicationInfoReplicatedDisk' {} a -> s {backloggedStorageBytes = a} :: DataReplicationInfoReplicatedDisk)++-- | Request to query device name.+dataReplicationInfoReplicatedDisk_deviceName :: Lens.Lens' DataReplicationInfoReplicatedDisk (Prelude.Maybe Prelude.Text)+dataReplicationInfoReplicatedDisk_deviceName = Lens.lens (\DataReplicationInfoReplicatedDisk' {deviceName} -> deviceName) (\s@DataReplicationInfoReplicatedDisk' {} a -> s {deviceName = a} :: DataReplicationInfoReplicatedDisk)++-- | Request to query amount of data replicated in bytes.+dataReplicationInfoReplicatedDisk_replicatedStorageBytes :: Lens.Lens' DataReplicationInfoReplicatedDisk (Prelude.Maybe Prelude.Natural)+dataReplicationInfoReplicatedDisk_replicatedStorageBytes = Lens.lens (\DataReplicationInfoReplicatedDisk' {replicatedStorageBytes} -> replicatedStorageBytes) (\s@DataReplicationInfoReplicatedDisk' {} a -> s {replicatedStorageBytes = a} :: DataReplicationInfoReplicatedDisk)++-- | Request to query amount of data rescanned in bytes.+dataReplicationInfoReplicatedDisk_rescannedStorageBytes :: Lens.Lens' DataReplicationInfoReplicatedDisk (Prelude.Maybe Prelude.Natural)+dataReplicationInfoReplicatedDisk_rescannedStorageBytes = Lens.lens (\DataReplicationInfoReplicatedDisk' {rescannedStorageBytes} -> rescannedStorageBytes) (\s@DataReplicationInfoReplicatedDisk' {} a -> s {rescannedStorageBytes = a} :: DataReplicationInfoReplicatedDisk)++-- | Request to query total amount of data replicated in bytes.+dataReplicationInfoReplicatedDisk_totalStorageBytes :: Lens.Lens' DataReplicationInfoReplicatedDisk (Prelude.Maybe Prelude.Natural)+dataReplicationInfoReplicatedDisk_totalStorageBytes = Lens.lens (\DataReplicationInfoReplicatedDisk' {totalStorageBytes} -> totalStorageBytes) (\s@DataReplicationInfoReplicatedDisk' {} a -> s {totalStorageBytes = a} :: DataReplicationInfoReplicatedDisk)++instance+  Data.FromJSON+    DataReplicationInfoReplicatedDisk+  where+  parseJSON =+    Data.withObject+      "DataReplicationInfoReplicatedDisk"+      ( \x ->+          DataReplicationInfoReplicatedDisk'+            Prelude.<$> (x Data..:? "backloggedStorageBytes")+            Prelude.<*> (x Data..:? "deviceName")+            Prelude.<*> (x Data..:? "replicatedStorageBytes")+            Prelude.<*> (x Data..:? "rescannedStorageBytes")+            Prelude.<*> (x Data..:? "totalStorageBytes")+      )++instance+  Prelude.Hashable+    DataReplicationInfoReplicatedDisk+  where+  hashWithSalt+    _salt+    DataReplicationInfoReplicatedDisk' {..} =+      _salt+        `Prelude.hashWithSalt` backloggedStorageBytes+        `Prelude.hashWithSalt` deviceName+        `Prelude.hashWithSalt` replicatedStorageBytes+        `Prelude.hashWithSalt` rescannedStorageBytes+        `Prelude.hashWithSalt` totalStorageBytes++instance+  Prelude.NFData+    DataReplicationInfoReplicatedDisk+  where+  rnf DataReplicationInfoReplicatedDisk' {..} =+    Prelude.rnf backloggedStorageBytes+      `Prelude.seq` Prelude.rnf deviceName+      `Prelude.seq` Prelude.rnf replicatedStorageBytes+      `Prelude.seq` Prelude.rnf rescannedStorageBytes+      `Prelude.seq` Prelude.rnf totalStorageBytes
+ gen/Amazonka/MGN/Types/DataReplicationInitiation.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.DataReplicationInitiation+-- 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.MGN.Types.DataReplicationInitiation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.DataReplicationInitiationStep+import qualified Amazonka.Prelude as Prelude++-- | Data replication initiation.+--+-- /See:/ 'newDataReplicationInitiation' smart constructor.+data DataReplicationInitiation = DataReplicationInitiation'+  { -- | Request to query next data initiation date and time.+    nextAttemptDateTime :: Prelude.Maybe Prelude.Text,+    -- | Request to query data initiation start date and time.+    startDateTime :: Prelude.Maybe Prelude.Text,+    -- | Request to query data initiation steps.+    steps :: Prelude.Maybe [DataReplicationInitiationStep]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataReplicationInitiation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextAttemptDateTime', 'dataReplicationInitiation_nextAttemptDateTime' - Request to query next data initiation date and time.+--+-- 'startDateTime', 'dataReplicationInitiation_startDateTime' - Request to query data initiation start date and time.+--+-- 'steps', 'dataReplicationInitiation_steps' - Request to query data initiation steps.+newDataReplicationInitiation ::+  DataReplicationInitiation+newDataReplicationInitiation =+  DataReplicationInitiation'+    { nextAttemptDateTime =+        Prelude.Nothing,+      startDateTime = Prelude.Nothing,+      steps = Prelude.Nothing+    }++-- | Request to query next data initiation date and time.+dataReplicationInitiation_nextAttemptDateTime :: Lens.Lens' DataReplicationInitiation (Prelude.Maybe Prelude.Text)+dataReplicationInitiation_nextAttemptDateTime = Lens.lens (\DataReplicationInitiation' {nextAttemptDateTime} -> nextAttemptDateTime) (\s@DataReplicationInitiation' {} a -> s {nextAttemptDateTime = a} :: DataReplicationInitiation)++-- | Request to query data initiation start date and time.+dataReplicationInitiation_startDateTime :: Lens.Lens' DataReplicationInitiation (Prelude.Maybe Prelude.Text)+dataReplicationInitiation_startDateTime = Lens.lens (\DataReplicationInitiation' {startDateTime} -> startDateTime) (\s@DataReplicationInitiation' {} a -> s {startDateTime = a} :: DataReplicationInitiation)++-- | Request to query data initiation steps.+dataReplicationInitiation_steps :: Lens.Lens' DataReplicationInitiation (Prelude.Maybe [DataReplicationInitiationStep])+dataReplicationInitiation_steps = Lens.lens (\DataReplicationInitiation' {steps} -> steps) (\s@DataReplicationInitiation' {} a -> s {steps = a} :: DataReplicationInitiation) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DataReplicationInitiation where+  parseJSON =+    Data.withObject+      "DataReplicationInitiation"+      ( \x ->+          DataReplicationInitiation'+            Prelude.<$> (x Data..:? "nextAttemptDateTime")+            Prelude.<*> (x Data..:? "startDateTime")+            Prelude.<*> (x Data..:? "steps" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable DataReplicationInitiation where+  hashWithSalt _salt DataReplicationInitiation' {..} =+    _salt+      `Prelude.hashWithSalt` nextAttemptDateTime+      `Prelude.hashWithSalt` startDateTime+      `Prelude.hashWithSalt` steps++instance Prelude.NFData DataReplicationInitiation where+  rnf DataReplicationInitiation' {..} =+    Prelude.rnf nextAttemptDateTime+      `Prelude.seq` Prelude.rnf startDateTime+      `Prelude.seq` Prelude.rnf steps
+ gen/Amazonka/MGN/Types/DataReplicationInitiationStep.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.MGN.Types.DataReplicationInitiationStep+-- 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.MGN.Types.DataReplicationInitiationStep where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.DataReplicationInitiationStepName+import Amazonka.MGN.Types.DataReplicationInitiationStepStatus+import qualified Amazonka.Prelude as Prelude++-- | Data replication initiation step.+--+-- /See:/ 'newDataReplicationInitiationStep' smart constructor.+data DataReplicationInitiationStep = DataReplicationInitiationStep'+  { -- | Request to query data initiation step name.+    name :: Prelude.Maybe DataReplicationInitiationStepName,+    -- | Request to query data initiation status.+    status :: Prelude.Maybe DataReplicationInitiationStepStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataReplicationInitiationStep' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'dataReplicationInitiationStep_name' - Request to query data initiation step name.+--+-- 'status', 'dataReplicationInitiationStep_status' - Request to query data initiation status.+newDataReplicationInitiationStep ::+  DataReplicationInitiationStep+newDataReplicationInitiationStep =+  DataReplicationInitiationStep'+    { name =+        Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | Request to query data initiation step name.+dataReplicationInitiationStep_name :: Lens.Lens' DataReplicationInitiationStep (Prelude.Maybe DataReplicationInitiationStepName)+dataReplicationInitiationStep_name = Lens.lens (\DataReplicationInitiationStep' {name} -> name) (\s@DataReplicationInitiationStep' {} a -> s {name = a} :: DataReplicationInitiationStep)++-- | Request to query data initiation status.+dataReplicationInitiationStep_status :: Lens.Lens' DataReplicationInitiationStep (Prelude.Maybe DataReplicationInitiationStepStatus)+dataReplicationInitiationStep_status = Lens.lens (\DataReplicationInitiationStep' {status} -> status) (\s@DataReplicationInitiationStep' {} a -> s {status = a} :: DataReplicationInitiationStep)++instance Data.FromJSON DataReplicationInitiationStep where+  parseJSON =+    Data.withObject+      "DataReplicationInitiationStep"+      ( \x ->+          DataReplicationInitiationStep'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance+  Prelude.Hashable+    DataReplicationInitiationStep+  where+  hashWithSalt _salt DataReplicationInitiationStep' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData DataReplicationInitiationStep where+  rnf DataReplicationInitiationStep' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/MGN/Types/DataReplicationInitiationStepName.hs view
@@ -0,0 +1,116 @@+{-# 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.MGN.Types.DataReplicationInitiationStepName+-- 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.MGN.Types.DataReplicationInitiationStepName+  ( DataReplicationInitiationStepName+      ( ..,+        DataReplicationInitiationStepName_ATTACH_STAGING_DISKS,+        DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE,+        DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER,+        DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER,+        DataReplicationInitiationStepName_CREATE_SECURITY_GROUP,+        DataReplicationInitiationStepName_CREATE_STAGING_DISKS,+        DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE,+        DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER,+        DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT,+        DataReplicationInitiationStepName_START_DATA_TRANSFER,+        DataReplicationInitiationStepName_WAIT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataReplicationInitiationStepName = DataReplicationInitiationStepName'+  { fromDataReplicationInitiationStepName ::+      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 DataReplicationInitiationStepName_ATTACH_STAGING_DISKS :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_ATTACH_STAGING_DISKS = DataReplicationInitiationStepName' "ATTACH_STAGING_DISKS"++pattern DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE = DataReplicationInitiationStepName' "AUTHENTICATE_WITH_SERVICE"++pattern DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER = DataReplicationInitiationStepName' "BOOT_REPLICATION_SERVER"++pattern DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER = DataReplicationInitiationStepName' "CONNECT_AGENT_TO_REPLICATION_SERVER"++pattern DataReplicationInitiationStepName_CREATE_SECURITY_GROUP :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_CREATE_SECURITY_GROUP = DataReplicationInitiationStepName' "CREATE_SECURITY_GROUP"++pattern DataReplicationInitiationStepName_CREATE_STAGING_DISKS :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_CREATE_STAGING_DISKS = DataReplicationInitiationStepName' "CREATE_STAGING_DISKS"++pattern DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE = DataReplicationInitiationStepName' "DOWNLOAD_REPLICATION_SOFTWARE"++pattern DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER = DataReplicationInitiationStepName' "LAUNCH_REPLICATION_SERVER"++pattern DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT = DataReplicationInitiationStepName' "PAIR_REPLICATION_SERVER_WITH_AGENT"++pattern DataReplicationInitiationStepName_START_DATA_TRANSFER :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_START_DATA_TRANSFER = DataReplicationInitiationStepName' "START_DATA_TRANSFER"++pattern DataReplicationInitiationStepName_WAIT :: DataReplicationInitiationStepName+pattern DataReplicationInitiationStepName_WAIT = DataReplicationInitiationStepName' "WAIT"++{-# COMPLETE+  DataReplicationInitiationStepName_ATTACH_STAGING_DISKS,+  DataReplicationInitiationStepName_AUTHENTICATE_WITH_SERVICE,+  DataReplicationInitiationStepName_BOOT_REPLICATION_SERVER,+  DataReplicationInitiationStepName_CONNECT_AGENT_TO_REPLICATION_SERVER,+  DataReplicationInitiationStepName_CREATE_SECURITY_GROUP,+  DataReplicationInitiationStepName_CREATE_STAGING_DISKS,+  DataReplicationInitiationStepName_DOWNLOAD_REPLICATION_SOFTWARE,+  DataReplicationInitiationStepName_LAUNCH_REPLICATION_SERVER,+  DataReplicationInitiationStepName_PAIR_REPLICATION_SERVER_WITH_AGENT,+  DataReplicationInitiationStepName_START_DATA_TRANSFER,+  DataReplicationInitiationStepName_WAIT,+  DataReplicationInitiationStepName'+  #-}
+ gen/Amazonka/MGN/Types/DataReplicationInitiationStepStatus.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.MGN.Types.DataReplicationInitiationStepStatus+-- 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.MGN.Types.DataReplicationInitiationStepStatus+  ( DataReplicationInitiationStepStatus+      ( ..,+        DataReplicationInitiationStepStatus_FAILED,+        DataReplicationInitiationStepStatus_IN_PROGRESS,+        DataReplicationInitiationStepStatus_NOT_STARTED,+        DataReplicationInitiationStepStatus_SKIPPED,+        DataReplicationInitiationStepStatus_SUCCEEDED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataReplicationInitiationStepStatus = DataReplicationInitiationStepStatus'+  { fromDataReplicationInitiationStepStatus ::+      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 DataReplicationInitiationStepStatus_FAILED :: DataReplicationInitiationStepStatus+pattern DataReplicationInitiationStepStatus_FAILED = DataReplicationInitiationStepStatus' "FAILED"++pattern DataReplicationInitiationStepStatus_IN_PROGRESS :: DataReplicationInitiationStepStatus+pattern DataReplicationInitiationStepStatus_IN_PROGRESS = DataReplicationInitiationStepStatus' "IN_PROGRESS"++pattern DataReplicationInitiationStepStatus_NOT_STARTED :: DataReplicationInitiationStepStatus+pattern DataReplicationInitiationStepStatus_NOT_STARTED = DataReplicationInitiationStepStatus' "NOT_STARTED"++pattern DataReplicationInitiationStepStatus_SKIPPED :: DataReplicationInitiationStepStatus+pattern DataReplicationInitiationStepStatus_SKIPPED = DataReplicationInitiationStepStatus' "SKIPPED"++pattern DataReplicationInitiationStepStatus_SUCCEEDED :: DataReplicationInitiationStepStatus+pattern DataReplicationInitiationStepStatus_SUCCEEDED = DataReplicationInitiationStepStatus' "SUCCEEDED"++{-# COMPLETE+  DataReplicationInitiationStepStatus_FAILED,+  DataReplicationInitiationStepStatus_IN_PROGRESS,+  DataReplicationInitiationStepStatus_NOT_STARTED,+  DataReplicationInitiationStepStatus_SKIPPED,+  DataReplicationInitiationStepStatus_SUCCEEDED,+  DataReplicationInitiationStepStatus'+  #-}
+ gen/Amazonka/MGN/Types/DataReplicationState.hs view
@@ -0,0 +1,121 @@+{-# 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.MGN.Types.DataReplicationState+-- 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.MGN.Types.DataReplicationState+  ( DataReplicationState+      ( ..,+        DataReplicationState_BACKLOG,+        DataReplicationState_CONTINUOUS,+        DataReplicationState_CREATING_SNAPSHOT,+        DataReplicationState_DISCONNECTED,+        DataReplicationState_INITIAL_SYNC,+        DataReplicationState_INITIATING,+        DataReplicationState_PAUSED,+        DataReplicationState_PENDING_SNAPSHOT_SHIPPING,+        DataReplicationState_RESCAN,+        DataReplicationState_SHIPPING_SNAPSHOT,+        DataReplicationState_STALLED,+        DataReplicationState_STOPPED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataReplicationState = DataReplicationState'+  { fromDataReplicationState ::+      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 DataReplicationState_BACKLOG :: DataReplicationState+pattern DataReplicationState_BACKLOG = DataReplicationState' "BACKLOG"++pattern DataReplicationState_CONTINUOUS :: DataReplicationState+pattern DataReplicationState_CONTINUOUS = DataReplicationState' "CONTINUOUS"++pattern DataReplicationState_CREATING_SNAPSHOT :: DataReplicationState+pattern DataReplicationState_CREATING_SNAPSHOT = DataReplicationState' "CREATING_SNAPSHOT"++pattern DataReplicationState_DISCONNECTED :: DataReplicationState+pattern DataReplicationState_DISCONNECTED = DataReplicationState' "DISCONNECTED"++pattern DataReplicationState_INITIAL_SYNC :: DataReplicationState+pattern DataReplicationState_INITIAL_SYNC = DataReplicationState' "INITIAL_SYNC"++pattern DataReplicationState_INITIATING :: DataReplicationState+pattern DataReplicationState_INITIATING = DataReplicationState' "INITIATING"++pattern DataReplicationState_PAUSED :: DataReplicationState+pattern DataReplicationState_PAUSED = DataReplicationState' "PAUSED"++pattern DataReplicationState_PENDING_SNAPSHOT_SHIPPING :: DataReplicationState+pattern DataReplicationState_PENDING_SNAPSHOT_SHIPPING = DataReplicationState' "PENDING_SNAPSHOT_SHIPPING"++pattern DataReplicationState_RESCAN :: DataReplicationState+pattern DataReplicationState_RESCAN = DataReplicationState' "RESCAN"++pattern DataReplicationState_SHIPPING_SNAPSHOT :: DataReplicationState+pattern DataReplicationState_SHIPPING_SNAPSHOT = DataReplicationState' "SHIPPING_SNAPSHOT"++pattern DataReplicationState_STALLED :: DataReplicationState+pattern DataReplicationState_STALLED = DataReplicationState' "STALLED"++pattern DataReplicationState_STOPPED :: DataReplicationState+pattern DataReplicationState_STOPPED = DataReplicationState' "STOPPED"++{-# COMPLETE+  DataReplicationState_BACKLOG,+  DataReplicationState_CONTINUOUS,+  DataReplicationState_CREATING_SNAPSHOT,+  DataReplicationState_DISCONNECTED,+  DataReplicationState_INITIAL_SYNC,+  DataReplicationState_INITIATING,+  DataReplicationState_PAUSED,+  DataReplicationState_PENDING_SNAPSHOT_SHIPPING,+  DataReplicationState_RESCAN,+  DataReplicationState_SHIPPING_SNAPSHOT,+  DataReplicationState_STALLED,+  DataReplicationState_STOPPED,+  DataReplicationState'+  #-}
+ gen/Amazonka/MGN/Types/DescribeJobsRequestFilters.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.DescribeJobsRequestFilters+-- 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.MGN.Types.DescribeJobsRequestFilters 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++-- | Request to describe Job log filters.+--+-- /See:/ 'newDescribeJobsRequestFilters' smart constructor.+data DescribeJobsRequestFilters = DescribeJobsRequestFilters'+  { -- | Request to describe Job log filters by date.+    fromDate :: Prelude.Maybe Prelude.Text,+    -- | Request to describe Job log filters by job ID.+    jobIDs :: Prelude.Maybe [Prelude.Text],+    -- | Request to describe job log items by last date.+    toDate :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeJobsRequestFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fromDate', 'describeJobsRequestFilters_fromDate' - Request to describe Job log filters by date.+--+-- 'jobIDs', 'describeJobsRequestFilters_jobIDs' - Request to describe Job log filters by job ID.+--+-- 'toDate', 'describeJobsRequestFilters_toDate' - Request to describe job log items by last date.+newDescribeJobsRequestFilters ::+  DescribeJobsRequestFilters+newDescribeJobsRequestFilters =+  DescribeJobsRequestFilters'+    { fromDate =+        Prelude.Nothing,+      jobIDs = Prelude.Nothing,+      toDate = Prelude.Nothing+    }++-- | Request to describe Job log filters by date.+describeJobsRequestFilters_fromDate :: Lens.Lens' DescribeJobsRequestFilters (Prelude.Maybe Prelude.Text)+describeJobsRequestFilters_fromDate = Lens.lens (\DescribeJobsRequestFilters' {fromDate} -> fromDate) (\s@DescribeJobsRequestFilters' {} a -> s {fromDate = a} :: DescribeJobsRequestFilters)++-- | Request to describe Job log filters by job ID.+describeJobsRequestFilters_jobIDs :: Lens.Lens' DescribeJobsRequestFilters (Prelude.Maybe [Prelude.Text])+describeJobsRequestFilters_jobIDs = Lens.lens (\DescribeJobsRequestFilters' {jobIDs} -> jobIDs) (\s@DescribeJobsRequestFilters' {} a -> s {jobIDs = a} :: DescribeJobsRequestFilters) Prelude.. Lens.mapping Lens.coerced++-- | Request to describe job log items by last date.+describeJobsRequestFilters_toDate :: Lens.Lens' DescribeJobsRequestFilters (Prelude.Maybe Prelude.Text)+describeJobsRequestFilters_toDate = Lens.lens (\DescribeJobsRequestFilters' {toDate} -> toDate) (\s@DescribeJobsRequestFilters' {} a -> s {toDate = a} :: DescribeJobsRequestFilters)++instance Prelude.Hashable DescribeJobsRequestFilters where+  hashWithSalt _salt DescribeJobsRequestFilters' {..} =+    _salt+      `Prelude.hashWithSalt` fromDate+      `Prelude.hashWithSalt` jobIDs+      `Prelude.hashWithSalt` toDate++instance Prelude.NFData DescribeJobsRequestFilters where+  rnf DescribeJobsRequestFilters' {..} =+    Prelude.rnf fromDate+      `Prelude.seq` Prelude.rnf jobIDs+      `Prelude.seq` Prelude.rnf toDate++instance Data.ToJSON DescribeJobsRequestFilters where+  toJSON DescribeJobsRequestFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("fromDate" Data..=) Prelude.<$> fromDate,+            ("jobIDs" Data..=) Prelude.<$> jobIDs,+            ("toDate" Data..=) Prelude.<$> toDate+          ]+      )
+ gen/Amazonka/MGN/Types/DescribeSourceServersRequestFilters.hs view
@@ -0,0 +1,137 @@+{-# 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.MGN.Types.DescribeSourceServersRequestFilters+-- 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.MGN.Types.DescribeSourceServersRequestFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.LifeCycleState+import Amazonka.MGN.Types.ReplicationType+import qualified Amazonka.Prelude as Prelude++-- | Request to filter Source Servers list.+--+-- /See:/ 'newDescribeSourceServersRequestFilters' smart constructor.+data DescribeSourceServersRequestFilters = DescribeSourceServersRequestFilters'+  { -- | Request to filter Source Servers list by application IDs.+    applicationIDs :: Prelude.Maybe [Prelude.Text],+    -- | Request to filter Source Servers list by archived.+    isArchived :: Prelude.Maybe Prelude.Bool,+    -- | Request to filter Source Servers list by life cycle states.+    lifeCycleStates :: Prelude.Maybe [LifeCycleState],+    -- | Request to filter Source Servers list by replication type.+    replicationTypes :: Prelude.Maybe [ReplicationType],+    -- | Request to filter Source Servers list by Source Server ID.+    sourceServerIDs :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSourceServersRequestFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationIDs', 'describeSourceServersRequestFilters_applicationIDs' - Request to filter Source Servers list by application IDs.+--+-- 'isArchived', 'describeSourceServersRequestFilters_isArchived' - Request to filter Source Servers list by archived.+--+-- 'lifeCycleStates', 'describeSourceServersRequestFilters_lifeCycleStates' - Request to filter Source Servers list by life cycle states.+--+-- 'replicationTypes', 'describeSourceServersRequestFilters_replicationTypes' - Request to filter Source Servers list by replication type.+--+-- 'sourceServerIDs', 'describeSourceServersRequestFilters_sourceServerIDs' - Request to filter Source Servers list by Source Server ID.+newDescribeSourceServersRequestFilters ::+  DescribeSourceServersRequestFilters+newDescribeSourceServersRequestFilters =+  DescribeSourceServersRequestFilters'+    { applicationIDs =+        Prelude.Nothing,+      isArchived = Prelude.Nothing,+      lifeCycleStates = Prelude.Nothing,+      replicationTypes = Prelude.Nothing,+      sourceServerIDs = Prelude.Nothing+    }++-- | Request to filter Source Servers list by application IDs.+describeSourceServersRequestFilters_applicationIDs :: Lens.Lens' DescribeSourceServersRequestFilters (Prelude.Maybe [Prelude.Text])+describeSourceServersRequestFilters_applicationIDs = Lens.lens (\DescribeSourceServersRequestFilters' {applicationIDs} -> applicationIDs) (\s@DescribeSourceServersRequestFilters' {} a -> s {applicationIDs = a} :: DescribeSourceServersRequestFilters) Prelude.. Lens.mapping Lens.coerced++-- | Request to filter Source Servers list by archived.+describeSourceServersRequestFilters_isArchived :: Lens.Lens' DescribeSourceServersRequestFilters (Prelude.Maybe Prelude.Bool)+describeSourceServersRequestFilters_isArchived = Lens.lens (\DescribeSourceServersRequestFilters' {isArchived} -> isArchived) (\s@DescribeSourceServersRequestFilters' {} a -> s {isArchived = a} :: DescribeSourceServersRequestFilters)++-- | Request to filter Source Servers list by life cycle states.+describeSourceServersRequestFilters_lifeCycleStates :: Lens.Lens' DescribeSourceServersRequestFilters (Prelude.Maybe [LifeCycleState])+describeSourceServersRequestFilters_lifeCycleStates = Lens.lens (\DescribeSourceServersRequestFilters' {lifeCycleStates} -> lifeCycleStates) (\s@DescribeSourceServersRequestFilters' {} a -> s {lifeCycleStates = a} :: DescribeSourceServersRequestFilters) Prelude.. Lens.mapping Lens.coerced++-- | Request to filter Source Servers list by replication type.+describeSourceServersRequestFilters_replicationTypes :: Lens.Lens' DescribeSourceServersRequestFilters (Prelude.Maybe [ReplicationType])+describeSourceServersRequestFilters_replicationTypes = Lens.lens (\DescribeSourceServersRequestFilters' {replicationTypes} -> replicationTypes) (\s@DescribeSourceServersRequestFilters' {} a -> s {replicationTypes = a} :: DescribeSourceServersRequestFilters) Prelude.. Lens.mapping Lens.coerced++-- | Request to filter Source Servers list by Source Server ID.+describeSourceServersRequestFilters_sourceServerIDs :: Lens.Lens' DescribeSourceServersRequestFilters (Prelude.Maybe [Prelude.Text])+describeSourceServersRequestFilters_sourceServerIDs = Lens.lens (\DescribeSourceServersRequestFilters' {sourceServerIDs} -> sourceServerIDs) (\s@DescribeSourceServersRequestFilters' {} a -> s {sourceServerIDs = a} :: DescribeSourceServersRequestFilters) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    DescribeSourceServersRequestFilters+  where+  hashWithSalt+    _salt+    DescribeSourceServersRequestFilters' {..} =+      _salt+        `Prelude.hashWithSalt` applicationIDs+        `Prelude.hashWithSalt` isArchived+        `Prelude.hashWithSalt` lifeCycleStates+        `Prelude.hashWithSalt` replicationTypes+        `Prelude.hashWithSalt` sourceServerIDs++instance+  Prelude.NFData+    DescribeSourceServersRequestFilters+  where+  rnf DescribeSourceServersRequestFilters' {..} =+    Prelude.rnf applicationIDs+      `Prelude.seq` Prelude.rnf isArchived+      `Prelude.seq` Prelude.rnf lifeCycleStates+      `Prelude.seq` Prelude.rnf replicationTypes+      `Prelude.seq` Prelude.rnf sourceServerIDs++instance+  Data.ToJSON+    DescribeSourceServersRequestFilters+  where+  toJSON DescribeSourceServersRequestFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationIDs" Data..=)+              Prelude.<$> applicationIDs,+            ("isArchived" Data..=) Prelude.<$> isArchived,+            ("lifeCycleStates" Data..=)+              Prelude.<$> lifeCycleStates,+            ("replicationTypes" Data..=)+              Prelude.<$> replicationTypes,+            ("sourceServerIDs" Data..=)+              Prelude.<$> sourceServerIDs+          ]+      )
+ gen/Amazonka/MGN/Types/Disk.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.MGN.Types.Disk+-- 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.MGN.Types.Disk 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 disk identifier.+--+-- /See:/ 'newDisk' smart constructor.+data Disk = Disk'+  { -- | The amount of storage on the disk in bytes.+    bytes :: Prelude.Maybe Prelude.Natural,+    -- | The disk or device name.+    deviceName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Disk' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bytes', 'disk_bytes' - The amount of storage on the disk in bytes.+--+-- 'deviceName', 'disk_deviceName' - The disk or device name.+newDisk ::+  Disk+newDisk =+  Disk'+    { bytes = Prelude.Nothing,+      deviceName = Prelude.Nothing+    }++-- | The amount of storage on the disk in bytes.+disk_bytes :: Lens.Lens' Disk (Prelude.Maybe Prelude.Natural)+disk_bytes = Lens.lens (\Disk' {bytes} -> bytes) (\s@Disk' {} a -> s {bytes = a} :: Disk)++-- | The disk or device name.+disk_deviceName :: Lens.Lens' Disk (Prelude.Maybe Prelude.Text)+disk_deviceName = Lens.lens (\Disk' {deviceName} -> deviceName) (\s@Disk' {} a -> s {deviceName = a} :: Disk)++instance Data.FromJSON Disk where+  parseJSON =+    Data.withObject+      "Disk"+      ( \x ->+          Disk'+            Prelude.<$> (x Data..:? "bytes")+            Prelude.<*> (x Data..:? "deviceName")+      )++instance Prelude.Hashable Disk where+  hashWithSalt _salt Disk' {..} =+    _salt+      `Prelude.hashWithSalt` bytes+      `Prelude.hashWithSalt` deviceName++instance Prelude.NFData Disk where+  rnf Disk' {..} =+    Prelude.rnf bytes+      `Prelude.seq` Prelude.rnf deviceName
+ gen/Amazonka/MGN/Types/FirstBoot.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.MGN.Types.FirstBoot+-- 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.MGN.Types.FirstBoot+  ( FirstBoot+      ( ..,+        FirstBoot_STOPPED,+        FirstBoot_SUCCEEDED,+        FirstBoot_UNKNOWN,+        FirstBoot_WAITING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FirstBoot = FirstBoot'+  { fromFirstBoot ::+      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 FirstBoot_STOPPED :: FirstBoot+pattern FirstBoot_STOPPED = FirstBoot' "STOPPED"++pattern FirstBoot_SUCCEEDED :: FirstBoot+pattern FirstBoot_SUCCEEDED = FirstBoot' "SUCCEEDED"++pattern FirstBoot_UNKNOWN :: FirstBoot+pattern FirstBoot_UNKNOWN = FirstBoot' "UNKNOWN"++pattern FirstBoot_WAITING :: FirstBoot+pattern FirstBoot_WAITING = FirstBoot' "WAITING"++{-# COMPLETE+  FirstBoot_STOPPED,+  FirstBoot_SUCCEEDED,+  FirstBoot_UNKNOWN,+  FirstBoot_WAITING,+  FirstBoot'+  #-}
+ gen/Amazonka/MGN/Types/IdentificationHints.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.IdentificationHints+-- 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.MGN.Types.IdentificationHints 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++-- | Identification hints.+--+-- /See:/ 'newIdentificationHints' smart constructor.+data IdentificationHints = IdentificationHints'+  { -- | AWS Instance ID identification hint.+    awsInstanceID :: Prelude.Maybe Prelude.Text,+    -- | FQDN address identification hint.+    fqdn :: Prelude.Maybe Prelude.Text,+    -- | Hostname identification hint.+    hostname :: Prelude.Maybe Prelude.Text,+    -- | vCenter VM path identification hint.+    vmPath :: Prelude.Maybe Prelude.Text,+    -- | vmWare UUID identification hint.+    vmWareUuid :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentificationHints' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'awsInstanceID', 'identificationHints_awsInstanceID' - AWS Instance ID identification hint.+--+-- 'fqdn', 'identificationHints_fqdn' - FQDN address identification hint.+--+-- 'hostname', 'identificationHints_hostname' - Hostname identification hint.+--+-- 'vmPath', 'identificationHints_vmPath' - vCenter VM path identification hint.+--+-- 'vmWareUuid', 'identificationHints_vmWareUuid' - vmWare UUID identification hint.+newIdentificationHints ::+  IdentificationHints+newIdentificationHints =+  IdentificationHints'+    { awsInstanceID =+        Prelude.Nothing,+      fqdn = Prelude.Nothing,+      hostname = Prelude.Nothing,+      vmPath = Prelude.Nothing,+      vmWareUuid = Prelude.Nothing+    }++-- | AWS Instance ID identification hint.+identificationHints_awsInstanceID :: Lens.Lens' IdentificationHints (Prelude.Maybe Prelude.Text)+identificationHints_awsInstanceID = Lens.lens (\IdentificationHints' {awsInstanceID} -> awsInstanceID) (\s@IdentificationHints' {} a -> s {awsInstanceID = a} :: IdentificationHints)++-- | FQDN address identification hint.+identificationHints_fqdn :: Lens.Lens' IdentificationHints (Prelude.Maybe Prelude.Text)+identificationHints_fqdn = Lens.lens (\IdentificationHints' {fqdn} -> fqdn) (\s@IdentificationHints' {} a -> s {fqdn = a} :: IdentificationHints)++-- | Hostname identification hint.+identificationHints_hostname :: Lens.Lens' IdentificationHints (Prelude.Maybe Prelude.Text)+identificationHints_hostname = Lens.lens (\IdentificationHints' {hostname} -> hostname) (\s@IdentificationHints' {} a -> s {hostname = a} :: IdentificationHints)++-- | vCenter VM path identification hint.+identificationHints_vmPath :: Lens.Lens' IdentificationHints (Prelude.Maybe Prelude.Text)+identificationHints_vmPath = Lens.lens (\IdentificationHints' {vmPath} -> vmPath) (\s@IdentificationHints' {} a -> s {vmPath = a} :: IdentificationHints)++-- | vmWare UUID identification hint.+identificationHints_vmWareUuid :: Lens.Lens' IdentificationHints (Prelude.Maybe Prelude.Text)+identificationHints_vmWareUuid = Lens.lens (\IdentificationHints' {vmWareUuid} -> vmWareUuid) (\s@IdentificationHints' {} a -> s {vmWareUuid = a} :: IdentificationHints)++instance Data.FromJSON IdentificationHints where+  parseJSON =+    Data.withObject+      "IdentificationHints"+      ( \x ->+          IdentificationHints'+            Prelude.<$> (x Data..:? "awsInstanceID")+            Prelude.<*> (x Data..:? "fqdn")+            Prelude.<*> (x Data..:? "hostname")+            Prelude.<*> (x Data..:? "vmPath")+            Prelude.<*> (x Data..:? "vmWareUuid")+      )++instance Prelude.Hashable IdentificationHints where+  hashWithSalt _salt IdentificationHints' {..} =+    _salt+      `Prelude.hashWithSalt` awsInstanceID+      `Prelude.hashWithSalt` fqdn+      `Prelude.hashWithSalt` hostname+      `Prelude.hashWithSalt` vmPath+      `Prelude.hashWithSalt` vmWareUuid++instance Prelude.NFData IdentificationHints where+  rnf IdentificationHints' {..} =+    Prelude.rnf awsInstanceID+      `Prelude.seq` Prelude.rnf fqdn+      `Prelude.seq` Prelude.rnf hostname+      `Prelude.seq` Prelude.rnf vmPath+      `Prelude.seq` Prelude.rnf vmWareUuid
+ gen/Amazonka/MGN/Types/InitiatedBy.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.MGN.Types.InitiatedBy+-- 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.MGN.Types.InitiatedBy+  ( InitiatedBy+      ( ..,+        InitiatedBy_DIAGNOSTIC,+        InitiatedBy_START_CUTOVER,+        InitiatedBy_START_TEST,+        InitiatedBy_TERMINATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InitiatedBy = InitiatedBy'+  { fromInitiatedBy ::+      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 InitiatedBy_DIAGNOSTIC :: InitiatedBy+pattern InitiatedBy_DIAGNOSTIC = InitiatedBy' "DIAGNOSTIC"++pattern InitiatedBy_START_CUTOVER :: InitiatedBy+pattern InitiatedBy_START_CUTOVER = InitiatedBy' "START_CUTOVER"++pattern InitiatedBy_START_TEST :: InitiatedBy+pattern InitiatedBy_START_TEST = InitiatedBy' "START_TEST"++pattern InitiatedBy_TERMINATE :: InitiatedBy+pattern InitiatedBy_TERMINATE = InitiatedBy' "TERMINATE"++{-# COMPLETE+  InitiatedBy_DIAGNOSTIC,+  InitiatedBy_START_CUTOVER,+  InitiatedBy_START_TEST,+  InitiatedBy_TERMINATE,+  InitiatedBy'+  #-}
+ gen/Amazonka/MGN/Types/Job.hs view
@@ -0,0 +1,177 @@+{-# 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.MGN.Types.Job+-- 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.MGN.Types.Job where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.InitiatedBy+import Amazonka.MGN.Types.JobStatus+import Amazonka.MGN.Types.JobType+import Amazonka.MGN.Types.ParticipatingServer+import qualified Amazonka.Prelude as Prelude++-- | Job.+--+-- /See:/ 'newJob' smart constructor.+data Job = Job'+  { -- | the ARN of the specific Job.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Job creation time.+    creationDateTime :: Prelude.Maybe Prelude.Text,+    -- | Job end time.+    endDateTime :: Prelude.Maybe Prelude.Text,+    -- | Job initiated by field.+    initiatedBy :: Prelude.Maybe InitiatedBy,+    -- | Servers participating in a specific Job.+    participatingServers :: Prelude.Maybe [ParticipatingServer],+    -- | Job status.+    status :: Prelude.Maybe JobStatus,+    -- | Tags associated with specific Job.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Job type.+    type' :: Prelude.Maybe JobType,+    -- | Job ID.+    jobID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Job' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'job_arn' - the ARN of the specific Job.+--+-- 'creationDateTime', 'job_creationDateTime' - Job creation time.+--+-- 'endDateTime', 'job_endDateTime' - Job end time.+--+-- 'initiatedBy', 'job_initiatedBy' - Job initiated by field.+--+-- 'participatingServers', 'job_participatingServers' - Servers participating in a specific Job.+--+-- 'status', 'job_status' - Job status.+--+-- 'tags', 'job_tags' - Tags associated with specific Job.+--+-- 'type'', 'job_type' - Job type.+--+-- 'jobID', 'job_jobID' - Job ID.+newJob ::+  -- | 'jobID'+  Prelude.Text ->+  Job+newJob pJobID_ =+  Job'+    { arn = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      endDateTime = Prelude.Nothing,+      initiatedBy = Prelude.Nothing,+      participatingServers = Prelude.Nothing,+      status = Prelude.Nothing,+      tags = Prelude.Nothing,+      type' = Prelude.Nothing,+      jobID = pJobID_+    }++-- | the ARN of the specific Job.+job_arn :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_arn = Lens.lens (\Job' {arn} -> arn) (\s@Job' {} a -> s {arn = a} :: Job)++-- | Job creation time.+job_creationDateTime :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_creationDateTime = Lens.lens (\Job' {creationDateTime} -> creationDateTime) (\s@Job' {} a -> s {creationDateTime = a} :: Job)++-- | Job end time.+job_endDateTime :: Lens.Lens' Job (Prelude.Maybe Prelude.Text)+job_endDateTime = Lens.lens (\Job' {endDateTime} -> endDateTime) (\s@Job' {} a -> s {endDateTime = a} :: Job)++-- | Job initiated by field.+job_initiatedBy :: Lens.Lens' Job (Prelude.Maybe InitiatedBy)+job_initiatedBy = Lens.lens (\Job' {initiatedBy} -> initiatedBy) (\s@Job' {} a -> s {initiatedBy = a} :: Job)++-- | Servers participating in a specific Job.+job_participatingServers :: Lens.Lens' Job (Prelude.Maybe [ParticipatingServer])+job_participatingServers = Lens.lens (\Job' {participatingServers} -> participatingServers) (\s@Job' {} a -> s {participatingServers = a} :: Job) Prelude.. Lens.mapping Lens.coerced++-- | Job status.+job_status :: Lens.Lens' Job (Prelude.Maybe JobStatus)+job_status = Lens.lens (\Job' {status} -> status) (\s@Job' {} a -> s {status = a} :: Job)++-- | Tags associated with specific Job.+job_tags :: Lens.Lens' Job (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+job_tags = Lens.lens (\Job' {tags} -> tags) (\s@Job' {} a -> s {tags = a} :: Job) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Job type.+job_type :: Lens.Lens' Job (Prelude.Maybe JobType)+job_type = Lens.lens (\Job' {type'} -> type') (\s@Job' {} a -> s {type' = a} :: Job)++-- | Job ID.+job_jobID :: Lens.Lens' Job Prelude.Text+job_jobID = Lens.lens (\Job' {jobID} -> jobID) (\s@Job' {} a -> s {jobID = a} :: Job)++instance Data.FromJSON Job where+  parseJSON =+    Data.withObject+      "Job"+      ( \x ->+          Job'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "endDateTime")+            Prelude.<*> (x Data..:? "initiatedBy")+            Prelude.<*> ( x+                            Data..:? "participatingServers"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..: "jobID")+      )++instance Prelude.Hashable Job where+  hashWithSalt _salt Job' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` endDateTime+      `Prelude.hashWithSalt` initiatedBy+      `Prelude.hashWithSalt` participatingServers+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` jobID++instance Prelude.NFData Job where+  rnf Job' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf endDateTime+      `Prelude.seq` Prelude.rnf initiatedBy+      `Prelude.seq` Prelude.rnf participatingServers+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf jobID
+ gen/Amazonka/MGN/Types/JobLog.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.JobLog+-- 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.MGN.Types.JobLog where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.JobLogEvent+import Amazonka.MGN.Types.JobLogEventData+import qualified Amazonka.Prelude as Prelude++-- | Job log.+--+-- /See:/ 'newJobLog' smart constructor.+data JobLog = JobLog'+  { -- | Job log event.+    event :: Prelude.Maybe JobLogEvent,+    -- | Job event data+    eventData :: Prelude.Maybe JobLogEventData,+    -- | Job log event date and time.+    logDateTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobLog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'event', 'jobLog_event' - Job log event.+--+-- 'eventData', 'jobLog_eventData' - Job event data+--+-- 'logDateTime', 'jobLog_logDateTime' - Job log event date and time.+newJobLog ::+  JobLog+newJobLog =+  JobLog'+    { event = Prelude.Nothing,+      eventData = Prelude.Nothing,+      logDateTime = Prelude.Nothing+    }++-- | Job log event.+jobLog_event :: Lens.Lens' JobLog (Prelude.Maybe JobLogEvent)+jobLog_event = Lens.lens (\JobLog' {event} -> event) (\s@JobLog' {} a -> s {event = a} :: JobLog)++-- | Job event data+jobLog_eventData :: Lens.Lens' JobLog (Prelude.Maybe JobLogEventData)+jobLog_eventData = Lens.lens (\JobLog' {eventData} -> eventData) (\s@JobLog' {} a -> s {eventData = a} :: JobLog)++-- | Job log event date and time.+jobLog_logDateTime :: Lens.Lens' JobLog (Prelude.Maybe Prelude.Text)+jobLog_logDateTime = Lens.lens (\JobLog' {logDateTime} -> logDateTime) (\s@JobLog' {} a -> s {logDateTime = a} :: JobLog)++instance Data.FromJSON JobLog where+  parseJSON =+    Data.withObject+      "JobLog"+      ( \x ->+          JobLog'+            Prelude.<$> (x Data..:? "event")+            Prelude.<*> (x Data..:? "eventData")+            Prelude.<*> (x Data..:? "logDateTime")+      )++instance Prelude.Hashable JobLog where+  hashWithSalt _salt JobLog' {..} =+    _salt+      `Prelude.hashWithSalt` event+      `Prelude.hashWithSalt` eventData+      `Prelude.hashWithSalt` logDateTime++instance Prelude.NFData JobLog where+  rnf JobLog' {..} =+    Prelude.rnf event+      `Prelude.seq` Prelude.rnf eventData+      `Prelude.seq` Prelude.rnf logDateTime
+ gen/Amazonka/MGN/Types/JobLogEvent.hs view
@@ -0,0 +1,141 @@+{-# 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.MGN.Types.JobLogEvent+-- 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.MGN.Types.JobLogEvent+  ( JobLogEvent+      ( ..,+        JobLogEvent_CLEANUP_END,+        JobLogEvent_CLEANUP_FAIL,+        JobLogEvent_CLEANUP_START,+        JobLogEvent_CONVERSION_END,+        JobLogEvent_CONVERSION_FAIL,+        JobLogEvent_CONVERSION_START,+        JobLogEvent_JOB_CANCEL,+        JobLogEvent_JOB_END,+        JobLogEvent_JOB_START,+        JobLogEvent_LAUNCH_FAILED,+        JobLogEvent_LAUNCH_START,+        JobLogEvent_SERVER_SKIPPED,+        JobLogEvent_SNAPSHOT_END,+        JobLogEvent_SNAPSHOT_FAIL,+        JobLogEvent_SNAPSHOT_START,+        JobLogEvent_USING_PREVIOUS_SNAPSHOT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobLogEvent = JobLogEvent'+  { fromJobLogEvent ::+      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 JobLogEvent_CLEANUP_END :: JobLogEvent+pattern JobLogEvent_CLEANUP_END = JobLogEvent' "CLEANUP_END"++pattern JobLogEvent_CLEANUP_FAIL :: JobLogEvent+pattern JobLogEvent_CLEANUP_FAIL = JobLogEvent' "CLEANUP_FAIL"++pattern JobLogEvent_CLEANUP_START :: JobLogEvent+pattern JobLogEvent_CLEANUP_START = JobLogEvent' "CLEANUP_START"++pattern JobLogEvent_CONVERSION_END :: JobLogEvent+pattern JobLogEvent_CONVERSION_END = JobLogEvent' "CONVERSION_END"++pattern JobLogEvent_CONVERSION_FAIL :: JobLogEvent+pattern JobLogEvent_CONVERSION_FAIL = JobLogEvent' "CONVERSION_FAIL"++pattern JobLogEvent_CONVERSION_START :: JobLogEvent+pattern JobLogEvent_CONVERSION_START = JobLogEvent' "CONVERSION_START"++pattern JobLogEvent_JOB_CANCEL :: JobLogEvent+pattern JobLogEvent_JOB_CANCEL = JobLogEvent' "JOB_CANCEL"++pattern JobLogEvent_JOB_END :: JobLogEvent+pattern JobLogEvent_JOB_END = JobLogEvent' "JOB_END"++pattern JobLogEvent_JOB_START :: JobLogEvent+pattern JobLogEvent_JOB_START = JobLogEvent' "JOB_START"++pattern JobLogEvent_LAUNCH_FAILED :: JobLogEvent+pattern JobLogEvent_LAUNCH_FAILED = JobLogEvent' "LAUNCH_FAILED"++pattern JobLogEvent_LAUNCH_START :: JobLogEvent+pattern JobLogEvent_LAUNCH_START = JobLogEvent' "LAUNCH_START"++pattern JobLogEvent_SERVER_SKIPPED :: JobLogEvent+pattern JobLogEvent_SERVER_SKIPPED = JobLogEvent' "SERVER_SKIPPED"++pattern JobLogEvent_SNAPSHOT_END :: JobLogEvent+pattern JobLogEvent_SNAPSHOT_END = JobLogEvent' "SNAPSHOT_END"++pattern JobLogEvent_SNAPSHOT_FAIL :: JobLogEvent+pattern JobLogEvent_SNAPSHOT_FAIL = JobLogEvent' "SNAPSHOT_FAIL"++pattern JobLogEvent_SNAPSHOT_START :: JobLogEvent+pattern JobLogEvent_SNAPSHOT_START = JobLogEvent' "SNAPSHOT_START"++pattern JobLogEvent_USING_PREVIOUS_SNAPSHOT :: JobLogEvent+pattern JobLogEvent_USING_PREVIOUS_SNAPSHOT = JobLogEvent' "USING_PREVIOUS_SNAPSHOT"++{-# COMPLETE+  JobLogEvent_CLEANUP_END,+  JobLogEvent_CLEANUP_FAIL,+  JobLogEvent_CLEANUP_START,+  JobLogEvent_CONVERSION_END,+  JobLogEvent_CONVERSION_FAIL,+  JobLogEvent_CONVERSION_START,+  JobLogEvent_JOB_CANCEL,+  JobLogEvent_JOB_END,+  JobLogEvent_JOB_START,+  JobLogEvent_LAUNCH_FAILED,+  JobLogEvent_LAUNCH_START,+  JobLogEvent_SERVER_SKIPPED,+  JobLogEvent_SNAPSHOT_END,+  JobLogEvent_SNAPSHOT_FAIL,+  JobLogEvent_SNAPSHOT_START,+  JobLogEvent_USING_PREVIOUS_SNAPSHOT,+  JobLogEvent'+  #-}
+ gen/Amazonka/MGN/Types/JobLogEventData.hs view
@@ -0,0 +1,109 @@+{-# 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.MGN.Types.JobLogEventData+-- 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.MGN.Types.JobLogEventData 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++-- | Job log data+--+-- /See:/ 'newJobLogEventData' smart constructor.+data JobLogEventData = JobLogEventData'+  { -- | Job Event conversion Server ID.+    conversionServerID :: Prelude.Maybe Prelude.Text,+    -- | Job error.+    rawError :: Prelude.Maybe Prelude.Text,+    -- | Job Event Source Server ID.+    sourceServerID :: Prelude.Maybe Prelude.Text,+    -- | Job Event Target instance ID.+    targetInstanceID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobLogEventData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'conversionServerID', 'jobLogEventData_conversionServerID' - Job Event conversion Server ID.+--+-- 'rawError', 'jobLogEventData_rawError' - Job error.+--+-- 'sourceServerID', 'jobLogEventData_sourceServerID' - Job Event Source Server ID.+--+-- 'targetInstanceID', 'jobLogEventData_targetInstanceID' - Job Event Target instance ID.+newJobLogEventData ::+  JobLogEventData+newJobLogEventData =+  JobLogEventData'+    { conversionServerID =+        Prelude.Nothing,+      rawError = Prelude.Nothing,+      sourceServerID = Prelude.Nothing,+      targetInstanceID = Prelude.Nothing+    }++-- | Job Event conversion Server ID.+jobLogEventData_conversionServerID :: Lens.Lens' JobLogEventData (Prelude.Maybe Prelude.Text)+jobLogEventData_conversionServerID = Lens.lens (\JobLogEventData' {conversionServerID} -> conversionServerID) (\s@JobLogEventData' {} a -> s {conversionServerID = a} :: JobLogEventData)++-- | Job error.+jobLogEventData_rawError :: Lens.Lens' JobLogEventData (Prelude.Maybe Prelude.Text)+jobLogEventData_rawError = Lens.lens (\JobLogEventData' {rawError} -> rawError) (\s@JobLogEventData' {} a -> s {rawError = a} :: JobLogEventData)++-- | Job Event Source Server ID.+jobLogEventData_sourceServerID :: Lens.Lens' JobLogEventData (Prelude.Maybe Prelude.Text)+jobLogEventData_sourceServerID = Lens.lens (\JobLogEventData' {sourceServerID} -> sourceServerID) (\s@JobLogEventData' {} a -> s {sourceServerID = a} :: JobLogEventData)++-- | Job Event Target instance ID.+jobLogEventData_targetInstanceID :: Lens.Lens' JobLogEventData (Prelude.Maybe Prelude.Text)+jobLogEventData_targetInstanceID = Lens.lens (\JobLogEventData' {targetInstanceID} -> targetInstanceID) (\s@JobLogEventData' {} a -> s {targetInstanceID = a} :: JobLogEventData)++instance Data.FromJSON JobLogEventData where+  parseJSON =+    Data.withObject+      "JobLogEventData"+      ( \x ->+          JobLogEventData'+            Prelude.<$> (x Data..:? "conversionServerID")+            Prelude.<*> (x Data..:? "rawError")+            Prelude.<*> (x Data..:? "sourceServerID")+            Prelude.<*> (x Data..:? "targetInstanceID")+      )++instance Prelude.Hashable JobLogEventData where+  hashWithSalt _salt JobLogEventData' {..} =+    _salt+      `Prelude.hashWithSalt` conversionServerID+      `Prelude.hashWithSalt` rawError+      `Prelude.hashWithSalt` sourceServerID+      `Prelude.hashWithSalt` targetInstanceID++instance Prelude.NFData JobLogEventData where+  rnf JobLogEventData' {..} =+    Prelude.rnf conversionServerID+      `Prelude.seq` Prelude.rnf rawError+      `Prelude.seq` Prelude.rnf sourceServerID+      `Prelude.seq` Prelude.rnf targetInstanceID
+ gen/Amazonka/MGN/Types/JobPostLaunchActionsLaunchStatus.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.JobPostLaunchActionsLaunchStatus+-- 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.MGN.Types.JobPostLaunchActionsLaunchStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.PostLaunchActionExecutionStatus+import Amazonka.MGN.Types.SsmDocument+import Amazonka.MGN.Types.SsmDocumentType+import qualified Amazonka.Prelude as Prelude++-- | Launch Status of the Job Post Launch Actions.+--+-- /See:/ 'newJobPostLaunchActionsLaunchStatus' smart constructor.+data JobPostLaunchActionsLaunchStatus = JobPostLaunchActionsLaunchStatus'+  { -- | AWS Systems Manager Document\'s execution ID of the of the Job Post+    -- Launch Actions.+    executionID :: Prelude.Maybe Prelude.Text,+    -- | AWS Systems Manager Document\'s execution status.+    executionStatus :: Prelude.Maybe PostLaunchActionExecutionStatus,+    -- | AWS Systems Manager Document\'s failure reason.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | AWS Systems Manager\'s Document of the of the Job Post Launch Actions.+    ssmDocument :: Prelude.Maybe SsmDocument,+    -- | AWS Systems Manager Document type.+    ssmDocumentType :: Prelude.Maybe SsmDocumentType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobPostLaunchActionsLaunchStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'executionID', 'jobPostLaunchActionsLaunchStatus_executionID' - AWS Systems Manager Document\'s execution ID of the of the Job Post+-- Launch Actions.+--+-- 'executionStatus', 'jobPostLaunchActionsLaunchStatus_executionStatus' - AWS Systems Manager Document\'s execution status.+--+-- 'failureReason', 'jobPostLaunchActionsLaunchStatus_failureReason' - AWS Systems Manager Document\'s failure reason.+--+-- 'ssmDocument', 'jobPostLaunchActionsLaunchStatus_ssmDocument' - AWS Systems Manager\'s Document of the of the Job Post Launch Actions.+--+-- 'ssmDocumentType', 'jobPostLaunchActionsLaunchStatus_ssmDocumentType' - AWS Systems Manager Document type.+newJobPostLaunchActionsLaunchStatus ::+  JobPostLaunchActionsLaunchStatus+newJobPostLaunchActionsLaunchStatus =+  JobPostLaunchActionsLaunchStatus'+    { executionID =+        Prelude.Nothing,+      executionStatus = Prelude.Nothing,+      failureReason = Prelude.Nothing,+      ssmDocument = Prelude.Nothing,+      ssmDocumentType = Prelude.Nothing+    }++-- | AWS Systems Manager Document\'s execution ID of the of the Job Post+-- Launch Actions.+jobPostLaunchActionsLaunchStatus_executionID :: Lens.Lens' JobPostLaunchActionsLaunchStatus (Prelude.Maybe Prelude.Text)+jobPostLaunchActionsLaunchStatus_executionID = Lens.lens (\JobPostLaunchActionsLaunchStatus' {executionID} -> executionID) (\s@JobPostLaunchActionsLaunchStatus' {} a -> s {executionID = a} :: JobPostLaunchActionsLaunchStatus)++-- | AWS Systems Manager Document\'s execution status.+jobPostLaunchActionsLaunchStatus_executionStatus :: Lens.Lens' JobPostLaunchActionsLaunchStatus (Prelude.Maybe PostLaunchActionExecutionStatus)+jobPostLaunchActionsLaunchStatus_executionStatus = Lens.lens (\JobPostLaunchActionsLaunchStatus' {executionStatus} -> executionStatus) (\s@JobPostLaunchActionsLaunchStatus' {} a -> s {executionStatus = a} :: JobPostLaunchActionsLaunchStatus)++-- | AWS Systems Manager Document\'s failure reason.+jobPostLaunchActionsLaunchStatus_failureReason :: Lens.Lens' JobPostLaunchActionsLaunchStatus (Prelude.Maybe Prelude.Text)+jobPostLaunchActionsLaunchStatus_failureReason = Lens.lens (\JobPostLaunchActionsLaunchStatus' {failureReason} -> failureReason) (\s@JobPostLaunchActionsLaunchStatus' {} a -> s {failureReason = a} :: JobPostLaunchActionsLaunchStatus)++-- | AWS Systems Manager\'s Document of the of the Job Post Launch Actions.+jobPostLaunchActionsLaunchStatus_ssmDocument :: Lens.Lens' JobPostLaunchActionsLaunchStatus (Prelude.Maybe SsmDocument)+jobPostLaunchActionsLaunchStatus_ssmDocument = Lens.lens (\JobPostLaunchActionsLaunchStatus' {ssmDocument} -> ssmDocument) (\s@JobPostLaunchActionsLaunchStatus' {} a -> s {ssmDocument = a} :: JobPostLaunchActionsLaunchStatus)++-- | AWS Systems Manager Document type.+jobPostLaunchActionsLaunchStatus_ssmDocumentType :: Lens.Lens' JobPostLaunchActionsLaunchStatus (Prelude.Maybe SsmDocumentType)+jobPostLaunchActionsLaunchStatus_ssmDocumentType = Lens.lens (\JobPostLaunchActionsLaunchStatus' {ssmDocumentType} -> ssmDocumentType) (\s@JobPostLaunchActionsLaunchStatus' {} a -> s {ssmDocumentType = a} :: JobPostLaunchActionsLaunchStatus)++instance+  Data.FromJSON+    JobPostLaunchActionsLaunchStatus+  where+  parseJSON =+    Data.withObject+      "JobPostLaunchActionsLaunchStatus"+      ( \x ->+          JobPostLaunchActionsLaunchStatus'+            Prelude.<$> (x Data..:? "executionID")+            Prelude.<*> (x Data..:? "executionStatus")+            Prelude.<*> (x Data..:? "failureReason")+            Prelude.<*> (x Data..:? "ssmDocument")+            Prelude.<*> (x Data..:? "ssmDocumentType")+      )++instance+  Prelude.Hashable+    JobPostLaunchActionsLaunchStatus+  where+  hashWithSalt+    _salt+    JobPostLaunchActionsLaunchStatus' {..} =+      _salt+        `Prelude.hashWithSalt` executionID+        `Prelude.hashWithSalt` executionStatus+        `Prelude.hashWithSalt` failureReason+        `Prelude.hashWithSalt` ssmDocument+        `Prelude.hashWithSalt` ssmDocumentType++instance+  Prelude.NFData+    JobPostLaunchActionsLaunchStatus+  where+  rnf JobPostLaunchActionsLaunchStatus' {..} =+    Prelude.rnf executionID+      `Prelude.seq` Prelude.rnf executionStatus+      `Prelude.seq` Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf ssmDocument+      `Prelude.seq` Prelude.rnf ssmDocumentType
+ gen/Amazonka/MGN/Types/JobStatus.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.MGN.Types.JobStatus+-- 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.MGN.Types.JobStatus+  ( JobStatus+      ( ..,+        JobStatus_COMPLETED,+        JobStatus_PENDING,+        JobStatus_STARTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobStatus = JobStatus'+  { fromJobStatus ::+      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 JobStatus_COMPLETED :: JobStatus+pattern JobStatus_COMPLETED = JobStatus' "COMPLETED"++pattern JobStatus_PENDING :: JobStatus+pattern JobStatus_PENDING = JobStatus' "PENDING"++pattern JobStatus_STARTED :: JobStatus+pattern JobStatus_STARTED = JobStatus' "STARTED"++{-# COMPLETE+  JobStatus_COMPLETED,+  JobStatus_PENDING,+  JobStatus_STARTED,+  JobStatus'+  #-}
+ gen/Amazonka/MGN/Types/JobType.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.MGN.Types.JobType+-- 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.MGN.Types.JobType+  ( JobType+      ( ..,+        JobType_LAUNCH,+        JobType_TERMINATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobType = JobType' {fromJobType :: 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 JobType_LAUNCH :: JobType+pattern JobType_LAUNCH = JobType' "LAUNCH"++pattern JobType_TERMINATE :: JobType+pattern JobType_TERMINATE = JobType' "TERMINATE"++{-# COMPLETE+  JobType_LAUNCH,+  JobType_TERMINATE,+  JobType'+  #-}
+ gen/Amazonka/MGN/Types/LaunchConfiguration.hs view
@@ -0,0 +1,208 @@+{-# 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.MGN.Types.LaunchConfiguration+-- 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.MGN.Types.LaunchConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.BootMode+import Amazonka.MGN.Types.LaunchDisposition+import Amazonka.MGN.Types.Licensing+import Amazonka.MGN.Types.PostLaunchActions+import Amazonka.MGN.Types.TargetInstanceTypeRightSizingMethod+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newLaunchConfiguration' smart constructor.+data LaunchConfiguration = LaunchConfiguration'+  { -- | Launch configuration boot mode.+    bootMode :: Prelude.Maybe BootMode,+    -- | Copy Private IP during Launch Configuration.+    copyPrivateIp :: Prelude.Maybe Prelude.Bool,+    -- | Copy Tags during Launch Configuration.+    copyTags :: Prelude.Maybe Prelude.Bool,+    -- | Launch configuration EC2 Launch template ID.+    ec2LaunchTemplateID :: Prelude.Maybe Prelude.Text,+    -- | Enable map auto tagging.+    enableMapAutoTagging :: Prelude.Maybe Prelude.Bool,+    -- | Launch disposition for launch configuration.+    launchDisposition :: Prelude.Maybe LaunchDisposition,+    -- | Launch configuration OS licensing.+    licensing :: Prelude.Maybe Licensing,+    -- | Map auto tagging MPE ID.+    mapAutoTaggingMpeID :: Prelude.Maybe Prelude.Text,+    -- | Launch configuration name.+    name :: Prelude.Maybe Prelude.Text,+    postLaunchActions :: Prelude.Maybe PostLaunchActions,+    -- | Launch configuration Source Server ID.+    sourceServerID :: Prelude.Maybe Prelude.Text,+    -- | Launch configuration Target instance type right sizing method.+    targetInstanceTypeRightSizingMethod :: Prelude.Maybe TargetInstanceTypeRightSizingMethod+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bootMode', 'launchConfiguration_bootMode' - Launch configuration boot mode.+--+-- 'copyPrivateIp', 'launchConfiguration_copyPrivateIp' - Copy Private IP during Launch Configuration.+--+-- 'copyTags', 'launchConfiguration_copyTags' - Copy Tags during Launch Configuration.+--+-- 'ec2LaunchTemplateID', 'launchConfiguration_ec2LaunchTemplateID' - Launch configuration EC2 Launch template ID.+--+-- 'enableMapAutoTagging', 'launchConfiguration_enableMapAutoTagging' - Enable map auto tagging.+--+-- 'launchDisposition', 'launchConfiguration_launchDisposition' - Launch disposition for launch configuration.+--+-- 'licensing', 'launchConfiguration_licensing' - Launch configuration OS licensing.+--+-- 'mapAutoTaggingMpeID', 'launchConfiguration_mapAutoTaggingMpeID' - Map auto tagging MPE ID.+--+-- 'name', 'launchConfiguration_name' - Launch configuration name.+--+-- 'postLaunchActions', 'launchConfiguration_postLaunchActions' - Undocumented member.+--+-- 'sourceServerID', 'launchConfiguration_sourceServerID' - Launch configuration Source Server ID.+--+-- 'targetInstanceTypeRightSizingMethod', 'launchConfiguration_targetInstanceTypeRightSizingMethod' - Launch configuration Target instance type right sizing method.+newLaunchConfiguration ::+  LaunchConfiguration+newLaunchConfiguration =+  LaunchConfiguration'+    { bootMode = Prelude.Nothing,+      copyPrivateIp = Prelude.Nothing,+      copyTags = Prelude.Nothing,+      ec2LaunchTemplateID = Prelude.Nothing,+      enableMapAutoTagging = Prelude.Nothing,+      launchDisposition = Prelude.Nothing,+      licensing = Prelude.Nothing,+      mapAutoTaggingMpeID = Prelude.Nothing,+      name = Prelude.Nothing,+      postLaunchActions = Prelude.Nothing,+      sourceServerID = Prelude.Nothing,+      targetInstanceTypeRightSizingMethod =+        Prelude.Nothing+    }++-- | Launch configuration boot mode.+launchConfiguration_bootMode :: Lens.Lens' LaunchConfiguration (Prelude.Maybe BootMode)+launchConfiguration_bootMode = Lens.lens (\LaunchConfiguration' {bootMode} -> bootMode) (\s@LaunchConfiguration' {} a -> s {bootMode = a} :: LaunchConfiguration)++-- | Copy Private IP during Launch Configuration.+launchConfiguration_copyPrivateIp :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Prelude.Bool)+launchConfiguration_copyPrivateIp = Lens.lens (\LaunchConfiguration' {copyPrivateIp} -> copyPrivateIp) (\s@LaunchConfiguration' {} a -> s {copyPrivateIp = a} :: LaunchConfiguration)++-- | Copy Tags during Launch Configuration.+launchConfiguration_copyTags :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Prelude.Bool)+launchConfiguration_copyTags = Lens.lens (\LaunchConfiguration' {copyTags} -> copyTags) (\s@LaunchConfiguration' {} a -> s {copyTags = a} :: LaunchConfiguration)++-- | Launch configuration EC2 Launch template ID.+launchConfiguration_ec2LaunchTemplateID :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Prelude.Text)+launchConfiguration_ec2LaunchTemplateID = Lens.lens (\LaunchConfiguration' {ec2LaunchTemplateID} -> ec2LaunchTemplateID) (\s@LaunchConfiguration' {} a -> s {ec2LaunchTemplateID = a} :: LaunchConfiguration)++-- | Enable map auto tagging.+launchConfiguration_enableMapAutoTagging :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Prelude.Bool)+launchConfiguration_enableMapAutoTagging = Lens.lens (\LaunchConfiguration' {enableMapAutoTagging} -> enableMapAutoTagging) (\s@LaunchConfiguration' {} a -> s {enableMapAutoTagging = a} :: LaunchConfiguration)++-- | Launch disposition for launch configuration.+launchConfiguration_launchDisposition :: Lens.Lens' LaunchConfiguration (Prelude.Maybe LaunchDisposition)+launchConfiguration_launchDisposition = Lens.lens (\LaunchConfiguration' {launchDisposition} -> launchDisposition) (\s@LaunchConfiguration' {} a -> s {launchDisposition = a} :: LaunchConfiguration)++-- | Launch configuration OS licensing.+launchConfiguration_licensing :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Licensing)+launchConfiguration_licensing = Lens.lens (\LaunchConfiguration' {licensing} -> licensing) (\s@LaunchConfiguration' {} a -> s {licensing = a} :: LaunchConfiguration)++-- | Map auto tagging MPE ID.+launchConfiguration_mapAutoTaggingMpeID :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Prelude.Text)+launchConfiguration_mapAutoTaggingMpeID = Lens.lens (\LaunchConfiguration' {mapAutoTaggingMpeID} -> mapAutoTaggingMpeID) (\s@LaunchConfiguration' {} a -> s {mapAutoTaggingMpeID = a} :: LaunchConfiguration)++-- | Launch configuration name.+launchConfiguration_name :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Prelude.Text)+launchConfiguration_name = Lens.lens (\LaunchConfiguration' {name} -> name) (\s@LaunchConfiguration' {} a -> s {name = a} :: LaunchConfiguration)++-- | Undocumented member.+launchConfiguration_postLaunchActions :: Lens.Lens' LaunchConfiguration (Prelude.Maybe PostLaunchActions)+launchConfiguration_postLaunchActions = Lens.lens (\LaunchConfiguration' {postLaunchActions} -> postLaunchActions) (\s@LaunchConfiguration' {} a -> s {postLaunchActions = a} :: LaunchConfiguration)++-- | Launch configuration Source Server ID.+launchConfiguration_sourceServerID :: Lens.Lens' LaunchConfiguration (Prelude.Maybe Prelude.Text)+launchConfiguration_sourceServerID = Lens.lens (\LaunchConfiguration' {sourceServerID} -> sourceServerID) (\s@LaunchConfiguration' {} a -> s {sourceServerID = a} :: LaunchConfiguration)++-- | Launch configuration Target instance type right sizing method.+launchConfiguration_targetInstanceTypeRightSizingMethod :: Lens.Lens' LaunchConfiguration (Prelude.Maybe TargetInstanceTypeRightSizingMethod)+launchConfiguration_targetInstanceTypeRightSizingMethod = Lens.lens (\LaunchConfiguration' {targetInstanceTypeRightSizingMethod} -> targetInstanceTypeRightSizingMethod) (\s@LaunchConfiguration' {} a -> s {targetInstanceTypeRightSizingMethod = a} :: LaunchConfiguration)++instance Data.FromJSON LaunchConfiguration where+  parseJSON =+    Data.withObject+      "LaunchConfiguration"+      ( \x ->+          LaunchConfiguration'+            Prelude.<$> (x Data..:? "bootMode")+            Prelude.<*> (x Data..:? "copyPrivateIp")+            Prelude.<*> (x Data..:? "copyTags")+            Prelude.<*> (x Data..:? "ec2LaunchTemplateID")+            Prelude.<*> (x Data..:? "enableMapAutoTagging")+            Prelude.<*> (x Data..:? "launchDisposition")+            Prelude.<*> (x Data..:? "licensing")+            Prelude.<*> (x Data..:? "mapAutoTaggingMpeID")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "postLaunchActions")+            Prelude.<*> (x Data..:? "sourceServerID")+            Prelude.<*> (x Data..:? "targetInstanceTypeRightSizingMethod")+      )++instance Prelude.Hashable LaunchConfiguration where+  hashWithSalt _salt LaunchConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` bootMode+      `Prelude.hashWithSalt` copyPrivateIp+      `Prelude.hashWithSalt` copyTags+      `Prelude.hashWithSalt` ec2LaunchTemplateID+      `Prelude.hashWithSalt` enableMapAutoTagging+      `Prelude.hashWithSalt` launchDisposition+      `Prelude.hashWithSalt` licensing+      `Prelude.hashWithSalt` mapAutoTaggingMpeID+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` postLaunchActions+      `Prelude.hashWithSalt` sourceServerID+      `Prelude.hashWithSalt` targetInstanceTypeRightSizingMethod++instance Prelude.NFData LaunchConfiguration where+  rnf LaunchConfiguration' {..} =+    Prelude.rnf bootMode+      `Prelude.seq` Prelude.rnf copyPrivateIp+      `Prelude.seq` Prelude.rnf copyTags+      `Prelude.seq` Prelude.rnf ec2LaunchTemplateID+      `Prelude.seq` Prelude.rnf enableMapAutoTagging+      `Prelude.seq` Prelude.rnf launchDisposition+      `Prelude.seq` Prelude.rnf licensing+      `Prelude.seq` Prelude.rnf mapAutoTaggingMpeID+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf postLaunchActions+      `Prelude.seq` Prelude.rnf sourceServerID+      `Prelude.seq` Prelude.rnf+        targetInstanceTypeRightSizingMethod
+ gen/Amazonka/MGN/Types/LaunchConfigurationTemplate.hs view
@@ -0,0 +1,274 @@+{-# 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.MGN.Types.LaunchConfigurationTemplate+-- 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.MGN.Types.LaunchConfigurationTemplate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.BootMode+import Amazonka.MGN.Types.LaunchDisposition+import Amazonka.MGN.Types.LaunchTemplateDiskConf+import Amazonka.MGN.Types.Licensing+import Amazonka.MGN.Types.PostLaunchActions+import Amazonka.MGN.Types.TargetInstanceTypeRightSizingMethod+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newLaunchConfigurationTemplate' smart constructor.+data LaunchConfigurationTemplate = LaunchConfigurationTemplate'+  { -- | ARN of the Launch Configuration Template.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Associate public Ip address.+    associatePublicIpAddress :: Prelude.Maybe Prelude.Bool,+    -- | Launch configuration template boot mode.+    bootMode :: Prelude.Maybe BootMode,+    -- | Copy private Ip.+    copyPrivateIp :: Prelude.Maybe Prelude.Bool,+    -- | Copy tags.+    copyTags :: Prelude.Maybe Prelude.Bool,+    -- | EC2 launch template ID.+    ec2LaunchTemplateID :: Prelude.Maybe Prelude.Text,+    -- | Enable map auto tagging.+    enableMapAutoTagging :: Prelude.Maybe Prelude.Bool,+    -- | Large volume config.+    largeVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,+    -- | Launch disposition.+    launchDisposition :: Prelude.Maybe LaunchDisposition,+    licensing :: Prelude.Maybe Licensing,+    -- | Launch configuration template map auto tagging MPE ID.+    mapAutoTaggingMpeID :: Prelude.Maybe Prelude.Text,+    -- | Post Launch Actions of the Launch Configuration Template.+    postLaunchActions :: Prelude.Maybe PostLaunchActions,+    -- | Small volume config.+    smallVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,+    -- | Small volume maximum size.+    smallVolumeMaxSize :: Prelude.Maybe Prelude.Natural,+    -- | Tags of the Launch Configuration Template.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Target instance type right-sizing method.+    targetInstanceTypeRightSizingMethod :: Prelude.Maybe TargetInstanceTypeRightSizingMethod,+    -- | ID of the Launch Configuration Template.+    launchConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'launchConfigurationTemplate_arn' - ARN of the Launch Configuration Template.+--+-- 'associatePublicIpAddress', 'launchConfigurationTemplate_associatePublicIpAddress' - Associate public Ip address.+--+-- 'bootMode', 'launchConfigurationTemplate_bootMode' - Launch configuration template boot mode.+--+-- 'copyPrivateIp', 'launchConfigurationTemplate_copyPrivateIp' - Copy private Ip.+--+-- 'copyTags', 'launchConfigurationTemplate_copyTags' - Copy tags.+--+-- 'ec2LaunchTemplateID', 'launchConfigurationTemplate_ec2LaunchTemplateID' - EC2 launch template ID.+--+-- 'enableMapAutoTagging', 'launchConfigurationTemplate_enableMapAutoTagging' - Enable map auto tagging.+--+-- 'largeVolumeConf', 'launchConfigurationTemplate_largeVolumeConf' - Large volume config.+--+-- 'launchDisposition', 'launchConfigurationTemplate_launchDisposition' - Launch disposition.+--+-- 'licensing', 'launchConfigurationTemplate_licensing' - Undocumented member.+--+-- 'mapAutoTaggingMpeID', 'launchConfigurationTemplate_mapAutoTaggingMpeID' - Launch configuration template map auto tagging MPE ID.+--+-- 'postLaunchActions', 'launchConfigurationTemplate_postLaunchActions' - Post Launch Actions of the Launch Configuration Template.+--+-- 'smallVolumeConf', 'launchConfigurationTemplate_smallVolumeConf' - Small volume config.+--+-- 'smallVolumeMaxSize', 'launchConfigurationTemplate_smallVolumeMaxSize' - Small volume maximum size.+--+-- 'tags', 'launchConfigurationTemplate_tags' - Tags of the Launch Configuration Template.+--+-- 'targetInstanceTypeRightSizingMethod', 'launchConfigurationTemplate_targetInstanceTypeRightSizingMethod' - Target instance type right-sizing method.+--+-- 'launchConfigurationTemplateID', 'launchConfigurationTemplate_launchConfigurationTemplateID' - ID of the Launch Configuration Template.+newLaunchConfigurationTemplate ::+  -- | 'launchConfigurationTemplateID'+  Prelude.Text ->+  LaunchConfigurationTemplate+newLaunchConfigurationTemplate+  pLaunchConfigurationTemplateID_ =+    LaunchConfigurationTemplate'+      { arn = Prelude.Nothing,+        associatePublicIpAddress = Prelude.Nothing,+        bootMode = Prelude.Nothing,+        copyPrivateIp = Prelude.Nothing,+        copyTags = Prelude.Nothing,+        ec2LaunchTemplateID = Prelude.Nothing,+        enableMapAutoTagging = Prelude.Nothing,+        largeVolumeConf = Prelude.Nothing,+        launchDisposition = Prelude.Nothing,+        licensing = Prelude.Nothing,+        mapAutoTaggingMpeID = Prelude.Nothing,+        postLaunchActions = Prelude.Nothing,+        smallVolumeConf = Prelude.Nothing,+        smallVolumeMaxSize = Prelude.Nothing,+        tags = Prelude.Nothing,+        targetInstanceTypeRightSizingMethod =+          Prelude.Nothing,+        launchConfigurationTemplateID =+          pLaunchConfigurationTemplateID_+      }++-- | ARN of the Launch Configuration Template.+launchConfigurationTemplate_arn :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)+launchConfigurationTemplate_arn = Lens.lens (\LaunchConfigurationTemplate' {arn} -> arn) (\s@LaunchConfigurationTemplate' {} a -> s {arn = a} :: LaunchConfigurationTemplate)++-- | Associate public Ip address.+launchConfigurationTemplate_associatePublicIpAddress :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+launchConfigurationTemplate_associatePublicIpAddress = Lens.lens (\LaunchConfigurationTemplate' {associatePublicIpAddress} -> associatePublicIpAddress) (\s@LaunchConfigurationTemplate' {} a -> s {associatePublicIpAddress = a} :: LaunchConfigurationTemplate)++-- | Launch configuration template boot mode.+launchConfigurationTemplate_bootMode :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe BootMode)+launchConfigurationTemplate_bootMode = Lens.lens (\LaunchConfigurationTemplate' {bootMode} -> bootMode) (\s@LaunchConfigurationTemplate' {} a -> s {bootMode = a} :: LaunchConfigurationTemplate)++-- | Copy private Ip.+launchConfigurationTemplate_copyPrivateIp :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+launchConfigurationTemplate_copyPrivateIp = Lens.lens (\LaunchConfigurationTemplate' {copyPrivateIp} -> copyPrivateIp) (\s@LaunchConfigurationTemplate' {} a -> s {copyPrivateIp = a} :: LaunchConfigurationTemplate)++-- | Copy tags.+launchConfigurationTemplate_copyTags :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+launchConfigurationTemplate_copyTags = Lens.lens (\LaunchConfigurationTemplate' {copyTags} -> copyTags) (\s@LaunchConfigurationTemplate' {} a -> s {copyTags = a} :: LaunchConfigurationTemplate)++-- | EC2 launch template ID.+launchConfigurationTemplate_ec2LaunchTemplateID :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)+launchConfigurationTemplate_ec2LaunchTemplateID = Lens.lens (\LaunchConfigurationTemplate' {ec2LaunchTemplateID} -> ec2LaunchTemplateID) (\s@LaunchConfigurationTemplate' {} a -> s {ec2LaunchTemplateID = a} :: LaunchConfigurationTemplate)++-- | Enable map auto tagging.+launchConfigurationTemplate_enableMapAutoTagging :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+launchConfigurationTemplate_enableMapAutoTagging = Lens.lens (\LaunchConfigurationTemplate' {enableMapAutoTagging} -> enableMapAutoTagging) (\s@LaunchConfigurationTemplate' {} a -> s {enableMapAutoTagging = a} :: LaunchConfigurationTemplate)++-- | Large volume config.+launchConfigurationTemplate_largeVolumeConf :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)+launchConfigurationTemplate_largeVolumeConf = Lens.lens (\LaunchConfigurationTemplate' {largeVolumeConf} -> largeVolumeConf) (\s@LaunchConfigurationTemplate' {} a -> s {largeVolumeConf = a} :: LaunchConfigurationTemplate)++-- | Launch disposition.+launchConfigurationTemplate_launchDisposition :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe LaunchDisposition)+launchConfigurationTemplate_launchDisposition = Lens.lens (\LaunchConfigurationTemplate' {launchDisposition} -> launchDisposition) (\s@LaunchConfigurationTemplate' {} a -> s {launchDisposition = a} :: LaunchConfigurationTemplate)++-- | Undocumented member.+launchConfigurationTemplate_licensing :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Licensing)+launchConfigurationTemplate_licensing = Lens.lens (\LaunchConfigurationTemplate' {licensing} -> licensing) (\s@LaunchConfigurationTemplate' {} a -> s {licensing = a} :: LaunchConfigurationTemplate)++-- | Launch configuration template map auto tagging MPE ID.+launchConfigurationTemplate_mapAutoTaggingMpeID :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)+launchConfigurationTemplate_mapAutoTaggingMpeID = Lens.lens (\LaunchConfigurationTemplate' {mapAutoTaggingMpeID} -> mapAutoTaggingMpeID) (\s@LaunchConfigurationTemplate' {} a -> s {mapAutoTaggingMpeID = a} :: LaunchConfigurationTemplate)++-- | Post Launch Actions of the Launch Configuration Template.+launchConfigurationTemplate_postLaunchActions :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe PostLaunchActions)+launchConfigurationTemplate_postLaunchActions = Lens.lens (\LaunchConfigurationTemplate' {postLaunchActions} -> postLaunchActions) (\s@LaunchConfigurationTemplate' {} a -> s {postLaunchActions = a} :: LaunchConfigurationTemplate)++-- | Small volume config.+launchConfigurationTemplate_smallVolumeConf :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)+launchConfigurationTemplate_smallVolumeConf = Lens.lens (\LaunchConfigurationTemplate' {smallVolumeConf} -> smallVolumeConf) (\s@LaunchConfigurationTemplate' {} a -> s {smallVolumeConf = a} :: LaunchConfigurationTemplate)++-- | Small volume maximum size.+launchConfigurationTemplate_smallVolumeMaxSize :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe Prelude.Natural)+launchConfigurationTemplate_smallVolumeMaxSize = Lens.lens (\LaunchConfigurationTemplate' {smallVolumeMaxSize} -> smallVolumeMaxSize) (\s@LaunchConfigurationTemplate' {} a -> s {smallVolumeMaxSize = a} :: LaunchConfigurationTemplate)++-- | Tags of the Launch Configuration Template.+launchConfigurationTemplate_tags :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+launchConfigurationTemplate_tags = Lens.lens (\LaunchConfigurationTemplate' {tags} -> tags) (\s@LaunchConfigurationTemplate' {} a -> s {tags = a} :: LaunchConfigurationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Target instance type right-sizing method.+launchConfigurationTemplate_targetInstanceTypeRightSizingMethod :: Lens.Lens' LaunchConfigurationTemplate (Prelude.Maybe TargetInstanceTypeRightSizingMethod)+launchConfigurationTemplate_targetInstanceTypeRightSizingMethod = Lens.lens (\LaunchConfigurationTemplate' {targetInstanceTypeRightSizingMethod} -> targetInstanceTypeRightSizingMethod) (\s@LaunchConfigurationTemplate' {} a -> s {targetInstanceTypeRightSizingMethod = a} :: LaunchConfigurationTemplate)++-- | ID of the Launch Configuration Template.+launchConfigurationTemplate_launchConfigurationTemplateID :: Lens.Lens' LaunchConfigurationTemplate Prelude.Text+launchConfigurationTemplate_launchConfigurationTemplateID = Lens.lens (\LaunchConfigurationTemplate' {launchConfigurationTemplateID} -> launchConfigurationTemplateID) (\s@LaunchConfigurationTemplate' {} a -> s {launchConfigurationTemplateID = a} :: LaunchConfigurationTemplate)++instance Data.FromJSON LaunchConfigurationTemplate where+  parseJSON =+    Data.withObject+      "LaunchConfigurationTemplate"+      ( \x ->+          LaunchConfigurationTemplate'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "associatePublicIpAddress")+            Prelude.<*> (x Data..:? "bootMode")+            Prelude.<*> (x Data..:? "copyPrivateIp")+            Prelude.<*> (x Data..:? "copyTags")+            Prelude.<*> (x Data..:? "ec2LaunchTemplateID")+            Prelude.<*> (x Data..:? "enableMapAutoTagging")+            Prelude.<*> (x Data..:? "largeVolumeConf")+            Prelude.<*> (x Data..:? "launchDisposition")+            Prelude.<*> (x Data..:? "licensing")+            Prelude.<*> (x Data..:? "mapAutoTaggingMpeID")+            Prelude.<*> (x Data..:? "postLaunchActions")+            Prelude.<*> (x Data..:? "smallVolumeConf")+            Prelude.<*> (x Data..:? "smallVolumeMaxSize")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "targetInstanceTypeRightSizingMethod")+            Prelude.<*> (x Data..: "launchConfigurationTemplateID")+      )++instance Prelude.Hashable LaunchConfigurationTemplate where+  hashWithSalt _salt LaunchConfigurationTemplate' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` associatePublicIpAddress+      `Prelude.hashWithSalt` bootMode+      `Prelude.hashWithSalt` copyPrivateIp+      `Prelude.hashWithSalt` copyTags+      `Prelude.hashWithSalt` ec2LaunchTemplateID+      `Prelude.hashWithSalt` enableMapAutoTagging+      `Prelude.hashWithSalt` largeVolumeConf+      `Prelude.hashWithSalt` launchDisposition+      `Prelude.hashWithSalt` licensing+      `Prelude.hashWithSalt` mapAutoTaggingMpeID+      `Prelude.hashWithSalt` postLaunchActions+      `Prelude.hashWithSalt` smallVolumeConf+      `Prelude.hashWithSalt` smallVolumeMaxSize+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` targetInstanceTypeRightSizingMethod+      `Prelude.hashWithSalt` launchConfigurationTemplateID++instance Prelude.NFData LaunchConfigurationTemplate where+  rnf LaunchConfigurationTemplate' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf associatePublicIpAddress+      `Prelude.seq` Prelude.rnf bootMode+      `Prelude.seq` Prelude.rnf copyPrivateIp+      `Prelude.seq` Prelude.rnf copyTags+      `Prelude.seq` Prelude.rnf ec2LaunchTemplateID+      `Prelude.seq` Prelude.rnf enableMapAutoTagging+      `Prelude.seq` Prelude.rnf largeVolumeConf+      `Prelude.seq` Prelude.rnf launchDisposition+      `Prelude.seq` Prelude.rnf licensing+      `Prelude.seq` Prelude.rnf mapAutoTaggingMpeID+      `Prelude.seq` Prelude.rnf postLaunchActions+      `Prelude.seq` Prelude.rnf smallVolumeConf+      `Prelude.seq` Prelude.rnf smallVolumeMaxSize+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf+        targetInstanceTypeRightSizingMethod+      `Prelude.seq` Prelude.rnf+        launchConfigurationTemplateID
+ gen/Amazonka/MGN/Types/LaunchDisposition.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.MGN.Types.LaunchDisposition+-- 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.MGN.Types.LaunchDisposition+  ( LaunchDisposition+      ( ..,+        LaunchDisposition_STARTED,+        LaunchDisposition_STOPPED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchDisposition = LaunchDisposition'+  { fromLaunchDisposition ::+      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 LaunchDisposition_STARTED :: LaunchDisposition+pattern LaunchDisposition_STARTED = LaunchDisposition' "STARTED"++pattern LaunchDisposition_STOPPED :: LaunchDisposition+pattern LaunchDisposition_STOPPED = LaunchDisposition' "STOPPED"++{-# COMPLETE+  LaunchDisposition_STARTED,+  LaunchDisposition_STOPPED,+  LaunchDisposition'+  #-}
+ gen/Amazonka/MGN/Types/LaunchStatus.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.MGN.Types.LaunchStatus+-- 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.MGN.Types.LaunchStatus+  ( LaunchStatus+      ( ..,+        LaunchStatus_FAILED,+        LaunchStatus_IN_PROGRESS,+        LaunchStatus_LAUNCHED,+        LaunchStatus_PENDING,+        LaunchStatus_TERMINATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchStatus = LaunchStatus'+  { fromLaunchStatus ::+      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 LaunchStatus_FAILED :: LaunchStatus+pattern LaunchStatus_FAILED = LaunchStatus' "FAILED"++pattern LaunchStatus_IN_PROGRESS :: LaunchStatus+pattern LaunchStatus_IN_PROGRESS = LaunchStatus' "IN_PROGRESS"++pattern LaunchStatus_LAUNCHED :: LaunchStatus+pattern LaunchStatus_LAUNCHED = LaunchStatus' "LAUNCHED"++pattern LaunchStatus_PENDING :: LaunchStatus+pattern LaunchStatus_PENDING = LaunchStatus' "PENDING"++pattern LaunchStatus_TERMINATED :: LaunchStatus+pattern LaunchStatus_TERMINATED = LaunchStatus' "TERMINATED"++{-# COMPLETE+  LaunchStatus_FAILED,+  LaunchStatus_IN_PROGRESS,+  LaunchStatus_LAUNCHED,+  LaunchStatus_PENDING,+  LaunchStatus_TERMINATED,+  LaunchStatus'+  #-}
+ gen/Amazonka/MGN/Types/LaunchTemplateDiskConf.hs view
@@ -0,0 +1,107 @@+{-# 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.MGN.Types.LaunchTemplateDiskConf+-- 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.MGN.Types.LaunchTemplateDiskConf where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.VolumeType+import qualified Amazonka.Prelude as Prelude++-- | Launch template disk configuration.+--+-- /See:/ 'newLaunchTemplateDiskConf' smart constructor.+data LaunchTemplateDiskConf = LaunchTemplateDiskConf'+  { -- | Launch template disk iops configuration.+    iops :: Prelude.Maybe Prelude.Natural,+    -- | Launch template disk throughput configuration.+    throughput :: Prelude.Maybe Prelude.Natural,+    -- | Launch template disk volume type configuration.+    volumeType :: Prelude.Maybe VolumeType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchTemplateDiskConf' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'iops', 'launchTemplateDiskConf_iops' - Launch template disk iops configuration.+--+-- 'throughput', 'launchTemplateDiskConf_throughput' - Launch template disk throughput configuration.+--+-- 'volumeType', 'launchTemplateDiskConf_volumeType' - Launch template disk volume type configuration.+newLaunchTemplateDiskConf ::+  LaunchTemplateDiskConf+newLaunchTemplateDiskConf =+  LaunchTemplateDiskConf'+    { iops = Prelude.Nothing,+      throughput = Prelude.Nothing,+      volumeType = Prelude.Nothing+    }++-- | Launch template disk iops configuration.+launchTemplateDiskConf_iops :: Lens.Lens' LaunchTemplateDiskConf (Prelude.Maybe Prelude.Natural)+launchTemplateDiskConf_iops = Lens.lens (\LaunchTemplateDiskConf' {iops} -> iops) (\s@LaunchTemplateDiskConf' {} a -> s {iops = a} :: LaunchTemplateDiskConf)++-- | Launch template disk throughput configuration.+launchTemplateDiskConf_throughput :: Lens.Lens' LaunchTemplateDiskConf (Prelude.Maybe Prelude.Natural)+launchTemplateDiskConf_throughput = Lens.lens (\LaunchTemplateDiskConf' {throughput} -> throughput) (\s@LaunchTemplateDiskConf' {} a -> s {throughput = a} :: LaunchTemplateDiskConf)++-- | Launch template disk volume type configuration.+launchTemplateDiskConf_volumeType :: Lens.Lens' LaunchTemplateDiskConf (Prelude.Maybe VolumeType)+launchTemplateDiskConf_volumeType = Lens.lens (\LaunchTemplateDiskConf' {volumeType} -> volumeType) (\s@LaunchTemplateDiskConf' {} a -> s {volumeType = a} :: LaunchTemplateDiskConf)++instance Data.FromJSON LaunchTemplateDiskConf where+  parseJSON =+    Data.withObject+      "LaunchTemplateDiskConf"+      ( \x ->+          LaunchTemplateDiskConf'+            Prelude.<$> (x Data..:? "iops")+            Prelude.<*> (x Data..:? "throughput")+            Prelude.<*> (x Data..:? "volumeType")+      )++instance Prelude.Hashable LaunchTemplateDiskConf where+  hashWithSalt _salt LaunchTemplateDiskConf' {..} =+    _salt+      `Prelude.hashWithSalt` iops+      `Prelude.hashWithSalt` throughput+      `Prelude.hashWithSalt` volumeType++instance Prelude.NFData LaunchTemplateDiskConf where+  rnf LaunchTemplateDiskConf' {..} =+    Prelude.rnf iops+      `Prelude.seq` Prelude.rnf throughput+      `Prelude.seq` Prelude.rnf volumeType++instance Data.ToJSON LaunchTemplateDiskConf where+  toJSON LaunchTemplateDiskConf' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("iops" Data..=) Prelude.<$> iops,+            ("throughput" Data..=) Prelude.<$> throughput,+            ("volumeType" Data..=) Prelude.<$> volumeType+          ]+      )
+ gen/Amazonka/MGN/Types/LaunchedInstance.hs view
@@ -0,0 +1,97 @@+{-# 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.MGN.Types.LaunchedInstance+-- 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.MGN.Types.LaunchedInstance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.FirstBoot+import qualified Amazonka.Prelude as Prelude++-- | Launched instance.+--+-- /See:/ 'newLaunchedInstance' smart constructor.+data LaunchedInstance = LaunchedInstance'+  { -- | Launched instance EC2 ID.+    ec2InstanceID :: Prelude.Maybe Prelude.Text,+    -- | Launched instance first boot.+    firstBoot :: Prelude.Maybe FirstBoot,+    -- | Launched instance Job ID.+    jobID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchedInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ec2InstanceID', 'launchedInstance_ec2InstanceID' - Launched instance EC2 ID.+--+-- 'firstBoot', 'launchedInstance_firstBoot' - Launched instance first boot.+--+-- 'jobID', 'launchedInstance_jobID' - Launched instance Job ID.+newLaunchedInstance ::+  LaunchedInstance+newLaunchedInstance =+  LaunchedInstance'+    { ec2InstanceID = Prelude.Nothing,+      firstBoot = Prelude.Nothing,+      jobID = Prelude.Nothing+    }++-- | Launched instance EC2 ID.+launchedInstance_ec2InstanceID :: Lens.Lens' LaunchedInstance (Prelude.Maybe Prelude.Text)+launchedInstance_ec2InstanceID = Lens.lens (\LaunchedInstance' {ec2InstanceID} -> ec2InstanceID) (\s@LaunchedInstance' {} a -> s {ec2InstanceID = a} :: LaunchedInstance)++-- | Launched instance first boot.+launchedInstance_firstBoot :: Lens.Lens' LaunchedInstance (Prelude.Maybe FirstBoot)+launchedInstance_firstBoot = Lens.lens (\LaunchedInstance' {firstBoot} -> firstBoot) (\s@LaunchedInstance' {} a -> s {firstBoot = a} :: LaunchedInstance)++-- | Launched instance Job ID.+launchedInstance_jobID :: Lens.Lens' LaunchedInstance (Prelude.Maybe Prelude.Text)+launchedInstance_jobID = Lens.lens (\LaunchedInstance' {jobID} -> jobID) (\s@LaunchedInstance' {} a -> s {jobID = a} :: LaunchedInstance)++instance Data.FromJSON LaunchedInstance where+  parseJSON =+    Data.withObject+      "LaunchedInstance"+      ( \x ->+          LaunchedInstance'+            Prelude.<$> (x Data..:? "ec2InstanceID")+            Prelude.<*> (x Data..:? "firstBoot")+            Prelude.<*> (x Data..:? "jobID")+      )++instance Prelude.Hashable LaunchedInstance where+  hashWithSalt _salt LaunchedInstance' {..} =+    _salt+      `Prelude.hashWithSalt` ec2InstanceID+      `Prelude.hashWithSalt` firstBoot+      `Prelude.hashWithSalt` jobID++instance Prelude.NFData LaunchedInstance where+  rnf LaunchedInstance' {..} =+    Prelude.rnf ec2InstanceID+      `Prelude.seq` Prelude.rnf firstBoot+      `Prelude.seq` Prelude.rnf jobID
+ gen/Amazonka/MGN/Types/Licensing.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.Licensing+-- 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.MGN.Types.Licensing 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++-- | Configure Licensing.+--+-- /See:/ 'newLicensing' smart constructor.+data Licensing = Licensing'+  { -- | Configure BYOL OS licensing.+    osByol :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Licensing' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'osByol', 'licensing_osByol' - Configure BYOL OS licensing.+newLicensing ::+  Licensing+newLicensing = Licensing' {osByol = Prelude.Nothing}++-- | Configure BYOL OS licensing.+licensing_osByol :: Lens.Lens' Licensing (Prelude.Maybe Prelude.Bool)+licensing_osByol = Lens.lens (\Licensing' {osByol} -> osByol) (\s@Licensing' {} a -> s {osByol = a} :: Licensing)++instance Data.FromJSON Licensing where+  parseJSON =+    Data.withObject+      "Licensing"+      (\x -> Licensing' Prelude.<$> (x Data..:? "osByol"))++instance Prelude.Hashable Licensing where+  hashWithSalt _salt Licensing' {..} =+    _salt `Prelude.hashWithSalt` osByol++instance Prelude.NFData Licensing where+  rnf Licensing' {..} = Prelude.rnf osByol++instance Data.ToJSON Licensing where+  toJSON Licensing' {..} =+    Data.object+      ( Prelude.catMaybes+          [("osByol" Data..=) Prelude.<$> osByol]+      )
+ gen/Amazonka/MGN/Types/LifeCycle.hs view
@@ -0,0 +1,148 @@+{-# 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.MGN.Types.LifeCycle+-- 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.MGN.Types.LifeCycle where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.LifeCycleLastCutover+import Amazonka.MGN.Types.LifeCycleLastTest+import Amazonka.MGN.Types.LifeCycleState+import qualified Amazonka.Prelude as Prelude++-- | Lifecycle.+--+-- /See:/ 'newLifeCycle' smart constructor.+data LifeCycle = LifeCycle'+  { -- | Lifecycle added to service data and time.+    addedToServiceDateTime :: Prelude.Maybe Prelude.Text,+    -- | Lifecycle elapsed time and duration.+    elapsedReplicationDuration :: Prelude.Maybe Prelude.Text,+    -- | Lifecycle replication initiation date and time.+    firstByteDateTime :: Prelude.Maybe Prelude.Text,+    -- | Lifecycle last Cutover.+    lastCutover :: Prelude.Maybe LifeCycleLastCutover,+    -- | Lifecycle last seen date and time.+    lastSeenByServiceDateTime :: Prelude.Maybe Prelude.Text,+    -- | Lifecycle last Test.+    lastTest :: Prelude.Maybe LifeCycleLastTest,+    -- | Lifecycle state.+    state :: Prelude.Maybe LifeCycleState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'addedToServiceDateTime', 'lifeCycle_addedToServiceDateTime' - Lifecycle added to service data and time.+--+-- 'elapsedReplicationDuration', 'lifeCycle_elapsedReplicationDuration' - Lifecycle elapsed time and duration.+--+-- 'firstByteDateTime', 'lifeCycle_firstByteDateTime' - Lifecycle replication initiation date and time.+--+-- 'lastCutover', 'lifeCycle_lastCutover' - Lifecycle last Cutover.+--+-- 'lastSeenByServiceDateTime', 'lifeCycle_lastSeenByServiceDateTime' - Lifecycle last seen date and time.+--+-- 'lastTest', 'lifeCycle_lastTest' - Lifecycle last Test.+--+-- 'state', 'lifeCycle_state' - Lifecycle state.+newLifeCycle ::+  LifeCycle+newLifeCycle =+  LifeCycle'+    { addedToServiceDateTime =+        Prelude.Nothing,+      elapsedReplicationDuration = Prelude.Nothing,+      firstByteDateTime = Prelude.Nothing,+      lastCutover = Prelude.Nothing,+      lastSeenByServiceDateTime = Prelude.Nothing,+      lastTest = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | Lifecycle added to service data and time.+lifeCycle_addedToServiceDateTime :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)+lifeCycle_addedToServiceDateTime = Lens.lens (\LifeCycle' {addedToServiceDateTime} -> addedToServiceDateTime) (\s@LifeCycle' {} a -> s {addedToServiceDateTime = a} :: LifeCycle)++-- | Lifecycle elapsed time and duration.+lifeCycle_elapsedReplicationDuration :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)+lifeCycle_elapsedReplicationDuration = Lens.lens (\LifeCycle' {elapsedReplicationDuration} -> elapsedReplicationDuration) (\s@LifeCycle' {} a -> s {elapsedReplicationDuration = a} :: LifeCycle)++-- | Lifecycle replication initiation date and time.+lifeCycle_firstByteDateTime :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)+lifeCycle_firstByteDateTime = Lens.lens (\LifeCycle' {firstByteDateTime} -> firstByteDateTime) (\s@LifeCycle' {} a -> s {firstByteDateTime = a} :: LifeCycle)++-- | Lifecycle last Cutover.+lifeCycle_lastCutover :: Lens.Lens' LifeCycle (Prelude.Maybe LifeCycleLastCutover)+lifeCycle_lastCutover = Lens.lens (\LifeCycle' {lastCutover} -> lastCutover) (\s@LifeCycle' {} a -> s {lastCutover = a} :: LifeCycle)++-- | Lifecycle last seen date and time.+lifeCycle_lastSeenByServiceDateTime :: Lens.Lens' LifeCycle (Prelude.Maybe Prelude.Text)+lifeCycle_lastSeenByServiceDateTime = Lens.lens (\LifeCycle' {lastSeenByServiceDateTime} -> lastSeenByServiceDateTime) (\s@LifeCycle' {} a -> s {lastSeenByServiceDateTime = a} :: LifeCycle)++-- | Lifecycle last Test.+lifeCycle_lastTest :: Lens.Lens' LifeCycle (Prelude.Maybe LifeCycleLastTest)+lifeCycle_lastTest = Lens.lens (\LifeCycle' {lastTest} -> lastTest) (\s@LifeCycle' {} a -> s {lastTest = a} :: LifeCycle)++-- | Lifecycle state.+lifeCycle_state :: Lens.Lens' LifeCycle (Prelude.Maybe LifeCycleState)+lifeCycle_state = Lens.lens (\LifeCycle' {state} -> state) (\s@LifeCycle' {} a -> s {state = a} :: LifeCycle)++instance Data.FromJSON LifeCycle where+  parseJSON =+    Data.withObject+      "LifeCycle"+      ( \x ->+          LifeCycle'+            Prelude.<$> (x Data..:? "addedToServiceDateTime")+            Prelude.<*> (x Data..:? "elapsedReplicationDuration")+            Prelude.<*> (x Data..:? "firstByteDateTime")+            Prelude.<*> (x Data..:? "lastCutover")+            Prelude.<*> (x Data..:? "lastSeenByServiceDateTime")+            Prelude.<*> (x Data..:? "lastTest")+            Prelude.<*> (x Data..:? "state")+      )++instance Prelude.Hashable LifeCycle where+  hashWithSalt _salt LifeCycle' {..} =+    _salt+      `Prelude.hashWithSalt` addedToServiceDateTime+      `Prelude.hashWithSalt` elapsedReplicationDuration+      `Prelude.hashWithSalt` firstByteDateTime+      `Prelude.hashWithSalt` lastCutover+      `Prelude.hashWithSalt` lastSeenByServiceDateTime+      `Prelude.hashWithSalt` lastTest+      `Prelude.hashWithSalt` state++instance Prelude.NFData LifeCycle where+  rnf LifeCycle' {..} =+    Prelude.rnf addedToServiceDateTime+      `Prelude.seq` Prelude.rnf elapsedReplicationDuration+      `Prelude.seq` Prelude.rnf firstByteDateTime+      `Prelude.seq` Prelude.rnf lastCutover+      `Prelude.seq` Prelude.rnf lastSeenByServiceDateTime+      `Prelude.seq` Prelude.rnf lastTest+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/MGN/Types/LifeCycleLastCutover.hs view
@@ -0,0 +1,99 @@+{-# 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.MGN.Types.LifeCycleLastCutover+-- 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.MGN.Types.LifeCycleLastCutover where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.LifeCycleLastCutoverFinalized+import Amazonka.MGN.Types.LifeCycleLastCutoverInitiated+import Amazonka.MGN.Types.LifeCycleLastCutoverReverted+import qualified Amazonka.Prelude as Prelude++-- | Lifecycle last Cutover .+--+-- /See:/ 'newLifeCycleLastCutover' smart constructor.+data LifeCycleLastCutover = LifeCycleLastCutover'+  { -- | Lifecycle Cutover finalized date and time.+    finalized :: Prelude.Maybe LifeCycleLastCutoverFinalized,+    -- | Lifecycle last Cutover initiated.+    initiated :: Prelude.Maybe LifeCycleLastCutoverInitiated,+    -- | Lifecycle last Cutover reverted.+    reverted :: Prelude.Maybe LifeCycleLastCutoverReverted+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastCutover' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'finalized', 'lifeCycleLastCutover_finalized' - Lifecycle Cutover finalized date and time.+--+-- 'initiated', 'lifeCycleLastCutover_initiated' - Lifecycle last Cutover initiated.+--+-- 'reverted', 'lifeCycleLastCutover_reverted' - Lifecycle last Cutover reverted.+newLifeCycleLastCutover ::+  LifeCycleLastCutover+newLifeCycleLastCutover =+  LifeCycleLastCutover'+    { finalized = Prelude.Nothing,+      initiated = Prelude.Nothing,+      reverted = Prelude.Nothing+    }++-- | Lifecycle Cutover finalized date and time.+lifeCycleLastCutover_finalized :: Lens.Lens' LifeCycleLastCutover (Prelude.Maybe LifeCycleLastCutoverFinalized)+lifeCycleLastCutover_finalized = Lens.lens (\LifeCycleLastCutover' {finalized} -> finalized) (\s@LifeCycleLastCutover' {} a -> s {finalized = a} :: LifeCycleLastCutover)++-- | Lifecycle last Cutover initiated.+lifeCycleLastCutover_initiated :: Lens.Lens' LifeCycleLastCutover (Prelude.Maybe LifeCycleLastCutoverInitiated)+lifeCycleLastCutover_initiated = Lens.lens (\LifeCycleLastCutover' {initiated} -> initiated) (\s@LifeCycleLastCutover' {} a -> s {initiated = a} :: LifeCycleLastCutover)++-- | Lifecycle last Cutover reverted.+lifeCycleLastCutover_reverted :: Lens.Lens' LifeCycleLastCutover (Prelude.Maybe LifeCycleLastCutoverReverted)+lifeCycleLastCutover_reverted = Lens.lens (\LifeCycleLastCutover' {reverted} -> reverted) (\s@LifeCycleLastCutover' {} a -> s {reverted = a} :: LifeCycleLastCutover)++instance Data.FromJSON LifeCycleLastCutover where+  parseJSON =+    Data.withObject+      "LifeCycleLastCutover"+      ( \x ->+          LifeCycleLastCutover'+            Prelude.<$> (x Data..:? "finalized")+            Prelude.<*> (x Data..:? "initiated")+            Prelude.<*> (x Data..:? "reverted")+      )++instance Prelude.Hashable LifeCycleLastCutover where+  hashWithSalt _salt LifeCycleLastCutover' {..} =+    _salt+      `Prelude.hashWithSalt` finalized+      `Prelude.hashWithSalt` initiated+      `Prelude.hashWithSalt` reverted++instance Prelude.NFData LifeCycleLastCutover where+  rnf LifeCycleLastCutover' {..} =+    Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf initiated+      `Prelude.seq` Prelude.rnf reverted
+ gen/Amazonka/MGN/Types/LifeCycleLastCutoverFinalized.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.LifeCycleLastCutoverFinalized+-- 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.MGN.Types.LifeCycleLastCutoverFinalized 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++-- | Lifecycle Cutover finalized+--+-- /See:/ 'newLifeCycleLastCutoverFinalized' smart constructor.+data LifeCycleLastCutoverFinalized = LifeCycleLastCutoverFinalized'+  { -- | Lifecycle Cutover finalized date and time.+    apiCallDateTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastCutoverFinalized' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiCallDateTime', 'lifeCycleLastCutoverFinalized_apiCallDateTime' - Lifecycle Cutover finalized date and time.+newLifeCycleLastCutoverFinalized ::+  LifeCycleLastCutoverFinalized+newLifeCycleLastCutoverFinalized =+  LifeCycleLastCutoverFinalized'+    { apiCallDateTime =+        Prelude.Nothing+    }++-- | Lifecycle Cutover finalized date and time.+lifeCycleLastCutoverFinalized_apiCallDateTime :: Lens.Lens' LifeCycleLastCutoverFinalized (Prelude.Maybe Prelude.Text)+lifeCycleLastCutoverFinalized_apiCallDateTime = Lens.lens (\LifeCycleLastCutoverFinalized' {apiCallDateTime} -> apiCallDateTime) (\s@LifeCycleLastCutoverFinalized' {} a -> s {apiCallDateTime = a} :: LifeCycleLastCutoverFinalized)++instance Data.FromJSON LifeCycleLastCutoverFinalized where+  parseJSON =+    Data.withObject+      "LifeCycleLastCutoverFinalized"+      ( \x ->+          LifeCycleLastCutoverFinalized'+            Prelude.<$> (x Data..:? "apiCallDateTime")+      )++instance+  Prelude.Hashable+    LifeCycleLastCutoverFinalized+  where+  hashWithSalt _salt LifeCycleLastCutoverFinalized' {..} =+    _salt `Prelude.hashWithSalt` apiCallDateTime++instance Prelude.NFData LifeCycleLastCutoverFinalized where+  rnf LifeCycleLastCutoverFinalized' {..} =+    Prelude.rnf apiCallDateTime
+ gen/Amazonka/MGN/Types/LifeCycleLastCutoverInitiated.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.MGN.Types.LifeCycleLastCutoverInitiated+-- 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.MGN.Types.LifeCycleLastCutoverInitiated 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++-- | Lifecycle last Cutover initiated.+--+-- /See:/ 'newLifeCycleLastCutoverInitiated' smart constructor.+data LifeCycleLastCutoverInitiated = LifeCycleLastCutoverInitiated'+  { apiCallDateTime :: Prelude.Maybe Prelude.Text,+    -- | Lifecycle last Cutover initiated by Job ID.+    jobID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastCutoverInitiated' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiCallDateTime', 'lifeCycleLastCutoverInitiated_apiCallDateTime' -+--+-- 'jobID', 'lifeCycleLastCutoverInitiated_jobID' - Lifecycle last Cutover initiated by Job ID.+newLifeCycleLastCutoverInitiated ::+  LifeCycleLastCutoverInitiated+newLifeCycleLastCutoverInitiated =+  LifeCycleLastCutoverInitiated'+    { apiCallDateTime =+        Prelude.Nothing,+      jobID = Prelude.Nothing+    }++lifeCycleLastCutoverInitiated_apiCallDateTime :: Lens.Lens' LifeCycleLastCutoverInitiated (Prelude.Maybe Prelude.Text)+lifeCycleLastCutoverInitiated_apiCallDateTime = Lens.lens (\LifeCycleLastCutoverInitiated' {apiCallDateTime} -> apiCallDateTime) (\s@LifeCycleLastCutoverInitiated' {} a -> s {apiCallDateTime = a} :: LifeCycleLastCutoverInitiated)++-- | Lifecycle last Cutover initiated by Job ID.+lifeCycleLastCutoverInitiated_jobID :: Lens.Lens' LifeCycleLastCutoverInitiated (Prelude.Maybe Prelude.Text)+lifeCycleLastCutoverInitiated_jobID = Lens.lens (\LifeCycleLastCutoverInitiated' {jobID} -> jobID) (\s@LifeCycleLastCutoverInitiated' {} a -> s {jobID = a} :: LifeCycleLastCutoverInitiated)++instance Data.FromJSON LifeCycleLastCutoverInitiated where+  parseJSON =+    Data.withObject+      "LifeCycleLastCutoverInitiated"+      ( \x ->+          LifeCycleLastCutoverInitiated'+            Prelude.<$> (x Data..:? "apiCallDateTime")+            Prelude.<*> (x Data..:? "jobID")+      )++instance+  Prelude.Hashable+    LifeCycleLastCutoverInitiated+  where+  hashWithSalt _salt LifeCycleLastCutoverInitiated' {..} =+    _salt+      `Prelude.hashWithSalt` apiCallDateTime+      `Prelude.hashWithSalt` jobID++instance Prelude.NFData LifeCycleLastCutoverInitiated where+  rnf LifeCycleLastCutoverInitiated' {..} =+    Prelude.rnf apiCallDateTime+      `Prelude.seq` Prelude.rnf jobID
+ gen/Amazonka/MGN/Types/LifeCycleLastCutoverReverted.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.LifeCycleLastCutoverReverted+-- 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.MGN.Types.LifeCycleLastCutoverReverted 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++-- | Lifecycle last Cutover reverted.+--+-- /See:/ 'newLifeCycleLastCutoverReverted' smart constructor.+data LifeCycleLastCutoverReverted = LifeCycleLastCutoverReverted'+  { -- | Lifecycle last Cutover reverted API call date time.+    apiCallDateTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastCutoverReverted' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiCallDateTime', 'lifeCycleLastCutoverReverted_apiCallDateTime' - Lifecycle last Cutover reverted API call date time.+newLifeCycleLastCutoverReverted ::+  LifeCycleLastCutoverReverted+newLifeCycleLastCutoverReverted =+  LifeCycleLastCutoverReverted'+    { apiCallDateTime =+        Prelude.Nothing+    }++-- | Lifecycle last Cutover reverted API call date time.+lifeCycleLastCutoverReverted_apiCallDateTime :: Lens.Lens' LifeCycleLastCutoverReverted (Prelude.Maybe Prelude.Text)+lifeCycleLastCutoverReverted_apiCallDateTime = Lens.lens (\LifeCycleLastCutoverReverted' {apiCallDateTime} -> apiCallDateTime) (\s@LifeCycleLastCutoverReverted' {} a -> s {apiCallDateTime = a} :: LifeCycleLastCutoverReverted)++instance Data.FromJSON LifeCycleLastCutoverReverted where+  parseJSON =+    Data.withObject+      "LifeCycleLastCutoverReverted"+      ( \x ->+          LifeCycleLastCutoverReverted'+            Prelude.<$> (x Data..:? "apiCallDateTime")+      )++instance+  Prelude.Hashable+    LifeCycleLastCutoverReverted+  where+  hashWithSalt _salt LifeCycleLastCutoverReverted' {..} =+    _salt `Prelude.hashWithSalt` apiCallDateTime++instance Prelude.NFData LifeCycleLastCutoverReverted where+  rnf LifeCycleLastCutoverReverted' {..} =+    Prelude.rnf apiCallDateTime
+ gen/Amazonka/MGN/Types/LifeCycleLastTest.hs view
@@ -0,0 +1,99 @@+{-# 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.MGN.Types.LifeCycleLastTest+-- 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.MGN.Types.LifeCycleLastTest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.LifeCycleLastTestFinalized+import Amazonka.MGN.Types.LifeCycleLastTestInitiated+import Amazonka.MGN.Types.LifeCycleLastTestReverted+import qualified Amazonka.Prelude as Prelude++-- | Lifecycle last Test.+--+-- /See:/ 'newLifeCycleLastTest' smart constructor.+data LifeCycleLastTest = LifeCycleLastTest'+  { -- | Lifecycle last Test finalized.+    finalized :: Prelude.Maybe LifeCycleLastTestFinalized,+    -- | Lifecycle last Test initiated.+    initiated :: Prelude.Maybe LifeCycleLastTestInitiated,+    -- | Lifecycle last Test reverted.+    reverted :: Prelude.Maybe LifeCycleLastTestReverted+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastTest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'finalized', 'lifeCycleLastTest_finalized' - Lifecycle last Test finalized.+--+-- 'initiated', 'lifeCycleLastTest_initiated' - Lifecycle last Test initiated.+--+-- 'reverted', 'lifeCycleLastTest_reverted' - Lifecycle last Test reverted.+newLifeCycleLastTest ::+  LifeCycleLastTest+newLifeCycleLastTest =+  LifeCycleLastTest'+    { finalized = Prelude.Nothing,+      initiated = Prelude.Nothing,+      reverted = Prelude.Nothing+    }++-- | Lifecycle last Test finalized.+lifeCycleLastTest_finalized :: Lens.Lens' LifeCycleLastTest (Prelude.Maybe LifeCycleLastTestFinalized)+lifeCycleLastTest_finalized = Lens.lens (\LifeCycleLastTest' {finalized} -> finalized) (\s@LifeCycleLastTest' {} a -> s {finalized = a} :: LifeCycleLastTest)++-- | Lifecycle last Test initiated.+lifeCycleLastTest_initiated :: Lens.Lens' LifeCycleLastTest (Prelude.Maybe LifeCycleLastTestInitiated)+lifeCycleLastTest_initiated = Lens.lens (\LifeCycleLastTest' {initiated} -> initiated) (\s@LifeCycleLastTest' {} a -> s {initiated = a} :: LifeCycleLastTest)++-- | Lifecycle last Test reverted.+lifeCycleLastTest_reverted :: Lens.Lens' LifeCycleLastTest (Prelude.Maybe LifeCycleLastTestReverted)+lifeCycleLastTest_reverted = Lens.lens (\LifeCycleLastTest' {reverted} -> reverted) (\s@LifeCycleLastTest' {} a -> s {reverted = a} :: LifeCycleLastTest)++instance Data.FromJSON LifeCycleLastTest where+  parseJSON =+    Data.withObject+      "LifeCycleLastTest"+      ( \x ->+          LifeCycleLastTest'+            Prelude.<$> (x Data..:? "finalized")+            Prelude.<*> (x Data..:? "initiated")+            Prelude.<*> (x Data..:? "reverted")+      )++instance Prelude.Hashable LifeCycleLastTest where+  hashWithSalt _salt LifeCycleLastTest' {..} =+    _salt+      `Prelude.hashWithSalt` finalized+      `Prelude.hashWithSalt` initiated+      `Prelude.hashWithSalt` reverted++instance Prelude.NFData LifeCycleLastTest where+  rnf LifeCycleLastTest' {..} =+    Prelude.rnf finalized+      `Prelude.seq` Prelude.rnf initiated+      `Prelude.seq` Prelude.rnf reverted
+ gen/Amazonka/MGN/Types/LifeCycleLastTestFinalized.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.LifeCycleLastTestFinalized+-- 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.MGN.Types.LifeCycleLastTestFinalized 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++-- | Lifecycle last Test finalized.+--+-- /See:/ 'newLifeCycleLastTestFinalized' smart constructor.+data LifeCycleLastTestFinalized = LifeCycleLastTestFinalized'+  { -- | Lifecycle Test failed API call date and time.+    apiCallDateTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastTestFinalized' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiCallDateTime', 'lifeCycleLastTestFinalized_apiCallDateTime' - Lifecycle Test failed API call date and time.+newLifeCycleLastTestFinalized ::+  LifeCycleLastTestFinalized+newLifeCycleLastTestFinalized =+  LifeCycleLastTestFinalized'+    { apiCallDateTime =+        Prelude.Nothing+    }++-- | Lifecycle Test failed API call date and time.+lifeCycleLastTestFinalized_apiCallDateTime :: Lens.Lens' LifeCycleLastTestFinalized (Prelude.Maybe Prelude.Text)+lifeCycleLastTestFinalized_apiCallDateTime = Lens.lens (\LifeCycleLastTestFinalized' {apiCallDateTime} -> apiCallDateTime) (\s@LifeCycleLastTestFinalized' {} a -> s {apiCallDateTime = a} :: LifeCycleLastTestFinalized)++instance Data.FromJSON LifeCycleLastTestFinalized where+  parseJSON =+    Data.withObject+      "LifeCycleLastTestFinalized"+      ( \x ->+          LifeCycleLastTestFinalized'+            Prelude.<$> (x Data..:? "apiCallDateTime")+      )++instance Prelude.Hashable LifeCycleLastTestFinalized where+  hashWithSalt _salt LifeCycleLastTestFinalized' {..} =+    _salt `Prelude.hashWithSalt` apiCallDateTime++instance Prelude.NFData LifeCycleLastTestFinalized where+  rnf LifeCycleLastTestFinalized' {..} =+    Prelude.rnf apiCallDateTime
+ gen/Amazonka/MGN/Types/LifeCycleLastTestInitiated.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.LifeCycleLastTestInitiated+-- 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.MGN.Types.LifeCycleLastTestInitiated 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++-- | Lifecycle last Test initiated.+--+-- /See:/ 'newLifeCycleLastTestInitiated' smart constructor.+data LifeCycleLastTestInitiated = LifeCycleLastTestInitiated'+  { -- | Lifecycle last Test initiated API call date and time.+    apiCallDateTime :: Prelude.Maybe Prelude.Text,+    -- | Lifecycle last Test initiated Job ID.+    jobID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastTestInitiated' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiCallDateTime', 'lifeCycleLastTestInitiated_apiCallDateTime' - Lifecycle last Test initiated API call date and time.+--+-- 'jobID', 'lifeCycleLastTestInitiated_jobID' - Lifecycle last Test initiated Job ID.+newLifeCycleLastTestInitiated ::+  LifeCycleLastTestInitiated+newLifeCycleLastTestInitiated =+  LifeCycleLastTestInitiated'+    { apiCallDateTime =+        Prelude.Nothing,+      jobID = Prelude.Nothing+    }++-- | Lifecycle last Test initiated API call date and time.+lifeCycleLastTestInitiated_apiCallDateTime :: Lens.Lens' LifeCycleLastTestInitiated (Prelude.Maybe Prelude.Text)+lifeCycleLastTestInitiated_apiCallDateTime = Lens.lens (\LifeCycleLastTestInitiated' {apiCallDateTime} -> apiCallDateTime) (\s@LifeCycleLastTestInitiated' {} a -> s {apiCallDateTime = a} :: LifeCycleLastTestInitiated)++-- | Lifecycle last Test initiated Job ID.+lifeCycleLastTestInitiated_jobID :: Lens.Lens' LifeCycleLastTestInitiated (Prelude.Maybe Prelude.Text)+lifeCycleLastTestInitiated_jobID = Lens.lens (\LifeCycleLastTestInitiated' {jobID} -> jobID) (\s@LifeCycleLastTestInitiated' {} a -> s {jobID = a} :: LifeCycleLastTestInitiated)++instance Data.FromJSON LifeCycleLastTestInitiated where+  parseJSON =+    Data.withObject+      "LifeCycleLastTestInitiated"+      ( \x ->+          LifeCycleLastTestInitiated'+            Prelude.<$> (x Data..:? "apiCallDateTime")+            Prelude.<*> (x Data..:? "jobID")+      )++instance Prelude.Hashable LifeCycleLastTestInitiated where+  hashWithSalt _salt LifeCycleLastTestInitiated' {..} =+    _salt+      `Prelude.hashWithSalt` apiCallDateTime+      `Prelude.hashWithSalt` jobID++instance Prelude.NFData LifeCycleLastTestInitiated where+  rnf LifeCycleLastTestInitiated' {..} =+    Prelude.rnf apiCallDateTime+      `Prelude.seq` Prelude.rnf jobID
+ gen/Amazonka/MGN/Types/LifeCycleLastTestReverted.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.LifeCycleLastTestReverted+-- 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.MGN.Types.LifeCycleLastTestReverted 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++-- | Lifecycle last Test reverted.+--+-- /See:/ 'newLifeCycleLastTestReverted' smart constructor.+data LifeCycleLastTestReverted = LifeCycleLastTestReverted'+  { -- | Lifecycle last Test reverted API call date and time.+    apiCallDateTime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LifeCycleLastTestReverted' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'apiCallDateTime', 'lifeCycleLastTestReverted_apiCallDateTime' - Lifecycle last Test reverted API call date and time.+newLifeCycleLastTestReverted ::+  LifeCycleLastTestReverted+newLifeCycleLastTestReverted =+  LifeCycleLastTestReverted'+    { apiCallDateTime =+        Prelude.Nothing+    }++-- | Lifecycle last Test reverted API call date and time.+lifeCycleLastTestReverted_apiCallDateTime :: Lens.Lens' LifeCycleLastTestReverted (Prelude.Maybe Prelude.Text)+lifeCycleLastTestReverted_apiCallDateTime = Lens.lens (\LifeCycleLastTestReverted' {apiCallDateTime} -> apiCallDateTime) (\s@LifeCycleLastTestReverted' {} a -> s {apiCallDateTime = a} :: LifeCycleLastTestReverted)++instance Data.FromJSON LifeCycleLastTestReverted where+  parseJSON =+    Data.withObject+      "LifeCycleLastTestReverted"+      ( \x ->+          LifeCycleLastTestReverted'+            Prelude.<$> (x Data..:? "apiCallDateTime")+      )++instance Prelude.Hashable LifeCycleLastTestReverted where+  hashWithSalt _salt LifeCycleLastTestReverted' {..} =+    _salt `Prelude.hashWithSalt` apiCallDateTime++instance Prelude.NFData LifeCycleLastTestReverted where+  rnf LifeCycleLastTestReverted' {..} =+    Prelude.rnf apiCallDateTime
+ gen/Amazonka/MGN/Types/LifeCycleState.hs view
@@ -0,0 +1,106 @@+{-# 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.MGN.Types.LifeCycleState+-- 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.MGN.Types.LifeCycleState+  ( LifeCycleState+      ( ..,+        LifeCycleState_CUTOVER,+        LifeCycleState_CUTTING_OVER,+        LifeCycleState_DISCONNECTED,+        LifeCycleState_DISCOVERED,+        LifeCycleState_NOT_READY,+        LifeCycleState_READY_FOR_CUTOVER,+        LifeCycleState_READY_FOR_TEST,+        LifeCycleState_STOPPED,+        LifeCycleState_TESTING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LifeCycleState = LifeCycleState'+  { fromLifeCycleState ::+      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 LifeCycleState_CUTOVER :: LifeCycleState+pattern LifeCycleState_CUTOVER = LifeCycleState' "CUTOVER"++pattern LifeCycleState_CUTTING_OVER :: LifeCycleState+pattern LifeCycleState_CUTTING_OVER = LifeCycleState' "CUTTING_OVER"++pattern LifeCycleState_DISCONNECTED :: LifeCycleState+pattern LifeCycleState_DISCONNECTED = LifeCycleState' "DISCONNECTED"++pattern LifeCycleState_DISCOVERED :: LifeCycleState+pattern LifeCycleState_DISCOVERED = LifeCycleState' "DISCOVERED"++pattern LifeCycleState_NOT_READY :: LifeCycleState+pattern LifeCycleState_NOT_READY = LifeCycleState' "NOT_READY"++pattern LifeCycleState_READY_FOR_CUTOVER :: LifeCycleState+pattern LifeCycleState_READY_FOR_CUTOVER = LifeCycleState' "READY_FOR_CUTOVER"++pattern LifeCycleState_READY_FOR_TEST :: LifeCycleState+pattern LifeCycleState_READY_FOR_TEST = LifeCycleState' "READY_FOR_TEST"++pattern LifeCycleState_STOPPED :: LifeCycleState+pattern LifeCycleState_STOPPED = LifeCycleState' "STOPPED"++pattern LifeCycleState_TESTING :: LifeCycleState+pattern LifeCycleState_TESTING = LifeCycleState' "TESTING"++{-# COMPLETE+  LifeCycleState_CUTOVER,+  LifeCycleState_CUTTING_OVER,+  LifeCycleState_DISCONNECTED,+  LifeCycleState_DISCOVERED,+  LifeCycleState_NOT_READY,+  LifeCycleState_READY_FOR_CUTOVER,+  LifeCycleState_READY_FOR_TEST,+  LifeCycleState_STOPPED,+  LifeCycleState_TESTING,+  LifeCycleState'+  #-}
+ gen/Amazonka/MGN/Types/ListApplicationsRequestFilters.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.ListApplicationsRequestFilters+-- 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.MGN.Types.ListApplicationsRequestFilters 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++-- | Applications list filters.+--+-- /See:/ 'newListApplicationsRequestFilters' smart constructor.+data ListApplicationsRequestFilters = ListApplicationsRequestFilters'+  { -- | Filter applications list by application ID.+    applicationIDs :: Prelude.Maybe [Prelude.Text],+    -- | Filter applications list by archival status.+    isArchived :: Prelude.Maybe Prelude.Bool,+    -- | Filter applications list by wave ID.+    waveIDs :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListApplicationsRequestFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationIDs', 'listApplicationsRequestFilters_applicationIDs' - Filter applications list by application ID.+--+-- 'isArchived', 'listApplicationsRequestFilters_isArchived' - Filter applications list by archival status.+--+-- 'waveIDs', 'listApplicationsRequestFilters_waveIDs' - Filter applications list by wave ID.+newListApplicationsRequestFilters ::+  ListApplicationsRequestFilters+newListApplicationsRequestFilters =+  ListApplicationsRequestFilters'+    { applicationIDs =+        Prelude.Nothing,+      isArchived = Prelude.Nothing,+      waveIDs = Prelude.Nothing+    }++-- | Filter applications list by application ID.+listApplicationsRequestFilters_applicationIDs :: Lens.Lens' ListApplicationsRequestFilters (Prelude.Maybe [Prelude.Text])+listApplicationsRequestFilters_applicationIDs = Lens.lens (\ListApplicationsRequestFilters' {applicationIDs} -> applicationIDs) (\s@ListApplicationsRequestFilters' {} a -> s {applicationIDs = a} :: ListApplicationsRequestFilters) Prelude.. Lens.mapping Lens.coerced++-- | Filter applications list by archival status.+listApplicationsRequestFilters_isArchived :: Lens.Lens' ListApplicationsRequestFilters (Prelude.Maybe Prelude.Bool)+listApplicationsRequestFilters_isArchived = Lens.lens (\ListApplicationsRequestFilters' {isArchived} -> isArchived) (\s@ListApplicationsRequestFilters' {} a -> s {isArchived = a} :: ListApplicationsRequestFilters)++-- | Filter applications list by wave ID.+listApplicationsRequestFilters_waveIDs :: Lens.Lens' ListApplicationsRequestFilters (Prelude.Maybe [Prelude.Text])+listApplicationsRequestFilters_waveIDs = Lens.lens (\ListApplicationsRequestFilters' {waveIDs} -> waveIDs) (\s@ListApplicationsRequestFilters' {} a -> s {waveIDs = a} :: ListApplicationsRequestFilters) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    ListApplicationsRequestFilters+  where+  hashWithSalt+    _salt+    ListApplicationsRequestFilters' {..} =+      _salt+        `Prelude.hashWithSalt` applicationIDs+        `Prelude.hashWithSalt` isArchived+        `Prelude.hashWithSalt` waveIDs++instance+  Prelude.NFData+    ListApplicationsRequestFilters+  where+  rnf ListApplicationsRequestFilters' {..} =+    Prelude.rnf applicationIDs+      `Prelude.seq` Prelude.rnf isArchived+      `Prelude.seq` Prelude.rnf waveIDs++instance Data.ToJSON ListApplicationsRequestFilters where+  toJSON ListApplicationsRequestFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("applicationIDs" Data..=)+              Prelude.<$> applicationIDs,+            ("isArchived" Data..=) Prelude.<$> isArchived,+            ("waveIDs" Data..=) Prelude.<$> waveIDs+          ]+      )
+ gen/Amazonka/MGN/Types/ListWavesRequestFilters.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.MGN.Types.ListWavesRequestFilters+-- 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.MGN.Types.ListWavesRequestFilters 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++-- | Waves list filters.+--+-- /See:/ 'newListWavesRequestFilters' smart constructor.+data ListWavesRequestFilters = ListWavesRequestFilters'+  { -- | Filter waves list by archival status.+    isArchived :: Prelude.Maybe Prelude.Bool,+    -- | Filter waves list by wave ID.+    waveIDs :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWavesRequestFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isArchived', 'listWavesRequestFilters_isArchived' - Filter waves list by archival status.+--+-- 'waveIDs', 'listWavesRequestFilters_waveIDs' - Filter waves list by wave ID.+newListWavesRequestFilters ::+  ListWavesRequestFilters+newListWavesRequestFilters =+  ListWavesRequestFilters'+    { isArchived =+        Prelude.Nothing,+      waveIDs = Prelude.Nothing+    }++-- | Filter waves list by archival status.+listWavesRequestFilters_isArchived :: Lens.Lens' ListWavesRequestFilters (Prelude.Maybe Prelude.Bool)+listWavesRequestFilters_isArchived = Lens.lens (\ListWavesRequestFilters' {isArchived} -> isArchived) (\s@ListWavesRequestFilters' {} a -> s {isArchived = a} :: ListWavesRequestFilters)++-- | Filter waves list by wave ID.+listWavesRequestFilters_waveIDs :: Lens.Lens' ListWavesRequestFilters (Prelude.Maybe [Prelude.Text])+listWavesRequestFilters_waveIDs = Lens.lens (\ListWavesRequestFilters' {waveIDs} -> waveIDs) (\s@ListWavesRequestFilters' {} a -> s {waveIDs = a} :: ListWavesRequestFilters) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ListWavesRequestFilters where+  hashWithSalt _salt ListWavesRequestFilters' {..} =+    _salt+      `Prelude.hashWithSalt` isArchived+      `Prelude.hashWithSalt` waveIDs++instance Prelude.NFData ListWavesRequestFilters where+  rnf ListWavesRequestFilters' {..} =+    Prelude.rnf isArchived+      `Prelude.seq` Prelude.rnf waveIDs++instance Data.ToJSON ListWavesRequestFilters where+  toJSON ListWavesRequestFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("isArchived" Data..=) Prelude.<$> isArchived,+            ("waveIDs" Data..=) Prelude.<$> waveIDs+          ]+      )
+ gen/Amazonka/MGN/Types/NetworkInterface.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.NetworkInterface+-- 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.MGN.Types.NetworkInterface 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++-- | Network interface.+--+-- /See:/ 'newNetworkInterface' smart constructor.+data NetworkInterface = NetworkInterface'+  { -- | Network interface IPs.+    ips :: Prelude.Maybe [Prelude.Text],+    -- | Network interface primary IP.+    isPrimary :: Prelude.Maybe Prelude.Bool,+    -- | Network interface Mac address.+    macAddress :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkInterface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ips', 'networkInterface_ips' - Network interface IPs.+--+-- 'isPrimary', 'networkInterface_isPrimary' - Network interface primary IP.+--+-- 'macAddress', 'networkInterface_macAddress' - Network interface Mac address.+newNetworkInterface ::+  NetworkInterface+newNetworkInterface =+  NetworkInterface'+    { ips = Prelude.Nothing,+      isPrimary = Prelude.Nothing,+      macAddress = Prelude.Nothing+    }++-- | Network interface IPs.+networkInterface_ips :: Lens.Lens' NetworkInterface (Prelude.Maybe [Prelude.Text])+networkInterface_ips = Lens.lens (\NetworkInterface' {ips} -> ips) (\s@NetworkInterface' {} a -> s {ips = a} :: NetworkInterface) Prelude.. Lens.mapping Lens.coerced++-- | Network interface primary IP.+networkInterface_isPrimary :: Lens.Lens' NetworkInterface (Prelude.Maybe Prelude.Bool)+networkInterface_isPrimary = Lens.lens (\NetworkInterface' {isPrimary} -> isPrimary) (\s@NetworkInterface' {} a -> s {isPrimary = a} :: NetworkInterface)++-- | Network interface Mac address.+networkInterface_macAddress :: Lens.Lens' NetworkInterface (Prelude.Maybe Prelude.Text)+networkInterface_macAddress = Lens.lens (\NetworkInterface' {macAddress} -> macAddress) (\s@NetworkInterface' {} a -> s {macAddress = a} :: NetworkInterface)++instance Data.FromJSON NetworkInterface where+  parseJSON =+    Data.withObject+      "NetworkInterface"+      ( \x ->+          NetworkInterface'+            Prelude.<$> (x Data..:? "ips" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "isPrimary")+            Prelude.<*> (x Data..:? "macAddress")+      )++instance Prelude.Hashable NetworkInterface where+  hashWithSalt _salt NetworkInterface' {..} =+    _salt+      `Prelude.hashWithSalt` ips+      `Prelude.hashWithSalt` isPrimary+      `Prelude.hashWithSalt` macAddress++instance Prelude.NFData NetworkInterface where+  rnf NetworkInterface' {..} =+    Prelude.rnf ips+      `Prelude.seq` Prelude.rnf isPrimary+      `Prelude.seq` Prelude.rnf macAddress
+ gen/Amazonka/MGN/Types/OS.hs view
@@ -0,0 +1,64 @@+{-# 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.MGN.Types.OS+-- 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.MGN.Types.OS 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++-- | Operating System.+--+-- /See:/ 'newOS' smart constructor.+data OS = OS'+  { -- | OS full string.+    fullString :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OS' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fullString', 'os_fullString' - OS full string.+newOS ::+  OS+newOS = OS' {fullString = Prelude.Nothing}++-- | OS full string.+os_fullString :: Lens.Lens' OS (Prelude.Maybe Prelude.Text)+os_fullString = Lens.lens (\OS' {fullString} -> fullString) (\s@OS' {} a -> s {fullString = a} :: OS)++instance Data.FromJSON OS where+  parseJSON =+    Data.withObject+      "OS"+      (\x -> OS' Prelude.<$> (x Data..:? "fullString"))++instance Prelude.Hashable OS where+  hashWithSalt _salt OS' {..} =+    _salt `Prelude.hashWithSalt` fullString++instance Prelude.NFData OS where+  rnf OS' {..} = Prelude.rnf fullString
+ gen/Amazonka/MGN/Types/ParticipatingServer.hs view
@@ -0,0 +1,113 @@+{-# 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.MGN.Types.ParticipatingServer+-- 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.MGN.Types.ParticipatingServer where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.LaunchStatus+import Amazonka.MGN.Types.PostLaunchActionsStatus+import qualified Amazonka.Prelude as Prelude++-- | Server participating in Job.+--+-- /See:/ 'newParticipatingServer' smart constructor.+data ParticipatingServer = ParticipatingServer'+  { -- | Participating server launch status.+    launchStatus :: Prelude.Maybe LaunchStatus,+    -- | Participating server\'s launched ec2 instance ID.+    launchedEc2InstanceID :: Prelude.Maybe Prelude.Text,+    -- | Participating server\'s Post Launch Actions Status.+    postLaunchActionsStatus :: Prelude.Maybe PostLaunchActionsStatus,+    -- | Participating server Source Server ID.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParticipatingServer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchStatus', 'participatingServer_launchStatus' - Participating server launch status.+--+-- 'launchedEc2InstanceID', 'participatingServer_launchedEc2InstanceID' - Participating server\'s launched ec2 instance ID.+--+-- 'postLaunchActionsStatus', 'participatingServer_postLaunchActionsStatus' - Participating server\'s Post Launch Actions Status.+--+-- 'sourceServerID', 'participatingServer_sourceServerID' - Participating server Source Server ID.+newParticipatingServer ::+  -- | 'sourceServerID'+  Prelude.Text ->+  ParticipatingServer+newParticipatingServer pSourceServerID_ =+  ParticipatingServer'+    { launchStatus =+        Prelude.Nothing,+      launchedEc2InstanceID = Prelude.Nothing,+      postLaunchActionsStatus = Prelude.Nothing,+      sourceServerID = pSourceServerID_+    }++-- | Participating server launch status.+participatingServer_launchStatus :: Lens.Lens' ParticipatingServer (Prelude.Maybe LaunchStatus)+participatingServer_launchStatus = Lens.lens (\ParticipatingServer' {launchStatus} -> launchStatus) (\s@ParticipatingServer' {} a -> s {launchStatus = a} :: ParticipatingServer)++-- | Participating server\'s launched ec2 instance ID.+participatingServer_launchedEc2InstanceID :: Lens.Lens' ParticipatingServer (Prelude.Maybe Prelude.Text)+participatingServer_launchedEc2InstanceID = Lens.lens (\ParticipatingServer' {launchedEc2InstanceID} -> launchedEc2InstanceID) (\s@ParticipatingServer' {} a -> s {launchedEc2InstanceID = a} :: ParticipatingServer)++-- | Participating server\'s Post Launch Actions Status.+participatingServer_postLaunchActionsStatus :: Lens.Lens' ParticipatingServer (Prelude.Maybe PostLaunchActionsStatus)+participatingServer_postLaunchActionsStatus = Lens.lens (\ParticipatingServer' {postLaunchActionsStatus} -> postLaunchActionsStatus) (\s@ParticipatingServer' {} a -> s {postLaunchActionsStatus = a} :: ParticipatingServer)++-- | Participating server Source Server ID.+participatingServer_sourceServerID :: Lens.Lens' ParticipatingServer Prelude.Text+participatingServer_sourceServerID = Lens.lens (\ParticipatingServer' {sourceServerID} -> sourceServerID) (\s@ParticipatingServer' {} a -> s {sourceServerID = a} :: ParticipatingServer)++instance Data.FromJSON ParticipatingServer where+  parseJSON =+    Data.withObject+      "ParticipatingServer"+      ( \x ->+          ParticipatingServer'+            Prelude.<$> (x Data..:? "launchStatus")+            Prelude.<*> (x Data..:? "launchedEc2InstanceID")+            Prelude.<*> (x Data..:? "postLaunchActionsStatus")+            Prelude.<*> (x Data..: "sourceServerID")+      )++instance Prelude.Hashable ParticipatingServer where+  hashWithSalt _salt ParticipatingServer' {..} =+    _salt+      `Prelude.hashWithSalt` launchStatus+      `Prelude.hashWithSalt` launchedEc2InstanceID+      `Prelude.hashWithSalt` postLaunchActionsStatus+      `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData ParticipatingServer where+  rnf ParticipatingServer' {..} =+    Prelude.rnf launchStatus+      `Prelude.seq` Prelude.rnf launchedEc2InstanceID+      `Prelude.seq` Prelude.rnf postLaunchActionsStatus+      `Prelude.seq` Prelude.rnf sourceServerID
+ gen/Amazonka/MGN/Types/PostLaunchActionExecutionStatus.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.MGN.Types.PostLaunchActionExecutionStatus+-- 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.MGN.Types.PostLaunchActionExecutionStatus+  ( PostLaunchActionExecutionStatus+      ( ..,+        PostLaunchActionExecutionStatus_FAILED,+        PostLaunchActionExecutionStatus_IN_PROGRESS,+        PostLaunchActionExecutionStatus_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PostLaunchActionExecutionStatus = PostLaunchActionExecutionStatus'+  { fromPostLaunchActionExecutionStatus ::+      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 PostLaunchActionExecutionStatus_FAILED :: PostLaunchActionExecutionStatus+pattern PostLaunchActionExecutionStatus_FAILED = PostLaunchActionExecutionStatus' "FAILED"++pattern PostLaunchActionExecutionStatus_IN_PROGRESS :: PostLaunchActionExecutionStatus+pattern PostLaunchActionExecutionStatus_IN_PROGRESS = PostLaunchActionExecutionStatus' "IN_PROGRESS"++pattern PostLaunchActionExecutionStatus_SUCCESS :: PostLaunchActionExecutionStatus+pattern PostLaunchActionExecutionStatus_SUCCESS = PostLaunchActionExecutionStatus' "SUCCESS"++{-# COMPLETE+  PostLaunchActionExecutionStatus_FAILED,+  PostLaunchActionExecutionStatus_IN_PROGRESS,+  PostLaunchActionExecutionStatus_SUCCESS,+  PostLaunchActionExecutionStatus'+  #-}
+ gen/Amazonka/MGN/Types/PostLaunchActions.hs view
@@ -0,0 +1,137 @@+{-# 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.MGN.Types.PostLaunchActions+-- 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.MGN.Types.PostLaunchActions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.PostLaunchActionsDeploymentType+import Amazonka.MGN.Types.SsmDocument+import qualified Amazonka.Prelude as Prelude++-- | Post Launch Actions to executed on the Test or Cutover instance.+--+-- /See:/ 'newPostLaunchActions' smart constructor.+data PostLaunchActions = PostLaunchActions'+  { -- | AWS Systems Manager Command\'s CloudWatch log group name.+    cloudWatchLogGroupName :: Prelude.Maybe Prelude.Text,+    -- | Deployment type in which AWS Systems Manager Documents will be executed.+    deployment :: Prelude.Maybe PostLaunchActionsDeploymentType,+    -- | AWS Systems Manager Command\'s logs S3 log bucket.+    s3LogBucket :: Prelude.Maybe Prelude.Text,+    -- | AWS Systems Manager Command\'s logs S3 output key prefix.+    s3OutputKeyPrefix :: Prelude.Maybe Prelude.Text,+    -- | AWS Systems Manager Documents.+    ssmDocuments :: Prelude.Maybe [SsmDocument]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PostLaunchActions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchLogGroupName', 'postLaunchActions_cloudWatchLogGroupName' - AWS Systems Manager Command\'s CloudWatch log group name.+--+-- 'deployment', 'postLaunchActions_deployment' - Deployment type in which AWS Systems Manager Documents will be executed.+--+-- 's3LogBucket', 'postLaunchActions_s3LogBucket' - AWS Systems Manager Command\'s logs S3 log bucket.+--+-- 's3OutputKeyPrefix', 'postLaunchActions_s3OutputKeyPrefix' - AWS Systems Manager Command\'s logs S3 output key prefix.+--+-- 'ssmDocuments', 'postLaunchActions_ssmDocuments' - AWS Systems Manager Documents.+newPostLaunchActions ::+  PostLaunchActions+newPostLaunchActions =+  PostLaunchActions'+    { cloudWatchLogGroupName =+        Prelude.Nothing,+      deployment = Prelude.Nothing,+      s3LogBucket = Prelude.Nothing,+      s3OutputKeyPrefix = Prelude.Nothing,+      ssmDocuments = Prelude.Nothing+    }++-- | AWS Systems Manager Command\'s CloudWatch log group name.+postLaunchActions_cloudWatchLogGroupName :: Lens.Lens' PostLaunchActions (Prelude.Maybe Prelude.Text)+postLaunchActions_cloudWatchLogGroupName = Lens.lens (\PostLaunchActions' {cloudWatchLogGroupName} -> cloudWatchLogGroupName) (\s@PostLaunchActions' {} a -> s {cloudWatchLogGroupName = a} :: PostLaunchActions)++-- | Deployment type in which AWS Systems Manager Documents will be executed.+postLaunchActions_deployment :: Lens.Lens' PostLaunchActions (Prelude.Maybe PostLaunchActionsDeploymentType)+postLaunchActions_deployment = Lens.lens (\PostLaunchActions' {deployment} -> deployment) (\s@PostLaunchActions' {} a -> s {deployment = a} :: PostLaunchActions)++-- | AWS Systems Manager Command\'s logs S3 log bucket.+postLaunchActions_s3LogBucket :: Lens.Lens' PostLaunchActions (Prelude.Maybe Prelude.Text)+postLaunchActions_s3LogBucket = Lens.lens (\PostLaunchActions' {s3LogBucket} -> s3LogBucket) (\s@PostLaunchActions' {} a -> s {s3LogBucket = a} :: PostLaunchActions)++-- | AWS Systems Manager Command\'s logs S3 output key prefix.+postLaunchActions_s3OutputKeyPrefix :: Lens.Lens' PostLaunchActions (Prelude.Maybe Prelude.Text)+postLaunchActions_s3OutputKeyPrefix = Lens.lens (\PostLaunchActions' {s3OutputKeyPrefix} -> s3OutputKeyPrefix) (\s@PostLaunchActions' {} a -> s {s3OutputKeyPrefix = a} :: PostLaunchActions)++-- | AWS Systems Manager Documents.+postLaunchActions_ssmDocuments :: Lens.Lens' PostLaunchActions (Prelude.Maybe [SsmDocument])+postLaunchActions_ssmDocuments = Lens.lens (\PostLaunchActions' {ssmDocuments} -> ssmDocuments) (\s@PostLaunchActions' {} a -> s {ssmDocuments = a} :: PostLaunchActions) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PostLaunchActions where+  parseJSON =+    Data.withObject+      "PostLaunchActions"+      ( \x ->+          PostLaunchActions'+            Prelude.<$> (x Data..:? "cloudWatchLogGroupName")+            Prelude.<*> (x Data..:? "deployment")+            Prelude.<*> (x Data..:? "s3LogBucket")+            Prelude.<*> (x Data..:? "s3OutputKeyPrefix")+            Prelude.<*> (x Data..:? "ssmDocuments" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable PostLaunchActions where+  hashWithSalt _salt PostLaunchActions' {..} =+    _salt+      `Prelude.hashWithSalt` cloudWatchLogGroupName+      `Prelude.hashWithSalt` deployment+      `Prelude.hashWithSalt` s3LogBucket+      `Prelude.hashWithSalt` s3OutputKeyPrefix+      `Prelude.hashWithSalt` ssmDocuments++instance Prelude.NFData PostLaunchActions where+  rnf PostLaunchActions' {..} =+    Prelude.rnf cloudWatchLogGroupName+      `Prelude.seq` Prelude.rnf deployment+      `Prelude.seq` Prelude.rnf s3LogBucket+      `Prelude.seq` Prelude.rnf s3OutputKeyPrefix+      `Prelude.seq` Prelude.rnf ssmDocuments++instance Data.ToJSON PostLaunchActions where+  toJSON PostLaunchActions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cloudWatchLogGroupName" Data..=)+              Prelude.<$> cloudWatchLogGroupName,+            ("deployment" Data..=) Prelude.<$> deployment,+            ("s3LogBucket" Data..=) Prelude.<$> s3LogBucket,+            ("s3OutputKeyPrefix" Data..=)+              Prelude.<$> s3OutputKeyPrefix,+            ("ssmDocuments" Data..=) Prelude.<$> ssmDocuments+          ]+      )
+ gen/Amazonka/MGN/Types/PostLaunchActionsDeploymentType.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.MGN.Types.PostLaunchActionsDeploymentType+-- 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.MGN.Types.PostLaunchActionsDeploymentType+  ( PostLaunchActionsDeploymentType+      ( ..,+        PostLaunchActionsDeploymentType_CUTOVER_ONLY,+        PostLaunchActionsDeploymentType_TEST_AND_CUTOVER,+        PostLaunchActionsDeploymentType_TEST_ONLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PostLaunchActionsDeploymentType = PostLaunchActionsDeploymentType'+  { fromPostLaunchActionsDeploymentType ::+      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 PostLaunchActionsDeploymentType_CUTOVER_ONLY :: PostLaunchActionsDeploymentType+pattern PostLaunchActionsDeploymentType_CUTOVER_ONLY = PostLaunchActionsDeploymentType' "CUTOVER_ONLY"++pattern PostLaunchActionsDeploymentType_TEST_AND_CUTOVER :: PostLaunchActionsDeploymentType+pattern PostLaunchActionsDeploymentType_TEST_AND_CUTOVER = PostLaunchActionsDeploymentType' "TEST_AND_CUTOVER"++pattern PostLaunchActionsDeploymentType_TEST_ONLY :: PostLaunchActionsDeploymentType+pattern PostLaunchActionsDeploymentType_TEST_ONLY = PostLaunchActionsDeploymentType' "TEST_ONLY"++{-# COMPLETE+  PostLaunchActionsDeploymentType_CUTOVER_ONLY,+  PostLaunchActionsDeploymentType_TEST_AND_CUTOVER,+  PostLaunchActionsDeploymentType_TEST_ONLY,+  PostLaunchActionsDeploymentType'+  #-}
+ gen/Amazonka/MGN/Types/PostLaunchActionsStatus.hs view
@@ -0,0 +1,93 @@+{-# 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.MGN.Types.PostLaunchActionsStatus+-- 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.MGN.Types.PostLaunchActionsStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.JobPostLaunchActionsLaunchStatus+import qualified Amazonka.Prelude as Prelude++-- | Status of the Post Launch Actions running on the Test or Cutover+-- instance.+--+-- /See:/ 'newPostLaunchActionsStatus' smart constructor.+data PostLaunchActionsStatus = PostLaunchActionsStatus'+  { -- | List of Post Launch Action status.+    postLaunchActionsLaunchStatusList :: Prelude.Maybe [JobPostLaunchActionsLaunchStatus],+    -- | Time where the AWS Systems Manager was detected as running on the Test+    -- or Cutover instance.+    ssmAgentDiscoveryDatetime :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PostLaunchActionsStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'postLaunchActionsLaunchStatusList', 'postLaunchActionsStatus_postLaunchActionsLaunchStatusList' - List of Post Launch Action status.+--+-- 'ssmAgentDiscoveryDatetime', 'postLaunchActionsStatus_ssmAgentDiscoveryDatetime' - Time where the AWS Systems Manager was detected as running on the Test+-- or Cutover instance.+newPostLaunchActionsStatus ::+  PostLaunchActionsStatus+newPostLaunchActionsStatus =+  PostLaunchActionsStatus'+    { postLaunchActionsLaunchStatusList =+        Prelude.Nothing,+      ssmAgentDiscoveryDatetime = Prelude.Nothing+    }++-- | List of Post Launch Action status.+postLaunchActionsStatus_postLaunchActionsLaunchStatusList :: Lens.Lens' PostLaunchActionsStatus (Prelude.Maybe [JobPostLaunchActionsLaunchStatus])+postLaunchActionsStatus_postLaunchActionsLaunchStatusList = Lens.lens (\PostLaunchActionsStatus' {postLaunchActionsLaunchStatusList} -> postLaunchActionsLaunchStatusList) (\s@PostLaunchActionsStatus' {} a -> s {postLaunchActionsLaunchStatusList = a} :: PostLaunchActionsStatus) Prelude.. Lens.mapping Lens.coerced++-- | Time where the AWS Systems Manager was detected as running on the Test+-- or Cutover instance.+postLaunchActionsStatus_ssmAgentDiscoveryDatetime :: Lens.Lens' PostLaunchActionsStatus (Prelude.Maybe Prelude.Text)+postLaunchActionsStatus_ssmAgentDiscoveryDatetime = Lens.lens (\PostLaunchActionsStatus' {ssmAgentDiscoveryDatetime} -> ssmAgentDiscoveryDatetime) (\s@PostLaunchActionsStatus' {} a -> s {ssmAgentDiscoveryDatetime = a} :: PostLaunchActionsStatus)++instance Data.FromJSON PostLaunchActionsStatus where+  parseJSON =+    Data.withObject+      "PostLaunchActionsStatus"+      ( \x ->+          PostLaunchActionsStatus'+            Prelude.<$> ( x+                            Data..:? "postLaunchActionsLaunchStatusList"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "ssmAgentDiscoveryDatetime")+      )++instance Prelude.Hashable PostLaunchActionsStatus where+  hashWithSalt _salt PostLaunchActionsStatus' {..} =+    _salt+      `Prelude.hashWithSalt` postLaunchActionsLaunchStatusList+      `Prelude.hashWithSalt` ssmAgentDiscoveryDatetime++instance Prelude.NFData PostLaunchActionsStatus where+  rnf PostLaunchActionsStatus' {..} =+    Prelude.rnf postLaunchActionsLaunchStatusList+      `Prelude.seq` Prelude.rnf ssmAgentDiscoveryDatetime
+ gen/Amazonka/MGN/Types/ReplicationConfiguration.hs view
@@ -0,0 +1,257 @@+{-# 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.MGN.Types.ReplicationConfiguration+-- 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.MGN.Types.ReplicationConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.ReplicationConfigurationDataPlaneRouting+import Amazonka.MGN.Types.ReplicationConfigurationDefaultLargeStagingDiskType+import Amazonka.MGN.Types.ReplicationConfigurationEbsEncryption+import Amazonka.MGN.Types.ReplicationConfigurationReplicatedDisk+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newReplicationConfiguration' smart constructor.+data ReplicationConfiguration = ReplicationConfiguration'+  { -- | Replication Configuration associate default Application Migration+    -- Service Security Group.+    associateDefaultSecurityGroup :: Prelude.Maybe Prelude.Bool,+    -- | Replication Configuration set bandwidth throttling.+    bandwidthThrottling :: Prelude.Maybe Prelude.Natural,+    -- | Replication Configuration create Public IP.+    createPublicIP :: Prelude.Maybe Prelude.Bool,+    -- | Replication Configuration data plane routing.+    dataPlaneRouting :: Prelude.Maybe ReplicationConfigurationDataPlaneRouting,+    -- | Replication Configuration use default large Staging Disks.+    defaultLargeStagingDiskType :: Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType,+    -- | Replication Configuration EBS encryption.+    ebsEncryption :: Prelude.Maybe ReplicationConfigurationEbsEncryption,+    -- | Replication Configuration EBS encryption key ARN.+    ebsEncryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration name.+    name :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration replicated disks.+    replicatedDisks :: Prelude.Maybe [ReplicationConfigurationReplicatedDisk],+    -- | Replication Configuration Replication Server instance type.+    replicationServerInstanceType :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration Replication Server Security Group IDs.+    replicationServersSecurityGroupsIDs :: Prelude.Maybe [Prelude.Text],+    -- | Replication Configuration Source Server ID.+    sourceServerID :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration Staging Area subnet ID.+    stagingAreaSubnetId :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration Staging Area tags.+    stagingAreaTags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Replication Configuration use Dedicated Replication Server.+    useDedicatedReplicationServer :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReplicationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associateDefaultSecurityGroup', 'replicationConfiguration_associateDefaultSecurityGroup' - Replication Configuration associate default Application Migration+-- Service Security Group.+--+-- 'bandwidthThrottling', 'replicationConfiguration_bandwidthThrottling' - Replication Configuration set bandwidth throttling.+--+-- 'createPublicIP', 'replicationConfiguration_createPublicIP' - Replication Configuration create Public IP.+--+-- 'dataPlaneRouting', 'replicationConfiguration_dataPlaneRouting' - Replication Configuration data plane routing.+--+-- 'defaultLargeStagingDiskType', 'replicationConfiguration_defaultLargeStagingDiskType' - Replication Configuration use default large Staging Disks.+--+-- 'ebsEncryption', 'replicationConfiguration_ebsEncryption' - Replication Configuration EBS encryption.+--+-- 'ebsEncryptionKeyArn', 'replicationConfiguration_ebsEncryptionKeyArn' - Replication Configuration EBS encryption key ARN.+--+-- 'name', 'replicationConfiguration_name' - Replication Configuration name.+--+-- 'replicatedDisks', 'replicationConfiguration_replicatedDisks' - Replication Configuration replicated disks.+--+-- 'replicationServerInstanceType', 'replicationConfiguration_replicationServerInstanceType' - Replication Configuration Replication Server instance type.+--+-- 'replicationServersSecurityGroupsIDs', 'replicationConfiguration_replicationServersSecurityGroupsIDs' - Replication Configuration Replication Server Security Group IDs.+--+-- 'sourceServerID', 'replicationConfiguration_sourceServerID' - Replication Configuration Source Server ID.+--+-- 'stagingAreaSubnetId', 'replicationConfiguration_stagingAreaSubnetId' - Replication Configuration Staging Area subnet ID.+--+-- 'stagingAreaTags', 'replicationConfiguration_stagingAreaTags' - Replication Configuration Staging Area tags.+--+-- 'useDedicatedReplicationServer', 'replicationConfiguration_useDedicatedReplicationServer' - Replication Configuration use Dedicated Replication Server.+newReplicationConfiguration ::+  ReplicationConfiguration+newReplicationConfiguration =+  ReplicationConfiguration'+    { associateDefaultSecurityGroup =+        Prelude.Nothing,+      bandwidthThrottling = Prelude.Nothing,+      createPublicIP = Prelude.Nothing,+      dataPlaneRouting = Prelude.Nothing,+      defaultLargeStagingDiskType = Prelude.Nothing,+      ebsEncryption = Prelude.Nothing,+      ebsEncryptionKeyArn = Prelude.Nothing,+      name = Prelude.Nothing,+      replicatedDisks = Prelude.Nothing,+      replicationServerInstanceType = Prelude.Nothing,+      replicationServersSecurityGroupsIDs =+        Prelude.Nothing,+      sourceServerID = Prelude.Nothing,+      stagingAreaSubnetId = Prelude.Nothing,+      stagingAreaTags = Prelude.Nothing,+      useDedicatedReplicationServer = Prelude.Nothing+    }++-- | Replication Configuration associate default Application Migration+-- Service Security Group.+replicationConfiguration_associateDefaultSecurityGroup :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Bool)+replicationConfiguration_associateDefaultSecurityGroup = Lens.lens (\ReplicationConfiguration' {associateDefaultSecurityGroup} -> associateDefaultSecurityGroup) (\s@ReplicationConfiguration' {} a -> s {associateDefaultSecurityGroup = a} :: ReplicationConfiguration)++-- | Replication Configuration set bandwidth throttling.+replicationConfiguration_bandwidthThrottling :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Natural)+replicationConfiguration_bandwidthThrottling = Lens.lens (\ReplicationConfiguration' {bandwidthThrottling} -> bandwidthThrottling) (\s@ReplicationConfiguration' {} a -> s {bandwidthThrottling = a} :: ReplicationConfiguration)++-- | Replication Configuration create Public IP.+replicationConfiguration_createPublicIP :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Bool)+replicationConfiguration_createPublicIP = Lens.lens (\ReplicationConfiguration' {createPublicIP} -> createPublicIP) (\s@ReplicationConfiguration' {} a -> s {createPublicIP = a} :: ReplicationConfiguration)++-- | Replication Configuration data plane routing.+replicationConfiguration_dataPlaneRouting :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe ReplicationConfigurationDataPlaneRouting)+replicationConfiguration_dataPlaneRouting = Lens.lens (\ReplicationConfiguration' {dataPlaneRouting} -> dataPlaneRouting) (\s@ReplicationConfiguration' {} a -> s {dataPlaneRouting = a} :: ReplicationConfiguration)++-- | Replication Configuration use default large Staging Disks.+replicationConfiguration_defaultLargeStagingDiskType :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType)+replicationConfiguration_defaultLargeStagingDiskType = Lens.lens (\ReplicationConfiguration' {defaultLargeStagingDiskType} -> defaultLargeStagingDiskType) (\s@ReplicationConfiguration' {} a -> s {defaultLargeStagingDiskType = a} :: ReplicationConfiguration)++-- | Replication Configuration EBS encryption.+replicationConfiguration_ebsEncryption :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe ReplicationConfigurationEbsEncryption)+replicationConfiguration_ebsEncryption = Lens.lens (\ReplicationConfiguration' {ebsEncryption} -> ebsEncryption) (\s@ReplicationConfiguration' {} a -> s {ebsEncryption = a} :: ReplicationConfiguration)++-- | Replication Configuration EBS encryption key ARN.+replicationConfiguration_ebsEncryptionKeyArn :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Text)+replicationConfiguration_ebsEncryptionKeyArn = Lens.lens (\ReplicationConfiguration' {ebsEncryptionKeyArn} -> ebsEncryptionKeyArn) (\s@ReplicationConfiguration' {} a -> s {ebsEncryptionKeyArn = a} :: ReplicationConfiguration)++-- | Replication Configuration name.+replicationConfiguration_name :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Text)+replicationConfiguration_name = Lens.lens (\ReplicationConfiguration' {name} -> name) (\s@ReplicationConfiguration' {} a -> s {name = a} :: ReplicationConfiguration)++-- | Replication Configuration replicated disks.+replicationConfiguration_replicatedDisks :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe [ReplicationConfigurationReplicatedDisk])+replicationConfiguration_replicatedDisks = Lens.lens (\ReplicationConfiguration' {replicatedDisks} -> replicatedDisks) (\s@ReplicationConfiguration' {} a -> s {replicatedDisks = a} :: ReplicationConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Replication Configuration Replication Server instance type.+replicationConfiguration_replicationServerInstanceType :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Text)+replicationConfiguration_replicationServerInstanceType = Lens.lens (\ReplicationConfiguration' {replicationServerInstanceType} -> replicationServerInstanceType) (\s@ReplicationConfiguration' {} a -> s {replicationServerInstanceType = a} :: ReplicationConfiguration)++-- | Replication Configuration Replication Server Security Group IDs.+replicationConfiguration_replicationServersSecurityGroupsIDs :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe [Prelude.Text])+replicationConfiguration_replicationServersSecurityGroupsIDs = Lens.lens (\ReplicationConfiguration' {replicationServersSecurityGroupsIDs} -> replicationServersSecurityGroupsIDs) (\s@ReplicationConfiguration' {} a -> s {replicationServersSecurityGroupsIDs = a} :: ReplicationConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Replication Configuration Source Server ID.+replicationConfiguration_sourceServerID :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Text)+replicationConfiguration_sourceServerID = Lens.lens (\ReplicationConfiguration' {sourceServerID} -> sourceServerID) (\s@ReplicationConfiguration' {} a -> s {sourceServerID = a} :: ReplicationConfiguration)++-- | Replication Configuration Staging Area subnet ID.+replicationConfiguration_stagingAreaSubnetId :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Text)+replicationConfiguration_stagingAreaSubnetId = Lens.lens (\ReplicationConfiguration' {stagingAreaSubnetId} -> stagingAreaSubnetId) (\s@ReplicationConfiguration' {} a -> s {stagingAreaSubnetId = a} :: ReplicationConfiguration)++-- | Replication Configuration Staging Area tags.+replicationConfiguration_stagingAreaTags :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+replicationConfiguration_stagingAreaTags = Lens.lens (\ReplicationConfiguration' {stagingAreaTags} -> stagingAreaTags) (\s@ReplicationConfiguration' {} a -> s {stagingAreaTags = a} :: ReplicationConfiguration) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Replication Configuration use Dedicated Replication Server.+replicationConfiguration_useDedicatedReplicationServer :: Lens.Lens' ReplicationConfiguration (Prelude.Maybe Prelude.Bool)+replicationConfiguration_useDedicatedReplicationServer = Lens.lens (\ReplicationConfiguration' {useDedicatedReplicationServer} -> useDedicatedReplicationServer) (\s@ReplicationConfiguration' {} a -> s {useDedicatedReplicationServer = a} :: ReplicationConfiguration)++instance Data.FromJSON ReplicationConfiguration where+  parseJSON =+    Data.withObject+      "ReplicationConfiguration"+      ( \x ->+          ReplicationConfiguration'+            Prelude.<$> (x Data..:? "associateDefaultSecurityGroup")+            Prelude.<*> (x Data..:? "bandwidthThrottling")+            Prelude.<*> (x Data..:? "createPublicIP")+            Prelude.<*> (x Data..:? "dataPlaneRouting")+            Prelude.<*> (x Data..:? "defaultLargeStagingDiskType")+            Prelude.<*> (x Data..:? "ebsEncryption")+            Prelude.<*> (x Data..:? "ebsEncryptionKeyArn")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> ( x+                            Data..:? "replicatedDisks"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "replicationServerInstanceType")+            Prelude.<*> ( x+                            Data..:? "replicationServersSecurityGroupsIDs"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "sourceServerID")+            Prelude.<*> (x Data..:? "stagingAreaSubnetId")+            Prelude.<*> ( x+                            Data..:? "stagingAreaTags"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "useDedicatedReplicationServer")+      )++instance Prelude.Hashable ReplicationConfiguration where+  hashWithSalt _salt ReplicationConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` associateDefaultSecurityGroup+      `Prelude.hashWithSalt` bandwidthThrottling+      `Prelude.hashWithSalt` createPublicIP+      `Prelude.hashWithSalt` dataPlaneRouting+      `Prelude.hashWithSalt` defaultLargeStagingDiskType+      `Prelude.hashWithSalt` ebsEncryption+      `Prelude.hashWithSalt` ebsEncryptionKeyArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` replicatedDisks+      `Prelude.hashWithSalt` replicationServerInstanceType+      `Prelude.hashWithSalt` replicationServersSecurityGroupsIDs+      `Prelude.hashWithSalt` sourceServerID+      `Prelude.hashWithSalt` stagingAreaSubnetId+      `Prelude.hashWithSalt` stagingAreaTags+      `Prelude.hashWithSalt` useDedicatedReplicationServer++instance Prelude.NFData ReplicationConfiguration where+  rnf ReplicationConfiguration' {..} =+    Prelude.rnf associateDefaultSecurityGroup+      `Prelude.seq` Prelude.rnf bandwidthThrottling+      `Prelude.seq` Prelude.rnf createPublicIP+      `Prelude.seq` Prelude.rnf dataPlaneRouting+      `Prelude.seq` Prelude.rnf defaultLargeStagingDiskType+      `Prelude.seq` Prelude.rnf ebsEncryption+      `Prelude.seq` Prelude.rnf ebsEncryptionKeyArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf replicatedDisks+      `Prelude.seq` Prelude.rnf replicationServerInstanceType+      `Prelude.seq` Prelude.rnf replicationServersSecurityGroupsIDs+      `Prelude.seq` Prelude.rnf sourceServerID+      `Prelude.seq` Prelude.rnf stagingAreaSubnetId+      `Prelude.seq` Prelude.rnf stagingAreaTags+      `Prelude.seq` Prelude.rnf+        useDedicatedReplicationServer
+ gen/Amazonka/MGN/Types/ReplicationConfigurationDataPlaneRouting.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.MGN.Types.ReplicationConfigurationDataPlaneRouting+-- 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.MGN.Types.ReplicationConfigurationDataPlaneRouting+  ( ReplicationConfigurationDataPlaneRouting+      ( ..,+        ReplicationConfigurationDataPlaneRouting_PRIVATE_IP,+        ReplicationConfigurationDataPlaneRouting_PUBLIC_IP+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReplicationConfigurationDataPlaneRouting = ReplicationConfigurationDataPlaneRouting'+  { fromReplicationConfigurationDataPlaneRouting ::+      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 ReplicationConfigurationDataPlaneRouting_PRIVATE_IP :: ReplicationConfigurationDataPlaneRouting+pattern ReplicationConfigurationDataPlaneRouting_PRIVATE_IP = ReplicationConfigurationDataPlaneRouting' "PRIVATE_IP"++pattern ReplicationConfigurationDataPlaneRouting_PUBLIC_IP :: ReplicationConfigurationDataPlaneRouting+pattern ReplicationConfigurationDataPlaneRouting_PUBLIC_IP = ReplicationConfigurationDataPlaneRouting' "PUBLIC_IP"++{-# COMPLETE+  ReplicationConfigurationDataPlaneRouting_PRIVATE_IP,+  ReplicationConfigurationDataPlaneRouting_PUBLIC_IP,+  ReplicationConfigurationDataPlaneRouting'+  #-}
+ gen/Amazonka/MGN/Types/ReplicationConfigurationDefaultLargeStagingDiskType.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.MGN.Types.ReplicationConfigurationDefaultLargeStagingDiskType+-- 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.MGN.Types.ReplicationConfigurationDefaultLargeStagingDiskType+  ( ReplicationConfigurationDefaultLargeStagingDiskType+      ( ..,+        ReplicationConfigurationDefaultLargeStagingDiskType_GP2,+        ReplicationConfigurationDefaultLargeStagingDiskType_GP3,+        ReplicationConfigurationDefaultLargeStagingDiskType_ST1+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReplicationConfigurationDefaultLargeStagingDiskType = ReplicationConfigurationDefaultLargeStagingDiskType'+  { fromReplicationConfigurationDefaultLargeStagingDiskType ::+      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 ReplicationConfigurationDefaultLargeStagingDiskType_GP2 :: ReplicationConfigurationDefaultLargeStagingDiskType+pattern ReplicationConfigurationDefaultLargeStagingDiskType_GP2 = ReplicationConfigurationDefaultLargeStagingDiskType' "GP2"++pattern ReplicationConfigurationDefaultLargeStagingDiskType_GP3 :: ReplicationConfigurationDefaultLargeStagingDiskType+pattern ReplicationConfigurationDefaultLargeStagingDiskType_GP3 = ReplicationConfigurationDefaultLargeStagingDiskType' "GP3"++pattern ReplicationConfigurationDefaultLargeStagingDiskType_ST1 :: ReplicationConfigurationDefaultLargeStagingDiskType+pattern ReplicationConfigurationDefaultLargeStagingDiskType_ST1 = ReplicationConfigurationDefaultLargeStagingDiskType' "ST1"++{-# COMPLETE+  ReplicationConfigurationDefaultLargeStagingDiskType_GP2,+  ReplicationConfigurationDefaultLargeStagingDiskType_GP3,+  ReplicationConfigurationDefaultLargeStagingDiskType_ST1,+  ReplicationConfigurationDefaultLargeStagingDiskType'+  #-}
+ gen/Amazonka/MGN/Types/ReplicationConfigurationEbsEncryption.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.MGN.Types.ReplicationConfigurationEbsEncryption+-- 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.MGN.Types.ReplicationConfigurationEbsEncryption+  ( ReplicationConfigurationEbsEncryption+      ( ..,+        ReplicationConfigurationEbsEncryption_CUSTOM,+        ReplicationConfigurationEbsEncryption_DEFAULT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReplicationConfigurationEbsEncryption = ReplicationConfigurationEbsEncryption'+  { fromReplicationConfigurationEbsEncryption ::+      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 ReplicationConfigurationEbsEncryption_CUSTOM :: ReplicationConfigurationEbsEncryption+pattern ReplicationConfigurationEbsEncryption_CUSTOM = ReplicationConfigurationEbsEncryption' "CUSTOM"++pattern ReplicationConfigurationEbsEncryption_DEFAULT :: ReplicationConfigurationEbsEncryption+pattern ReplicationConfigurationEbsEncryption_DEFAULT = ReplicationConfigurationEbsEncryption' "DEFAULT"++{-# COMPLETE+  ReplicationConfigurationEbsEncryption_CUSTOM,+  ReplicationConfigurationEbsEncryption_DEFAULT,+  ReplicationConfigurationEbsEncryption'+  #-}
+ gen/Amazonka/MGN/Types/ReplicationConfigurationReplicatedDisk.hs view
@@ -0,0 +1,149 @@+{-# 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.MGN.Types.ReplicationConfigurationReplicatedDisk+-- 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.MGN.Types.ReplicationConfigurationReplicatedDisk where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.ReplicationConfigurationReplicatedDiskStagingDiskType+import qualified Amazonka.Prelude as Prelude++-- | Replication Configuration replicated disk.+--+-- /See:/ 'newReplicationConfigurationReplicatedDisk' smart constructor.+data ReplicationConfigurationReplicatedDisk = ReplicationConfigurationReplicatedDisk'+  { -- | Replication Configuration replicated disk device name.+    deviceName :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration replicated disk IOPs.+    iops :: Prelude.Maybe Prelude.Natural,+    -- | Replication Configuration replicated disk boot disk.+    isBootDisk :: Prelude.Maybe Prelude.Bool,+    -- | Replication Configuration replicated disk staging disk type.+    stagingDiskType :: Prelude.Maybe ReplicationConfigurationReplicatedDiskStagingDiskType,+    -- | Replication Configuration replicated disk throughput.+    throughput :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReplicationConfigurationReplicatedDisk' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deviceName', 'replicationConfigurationReplicatedDisk_deviceName' - Replication Configuration replicated disk device name.+--+-- 'iops', 'replicationConfigurationReplicatedDisk_iops' - Replication Configuration replicated disk IOPs.+--+-- 'isBootDisk', 'replicationConfigurationReplicatedDisk_isBootDisk' - Replication Configuration replicated disk boot disk.+--+-- 'stagingDiskType', 'replicationConfigurationReplicatedDisk_stagingDiskType' - Replication Configuration replicated disk staging disk type.+--+-- 'throughput', 'replicationConfigurationReplicatedDisk_throughput' - Replication Configuration replicated disk throughput.+newReplicationConfigurationReplicatedDisk ::+  ReplicationConfigurationReplicatedDisk+newReplicationConfigurationReplicatedDisk =+  ReplicationConfigurationReplicatedDisk'+    { deviceName =+        Prelude.Nothing,+      iops = Prelude.Nothing,+      isBootDisk = Prelude.Nothing,+      stagingDiskType = Prelude.Nothing,+      throughput = Prelude.Nothing+    }++-- | Replication Configuration replicated disk device name.+replicationConfigurationReplicatedDisk_deviceName :: Lens.Lens' ReplicationConfigurationReplicatedDisk (Prelude.Maybe Prelude.Text)+replicationConfigurationReplicatedDisk_deviceName = Lens.lens (\ReplicationConfigurationReplicatedDisk' {deviceName} -> deviceName) (\s@ReplicationConfigurationReplicatedDisk' {} a -> s {deviceName = a} :: ReplicationConfigurationReplicatedDisk)++-- | Replication Configuration replicated disk IOPs.+replicationConfigurationReplicatedDisk_iops :: Lens.Lens' ReplicationConfigurationReplicatedDisk (Prelude.Maybe Prelude.Natural)+replicationConfigurationReplicatedDisk_iops = Lens.lens (\ReplicationConfigurationReplicatedDisk' {iops} -> iops) (\s@ReplicationConfigurationReplicatedDisk' {} a -> s {iops = a} :: ReplicationConfigurationReplicatedDisk)++-- | Replication Configuration replicated disk boot disk.+replicationConfigurationReplicatedDisk_isBootDisk :: Lens.Lens' ReplicationConfigurationReplicatedDisk (Prelude.Maybe Prelude.Bool)+replicationConfigurationReplicatedDisk_isBootDisk = Lens.lens (\ReplicationConfigurationReplicatedDisk' {isBootDisk} -> isBootDisk) (\s@ReplicationConfigurationReplicatedDisk' {} a -> s {isBootDisk = a} :: ReplicationConfigurationReplicatedDisk)++-- | Replication Configuration replicated disk staging disk type.+replicationConfigurationReplicatedDisk_stagingDiskType :: Lens.Lens' ReplicationConfigurationReplicatedDisk (Prelude.Maybe ReplicationConfigurationReplicatedDiskStagingDiskType)+replicationConfigurationReplicatedDisk_stagingDiskType = Lens.lens (\ReplicationConfigurationReplicatedDisk' {stagingDiskType} -> stagingDiskType) (\s@ReplicationConfigurationReplicatedDisk' {} a -> s {stagingDiskType = a} :: ReplicationConfigurationReplicatedDisk)++-- | Replication Configuration replicated disk throughput.+replicationConfigurationReplicatedDisk_throughput :: Lens.Lens' ReplicationConfigurationReplicatedDisk (Prelude.Maybe Prelude.Natural)+replicationConfigurationReplicatedDisk_throughput = Lens.lens (\ReplicationConfigurationReplicatedDisk' {throughput} -> throughput) (\s@ReplicationConfigurationReplicatedDisk' {} a -> s {throughput = a} :: ReplicationConfigurationReplicatedDisk)++instance+  Data.FromJSON+    ReplicationConfigurationReplicatedDisk+  where+  parseJSON =+    Data.withObject+      "ReplicationConfigurationReplicatedDisk"+      ( \x ->+          ReplicationConfigurationReplicatedDisk'+            Prelude.<$> (x Data..:? "deviceName")+            Prelude.<*> (x Data..:? "iops")+            Prelude.<*> (x Data..:? "isBootDisk")+            Prelude.<*> (x Data..:? "stagingDiskType")+            Prelude.<*> (x Data..:? "throughput")+      )++instance+  Prelude.Hashable+    ReplicationConfigurationReplicatedDisk+  where+  hashWithSalt+    _salt+    ReplicationConfigurationReplicatedDisk' {..} =+      _salt+        `Prelude.hashWithSalt` deviceName+        `Prelude.hashWithSalt` iops+        `Prelude.hashWithSalt` isBootDisk+        `Prelude.hashWithSalt` stagingDiskType+        `Prelude.hashWithSalt` throughput++instance+  Prelude.NFData+    ReplicationConfigurationReplicatedDisk+  where+  rnf ReplicationConfigurationReplicatedDisk' {..} =+    Prelude.rnf deviceName+      `Prelude.seq` Prelude.rnf iops+      `Prelude.seq` Prelude.rnf isBootDisk+      `Prelude.seq` Prelude.rnf stagingDiskType+      `Prelude.seq` Prelude.rnf throughput++instance+  Data.ToJSON+    ReplicationConfigurationReplicatedDisk+  where+  toJSON ReplicationConfigurationReplicatedDisk' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("deviceName" Data..=) Prelude.<$> deviceName,+            ("iops" Data..=) Prelude.<$> iops,+            ("isBootDisk" Data..=) Prelude.<$> isBootDisk,+            ("stagingDiskType" Data..=)+              Prelude.<$> stagingDiskType,+            ("throughput" Data..=) Prelude.<$> throughput+          ]+      )
+ gen/Amazonka/MGN/Types/ReplicationConfigurationReplicatedDiskStagingDiskType.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.MGN.Types.ReplicationConfigurationReplicatedDiskStagingDiskType+-- 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.MGN.Types.ReplicationConfigurationReplicatedDiskStagingDiskType+  ( ReplicationConfigurationReplicatedDiskStagingDiskType+      ( ..,+        ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO,+        ReplicationConfigurationReplicatedDiskStagingDiskType_GP2,+        ReplicationConfigurationReplicatedDiskStagingDiskType_GP3,+        ReplicationConfigurationReplicatedDiskStagingDiskType_IO1,+        ReplicationConfigurationReplicatedDiskStagingDiskType_IO2,+        ReplicationConfigurationReplicatedDiskStagingDiskType_SC1,+        ReplicationConfigurationReplicatedDiskStagingDiskType_ST1,+        ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReplicationConfigurationReplicatedDiskStagingDiskType = ReplicationConfigurationReplicatedDiskStagingDiskType'+  { fromReplicationConfigurationReplicatedDiskStagingDiskType ::+      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 ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO = ReplicationConfigurationReplicatedDiskStagingDiskType' "AUTO"++pattern ReplicationConfigurationReplicatedDiskStagingDiskType_GP2 :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_GP2 = ReplicationConfigurationReplicatedDiskStagingDiskType' "GP2"++pattern ReplicationConfigurationReplicatedDiskStagingDiskType_GP3 :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_GP3 = ReplicationConfigurationReplicatedDiskStagingDiskType' "GP3"++pattern ReplicationConfigurationReplicatedDiskStagingDiskType_IO1 :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_IO1 = ReplicationConfigurationReplicatedDiskStagingDiskType' "IO1"++pattern ReplicationConfigurationReplicatedDiskStagingDiskType_IO2 :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_IO2 = ReplicationConfigurationReplicatedDiskStagingDiskType' "IO2"++pattern ReplicationConfigurationReplicatedDiskStagingDiskType_SC1 :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_SC1 = ReplicationConfigurationReplicatedDiskStagingDiskType' "SC1"++pattern ReplicationConfigurationReplicatedDiskStagingDiskType_ST1 :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_ST1 = ReplicationConfigurationReplicatedDiskStagingDiskType' "ST1"++pattern ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD :: ReplicationConfigurationReplicatedDiskStagingDiskType+pattern ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD = ReplicationConfigurationReplicatedDiskStagingDiskType' "STANDARD"++{-# COMPLETE+  ReplicationConfigurationReplicatedDiskStagingDiskType_AUTO,+  ReplicationConfigurationReplicatedDiskStagingDiskType_GP2,+  ReplicationConfigurationReplicatedDiskStagingDiskType_GP3,+  ReplicationConfigurationReplicatedDiskStagingDiskType_IO1,+  ReplicationConfigurationReplicatedDiskStagingDiskType_IO2,+  ReplicationConfigurationReplicatedDiskStagingDiskType_SC1,+  ReplicationConfigurationReplicatedDiskStagingDiskType_ST1,+  ReplicationConfigurationReplicatedDiskStagingDiskType_STANDARD,+  ReplicationConfigurationReplicatedDiskStagingDiskType'+  #-}
+ gen/Amazonka/MGN/Types/ReplicationConfigurationTemplate.hs view
@@ -0,0 +1,272 @@+{-# 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.MGN.Types.ReplicationConfigurationTemplate+-- 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.MGN.Types.ReplicationConfigurationTemplate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.ReplicationConfigurationDataPlaneRouting+import Amazonka.MGN.Types.ReplicationConfigurationDefaultLargeStagingDiskType+import Amazonka.MGN.Types.ReplicationConfigurationEbsEncryption+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newReplicationConfigurationTemplate' smart constructor.+data ReplicationConfigurationTemplate = ReplicationConfigurationTemplate'+  { -- | Replication Configuration template ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration template associate default Application+    -- Migration Service Security group.+    associateDefaultSecurityGroup :: Prelude.Maybe Prelude.Bool,+    -- | Replication Configuration template bandwidth throttling.+    bandwidthThrottling :: Prelude.Maybe Prelude.Natural,+    -- | Replication Configuration template create Public IP.+    createPublicIP :: Prelude.Maybe Prelude.Bool,+    -- | Replication Configuration template data plane routing.+    dataPlaneRouting :: Prelude.Maybe ReplicationConfigurationDataPlaneRouting,+    -- | Replication Configuration template use default large Staging Disk type.+    defaultLargeStagingDiskType :: Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType,+    -- | Replication Configuration template EBS encryption.+    ebsEncryption :: Prelude.Maybe ReplicationConfigurationEbsEncryption,+    -- | Replication Configuration template EBS encryption key ARN.+    ebsEncryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration template server instance type.+    replicationServerInstanceType :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration template server Security Groups IDs.+    replicationServersSecurityGroupsIDs :: Prelude.Maybe [Prelude.Text],+    -- | Replication Configuration template Staging Area subnet ID.+    stagingAreaSubnetId :: Prelude.Maybe Prelude.Text,+    -- | Replication Configuration template Staging Area Tags.+    stagingAreaTags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Replication Configuration template Tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Replication Configuration template use Dedicated Replication Server.+    useDedicatedReplicationServer :: Prelude.Maybe Prelude.Bool,+    -- | Replication Configuration template ID.+    replicationConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReplicationConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'replicationConfigurationTemplate_arn' - Replication Configuration template ARN.+--+-- 'associateDefaultSecurityGroup', 'replicationConfigurationTemplate_associateDefaultSecurityGroup' - Replication Configuration template associate default Application+-- Migration Service Security group.+--+-- 'bandwidthThrottling', 'replicationConfigurationTemplate_bandwidthThrottling' - Replication Configuration template bandwidth throttling.+--+-- 'createPublicIP', 'replicationConfigurationTemplate_createPublicIP' - Replication Configuration template create Public IP.+--+-- 'dataPlaneRouting', 'replicationConfigurationTemplate_dataPlaneRouting' - Replication Configuration template data plane routing.+--+-- 'defaultLargeStagingDiskType', 'replicationConfigurationTemplate_defaultLargeStagingDiskType' - Replication Configuration template use default large Staging Disk type.+--+-- 'ebsEncryption', 'replicationConfigurationTemplate_ebsEncryption' - Replication Configuration template EBS encryption.+--+-- 'ebsEncryptionKeyArn', 'replicationConfigurationTemplate_ebsEncryptionKeyArn' - Replication Configuration template EBS encryption key ARN.+--+-- 'replicationServerInstanceType', 'replicationConfigurationTemplate_replicationServerInstanceType' - Replication Configuration template server instance type.+--+-- 'replicationServersSecurityGroupsIDs', 'replicationConfigurationTemplate_replicationServersSecurityGroupsIDs' - Replication Configuration template server Security Groups IDs.+--+-- 'stagingAreaSubnetId', 'replicationConfigurationTemplate_stagingAreaSubnetId' - Replication Configuration template Staging Area subnet ID.+--+-- 'stagingAreaTags', 'replicationConfigurationTemplate_stagingAreaTags' - Replication Configuration template Staging Area Tags.+--+-- 'tags', 'replicationConfigurationTemplate_tags' - Replication Configuration template Tags.+--+-- 'useDedicatedReplicationServer', 'replicationConfigurationTemplate_useDedicatedReplicationServer' - Replication Configuration template use Dedicated Replication Server.+--+-- 'replicationConfigurationTemplateID', 'replicationConfigurationTemplate_replicationConfigurationTemplateID' - Replication Configuration template ID.+newReplicationConfigurationTemplate ::+  -- | 'replicationConfigurationTemplateID'+  Prelude.Text ->+  ReplicationConfigurationTemplate+newReplicationConfigurationTemplate+  pReplicationConfigurationTemplateID_ =+    ReplicationConfigurationTemplate'+      { arn =+          Prelude.Nothing,+        associateDefaultSecurityGroup =+          Prelude.Nothing,+        bandwidthThrottling = Prelude.Nothing,+        createPublicIP = Prelude.Nothing,+        dataPlaneRouting = Prelude.Nothing,+        defaultLargeStagingDiskType =+          Prelude.Nothing,+        ebsEncryption = Prelude.Nothing,+        ebsEncryptionKeyArn = Prelude.Nothing,+        replicationServerInstanceType =+          Prelude.Nothing,+        replicationServersSecurityGroupsIDs =+          Prelude.Nothing,+        stagingAreaSubnetId = Prelude.Nothing,+        stagingAreaTags = Prelude.Nothing,+        tags = Prelude.Nothing,+        useDedicatedReplicationServer =+          Prelude.Nothing,+        replicationConfigurationTemplateID =+          pReplicationConfigurationTemplateID_+      }++-- | Replication Configuration template ARN.+replicationConfigurationTemplate_arn :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+replicationConfigurationTemplate_arn = Lens.lens (\ReplicationConfigurationTemplate' {arn} -> arn) (\s@ReplicationConfigurationTemplate' {} a -> s {arn = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template associate default Application+-- Migration Service Security group.+replicationConfigurationTemplate_associateDefaultSecurityGroup :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)+replicationConfigurationTemplate_associateDefaultSecurityGroup = Lens.lens (\ReplicationConfigurationTemplate' {associateDefaultSecurityGroup} -> associateDefaultSecurityGroup) (\s@ReplicationConfigurationTemplate' {} a -> s {associateDefaultSecurityGroup = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template bandwidth throttling.+replicationConfigurationTemplate_bandwidthThrottling :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Natural)+replicationConfigurationTemplate_bandwidthThrottling = Lens.lens (\ReplicationConfigurationTemplate' {bandwidthThrottling} -> bandwidthThrottling) (\s@ReplicationConfigurationTemplate' {} a -> s {bandwidthThrottling = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template create Public IP.+replicationConfigurationTemplate_createPublicIP :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)+replicationConfigurationTemplate_createPublicIP = Lens.lens (\ReplicationConfigurationTemplate' {createPublicIP} -> createPublicIP) (\s@ReplicationConfigurationTemplate' {} a -> s {createPublicIP = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template data plane routing.+replicationConfigurationTemplate_dataPlaneRouting :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationDataPlaneRouting)+replicationConfigurationTemplate_dataPlaneRouting = Lens.lens (\ReplicationConfigurationTemplate' {dataPlaneRouting} -> dataPlaneRouting) (\s@ReplicationConfigurationTemplate' {} a -> s {dataPlaneRouting = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template use default large Staging Disk type.+replicationConfigurationTemplate_defaultLargeStagingDiskType :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType)+replicationConfigurationTemplate_defaultLargeStagingDiskType = Lens.lens (\ReplicationConfigurationTemplate' {defaultLargeStagingDiskType} -> defaultLargeStagingDiskType) (\s@ReplicationConfigurationTemplate' {} a -> s {defaultLargeStagingDiskType = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template EBS encryption.+replicationConfigurationTemplate_ebsEncryption :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationEbsEncryption)+replicationConfigurationTemplate_ebsEncryption = Lens.lens (\ReplicationConfigurationTemplate' {ebsEncryption} -> ebsEncryption) (\s@ReplicationConfigurationTemplate' {} a -> s {ebsEncryption = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template EBS encryption key ARN.+replicationConfigurationTemplate_ebsEncryptionKeyArn :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+replicationConfigurationTemplate_ebsEncryptionKeyArn = Lens.lens (\ReplicationConfigurationTemplate' {ebsEncryptionKeyArn} -> ebsEncryptionKeyArn) (\s@ReplicationConfigurationTemplate' {} a -> s {ebsEncryptionKeyArn = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template server instance type.+replicationConfigurationTemplate_replicationServerInstanceType :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+replicationConfigurationTemplate_replicationServerInstanceType = Lens.lens (\ReplicationConfigurationTemplate' {replicationServerInstanceType} -> replicationServerInstanceType) (\s@ReplicationConfigurationTemplate' {} a -> s {replicationServerInstanceType = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template server Security Groups IDs.+replicationConfigurationTemplate_replicationServersSecurityGroupsIDs :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe [Prelude.Text])+replicationConfigurationTemplate_replicationServersSecurityGroupsIDs = Lens.lens (\ReplicationConfigurationTemplate' {replicationServersSecurityGroupsIDs} -> replicationServersSecurityGroupsIDs) (\s@ReplicationConfigurationTemplate' {} a -> s {replicationServersSecurityGroupsIDs = a} :: ReplicationConfigurationTemplate) Prelude.. Lens.mapping Lens.coerced++-- | Replication Configuration template Staging Area subnet ID.+replicationConfigurationTemplate_stagingAreaSubnetId :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+replicationConfigurationTemplate_stagingAreaSubnetId = Lens.lens (\ReplicationConfigurationTemplate' {stagingAreaSubnetId} -> stagingAreaSubnetId) (\s@ReplicationConfigurationTemplate' {} a -> s {stagingAreaSubnetId = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template Staging Area Tags.+replicationConfigurationTemplate_stagingAreaTags :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+replicationConfigurationTemplate_stagingAreaTags = Lens.lens (\ReplicationConfigurationTemplate' {stagingAreaTags} -> stagingAreaTags) (\s@ReplicationConfigurationTemplate' {} a -> s {stagingAreaTags = a} :: ReplicationConfigurationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Replication Configuration template Tags.+replicationConfigurationTemplate_tags :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+replicationConfigurationTemplate_tags = Lens.lens (\ReplicationConfigurationTemplate' {tags} -> tags) (\s@ReplicationConfigurationTemplate' {} a -> s {tags = a} :: ReplicationConfigurationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Replication Configuration template use Dedicated Replication Server.+replicationConfigurationTemplate_useDedicatedReplicationServer :: Lens.Lens' ReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)+replicationConfigurationTemplate_useDedicatedReplicationServer = Lens.lens (\ReplicationConfigurationTemplate' {useDedicatedReplicationServer} -> useDedicatedReplicationServer) (\s@ReplicationConfigurationTemplate' {} a -> s {useDedicatedReplicationServer = a} :: ReplicationConfigurationTemplate)++-- | Replication Configuration template ID.+replicationConfigurationTemplate_replicationConfigurationTemplateID :: Lens.Lens' ReplicationConfigurationTemplate Prelude.Text+replicationConfigurationTemplate_replicationConfigurationTemplateID = Lens.lens (\ReplicationConfigurationTemplate' {replicationConfigurationTemplateID} -> replicationConfigurationTemplateID) (\s@ReplicationConfigurationTemplate' {} a -> s {replicationConfigurationTemplateID = a} :: ReplicationConfigurationTemplate)++instance+  Data.FromJSON+    ReplicationConfigurationTemplate+  where+  parseJSON =+    Data.withObject+      "ReplicationConfigurationTemplate"+      ( \x ->+          ReplicationConfigurationTemplate'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "associateDefaultSecurityGroup")+            Prelude.<*> (x Data..:? "bandwidthThrottling")+            Prelude.<*> (x Data..:? "createPublicIP")+            Prelude.<*> (x Data..:? "dataPlaneRouting")+            Prelude.<*> (x Data..:? "defaultLargeStagingDiskType")+            Prelude.<*> (x Data..:? "ebsEncryption")+            Prelude.<*> (x Data..:? "ebsEncryptionKeyArn")+            Prelude.<*> (x Data..:? "replicationServerInstanceType")+            Prelude.<*> ( x+                            Data..:? "replicationServersSecurityGroupsIDs"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "stagingAreaSubnetId")+            Prelude.<*> ( x+                            Data..:? "stagingAreaTags"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "useDedicatedReplicationServer")+            Prelude.<*> (x Data..: "replicationConfigurationTemplateID")+      )++instance+  Prelude.Hashable+    ReplicationConfigurationTemplate+  where+  hashWithSalt+    _salt+    ReplicationConfigurationTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` arn+        `Prelude.hashWithSalt` associateDefaultSecurityGroup+        `Prelude.hashWithSalt` bandwidthThrottling+        `Prelude.hashWithSalt` createPublicIP+        `Prelude.hashWithSalt` dataPlaneRouting+        `Prelude.hashWithSalt` defaultLargeStagingDiskType+        `Prelude.hashWithSalt` ebsEncryption+        `Prelude.hashWithSalt` ebsEncryptionKeyArn+        `Prelude.hashWithSalt` replicationServerInstanceType+        `Prelude.hashWithSalt` replicationServersSecurityGroupsIDs+        `Prelude.hashWithSalt` stagingAreaSubnetId+        `Prelude.hashWithSalt` stagingAreaTags+        `Prelude.hashWithSalt` tags+        `Prelude.hashWithSalt` useDedicatedReplicationServer+        `Prelude.hashWithSalt` replicationConfigurationTemplateID++instance+  Prelude.NFData+    ReplicationConfigurationTemplate+  where+  rnf ReplicationConfigurationTemplate' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf associateDefaultSecurityGroup+      `Prelude.seq` Prelude.rnf bandwidthThrottling+      `Prelude.seq` Prelude.rnf createPublicIP+      `Prelude.seq` Prelude.rnf dataPlaneRouting+      `Prelude.seq` Prelude.rnf defaultLargeStagingDiskType+      `Prelude.seq` Prelude.rnf ebsEncryption+      `Prelude.seq` Prelude.rnf ebsEncryptionKeyArn+      `Prelude.seq` Prelude.rnf replicationServerInstanceType+      `Prelude.seq` Prelude.rnf replicationServersSecurityGroupsIDs+      `Prelude.seq` Prelude.rnf stagingAreaSubnetId+      `Prelude.seq` Prelude.rnf stagingAreaTags+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf useDedicatedReplicationServer+      `Prelude.seq` Prelude.rnf+        replicationConfigurationTemplateID
+ gen/Amazonka/MGN/Types/ReplicationType.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.MGN.Types.ReplicationType+-- 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.MGN.Types.ReplicationType+  ( ReplicationType+      ( ..,+        ReplicationType_AGENT_BASED,+        ReplicationType_SNAPSHOT_SHIPPING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReplicationType = ReplicationType'+  { fromReplicationType ::+      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 ReplicationType_AGENT_BASED :: ReplicationType+pattern ReplicationType_AGENT_BASED = ReplicationType' "AGENT_BASED"++pattern ReplicationType_SNAPSHOT_SHIPPING :: ReplicationType+pattern ReplicationType_SNAPSHOT_SHIPPING = ReplicationType' "SNAPSHOT_SHIPPING"++{-# COMPLETE+  ReplicationType_AGENT_BASED,+  ReplicationType_SNAPSHOT_SHIPPING,+  ReplicationType'+  #-}
+ gen/Amazonka/MGN/Types/SourceProperties.hs view
@@ -0,0 +1,164 @@+{-# 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.MGN.Types.SourceProperties+-- 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.MGN.Types.SourceProperties where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.CPU+import Amazonka.MGN.Types.Disk+import Amazonka.MGN.Types.IdentificationHints+import Amazonka.MGN.Types.NetworkInterface+import Amazonka.MGN.Types.OS+import qualified Amazonka.Prelude as Prelude++-- | Source server properties.+--+-- /See:/ 'newSourceProperties' smart constructor.+data SourceProperties = SourceProperties'+  { -- | Source Server CPUs.+    cpus :: Prelude.Maybe [CPU],+    -- | Source Server disks.+    disks :: Prelude.Maybe [Disk],+    -- | Source server identification hints.+    identificationHints :: Prelude.Maybe IdentificationHints,+    -- | Source server last update date and time.+    lastUpdatedDateTime :: Prelude.Maybe Prelude.Text,+    -- | Source server network interfaces.+    networkInterfaces :: Prelude.Maybe [NetworkInterface],+    -- | Source server OS.+    os :: Prelude.Maybe OS,+    -- | Source server RAM in bytes.+    ramBytes :: Prelude.Maybe Prelude.Natural,+    -- | Source server recommended instance type.+    recommendedInstanceType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cpus', 'sourceProperties_cpus' - Source Server CPUs.+--+-- 'disks', 'sourceProperties_disks' - Source Server disks.+--+-- 'identificationHints', 'sourceProperties_identificationHints' - Source server identification hints.+--+-- 'lastUpdatedDateTime', 'sourceProperties_lastUpdatedDateTime' - Source server last update date and time.+--+-- 'networkInterfaces', 'sourceProperties_networkInterfaces' - Source server network interfaces.+--+-- 'os', 'sourceProperties_os' - Source server OS.+--+-- 'ramBytes', 'sourceProperties_ramBytes' - Source server RAM in bytes.+--+-- 'recommendedInstanceType', 'sourceProperties_recommendedInstanceType' - Source server recommended instance type.+newSourceProperties ::+  SourceProperties+newSourceProperties =+  SourceProperties'+    { cpus = Prelude.Nothing,+      disks = Prelude.Nothing,+      identificationHints = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      networkInterfaces = Prelude.Nothing,+      os = Prelude.Nothing,+      ramBytes = Prelude.Nothing,+      recommendedInstanceType = Prelude.Nothing+    }++-- | Source Server CPUs.+sourceProperties_cpus :: Lens.Lens' SourceProperties (Prelude.Maybe [CPU])+sourceProperties_cpus = Lens.lens (\SourceProperties' {cpus} -> cpus) (\s@SourceProperties' {} a -> s {cpus = a} :: SourceProperties) Prelude.. Lens.mapping Lens.coerced++-- | Source Server disks.+sourceProperties_disks :: Lens.Lens' SourceProperties (Prelude.Maybe [Disk])+sourceProperties_disks = Lens.lens (\SourceProperties' {disks} -> disks) (\s@SourceProperties' {} a -> s {disks = a} :: SourceProperties) Prelude.. Lens.mapping Lens.coerced++-- | Source server identification hints.+sourceProperties_identificationHints :: Lens.Lens' SourceProperties (Prelude.Maybe IdentificationHints)+sourceProperties_identificationHints = Lens.lens (\SourceProperties' {identificationHints} -> identificationHints) (\s@SourceProperties' {} a -> s {identificationHints = a} :: SourceProperties)++-- | Source server last update date and time.+sourceProperties_lastUpdatedDateTime :: Lens.Lens' SourceProperties (Prelude.Maybe Prelude.Text)+sourceProperties_lastUpdatedDateTime = Lens.lens (\SourceProperties' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@SourceProperties' {} a -> s {lastUpdatedDateTime = a} :: SourceProperties)++-- | Source server network interfaces.+sourceProperties_networkInterfaces :: Lens.Lens' SourceProperties (Prelude.Maybe [NetworkInterface])+sourceProperties_networkInterfaces = Lens.lens (\SourceProperties' {networkInterfaces} -> networkInterfaces) (\s@SourceProperties' {} a -> s {networkInterfaces = a} :: SourceProperties) Prelude.. Lens.mapping Lens.coerced++-- | Source server OS.+sourceProperties_os :: Lens.Lens' SourceProperties (Prelude.Maybe OS)+sourceProperties_os = Lens.lens (\SourceProperties' {os} -> os) (\s@SourceProperties' {} a -> s {os = a} :: SourceProperties)++-- | Source server RAM in bytes.+sourceProperties_ramBytes :: Lens.Lens' SourceProperties (Prelude.Maybe Prelude.Natural)+sourceProperties_ramBytes = Lens.lens (\SourceProperties' {ramBytes} -> ramBytes) (\s@SourceProperties' {} a -> s {ramBytes = a} :: SourceProperties)++-- | Source server recommended instance type.+sourceProperties_recommendedInstanceType :: Lens.Lens' SourceProperties (Prelude.Maybe Prelude.Text)+sourceProperties_recommendedInstanceType = Lens.lens (\SourceProperties' {recommendedInstanceType} -> recommendedInstanceType) (\s@SourceProperties' {} a -> s {recommendedInstanceType = a} :: SourceProperties)++instance Data.FromJSON SourceProperties where+  parseJSON =+    Data.withObject+      "SourceProperties"+      ( \x ->+          SourceProperties'+            Prelude.<$> (x Data..:? "cpus" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "disks" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "identificationHints")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> ( x+                            Data..:? "networkInterfaces"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "os")+            Prelude.<*> (x Data..:? "ramBytes")+            Prelude.<*> (x Data..:? "recommendedInstanceType")+      )++instance Prelude.Hashable SourceProperties where+  hashWithSalt _salt SourceProperties' {..} =+    _salt+      `Prelude.hashWithSalt` cpus+      `Prelude.hashWithSalt` disks+      `Prelude.hashWithSalt` identificationHints+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` networkInterfaces+      `Prelude.hashWithSalt` os+      `Prelude.hashWithSalt` ramBytes+      `Prelude.hashWithSalt` recommendedInstanceType++instance Prelude.NFData SourceProperties where+  rnf SourceProperties' {..} =+    Prelude.rnf cpus+      `Prelude.seq` Prelude.rnf disks+      `Prelude.seq` Prelude.rnf identificationHints+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf networkInterfaces+      `Prelude.seq` Prelude.rnf os+      `Prelude.seq` Prelude.rnf ramBytes+      `Prelude.seq` Prelude.rnf recommendedInstanceType
+ gen/Amazonka/MGN/Types/SourceServer.hs view
@@ -0,0 +1,195 @@+{-# 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.MGN.Types.SourceServer+-- 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.MGN.Types.SourceServer where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.DataReplicationInfo+import Amazonka.MGN.Types.LaunchedInstance+import Amazonka.MGN.Types.LifeCycle+import Amazonka.MGN.Types.ReplicationType+import Amazonka.MGN.Types.SourceProperties+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newSourceServer' smart constructor.+data SourceServer = SourceServer'+  { -- | Source server application ID.+    applicationID :: Prelude.Maybe Prelude.Text,+    -- | Source server ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Source server data replication info.+    dataReplicationInfo :: Prelude.Maybe DataReplicationInfo,+    -- | Source server archived status.+    isArchived :: Prelude.Maybe Prelude.Bool,+    -- | Source server launched instance.+    launchedInstance :: Prelude.Maybe LaunchedInstance,+    -- | Source server lifecycle state.+    lifeCycle :: Prelude.Maybe LifeCycle,+    -- | Source server replication type.+    replicationType :: Prelude.Maybe ReplicationType,+    -- | Source server properties.+    sourceProperties :: Prelude.Maybe SourceProperties,+    -- | Source server ID.+    sourceServerID :: Prelude.Maybe Prelude.Text,+    -- | Source server Tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Source server vCenter client id.+    vcenterClientID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceServer' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationID', 'sourceServer_applicationID' - Source server application ID.+--+-- 'arn', 'sourceServer_arn' - Source server ARN.+--+-- 'dataReplicationInfo', 'sourceServer_dataReplicationInfo' - Source server data replication info.+--+-- 'isArchived', 'sourceServer_isArchived' - Source server archived status.+--+-- 'launchedInstance', 'sourceServer_launchedInstance' - Source server launched instance.+--+-- 'lifeCycle', 'sourceServer_lifeCycle' - Source server lifecycle state.+--+-- 'replicationType', 'sourceServer_replicationType' - Source server replication type.+--+-- 'sourceProperties', 'sourceServer_sourceProperties' - Source server properties.+--+-- 'sourceServerID', 'sourceServer_sourceServerID' - Source server ID.+--+-- 'tags', 'sourceServer_tags' - Source server Tags.+--+-- 'vcenterClientID', 'sourceServer_vcenterClientID' - Source server vCenter client id.+newSourceServer ::+  SourceServer+newSourceServer =+  SourceServer'+    { applicationID = Prelude.Nothing,+      arn = Prelude.Nothing,+      dataReplicationInfo = Prelude.Nothing,+      isArchived = Prelude.Nothing,+      launchedInstance = Prelude.Nothing,+      lifeCycle = Prelude.Nothing,+      replicationType = Prelude.Nothing,+      sourceProperties = Prelude.Nothing,+      sourceServerID = Prelude.Nothing,+      tags = Prelude.Nothing,+      vcenterClientID = Prelude.Nothing+    }++-- | Source server application ID.+sourceServer_applicationID :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)+sourceServer_applicationID = Lens.lens (\SourceServer' {applicationID} -> applicationID) (\s@SourceServer' {} a -> s {applicationID = a} :: SourceServer)++-- | Source server ARN.+sourceServer_arn :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)+sourceServer_arn = Lens.lens (\SourceServer' {arn} -> arn) (\s@SourceServer' {} a -> s {arn = a} :: SourceServer)++-- | Source server data replication info.+sourceServer_dataReplicationInfo :: Lens.Lens' SourceServer (Prelude.Maybe DataReplicationInfo)+sourceServer_dataReplicationInfo = Lens.lens (\SourceServer' {dataReplicationInfo} -> dataReplicationInfo) (\s@SourceServer' {} a -> s {dataReplicationInfo = a} :: SourceServer)++-- | Source server archived status.+sourceServer_isArchived :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Bool)+sourceServer_isArchived = Lens.lens (\SourceServer' {isArchived} -> isArchived) (\s@SourceServer' {} a -> s {isArchived = a} :: SourceServer)++-- | Source server launched instance.+sourceServer_launchedInstance :: Lens.Lens' SourceServer (Prelude.Maybe LaunchedInstance)+sourceServer_launchedInstance = Lens.lens (\SourceServer' {launchedInstance} -> launchedInstance) (\s@SourceServer' {} a -> s {launchedInstance = a} :: SourceServer)++-- | Source server lifecycle state.+sourceServer_lifeCycle :: Lens.Lens' SourceServer (Prelude.Maybe LifeCycle)+sourceServer_lifeCycle = Lens.lens (\SourceServer' {lifeCycle} -> lifeCycle) (\s@SourceServer' {} a -> s {lifeCycle = a} :: SourceServer)++-- | Source server replication type.+sourceServer_replicationType :: Lens.Lens' SourceServer (Prelude.Maybe ReplicationType)+sourceServer_replicationType = Lens.lens (\SourceServer' {replicationType} -> replicationType) (\s@SourceServer' {} a -> s {replicationType = a} :: SourceServer)++-- | Source server properties.+sourceServer_sourceProperties :: Lens.Lens' SourceServer (Prelude.Maybe SourceProperties)+sourceServer_sourceProperties = Lens.lens (\SourceServer' {sourceProperties} -> sourceProperties) (\s@SourceServer' {} a -> s {sourceProperties = a} :: SourceServer)++-- | Source server ID.+sourceServer_sourceServerID :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)+sourceServer_sourceServerID = Lens.lens (\SourceServer' {sourceServerID} -> sourceServerID) (\s@SourceServer' {} a -> s {sourceServerID = a} :: SourceServer)++-- | Source server Tags.+sourceServer_tags :: Lens.Lens' SourceServer (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+sourceServer_tags = Lens.lens (\SourceServer' {tags} -> tags) (\s@SourceServer' {} a -> s {tags = a} :: SourceServer) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Source server vCenter client id.+sourceServer_vcenterClientID :: Lens.Lens' SourceServer (Prelude.Maybe Prelude.Text)+sourceServer_vcenterClientID = Lens.lens (\SourceServer' {vcenterClientID} -> vcenterClientID) (\s@SourceServer' {} a -> s {vcenterClientID = a} :: SourceServer)++instance Data.FromJSON SourceServer where+  parseJSON =+    Data.withObject+      "SourceServer"+      ( \x ->+          SourceServer'+            Prelude.<$> (x Data..:? "applicationID")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "dataReplicationInfo")+            Prelude.<*> (x Data..:? "isArchived")+            Prelude.<*> (x Data..:? "launchedInstance")+            Prelude.<*> (x Data..:? "lifeCycle")+            Prelude.<*> (x Data..:? "replicationType")+            Prelude.<*> (x Data..:? "sourceProperties")+            Prelude.<*> (x Data..:? "sourceServerID")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "vcenterClientID")+      )++instance Prelude.Hashable SourceServer where+  hashWithSalt _salt SourceServer' {..} =+    _salt+      `Prelude.hashWithSalt` applicationID+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` dataReplicationInfo+      `Prelude.hashWithSalt` isArchived+      `Prelude.hashWithSalt` launchedInstance+      `Prelude.hashWithSalt` lifeCycle+      `Prelude.hashWithSalt` replicationType+      `Prelude.hashWithSalt` sourceProperties+      `Prelude.hashWithSalt` sourceServerID+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vcenterClientID++instance Prelude.NFData SourceServer where+  rnf SourceServer' {..} =+    Prelude.rnf applicationID+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf dataReplicationInfo+      `Prelude.seq` Prelude.rnf isArchived+      `Prelude.seq` Prelude.rnf launchedInstance+      `Prelude.seq` Prelude.rnf lifeCycle+      `Prelude.seq` Prelude.rnf replicationType+      `Prelude.seq` Prelude.rnf sourceProperties+      `Prelude.seq` Prelude.rnf sourceServerID+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vcenterClientID
+ gen/Amazonka/MGN/Types/SourceServerActionDocument.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.SourceServerActionDocument+-- 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.MGN.Types.SourceServerActionDocument where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.SsmParameterStoreParameter+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newSourceServerActionDocument' smart constructor.+data SourceServerActionDocument = SourceServerActionDocument'+  { -- | Source server post migration custom action ID.+    actionID :: Prelude.Maybe Prelude.Text,+    -- | Source server post migration custom action name.+    actionName :: Prelude.Maybe Prelude.Text,+    -- | Source server post migration custom action active status.+    active :: Prelude.Maybe Prelude.Bool,+    -- | Source server post migration custom action document identifier.+    documentIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Source server post migration custom action document version.+    documentVersion :: Prelude.Maybe Prelude.Text,+    -- | Source server post migration custom action must succeed for cutover.+    mustSucceedForCutover :: Prelude.Maybe Prelude.Bool,+    -- | Source server post migration custom action order.+    order :: Prelude.Maybe Prelude.Natural,+    -- | Source server post migration custom action parameters.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]),+    -- | Source server post migration custom action timeout in seconds.+    timeoutSeconds :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceServerActionDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionID', 'sourceServerActionDocument_actionID' - Source server post migration custom action ID.+--+-- 'actionName', 'sourceServerActionDocument_actionName' - Source server post migration custom action name.+--+-- 'active', 'sourceServerActionDocument_active' - Source server post migration custom action active status.+--+-- 'documentIdentifier', 'sourceServerActionDocument_documentIdentifier' - Source server post migration custom action document identifier.+--+-- 'documentVersion', 'sourceServerActionDocument_documentVersion' - Source server post migration custom action document version.+--+-- 'mustSucceedForCutover', 'sourceServerActionDocument_mustSucceedForCutover' - Source server post migration custom action must succeed for cutover.+--+-- 'order', 'sourceServerActionDocument_order' - Source server post migration custom action order.+--+-- 'parameters', 'sourceServerActionDocument_parameters' - Source server post migration custom action parameters.+--+-- 'timeoutSeconds', 'sourceServerActionDocument_timeoutSeconds' - Source server post migration custom action timeout in seconds.+newSourceServerActionDocument ::+  SourceServerActionDocument+newSourceServerActionDocument =+  SourceServerActionDocument'+    { actionID =+        Prelude.Nothing,+      actionName = Prelude.Nothing,+      active = Prelude.Nothing,+      documentIdentifier = Prelude.Nothing,+      documentVersion = Prelude.Nothing,+      mustSucceedForCutover = Prelude.Nothing,+      order = Prelude.Nothing,+      parameters = Prelude.Nothing,+      timeoutSeconds = Prelude.Nothing+    }++-- | Source server post migration custom action ID.+sourceServerActionDocument_actionID :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Text)+sourceServerActionDocument_actionID = Lens.lens (\SourceServerActionDocument' {actionID} -> actionID) (\s@SourceServerActionDocument' {} a -> s {actionID = a} :: SourceServerActionDocument)++-- | Source server post migration custom action name.+sourceServerActionDocument_actionName :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Text)+sourceServerActionDocument_actionName = Lens.lens (\SourceServerActionDocument' {actionName} -> actionName) (\s@SourceServerActionDocument' {} a -> s {actionName = a} :: SourceServerActionDocument)++-- | Source server post migration custom action active status.+sourceServerActionDocument_active :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Bool)+sourceServerActionDocument_active = Lens.lens (\SourceServerActionDocument' {active} -> active) (\s@SourceServerActionDocument' {} a -> s {active = a} :: SourceServerActionDocument)++-- | Source server post migration custom action document identifier.+sourceServerActionDocument_documentIdentifier :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Text)+sourceServerActionDocument_documentIdentifier = Lens.lens (\SourceServerActionDocument' {documentIdentifier} -> documentIdentifier) (\s@SourceServerActionDocument' {} a -> s {documentIdentifier = a} :: SourceServerActionDocument)++-- | Source server post migration custom action document version.+sourceServerActionDocument_documentVersion :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Text)+sourceServerActionDocument_documentVersion = Lens.lens (\SourceServerActionDocument' {documentVersion} -> documentVersion) (\s@SourceServerActionDocument' {} a -> s {documentVersion = a} :: SourceServerActionDocument)++-- | Source server post migration custom action must succeed for cutover.+sourceServerActionDocument_mustSucceedForCutover :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Bool)+sourceServerActionDocument_mustSucceedForCutover = Lens.lens (\SourceServerActionDocument' {mustSucceedForCutover} -> mustSucceedForCutover) (\s@SourceServerActionDocument' {} a -> s {mustSucceedForCutover = a} :: SourceServerActionDocument)++-- | Source server post migration custom action order.+sourceServerActionDocument_order :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Natural)+sourceServerActionDocument_order = Lens.lens (\SourceServerActionDocument' {order} -> order) (\s@SourceServerActionDocument' {} a -> s {order = a} :: SourceServerActionDocument)++-- | Source server post migration custom action parameters.+sourceServerActionDocument_parameters :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]))+sourceServerActionDocument_parameters = Lens.lens (\SourceServerActionDocument' {parameters} -> parameters) (\s@SourceServerActionDocument' {} a -> s {parameters = a} :: SourceServerActionDocument) Prelude.. Lens.mapping Lens.coerced++-- | Source server post migration custom action timeout in seconds.+sourceServerActionDocument_timeoutSeconds :: Lens.Lens' SourceServerActionDocument (Prelude.Maybe Prelude.Natural)+sourceServerActionDocument_timeoutSeconds = Lens.lens (\SourceServerActionDocument' {timeoutSeconds} -> timeoutSeconds) (\s@SourceServerActionDocument' {} a -> s {timeoutSeconds = a} :: SourceServerActionDocument)++instance Data.FromJSON SourceServerActionDocument where+  parseJSON =+    Data.withObject+      "SourceServerActionDocument"+      ( \x ->+          SourceServerActionDocument'+            Prelude.<$> (x Data..:? "actionID")+            Prelude.<*> (x Data..:? "actionName")+            Prelude.<*> (x Data..:? "active")+            Prelude.<*> (x Data..:? "documentIdentifier")+            Prelude.<*> (x Data..:? "documentVersion")+            Prelude.<*> (x Data..:? "mustSucceedForCutover")+            Prelude.<*> (x Data..:? "order")+            Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "timeoutSeconds")+      )++instance Prelude.Hashable SourceServerActionDocument where+  hashWithSalt _salt SourceServerActionDocument' {..} =+    _salt+      `Prelude.hashWithSalt` actionID+      `Prelude.hashWithSalt` actionName+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` documentIdentifier+      `Prelude.hashWithSalt` documentVersion+      `Prelude.hashWithSalt` mustSucceedForCutover+      `Prelude.hashWithSalt` order+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` timeoutSeconds++instance Prelude.NFData SourceServerActionDocument where+  rnf SourceServerActionDocument' {..} =+    Prelude.rnf actionID+      `Prelude.seq` Prelude.rnf actionName+      `Prelude.seq` Prelude.rnf active+      `Prelude.seq` Prelude.rnf documentIdentifier+      `Prelude.seq` Prelude.rnf documentVersion+      `Prelude.seq` Prelude.rnf mustSucceedForCutover+      `Prelude.seq` Prelude.rnf order+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf timeoutSeconds
+ gen/Amazonka/MGN/Types/SourceServerActionsRequestFilters.hs view
@@ -0,0 +1,81 @@+{-# 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.MGN.Types.SourceServerActionsRequestFilters+-- 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.MGN.Types.SourceServerActionsRequestFilters 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++-- | Source server post migration custom action filters.+--+-- /See:/ 'newSourceServerActionsRequestFilters' smart constructor.+data SourceServerActionsRequestFilters = SourceServerActionsRequestFilters'+  { -- | Action IDs to filter source server post migration custom actions by.+    actionIDs :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceServerActionsRequestFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionIDs', 'sourceServerActionsRequestFilters_actionIDs' - Action IDs to filter source server post migration custom actions by.+newSourceServerActionsRequestFilters ::+  SourceServerActionsRequestFilters+newSourceServerActionsRequestFilters =+  SourceServerActionsRequestFilters'+    { actionIDs =+        Prelude.Nothing+    }++-- | Action IDs to filter source server post migration custom actions by.+sourceServerActionsRequestFilters_actionIDs :: Lens.Lens' SourceServerActionsRequestFilters (Prelude.Maybe [Prelude.Text])+sourceServerActionsRequestFilters_actionIDs = Lens.lens (\SourceServerActionsRequestFilters' {actionIDs} -> actionIDs) (\s@SourceServerActionsRequestFilters' {} a -> s {actionIDs = a} :: SourceServerActionsRequestFilters) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    SourceServerActionsRequestFilters+  where+  hashWithSalt+    _salt+    SourceServerActionsRequestFilters' {..} =+      _salt `Prelude.hashWithSalt` actionIDs++instance+  Prelude.NFData+    SourceServerActionsRequestFilters+  where+  rnf SourceServerActionsRequestFilters' {..} =+    Prelude.rnf actionIDs++instance+  Data.ToJSON+    SourceServerActionsRequestFilters+  where+  toJSON SourceServerActionsRequestFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [("actionIDs" Data..=) Prelude.<$> actionIDs]+      )
+ gen/Amazonka/MGN/Types/SsmDocument.hs view
@@ -0,0 +1,141 @@+{-# 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.MGN.Types.SsmDocument+-- 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.MGN.Types.SsmDocument where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.SsmParameterStoreParameter+import qualified Amazonka.Prelude as Prelude++-- | AWS Systems Manager Document.+--+-- /See:/ 'newSsmDocument' smart constructor.+data SsmDocument = SsmDocument'+  { -- | If true, Cutover will not be enabled if the document has failed.+    mustSucceedForCutover :: Prelude.Maybe Prelude.Bool,+    -- | AWS Systems Manager Document parameters.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]),+    -- | AWS Systems Manager Document timeout seconds.+    timeoutSeconds :: Prelude.Maybe Prelude.Natural,+    -- | User-friendly name for the AWS Systems Manager Document.+    actionName :: Prelude.Text,+    -- | AWS Systems Manager Document name or full ARN.+    ssmDocumentName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SsmDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'mustSucceedForCutover', 'ssmDocument_mustSucceedForCutover' - If true, Cutover will not be enabled if the document has failed.+--+-- 'parameters', 'ssmDocument_parameters' - AWS Systems Manager Document parameters.+--+-- 'timeoutSeconds', 'ssmDocument_timeoutSeconds' - AWS Systems Manager Document timeout seconds.+--+-- 'actionName', 'ssmDocument_actionName' - User-friendly name for the AWS Systems Manager Document.+--+-- 'ssmDocumentName', 'ssmDocument_ssmDocumentName' - AWS Systems Manager Document name or full ARN.+newSsmDocument ::+  -- | 'actionName'+  Prelude.Text ->+  -- | 'ssmDocumentName'+  Prelude.Text ->+  SsmDocument+newSsmDocument pActionName_ pSsmDocumentName_ =+  SsmDocument'+    { mustSucceedForCutover =+        Prelude.Nothing,+      parameters = Prelude.Nothing,+      timeoutSeconds = Prelude.Nothing,+      actionName = pActionName_,+      ssmDocumentName = pSsmDocumentName_+    }++-- | If true, Cutover will not be enabled if the document has failed.+ssmDocument_mustSucceedForCutover :: Lens.Lens' SsmDocument (Prelude.Maybe Prelude.Bool)+ssmDocument_mustSucceedForCutover = Lens.lens (\SsmDocument' {mustSucceedForCutover} -> mustSucceedForCutover) (\s@SsmDocument' {} a -> s {mustSucceedForCutover = a} :: SsmDocument)++-- | AWS Systems Manager Document parameters.+ssmDocument_parameters :: Lens.Lens' SsmDocument (Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]))+ssmDocument_parameters = Lens.lens (\SsmDocument' {parameters} -> parameters) (\s@SsmDocument' {} a -> s {parameters = a} :: SsmDocument) Prelude.. Lens.mapping Lens.coerced++-- | AWS Systems Manager Document timeout seconds.+ssmDocument_timeoutSeconds :: Lens.Lens' SsmDocument (Prelude.Maybe Prelude.Natural)+ssmDocument_timeoutSeconds = Lens.lens (\SsmDocument' {timeoutSeconds} -> timeoutSeconds) (\s@SsmDocument' {} a -> s {timeoutSeconds = a} :: SsmDocument)++-- | User-friendly name for the AWS Systems Manager Document.+ssmDocument_actionName :: Lens.Lens' SsmDocument Prelude.Text+ssmDocument_actionName = Lens.lens (\SsmDocument' {actionName} -> actionName) (\s@SsmDocument' {} a -> s {actionName = a} :: SsmDocument)++-- | AWS Systems Manager Document name or full ARN.+ssmDocument_ssmDocumentName :: Lens.Lens' SsmDocument Prelude.Text+ssmDocument_ssmDocumentName = Lens.lens (\SsmDocument' {ssmDocumentName} -> ssmDocumentName) (\s@SsmDocument' {} a -> s {ssmDocumentName = a} :: SsmDocument)++instance Data.FromJSON SsmDocument where+  parseJSON =+    Data.withObject+      "SsmDocument"+      ( \x ->+          SsmDocument'+            Prelude.<$> (x Data..:? "mustSucceedForCutover")+            Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "timeoutSeconds")+            Prelude.<*> (x Data..: "actionName")+            Prelude.<*> (x Data..: "ssmDocumentName")+      )++instance Prelude.Hashable SsmDocument where+  hashWithSalt _salt SsmDocument' {..} =+    _salt+      `Prelude.hashWithSalt` mustSucceedForCutover+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` timeoutSeconds+      `Prelude.hashWithSalt` actionName+      `Prelude.hashWithSalt` ssmDocumentName++instance Prelude.NFData SsmDocument where+  rnf SsmDocument' {..} =+    Prelude.rnf mustSucceedForCutover+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf timeoutSeconds+      `Prelude.seq` Prelude.rnf actionName+      `Prelude.seq` Prelude.rnf ssmDocumentName++instance Data.ToJSON SsmDocument where+  toJSON SsmDocument' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("mustSucceedForCutover" Data..=)+              Prelude.<$> mustSucceedForCutover,+            ("parameters" Data..=) Prelude.<$> parameters,+            ("timeoutSeconds" Data..=)+              Prelude.<$> timeoutSeconds,+            Prelude.Just ("actionName" Data..= actionName),+            Prelude.Just+              ("ssmDocumentName" Data..= ssmDocumentName)+          ]+      )
+ gen/Amazonka/MGN/Types/SsmDocumentType.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.MGN.Types.SsmDocumentType+-- 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.MGN.Types.SsmDocumentType+  ( SsmDocumentType+      ( ..,+        SsmDocumentType_AUTOMATION,+        SsmDocumentType_COMMAND+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SsmDocumentType = SsmDocumentType'+  { fromSsmDocumentType ::+      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 SsmDocumentType_AUTOMATION :: SsmDocumentType+pattern SsmDocumentType_AUTOMATION = SsmDocumentType' "AUTOMATION"++pattern SsmDocumentType_COMMAND :: SsmDocumentType+pattern SsmDocumentType_COMMAND = SsmDocumentType' "COMMAND"++{-# COMPLETE+  SsmDocumentType_AUTOMATION,+  SsmDocumentType_COMMAND,+  SsmDocumentType'+  #-}
+ gen/Amazonka/MGN/Types/SsmParameterStoreParameter.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.SsmParameterStoreParameter+-- 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.MGN.Types.SsmParameterStoreParameter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.SsmParameterStoreParameterType+import qualified Amazonka.Prelude as Prelude++-- | AWS Systems Manager Parameter Store parameter.+--+-- /See:/ 'newSsmParameterStoreParameter' smart constructor.+data SsmParameterStoreParameter = SsmParameterStoreParameter'+  { -- | AWS Systems Manager Parameter Store parameter name.+    parameterName :: Prelude.Text,+    -- | AWS Systems Manager Parameter Store parameter type.+    parameterType :: SsmParameterStoreParameterType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SsmParameterStoreParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameterName', 'ssmParameterStoreParameter_parameterName' - AWS Systems Manager Parameter Store parameter name.+--+-- 'parameterType', 'ssmParameterStoreParameter_parameterType' - AWS Systems Manager Parameter Store parameter type.+newSsmParameterStoreParameter ::+  -- | 'parameterName'+  Prelude.Text ->+  -- | 'parameterType'+  SsmParameterStoreParameterType ->+  SsmParameterStoreParameter+newSsmParameterStoreParameter+  pParameterName_+  pParameterType_ =+    SsmParameterStoreParameter'+      { parameterName =+          pParameterName_,+        parameterType = pParameterType_+      }++-- | AWS Systems Manager Parameter Store parameter name.+ssmParameterStoreParameter_parameterName :: Lens.Lens' SsmParameterStoreParameter Prelude.Text+ssmParameterStoreParameter_parameterName = Lens.lens (\SsmParameterStoreParameter' {parameterName} -> parameterName) (\s@SsmParameterStoreParameter' {} a -> s {parameterName = a} :: SsmParameterStoreParameter)++-- | AWS Systems Manager Parameter Store parameter type.+ssmParameterStoreParameter_parameterType :: Lens.Lens' SsmParameterStoreParameter SsmParameterStoreParameterType+ssmParameterStoreParameter_parameterType = Lens.lens (\SsmParameterStoreParameter' {parameterType} -> parameterType) (\s@SsmParameterStoreParameter' {} a -> s {parameterType = a} :: SsmParameterStoreParameter)++instance Data.FromJSON SsmParameterStoreParameter where+  parseJSON =+    Data.withObject+      "SsmParameterStoreParameter"+      ( \x ->+          SsmParameterStoreParameter'+            Prelude.<$> (x Data..: "parameterName")+            Prelude.<*> (x Data..: "parameterType")+      )++instance Prelude.Hashable SsmParameterStoreParameter where+  hashWithSalt _salt SsmParameterStoreParameter' {..} =+    _salt+      `Prelude.hashWithSalt` parameterName+      `Prelude.hashWithSalt` parameterType++instance Prelude.NFData SsmParameterStoreParameter where+  rnf SsmParameterStoreParameter' {..} =+    Prelude.rnf parameterName+      `Prelude.seq` Prelude.rnf parameterType++instance Data.ToJSON SsmParameterStoreParameter where+  toJSON SsmParameterStoreParameter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("parameterName" Data..= parameterName),+            Prelude.Just+              ("parameterType" Data..= parameterType)+          ]+      )
+ gen/Amazonka/MGN/Types/SsmParameterStoreParameterType.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.MGN.Types.SsmParameterStoreParameterType+-- 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.MGN.Types.SsmParameterStoreParameterType+  ( SsmParameterStoreParameterType+      ( ..,+        SsmParameterStoreParameterType_STRING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SsmParameterStoreParameterType = SsmParameterStoreParameterType'+  { fromSsmParameterStoreParameterType ::+      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 SsmParameterStoreParameterType_STRING :: SsmParameterStoreParameterType+pattern SsmParameterStoreParameterType_STRING = SsmParameterStoreParameterType' "STRING"++{-# COMPLETE+  SsmParameterStoreParameterType_STRING,+  SsmParameterStoreParameterType'+  #-}
+ gen/Amazonka/MGN/Types/TargetInstanceTypeRightSizingMethod.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.MGN.Types.TargetInstanceTypeRightSizingMethod+-- 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.MGN.Types.TargetInstanceTypeRightSizingMethod+  ( TargetInstanceTypeRightSizingMethod+      ( ..,+        TargetInstanceTypeRightSizingMethod_BASIC,+        TargetInstanceTypeRightSizingMethod_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TargetInstanceTypeRightSizingMethod = TargetInstanceTypeRightSizingMethod'+  { fromTargetInstanceTypeRightSizingMethod ::+      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 TargetInstanceTypeRightSizingMethod_BASIC :: TargetInstanceTypeRightSizingMethod+pattern TargetInstanceTypeRightSizingMethod_BASIC = TargetInstanceTypeRightSizingMethod' "BASIC"++pattern TargetInstanceTypeRightSizingMethod_NONE :: TargetInstanceTypeRightSizingMethod+pattern TargetInstanceTypeRightSizingMethod_NONE = TargetInstanceTypeRightSizingMethod' "NONE"++{-# COMPLETE+  TargetInstanceTypeRightSizingMethod_BASIC,+  TargetInstanceTypeRightSizingMethod_NONE,+  TargetInstanceTypeRightSizingMethod'+  #-}
+ gen/Amazonka/MGN/Types/TemplateActionDocument.hs view
@@ -0,0 +1,182 @@+{-# 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.MGN.Types.TemplateActionDocument+-- 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.MGN.Types.TemplateActionDocument where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.SsmParameterStoreParameter+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newTemplateActionDocument' smart constructor.+data TemplateActionDocument = TemplateActionDocument'+  { -- | Template post migration custom action ID.+    actionID :: Prelude.Maybe Prelude.Text,+    -- | Template post migration custom action name.+    actionName :: Prelude.Maybe Prelude.Text,+    -- | Template post migration custom action active status.+    active :: Prelude.Maybe Prelude.Bool,+    -- | Template post migration custom action document identifier.+    documentIdentifier :: Prelude.Maybe Prelude.Text,+    -- | Template post migration custom action document version.+    documentVersion :: Prelude.Maybe Prelude.Text,+    -- | Template post migration custom action must succeed for cutover.+    mustSucceedForCutover :: Prelude.Maybe Prelude.Bool,+    -- | Operating system eligible for this template post migration custom+    -- action.+    operatingSystem :: Prelude.Maybe Prelude.Text,+    -- | Template post migration custom action order.+    order :: Prelude.Maybe Prelude.Natural,+    -- | Template post migration custom action parameters.+    parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]),+    -- | Template post migration custom action timeout in seconds.+    timeoutSeconds :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TemplateActionDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionID', 'templateActionDocument_actionID' - Template post migration custom action ID.+--+-- 'actionName', 'templateActionDocument_actionName' - Template post migration custom action name.+--+-- 'active', 'templateActionDocument_active' - Template post migration custom action active status.+--+-- 'documentIdentifier', 'templateActionDocument_documentIdentifier' - Template post migration custom action document identifier.+--+-- 'documentVersion', 'templateActionDocument_documentVersion' - Template post migration custom action document version.+--+-- 'mustSucceedForCutover', 'templateActionDocument_mustSucceedForCutover' - Template post migration custom action must succeed for cutover.+--+-- 'operatingSystem', 'templateActionDocument_operatingSystem' - Operating system eligible for this template post migration custom+-- action.+--+-- 'order', 'templateActionDocument_order' - Template post migration custom action order.+--+-- 'parameters', 'templateActionDocument_parameters' - Template post migration custom action parameters.+--+-- 'timeoutSeconds', 'templateActionDocument_timeoutSeconds' - Template post migration custom action timeout in seconds.+newTemplateActionDocument ::+  TemplateActionDocument+newTemplateActionDocument =+  TemplateActionDocument'+    { actionID = Prelude.Nothing,+      actionName = Prelude.Nothing,+      active = Prelude.Nothing,+      documentIdentifier = Prelude.Nothing,+      documentVersion = Prelude.Nothing,+      mustSucceedForCutover = Prelude.Nothing,+      operatingSystem = Prelude.Nothing,+      order = Prelude.Nothing,+      parameters = Prelude.Nothing,+      timeoutSeconds = Prelude.Nothing+    }++-- | Template post migration custom action ID.+templateActionDocument_actionID :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Text)+templateActionDocument_actionID = Lens.lens (\TemplateActionDocument' {actionID} -> actionID) (\s@TemplateActionDocument' {} a -> s {actionID = a} :: TemplateActionDocument)++-- | Template post migration custom action name.+templateActionDocument_actionName :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Text)+templateActionDocument_actionName = Lens.lens (\TemplateActionDocument' {actionName} -> actionName) (\s@TemplateActionDocument' {} a -> s {actionName = a} :: TemplateActionDocument)++-- | Template post migration custom action active status.+templateActionDocument_active :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Bool)+templateActionDocument_active = Lens.lens (\TemplateActionDocument' {active} -> active) (\s@TemplateActionDocument' {} a -> s {active = a} :: TemplateActionDocument)++-- | Template post migration custom action document identifier.+templateActionDocument_documentIdentifier :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Text)+templateActionDocument_documentIdentifier = Lens.lens (\TemplateActionDocument' {documentIdentifier} -> documentIdentifier) (\s@TemplateActionDocument' {} a -> s {documentIdentifier = a} :: TemplateActionDocument)++-- | Template post migration custom action document version.+templateActionDocument_documentVersion :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Text)+templateActionDocument_documentVersion = Lens.lens (\TemplateActionDocument' {documentVersion} -> documentVersion) (\s@TemplateActionDocument' {} a -> s {documentVersion = a} :: TemplateActionDocument)++-- | Template post migration custom action must succeed for cutover.+templateActionDocument_mustSucceedForCutover :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Bool)+templateActionDocument_mustSucceedForCutover = Lens.lens (\TemplateActionDocument' {mustSucceedForCutover} -> mustSucceedForCutover) (\s@TemplateActionDocument' {} a -> s {mustSucceedForCutover = a} :: TemplateActionDocument)++-- | Operating system eligible for this template post migration custom+-- action.+templateActionDocument_operatingSystem :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Text)+templateActionDocument_operatingSystem = Lens.lens (\TemplateActionDocument' {operatingSystem} -> operatingSystem) (\s@TemplateActionDocument' {} a -> s {operatingSystem = a} :: TemplateActionDocument)++-- | Template post migration custom action order.+templateActionDocument_order :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Natural)+templateActionDocument_order = Lens.lens (\TemplateActionDocument' {order} -> order) (\s@TemplateActionDocument' {} a -> s {order = a} :: TemplateActionDocument)++-- | Template post migration custom action parameters.+templateActionDocument_parameters :: Lens.Lens' TemplateActionDocument (Prelude.Maybe (Prelude.HashMap Prelude.Text [SsmParameterStoreParameter]))+templateActionDocument_parameters = Lens.lens (\TemplateActionDocument' {parameters} -> parameters) (\s@TemplateActionDocument' {} a -> s {parameters = a} :: TemplateActionDocument) Prelude.. Lens.mapping Lens.coerced++-- | Template post migration custom action timeout in seconds.+templateActionDocument_timeoutSeconds :: Lens.Lens' TemplateActionDocument (Prelude.Maybe Prelude.Natural)+templateActionDocument_timeoutSeconds = Lens.lens (\TemplateActionDocument' {timeoutSeconds} -> timeoutSeconds) (\s@TemplateActionDocument' {} a -> s {timeoutSeconds = a} :: TemplateActionDocument)++instance Data.FromJSON TemplateActionDocument where+  parseJSON =+    Data.withObject+      "TemplateActionDocument"+      ( \x ->+          TemplateActionDocument'+            Prelude.<$> (x Data..:? "actionID")+            Prelude.<*> (x Data..:? "actionName")+            Prelude.<*> (x Data..:? "active")+            Prelude.<*> (x Data..:? "documentIdentifier")+            Prelude.<*> (x Data..:? "documentVersion")+            Prelude.<*> (x Data..:? "mustSucceedForCutover")+            Prelude.<*> (x Data..:? "operatingSystem")+            Prelude.<*> (x Data..:? "order")+            Prelude.<*> (x Data..:? "parameters" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "timeoutSeconds")+      )++instance Prelude.Hashable TemplateActionDocument where+  hashWithSalt _salt TemplateActionDocument' {..} =+    _salt+      `Prelude.hashWithSalt` actionID+      `Prelude.hashWithSalt` actionName+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` documentIdentifier+      `Prelude.hashWithSalt` documentVersion+      `Prelude.hashWithSalt` mustSucceedForCutover+      `Prelude.hashWithSalt` operatingSystem+      `Prelude.hashWithSalt` order+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` timeoutSeconds++instance Prelude.NFData TemplateActionDocument where+  rnf TemplateActionDocument' {..} =+    Prelude.rnf actionID+      `Prelude.seq` Prelude.rnf actionName+      `Prelude.seq` Prelude.rnf active+      `Prelude.seq` Prelude.rnf documentIdentifier+      `Prelude.seq` Prelude.rnf documentVersion+      `Prelude.seq` Prelude.rnf mustSucceedForCutover+      `Prelude.seq` Prelude.rnf operatingSystem+      `Prelude.seq` Prelude.rnf order+      `Prelude.seq` Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf timeoutSeconds
+ gen/Amazonka/MGN/Types/TemplateActionsRequestFilters.hs view
@@ -0,0 +1,73 @@+{-# 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.MGN.Types.TemplateActionsRequestFilters+-- 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.MGN.Types.TemplateActionsRequestFilters 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++-- | Template post migration custom action filters.+--+-- /See:/ 'newTemplateActionsRequestFilters' smart constructor.+data TemplateActionsRequestFilters = TemplateActionsRequestFilters'+  { -- | Action IDs to filter template post migration custom actions by.+    actionIDs :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TemplateActionsRequestFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actionIDs', 'templateActionsRequestFilters_actionIDs' - Action IDs to filter template post migration custom actions by.+newTemplateActionsRequestFilters ::+  TemplateActionsRequestFilters+newTemplateActionsRequestFilters =+  TemplateActionsRequestFilters'+    { actionIDs =+        Prelude.Nothing+    }++-- | Action IDs to filter template post migration custom actions by.+templateActionsRequestFilters_actionIDs :: Lens.Lens' TemplateActionsRequestFilters (Prelude.Maybe [Prelude.Text])+templateActionsRequestFilters_actionIDs = Lens.lens (\TemplateActionsRequestFilters' {actionIDs} -> actionIDs) (\s@TemplateActionsRequestFilters' {} a -> s {actionIDs = a} :: TemplateActionsRequestFilters) Prelude.. Lens.mapping Lens.coerced++instance+  Prelude.Hashable+    TemplateActionsRequestFilters+  where+  hashWithSalt _salt TemplateActionsRequestFilters' {..} =+    _salt `Prelude.hashWithSalt` actionIDs++instance Prelude.NFData TemplateActionsRequestFilters where+  rnf TemplateActionsRequestFilters' {..} =+    Prelude.rnf actionIDs++instance Data.ToJSON TemplateActionsRequestFilters where+  toJSON TemplateActionsRequestFilters' {..} =+    Data.object+      ( Prelude.catMaybes+          [("actionIDs" Data..=) Prelude.<$> actionIDs]+      )
+ gen/Amazonka/MGN/Types/VcenterClient.hs view
@@ -0,0 +1,159 @@+{-# 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.MGN.Types.VcenterClient+-- 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.MGN.Types.VcenterClient 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++-- | vCenter client.+--+-- /See:/ 'newVcenterClient' smart constructor.+data VcenterClient = VcenterClient'+  { -- | Arn of vCenter client.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Datacenter name of vCenter client.+    datacenterName :: Prelude.Maybe Prelude.Text,+    -- | Hostname of vCenter client .+    hostname :: Prelude.Maybe Prelude.Text,+    -- | Last seen time of vCenter client.+    lastSeenDatetime :: Prelude.Maybe Prelude.Text,+    -- | Tags for Source Server of vCenter client.+    sourceServerTags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Tags for vCenter client.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | ID of vCenter client.+    vcenterClientID :: Prelude.Maybe Prelude.Text,+    -- | Vcenter UUID of vCenter client.+    vcenterUUID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VcenterClient' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'vcenterClient_arn' - Arn of vCenter client.+--+-- 'datacenterName', 'vcenterClient_datacenterName' - Datacenter name of vCenter client.+--+-- 'hostname', 'vcenterClient_hostname' - Hostname of vCenter client .+--+-- 'lastSeenDatetime', 'vcenterClient_lastSeenDatetime' - Last seen time of vCenter client.+--+-- 'sourceServerTags', 'vcenterClient_sourceServerTags' - Tags for Source Server of vCenter client.+--+-- 'tags', 'vcenterClient_tags' - Tags for vCenter client.+--+-- 'vcenterClientID', 'vcenterClient_vcenterClientID' - ID of vCenter client.+--+-- 'vcenterUUID', 'vcenterClient_vcenterUUID' - Vcenter UUID of vCenter client.+newVcenterClient ::+  VcenterClient+newVcenterClient =+  VcenterClient'+    { arn = Prelude.Nothing,+      datacenterName = Prelude.Nothing,+      hostname = Prelude.Nothing,+      lastSeenDatetime = Prelude.Nothing,+      sourceServerTags = Prelude.Nothing,+      tags = Prelude.Nothing,+      vcenterClientID = Prelude.Nothing,+      vcenterUUID = Prelude.Nothing+    }++-- | Arn of vCenter client.+vcenterClient_arn :: Lens.Lens' VcenterClient (Prelude.Maybe Prelude.Text)+vcenterClient_arn = Lens.lens (\VcenterClient' {arn} -> arn) (\s@VcenterClient' {} a -> s {arn = a} :: VcenterClient)++-- | Datacenter name of vCenter client.+vcenterClient_datacenterName :: Lens.Lens' VcenterClient (Prelude.Maybe Prelude.Text)+vcenterClient_datacenterName = Lens.lens (\VcenterClient' {datacenterName} -> datacenterName) (\s@VcenterClient' {} a -> s {datacenterName = a} :: VcenterClient)++-- | Hostname of vCenter client .+vcenterClient_hostname :: Lens.Lens' VcenterClient (Prelude.Maybe Prelude.Text)+vcenterClient_hostname = Lens.lens (\VcenterClient' {hostname} -> hostname) (\s@VcenterClient' {} a -> s {hostname = a} :: VcenterClient)++-- | Last seen time of vCenter client.+vcenterClient_lastSeenDatetime :: Lens.Lens' VcenterClient (Prelude.Maybe Prelude.Text)+vcenterClient_lastSeenDatetime = Lens.lens (\VcenterClient' {lastSeenDatetime} -> lastSeenDatetime) (\s@VcenterClient' {} a -> s {lastSeenDatetime = a} :: VcenterClient)++-- | Tags for Source Server of vCenter client.+vcenterClient_sourceServerTags :: Lens.Lens' VcenterClient (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+vcenterClient_sourceServerTags = Lens.lens (\VcenterClient' {sourceServerTags} -> sourceServerTags) (\s@VcenterClient' {} a -> s {sourceServerTags = a} :: VcenterClient) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Tags for vCenter client.+vcenterClient_tags :: Lens.Lens' VcenterClient (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+vcenterClient_tags = Lens.lens (\VcenterClient' {tags} -> tags) (\s@VcenterClient' {} a -> s {tags = a} :: VcenterClient) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | ID of vCenter client.+vcenterClient_vcenterClientID :: Lens.Lens' VcenterClient (Prelude.Maybe Prelude.Text)+vcenterClient_vcenterClientID = Lens.lens (\VcenterClient' {vcenterClientID} -> vcenterClientID) (\s@VcenterClient' {} a -> s {vcenterClientID = a} :: VcenterClient)++-- | Vcenter UUID of vCenter client.+vcenterClient_vcenterUUID :: Lens.Lens' VcenterClient (Prelude.Maybe Prelude.Text)+vcenterClient_vcenterUUID = Lens.lens (\VcenterClient' {vcenterUUID} -> vcenterUUID) (\s@VcenterClient' {} a -> s {vcenterUUID = a} :: VcenterClient)++instance Data.FromJSON VcenterClient where+  parseJSON =+    Data.withObject+      "VcenterClient"+      ( \x ->+          VcenterClient'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "datacenterName")+            Prelude.<*> (x Data..:? "hostname")+            Prelude.<*> (x Data..:? "lastSeenDatetime")+            Prelude.<*> ( x+                            Data..:? "sourceServerTags"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "vcenterClientID")+            Prelude.<*> (x Data..:? "vcenterUUID")+      )++instance Prelude.Hashable VcenterClient where+  hashWithSalt _salt VcenterClient' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` datacenterName+      `Prelude.hashWithSalt` hostname+      `Prelude.hashWithSalt` lastSeenDatetime+      `Prelude.hashWithSalt` sourceServerTags+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vcenterClientID+      `Prelude.hashWithSalt` vcenterUUID++instance Prelude.NFData VcenterClient where+  rnf VcenterClient' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf datacenterName+      `Prelude.seq` Prelude.rnf hostname+      `Prelude.seq` Prelude.rnf lastSeenDatetime+      `Prelude.seq` Prelude.rnf sourceServerTags+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vcenterClientID+      `Prelude.seq` Prelude.rnf vcenterUUID
+ gen/Amazonka/MGN/Types/VolumeType.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.MGN.Types.VolumeType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MGN.Types.VolumeType+  ( VolumeType+      ( ..,+        VolumeType_Gp2,+        VolumeType_Gp3,+        VolumeType_Io1,+        VolumeType_Io2,+        VolumeType_Sc1,+        VolumeType_St1,+        VolumeType_Standard+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VolumeType = VolumeType'+  { fromVolumeType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VolumeType_Gp2 :: VolumeType+pattern VolumeType_Gp2 = VolumeType' "gp2"++pattern VolumeType_Gp3 :: VolumeType+pattern VolumeType_Gp3 = VolumeType' "gp3"++pattern VolumeType_Io1 :: VolumeType+pattern VolumeType_Io1 = VolumeType' "io1"++pattern VolumeType_Io2 :: VolumeType+pattern VolumeType_Io2 = VolumeType' "io2"++pattern VolumeType_Sc1 :: VolumeType+pattern VolumeType_Sc1 = VolumeType' "sc1"++pattern VolumeType_St1 :: VolumeType+pattern VolumeType_St1 = VolumeType' "st1"++pattern VolumeType_Standard :: VolumeType+pattern VolumeType_Standard = VolumeType' "standard"++{-# COMPLETE+  VolumeType_Gp2,+  VolumeType_Gp3,+  VolumeType_Io1,+  VolumeType_Io2,+  VolumeType_Sc1,+  VolumeType_St1,+  VolumeType_Standard,+  VolumeType'+  #-}
+ gen/Amazonka/MGN/Types/Wave.hs view
@@ -0,0 +1,167 @@+{-# 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.MGN.Types.Wave+-- 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.MGN.Types.Wave where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.WaveAggregatedStatus+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newWave' smart constructor.+data Wave = Wave'+  { -- | Wave ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Wave creation dateTime.+    creationDateTime :: Prelude.Maybe Prelude.Text,+    -- | Wave description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Wave archival status.+    isArchived :: Prelude.Maybe Prelude.Bool,+    -- | Wave last modified dateTime.+    lastModifiedDateTime :: Prelude.Maybe Prelude.Text,+    -- | Wave name.+    name :: Prelude.Maybe Prelude.Text,+    -- | Wave tags.+    tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Wave aggregated status.+    waveAggregatedStatus :: Prelude.Maybe WaveAggregatedStatus,+    -- | Wave ID.+    waveID :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Wave' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'wave_arn' - Wave ARN.+--+-- 'creationDateTime', 'wave_creationDateTime' - Wave creation dateTime.+--+-- 'description', 'wave_description' - Wave description.+--+-- 'isArchived', 'wave_isArchived' - Wave archival status.+--+-- 'lastModifiedDateTime', 'wave_lastModifiedDateTime' - Wave last modified dateTime.+--+-- 'name', 'wave_name' - Wave name.+--+-- 'tags', 'wave_tags' - Wave tags.+--+-- 'waveAggregatedStatus', 'wave_waveAggregatedStatus' - Wave aggregated status.+--+-- 'waveID', 'wave_waveID' - Wave ID.+newWave ::+  Wave+newWave =+  Wave'+    { arn = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      isArchived = Prelude.Nothing,+      lastModifiedDateTime = Prelude.Nothing,+      name = Prelude.Nothing,+      tags = Prelude.Nothing,+      waveAggregatedStatus = Prelude.Nothing,+      waveID = Prelude.Nothing+    }++-- | Wave ARN.+wave_arn :: Lens.Lens' Wave (Prelude.Maybe Prelude.Text)+wave_arn = Lens.lens (\Wave' {arn} -> arn) (\s@Wave' {} a -> s {arn = a} :: Wave)++-- | Wave creation dateTime.+wave_creationDateTime :: Lens.Lens' Wave (Prelude.Maybe Prelude.Text)+wave_creationDateTime = Lens.lens (\Wave' {creationDateTime} -> creationDateTime) (\s@Wave' {} a -> s {creationDateTime = a} :: Wave)++-- | Wave description.+wave_description :: Lens.Lens' Wave (Prelude.Maybe Prelude.Text)+wave_description = Lens.lens (\Wave' {description} -> description) (\s@Wave' {} a -> s {description = a} :: Wave)++-- | Wave archival status.+wave_isArchived :: Lens.Lens' Wave (Prelude.Maybe Prelude.Bool)+wave_isArchived = Lens.lens (\Wave' {isArchived} -> isArchived) (\s@Wave' {} a -> s {isArchived = a} :: Wave)++-- | Wave last modified dateTime.+wave_lastModifiedDateTime :: Lens.Lens' Wave (Prelude.Maybe Prelude.Text)+wave_lastModifiedDateTime = Lens.lens (\Wave' {lastModifiedDateTime} -> lastModifiedDateTime) (\s@Wave' {} a -> s {lastModifiedDateTime = a} :: Wave)++-- | Wave name.+wave_name :: Lens.Lens' Wave (Prelude.Maybe Prelude.Text)+wave_name = Lens.lens (\Wave' {name} -> name) (\s@Wave' {} a -> s {name = a} :: Wave)++-- | Wave tags.+wave_tags :: Lens.Lens' Wave (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+wave_tags = Lens.lens (\Wave' {tags} -> tags) (\s@Wave' {} a -> s {tags = a} :: Wave) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Wave aggregated status.+wave_waveAggregatedStatus :: Lens.Lens' Wave (Prelude.Maybe WaveAggregatedStatus)+wave_waveAggregatedStatus = Lens.lens (\Wave' {waveAggregatedStatus} -> waveAggregatedStatus) (\s@Wave' {} a -> s {waveAggregatedStatus = a} :: Wave)++-- | Wave ID.+wave_waveID :: Lens.Lens' Wave (Prelude.Maybe Prelude.Text)+wave_waveID = Lens.lens (\Wave' {waveID} -> waveID) (\s@Wave' {} a -> s {waveID = a} :: Wave)++instance Data.FromJSON Wave where+  parseJSON =+    Data.withObject+      "Wave"+      ( \x ->+          Wave'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "isArchived")+            Prelude.<*> (x Data..:? "lastModifiedDateTime")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "waveAggregatedStatus")+            Prelude.<*> (x Data..:? "waveID")+      )++instance Prelude.Hashable Wave where+  hashWithSalt _salt Wave' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` isArchived+      `Prelude.hashWithSalt` lastModifiedDateTime+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` waveAggregatedStatus+      `Prelude.hashWithSalt` waveID++instance Prelude.NFData Wave where+  rnf Wave' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf isArchived+      `Prelude.seq` Prelude.rnf lastModifiedDateTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf waveAggregatedStatus+      `Prelude.seq` Prelude.rnf waveID
+ gen/Amazonka/MGN/Types/WaveAggregatedStatus.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MGN.Types.WaveAggregatedStatus+-- 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.MGN.Types.WaveAggregatedStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types.WaveHealthStatus+import Amazonka.MGN.Types.WaveProgressStatus+import qualified Amazonka.Prelude as Prelude++-- | Wave aggregated status.+--+-- /See:/ 'newWaveAggregatedStatus' smart constructor.+data WaveAggregatedStatus = WaveAggregatedStatus'+  { -- | Wave aggregated status health status.+    healthStatus :: Prelude.Maybe WaveHealthStatus,+    -- | Wave aggregated status last update dateTime.+    lastUpdateDateTime :: Prelude.Maybe Prelude.Text,+    -- | Wave aggregated status progress status.+    progressStatus :: Prelude.Maybe WaveProgressStatus,+    -- | DateTime marking when the first source server in the wave started+    -- replication.+    replicationStartedDateTime :: Prelude.Maybe Prelude.Text,+    -- | Wave aggregated status total applications amount.+    totalApplications :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WaveAggregatedStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'healthStatus', 'waveAggregatedStatus_healthStatus' - Wave aggregated status health status.+--+-- 'lastUpdateDateTime', 'waveAggregatedStatus_lastUpdateDateTime' - Wave aggregated status last update dateTime.+--+-- 'progressStatus', 'waveAggregatedStatus_progressStatus' - Wave aggregated status progress status.+--+-- 'replicationStartedDateTime', 'waveAggregatedStatus_replicationStartedDateTime' - DateTime marking when the first source server in the wave started+-- replication.+--+-- 'totalApplications', 'waveAggregatedStatus_totalApplications' - Wave aggregated status total applications amount.+newWaveAggregatedStatus ::+  WaveAggregatedStatus+newWaveAggregatedStatus =+  WaveAggregatedStatus'+    { healthStatus =+        Prelude.Nothing,+      lastUpdateDateTime = Prelude.Nothing,+      progressStatus = Prelude.Nothing,+      replicationStartedDateTime = Prelude.Nothing,+      totalApplications = Prelude.Nothing+    }++-- | Wave aggregated status health status.+waveAggregatedStatus_healthStatus :: Lens.Lens' WaveAggregatedStatus (Prelude.Maybe WaveHealthStatus)+waveAggregatedStatus_healthStatus = Lens.lens (\WaveAggregatedStatus' {healthStatus} -> healthStatus) (\s@WaveAggregatedStatus' {} a -> s {healthStatus = a} :: WaveAggregatedStatus)++-- | Wave aggregated status last update dateTime.+waveAggregatedStatus_lastUpdateDateTime :: Lens.Lens' WaveAggregatedStatus (Prelude.Maybe Prelude.Text)+waveAggregatedStatus_lastUpdateDateTime = Lens.lens (\WaveAggregatedStatus' {lastUpdateDateTime} -> lastUpdateDateTime) (\s@WaveAggregatedStatus' {} a -> s {lastUpdateDateTime = a} :: WaveAggregatedStatus)++-- | Wave aggregated status progress status.+waveAggregatedStatus_progressStatus :: Lens.Lens' WaveAggregatedStatus (Prelude.Maybe WaveProgressStatus)+waveAggregatedStatus_progressStatus = Lens.lens (\WaveAggregatedStatus' {progressStatus} -> progressStatus) (\s@WaveAggregatedStatus' {} a -> s {progressStatus = a} :: WaveAggregatedStatus)++-- | DateTime marking when the first source server in the wave started+-- replication.+waveAggregatedStatus_replicationStartedDateTime :: Lens.Lens' WaveAggregatedStatus (Prelude.Maybe Prelude.Text)+waveAggregatedStatus_replicationStartedDateTime = Lens.lens (\WaveAggregatedStatus' {replicationStartedDateTime} -> replicationStartedDateTime) (\s@WaveAggregatedStatus' {} a -> s {replicationStartedDateTime = a} :: WaveAggregatedStatus)++-- | Wave aggregated status total applications amount.+waveAggregatedStatus_totalApplications :: Lens.Lens' WaveAggregatedStatus (Prelude.Maybe Prelude.Natural)+waveAggregatedStatus_totalApplications = Lens.lens (\WaveAggregatedStatus' {totalApplications} -> totalApplications) (\s@WaveAggregatedStatus' {} a -> s {totalApplications = a} :: WaveAggregatedStatus)++instance Data.FromJSON WaveAggregatedStatus where+  parseJSON =+    Data.withObject+      "WaveAggregatedStatus"+      ( \x ->+          WaveAggregatedStatus'+            Prelude.<$> (x Data..:? "healthStatus")+            Prelude.<*> (x Data..:? "lastUpdateDateTime")+            Prelude.<*> (x Data..:? "progressStatus")+            Prelude.<*> (x Data..:? "replicationStartedDateTime")+            Prelude.<*> (x Data..:? "totalApplications")+      )++instance Prelude.Hashable WaveAggregatedStatus where+  hashWithSalt _salt WaveAggregatedStatus' {..} =+    _salt+      `Prelude.hashWithSalt` healthStatus+      `Prelude.hashWithSalt` lastUpdateDateTime+      `Prelude.hashWithSalt` progressStatus+      `Prelude.hashWithSalt` replicationStartedDateTime+      `Prelude.hashWithSalt` totalApplications++instance Prelude.NFData WaveAggregatedStatus where+  rnf WaveAggregatedStatus' {..} =+    Prelude.rnf healthStatus+      `Prelude.seq` Prelude.rnf lastUpdateDateTime+      `Prelude.seq` Prelude.rnf progressStatus+      `Prelude.seq` Prelude.rnf replicationStartedDateTime+      `Prelude.seq` Prelude.rnf totalApplications
+ gen/Amazonka/MGN/Types/WaveHealthStatus.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.MGN.Types.WaveHealthStatus+-- 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.MGN.Types.WaveHealthStatus+  ( WaveHealthStatus+      ( ..,+        WaveHealthStatus_ERROR,+        WaveHealthStatus_HEALTHY,+        WaveHealthStatus_LAGGING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WaveHealthStatus = WaveHealthStatus'+  { fromWaveHealthStatus ::+      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 WaveHealthStatus_ERROR :: WaveHealthStatus+pattern WaveHealthStatus_ERROR = WaveHealthStatus' "ERROR"++pattern WaveHealthStatus_HEALTHY :: WaveHealthStatus+pattern WaveHealthStatus_HEALTHY = WaveHealthStatus' "HEALTHY"++pattern WaveHealthStatus_LAGGING :: WaveHealthStatus+pattern WaveHealthStatus_LAGGING = WaveHealthStatus' "LAGGING"++{-# COMPLETE+  WaveHealthStatus_ERROR,+  WaveHealthStatus_HEALTHY,+  WaveHealthStatus_LAGGING,+  WaveHealthStatus'+  #-}
+ gen/Amazonka/MGN/Types/WaveProgressStatus.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.MGN.Types.WaveProgressStatus+-- 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.MGN.Types.WaveProgressStatus+  ( WaveProgressStatus+      ( ..,+        WaveProgressStatus_COMPLETED,+        WaveProgressStatus_IN_PROGRESS,+        WaveProgressStatus_NOT_STARTED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WaveProgressStatus = WaveProgressStatus'+  { fromWaveProgressStatus ::+      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 WaveProgressStatus_COMPLETED :: WaveProgressStatus+pattern WaveProgressStatus_COMPLETED = WaveProgressStatus' "COMPLETED"++pattern WaveProgressStatus_IN_PROGRESS :: WaveProgressStatus+pattern WaveProgressStatus_IN_PROGRESS = WaveProgressStatus' "IN_PROGRESS"++pattern WaveProgressStatus_NOT_STARTED :: WaveProgressStatus+pattern WaveProgressStatus_NOT_STARTED = WaveProgressStatus' "NOT_STARTED"++{-# COMPLETE+  WaveProgressStatus_COMPLETED,+  WaveProgressStatus_IN_PROGRESS,+  WaveProgressStatus_NOT_STARTED,+  WaveProgressStatus'+  #-}
+ gen/Amazonka/MGN/UnarchiveApplication.hs view
@@ -0,0 +1,128 @@+{-# 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.MGN.UnarchiveApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Unarchive application.+module Amazonka.MGN.UnarchiveApplication+  ( -- * Creating a Request+    UnarchiveApplication (..),+    newUnarchiveApplication,++    -- * Request Lenses+    unarchiveApplication_applicationID,++    -- * Destructuring the Response+    Application (..),+    newApplication,++    -- * Response Lenses+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUnarchiveApplication' smart constructor.+data UnarchiveApplication = UnarchiveApplication'+  { -- | Application ID.+    applicationID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UnarchiveApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationID', 'unarchiveApplication_applicationID' - Application ID.+newUnarchiveApplication ::+  -- | 'applicationID'+  Prelude.Text ->+  UnarchiveApplication+newUnarchiveApplication pApplicationID_ =+  UnarchiveApplication'+    { applicationID =+        pApplicationID_+    }++-- | Application ID.+unarchiveApplication_applicationID :: Lens.Lens' UnarchiveApplication Prelude.Text+unarchiveApplication_applicationID = Lens.lens (\UnarchiveApplication' {applicationID} -> applicationID) (\s@UnarchiveApplication' {} a -> s {applicationID = a} :: UnarchiveApplication)++instance Core.AWSRequest UnarchiveApplication where+  type AWSResponse UnarchiveApplication = Application+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UnarchiveApplication where+  hashWithSalt _salt UnarchiveApplication' {..} =+    _salt `Prelude.hashWithSalt` applicationID++instance Prelude.NFData UnarchiveApplication where+  rnf UnarchiveApplication' {..} =+    Prelude.rnf applicationID++instance Data.ToHeaders UnarchiveApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UnarchiveApplication where+  toJSON UnarchiveApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("applicationID" Data..= applicationID)+          ]+      )++instance Data.ToPath UnarchiveApplication where+  toPath = Prelude.const "/UnarchiveApplication"++instance Data.ToQuery UnarchiveApplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UnarchiveWave.hs view
@@ -0,0 +1,121 @@+{-# 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.MGN.UnarchiveWave+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Unarchive wave.+module Amazonka.MGN.UnarchiveWave+  ( -- * Creating a Request+    UnarchiveWave (..),+    newUnarchiveWave,++    -- * Request Lenses+    unarchiveWave_waveID,++    -- * Destructuring the Response+    Wave (..),+    newWave,++    -- * Response Lenses+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUnarchiveWave' smart constructor.+data UnarchiveWave = UnarchiveWave'+  { -- | Wave ID.+    waveID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UnarchiveWave' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'waveID', 'unarchiveWave_waveID' - Wave ID.+newUnarchiveWave ::+  -- | 'waveID'+  Prelude.Text ->+  UnarchiveWave+newUnarchiveWave pWaveID_ =+  UnarchiveWave' {waveID = pWaveID_}++-- | Wave ID.+unarchiveWave_waveID :: Lens.Lens' UnarchiveWave Prelude.Text+unarchiveWave_waveID = Lens.lens (\UnarchiveWave' {waveID} -> waveID) (\s@UnarchiveWave' {} a -> s {waveID = a} :: UnarchiveWave)++instance Core.AWSRequest UnarchiveWave where+  type AWSResponse UnarchiveWave = Wave+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UnarchiveWave where+  hashWithSalt _salt UnarchiveWave' {..} =+    _salt `Prelude.hashWithSalt` waveID++instance Prelude.NFData UnarchiveWave where+  rnf UnarchiveWave' {..} = Prelude.rnf waveID++instance Data.ToHeaders UnarchiveWave where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UnarchiveWave where+  toJSON UnarchiveWave' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("waveID" Data..= waveID)]+      )++instance Data.ToPath UnarchiveWave where+  toPath = Prelude.const "/UnarchiveWave"++instance Data.ToQuery UnarchiveWave where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UntagResource.hs view
@@ -0,0 +1,141 @@+{-# 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.MGN.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)+--+-- Deletes the specified set of tags from the specified set of Application+-- Migration Service resources.+module Amazonka.MGN.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | Untag resource by ARN.+    resourceArn :: Prelude.Text,+    -- | Untag resource by Keys.+    tagKeys :: Data.Sensitive [Prelude.Text]+  }+  deriving (Prelude.Eq, 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' - Untag resource by ARN.+--+-- 'tagKeys', 'untagResource_tagKeys' - Untag resource by Keys.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | Untag resource by ARN.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Untag resource by Keys.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Data._Sensitive Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull UntagResourceResponse'++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  {+  }+  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.+newUntagResourceResponse ::+  UntagResourceResponse+newUntagResourceResponse = UntagResourceResponse'++instance Prelude.NFData UntagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/MGN/UpdateApplication.hs view
@@ -0,0 +1,154 @@+{-# 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.MGN.UpdateApplication+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update application.+module Amazonka.MGN.UpdateApplication+  ( -- * Creating a Request+    UpdateApplication (..),+    newUpdateApplication,++    -- * Request Lenses+    updateApplication_description,+    updateApplication_name,+    updateApplication_applicationID,++    -- * Destructuring the Response+    Application (..),+    newApplication,++    -- * Response Lenses+    application_applicationAggregatedStatus,+    application_applicationID,+    application_arn,+    application_creationDateTime,+    application_description,+    application_isArchived,+    application_lastModifiedDateTime,+    application_name,+    application_tags,+    application_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateApplication' smart constructor.+data UpdateApplication = UpdateApplication'+  { -- | Application description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Application name.+    name :: Prelude.Maybe Prelude.Text,+    -- | Application ID.+    applicationID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateApplication' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateApplication_description' - Application description.+--+-- 'name', 'updateApplication_name' - Application name.+--+-- 'applicationID', 'updateApplication_applicationID' - Application ID.+newUpdateApplication ::+  -- | 'applicationID'+  Prelude.Text ->+  UpdateApplication+newUpdateApplication pApplicationID_ =+  UpdateApplication'+    { description = Prelude.Nothing,+      name = Prelude.Nothing,+      applicationID = pApplicationID_+    }++-- | Application description.+updateApplication_description :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)+updateApplication_description = Lens.lens (\UpdateApplication' {description} -> description) (\s@UpdateApplication' {} a -> s {description = a} :: UpdateApplication)++-- | Application name.+updateApplication_name :: Lens.Lens' UpdateApplication (Prelude.Maybe Prelude.Text)+updateApplication_name = Lens.lens (\UpdateApplication' {name} -> name) (\s@UpdateApplication' {} a -> s {name = a} :: UpdateApplication)++-- | Application ID.+updateApplication_applicationID :: Lens.Lens' UpdateApplication Prelude.Text+updateApplication_applicationID = Lens.lens (\UpdateApplication' {applicationID} -> applicationID) (\s@UpdateApplication' {} a -> s {applicationID = a} :: UpdateApplication)++instance Core.AWSRequest UpdateApplication where+  type AWSResponse UpdateApplication = Application+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateApplication where+  hashWithSalt _salt UpdateApplication' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` applicationID++instance Prelude.NFData UpdateApplication where+  rnf UpdateApplication' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf applicationID++instance Data.ToHeaders UpdateApplication where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateApplication where+  toJSON UpdateApplication' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("name" Data..=) Prelude.<$> name,+            Prelude.Just+              ("applicationID" Data..= applicationID)+          ]+      )++instance Data.ToPath UpdateApplication where+  toPath = Prelude.const "/UpdateApplication"++instance Data.ToQuery UpdateApplication where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UpdateLaunchConfiguration.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.MGN.UpdateLaunchConfiguration+-- 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 multiple LaunchConfigurations by Source Server ID.+module Amazonka.MGN.UpdateLaunchConfiguration+  ( -- * Creating a Request+    UpdateLaunchConfiguration (..),+    newUpdateLaunchConfiguration,++    -- * Request Lenses+    updateLaunchConfiguration_bootMode,+    updateLaunchConfiguration_copyPrivateIp,+    updateLaunchConfiguration_copyTags,+    updateLaunchConfiguration_enableMapAutoTagging,+    updateLaunchConfiguration_launchDisposition,+    updateLaunchConfiguration_licensing,+    updateLaunchConfiguration_mapAutoTaggingMpeID,+    updateLaunchConfiguration_name,+    updateLaunchConfiguration_postLaunchActions,+    updateLaunchConfiguration_targetInstanceTypeRightSizingMethod,+    updateLaunchConfiguration_sourceServerID,++    -- * Destructuring the Response+    LaunchConfiguration (..),+    newLaunchConfiguration,++    -- * Response Lenses+    launchConfiguration_bootMode,+    launchConfiguration_copyPrivateIp,+    launchConfiguration_copyTags,+    launchConfiguration_ec2LaunchTemplateID,+    launchConfiguration_enableMapAutoTagging,+    launchConfiguration_launchDisposition,+    launchConfiguration_licensing,+    launchConfiguration_mapAutoTaggingMpeID,+    launchConfiguration_name,+    launchConfiguration_postLaunchActions,+    launchConfiguration_sourceServerID,+    launchConfiguration_targetInstanceTypeRightSizingMethod,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLaunchConfiguration' smart constructor.+data UpdateLaunchConfiguration = UpdateLaunchConfiguration'+  { -- | Update Launch configuration boot mode request.+    bootMode :: Prelude.Maybe BootMode,+    -- | Update Launch configuration copy Private IP request.+    copyPrivateIp :: Prelude.Maybe Prelude.Bool,+    -- | Update Launch configuration copy Tags request.+    copyTags :: Prelude.Maybe Prelude.Bool,+    -- | Enable map auto tagging.+    enableMapAutoTagging :: Prelude.Maybe Prelude.Bool,+    -- | Update Launch configuration launch disposition request.+    launchDisposition :: Prelude.Maybe LaunchDisposition,+    -- | Update Launch configuration licensing request.+    licensing :: Prelude.Maybe Licensing,+    -- | Launch configuration map auto tagging MPE ID.+    mapAutoTaggingMpeID :: Prelude.Maybe Prelude.Text,+    -- | Update Launch configuration name request.+    name :: Prelude.Maybe Prelude.Text,+    postLaunchActions :: Prelude.Maybe PostLaunchActions,+    -- | Update Launch configuration Target instance right sizing request.+    targetInstanceTypeRightSizingMethod :: Prelude.Maybe TargetInstanceTypeRightSizingMethod,+    -- | Update Launch configuration by Source Server ID request.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLaunchConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bootMode', 'updateLaunchConfiguration_bootMode' - Update Launch configuration boot mode request.+--+-- 'copyPrivateIp', 'updateLaunchConfiguration_copyPrivateIp' - Update Launch configuration copy Private IP request.+--+-- 'copyTags', 'updateLaunchConfiguration_copyTags' - Update Launch configuration copy Tags request.+--+-- 'enableMapAutoTagging', 'updateLaunchConfiguration_enableMapAutoTagging' - Enable map auto tagging.+--+-- 'launchDisposition', 'updateLaunchConfiguration_launchDisposition' - Update Launch configuration launch disposition request.+--+-- 'licensing', 'updateLaunchConfiguration_licensing' - Update Launch configuration licensing request.+--+-- 'mapAutoTaggingMpeID', 'updateLaunchConfiguration_mapAutoTaggingMpeID' - Launch configuration map auto tagging MPE ID.+--+-- 'name', 'updateLaunchConfiguration_name' - Update Launch configuration name request.+--+-- 'postLaunchActions', 'updateLaunchConfiguration_postLaunchActions' - Undocumented member.+--+-- 'targetInstanceTypeRightSizingMethod', 'updateLaunchConfiguration_targetInstanceTypeRightSizingMethod' - Update Launch configuration Target instance right sizing request.+--+-- 'sourceServerID', 'updateLaunchConfiguration_sourceServerID' - Update Launch configuration by Source Server ID request.+newUpdateLaunchConfiguration ::+  -- | 'sourceServerID'+  Prelude.Text ->+  UpdateLaunchConfiguration+newUpdateLaunchConfiguration pSourceServerID_ =+  UpdateLaunchConfiguration'+    { bootMode =+        Prelude.Nothing,+      copyPrivateIp = Prelude.Nothing,+      copyTags = Prelude.Nothing,+      enableMapAutoTagging = Prelude.Nothing,+      launchDisposition = Prelude.Nothing,+      licensing = Prelude.Nothing,+      mapAutoTaggingMpeID = Prelude.Nothing,+      name = Prelude.Nothing,+      postLaunchActions = Prelude.Nothing,+      targetInstanceTypeRightSizingMethod =+        Prelude.Nothing,+      sourceServerID = pSourceServerID_+    }++-- | Update Launch configuration boot mode request.+updateLaunchConfiguration_bootMode :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe BootMode)+updateLaunchConfiguration_bootMode = Lens.lens (\UpdateLaunchConfiguration' {bootMode} -> bootMode) (\s@UpdateLaunchConfiguration' {} a -> s {bootMode = a} :: UpdateLaunchConfiguration)++-- | Update Launch configuration copy Private IP request.+updateLaunchConfiguration_copyPrivateIp :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe Prelude.Bool)+updateLaunchConfiguration_copyPrivateIp = Lens.lens (\UpdateLaunchConfiguration' {copyPrivateIp} -> copyPrivateIp) (\s@UpdateLaunchConfiguration' {} a -> s {copyPrivateIp = a} :: UpdateLaunchConfiguration)++-- | Update Launch configuration copy Tags request.+updateLaunchConfiguration_copyTags :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe Prelude.Bool)+updateLaunchConfiguration_copyTags = Lens.lens (\UpdateLaunchConfiguration' {copyTags} -> copyTags) (\s@UpdateLaunchConfiguration' {} a -> s {copyTags = a} :: UpdateLaunchConfiguration)++-- | Enable map auto tagging.+updateLaunchConfiguration_enableMapAutoTagging :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe Prelude.Bool)+updateLaunchConfiguration_enableMapAutoTagging = Lens.lens (\UpdateLaunchConfiguration' {enableMapAutoTagging} -> enableMapAutoTagging) (\s@UpdateLaunchConfiguration' {} a -> s {enableMapAutoTagging = a} :: UpdateLaunchConfiguration)++-- | Update Launch configuration launch disposition request.+updateLaunchConfiguration_launchDisposition :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe LaunchDisposition)+updateLaunchConfiguration_launchDisposition = Lens.lens (\UpdateLaunchConfiguration' {launchDisposition} -> launchDisposition) (\s@UpdateLaunchConfiguration' {} a -> s {launchDisposition = a} :: UpdateLaunchConfiguration)++-- | Update Launch configuration licensing request.+updateLaunchConfiguration_licensing :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe Licensing)+updateLaunchConfiguration_licensing = Lens.lens (\UpdateLaunchConfiguration' {licensing} -> licensing) (\s@UpdateLaunchConfiguration' {} a -> s {licensing = a} :: UpdateLaunchConfiguration)++-- | Launch configuration map auto tagging MPE ID.+updateLaunchConfiguration_mapAutoTaggingMpeID :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe Prelude.Text)+updateLaunchConfiguration_mapAutoTaggingMpeID = Lens.lens (\UpdateLaunchConfiguration' {mapAutoTaggingMpeID} -> mapAutoTaggingMpeID) (\s@UpdateLaunchConfiguration' {} a -> s {mapAutoTaggingMpeID = a} :: UpdateLaunchConfiguration)++-- | Update Launch configuration name request.+updateLaunchConfiguration_name :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe Prelude.Text)+updateLaunchConfiguration_name = Lens.lens (\UpdateLaunchConfiguration' {name} -> name) (\s@UpdateLaunchConfiguration' {} a -> s {name = a} :: UpdateLaunchConfiguration)++-- | Undocumented member.+updateLaunchConfiguration_postLaunchActions :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe PostLaunchActions)+updateLaunchConfiguration_postLaunchActions = Lens.lens (\UpdateLaunchConfiguration' {postLaunchActions} -> postLaunchActions) (\s@UpdateLaunchConfiguration' {} a -> s {postLaunchActions = a} :: UpdateLaunchConfiguration)++-- | Update Launch configuration Target instance right sizing request.+updateLaunchConfiguration_targetInstanceTypeRightSizingMethod :: Lens.Lens' UpdateLaunchConfiguration (Prelude.Maybe TargetInstanceTypeRightSizingMethod)+updateLaunchConfiguration_targetInstanceTypeRightSizingMethod = Lens.lens (\UpdateLaunchConfiguration' {targetInstanceTypeRightSizingMethod} -> targetInstanceTypeRightSizingMethod) (\s@UpdateLaunchConfiguration' {} a -> s {targetInstanceTypeRightSizingMethod = a} :: UpdateLaunchConfiguration)++-- | Update Launch configuration by Source Server ID request.+updateLaunchConfiguration_sourceServerID :: Lens.Lens' UpdateLaunchConfiguration Prelude.Text+updateLaunchConfiguration_sourceServerID = Lens.lens (\UpdateLaunchConfiguration' {sourceServerID} -> sourceServerID) (\s@UpdateLaunchConfiguration' {} a -> s {sourceServerID = a} :: UpdateLaunchConfiguration)++instance Core.AWSRequest UpdateLaunchConfiguration where+  type+    AWSResponse UpdateLaunchConfiguration =+      LaunchConfiguration+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateLaunchConfiguration where+  hashWithSalt _salt UpdateLaunchConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` bootMode+      `Prelude.hashWithSalt` copyPrivateIp+      `Prelude.hashWithSalt` copyTags+      `Prelude.hashWithSalt` enableMapAutoTagging+      `Prelude.hashWithSalt` launchDisposition+      `Prelude.hashWithSalt` licensing+      `Prelude.hashWithSalt` mapAutoTaggingMpeID+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` postLaunchActions+      `Prelude.hashWithSalt` targetInstanceTypeRightSizingMethod+      `Prelude.hashWithSalt` sourceServerID++instance Prelude.NFData UpdateLaunchConfiguration where+  rnf UpdateLaunchConfiguration' {..} =+    Prelude.rnf bootMode+      `Prelude.seq` Prelude.rnf copyPrivateIp+      `Prelude.seq` Prelude.rnf copyTags+      `Prelude.seq` Prelude.rnf enableMapAutoTagging+      `Prelude.seq` Prelude.rnf launchDisposition+      `Prelude.seq` Prelude.rnf licensing+      `Prelude.seq` Prelude.rnf mapAutoTaggingMpeID+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf postLaunchActions+      `Prelude.seq` Prelude.rnf targetInstanceTypeRightSizingMethod+      `Prelude.seq` Prelude.rnf sourceServerID++instance Data.ToHeaders UpdateLaunchConfiguration where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateLaunchConfiguration where+  toJSON UpdateLaunchConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bootMode" Data..=) Prelude.<$> bootMode,+            ("copyPrivateIp" Data..=) Prelude.<$> copyPrivateIp,+            ("copyTags" Data..=) Prelude.<$> copyTags,+            ("enableMapAutoTagging" Data..=)+              Prelude.<$> enableMapAutoTagging,+            ("launchDisposition" Data..=)+              Prelude.<$> launchDisposition,+            ("licensing" Data..=) Prelude.<$> licensing,+            ("mapAutoTaggingMpeID" Data..=)+              Prelude.<$> mapAutoTaggingMpeID,+            ("name" Data..=) Prelude.<$> name,+            ("postLaunchActions" Data..=)+              Prelude.<$> postLaunchActions,+            ("targetInstanceTypeRightSizingMethod" Data..=)+              Prelude.<$> targetInstanceTypeRightSizingMethod,+            Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath UpdateLaunchConfiguration where+  toPath = Prelude.const "/UpdateLaunchConfiguration"++instance Data.ToQuery UpdateLaunchConfiguration where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UpdateLaunchConfigurationTemplate.hs view
@@ -0,0 +1,345 @@+{-# 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.MGN.UpdateLaunchConfigurationTemplate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing Launch Configuration Template by ID.+module Amazonka.MGN.UpdateLaunchConfigurationTemplate+  ( -- * Creating a Request+    UpdateLaunchConfigurationTemplate (..),+    newUpdateLaunchConfigurationTemplate,++    -- * Request Lenses+    updateLaunchConfigurationTemplate_associatePublicIpAddress,+    updateLaunchConfigurationTemplate_bootMode,+    updateLaunchConfigurationTemplate_copyPrivateIp,+    updateLaunchConfigurationTemplate_copyTags,+    updateLaunchConfigurationTemplate_enableMapAutoTagging,+    updateLaunchConfigurationTemplate_largeVolumeConf,+    updateLaunchConfigurationTemplate_launchDisposition,+    updateLaunchConfigurationTemplate_licensing,+    updateLaunchConfigurationTemplate_mapAutoTaggingMpeID,+    updateLaunchConfigurationTemplate_postLaunchActions,+    updateLaunchConfigurationTemplate_smallVolumeConf,+    updateLaunchConfigurationTemplate_smallVolumeMaxSize,+    updateLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    updateLaunchConfigurationTemplate_launchConfigurationTemplateID,++    -- * Destructuring the Response+    LaunchConfigurationTemplate (..),+    newLaunchConfigurationTemplate,++    -- * Response Lenses+    launchConfigurationTemplate_arn,+    launchConfigurationTemplate_associatePublicIpAddress,+    launchConfigurationTemplate_bootMode,+    launchConfigurationTemplate_copyPrivateIp,+    launchConfigurationTemplate_copyTags,+    launchConfigurationTemplate_ec2LaunchTemplateID,+    launchConfigurationTemplate_enableMapAutoTagging,+    launchConfigurationTemplate_largeVolumeConf,+    launchConfigurationTemplate_launchDisposition,+    launchConfigurationTemplate_licensing,+    launchConfigurationTemplate_mapAutoTaggingMpeID,+    launchConfigurationTemplate_postLaunchActions,+    launchConfigurationTemplate_smallVolumeConf,+    launchConfigurationTemplate_smallVolumeMaxSize,+    launchConfigurationTemplate_tags,+    launchConfigurationTemplate_targetInstanceTypeRightSizingMethod,+    launchConfigurationTemplate_launchConfigurationTemplateID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLaunchConfigurationTemplate' smart constructor.+data UpdateLaunchConfigurationTemplate = UpdateLaunchConfigurationTemplate'+  { -- | Associate public Ip address.+    associatePublicIpAddress :: Prelude.Maybe Prelude.Bool,+    -- | Launch configuration template boot mode.+    bootMode :: Prelude.Maybe BootMode,+    -- | Copy private Ip.+    copyPrivateIp :: Prelude.Maybe Prelude.Bool,+    -- | Copy tags.+    copyTags :: Prelude.Maybe Prelude.Bool,+    -- | Enable map auto tagging.+    enableMapAutoTagging :: Prelude.Maybe Prelude.Bool,+    -- | Large volume config.+    largeVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,+    -- | Launch disposition.+    launchDisposition :: Prelude.Maybe LaunchDisposition,+    licensing :: Prelude.Maybe Licensing,+    -- | Launch configuration template map auto tagging MPE ID.+    mapAutoTaggingMpeID :: Prelude.Maybe Prelude.Text,+    -- | Post Launch Action to execute on the Test or Cutover instance.+    postLaunchActions :: Prelude.Maybe PostLaunchActions,+    -- | Small volume config.+    smallVolumeConf :: Prelude.Maybe LaunchTemplateDiskConf,+    -- | Small volume maximum size.+    smallVolumeMaxSize :: Prelude.Maybe Prelude.Natural,+    -- | Target instance type right-sizing method.+    targetInstanceTypeRightSizingMethod :: Prelude.Maybe TargetInstanceTypeRightSizingMethod,+    -- | Launch Configuration Template ID.+    launchConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLaunchConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatePublicIpAddress', 'updateLaunchConfigurationTemplate_associatePublicIpAddress' - Associate public Ip address.+--+-- 'bootMode', 'updateLaunchConfigurationTemplate_bootMode' - Launch configuration template boot mode.+--+-- 'copyPrivateIp', 'updateLaunchConfigurationTemplate_copyPrivateIp' - Copy private Ip.+--+-- 'copyTags', 'updateLaunchConfigurationTemplate_copyTags' - Copy tags.+--+-- 'enableMapAutoTagging', 'updateLaunchConfigurationTemplate_enableMapAutoTagging' - Enable map auto tagging.+--+-- 'largeVolumeConf', 'updateLaunchConfigurationTemplate_largeVolumeConf' - Large volume config.+--+-- 'launchDisposition', 'updateLaunchConfigurationTemplate_launchDisposition' - Launch disposition.+--+-- 'licensing', 'updateLaunchConfigurationTemplate_licensing' - Undocumented member.+--+-- 'mapAutoTaggingMpeID', 'updateLaunchConfigurationTemplate_mapAutoTaggingMpeID' - Launch configuration template map auto tagging MPE ID.+--+-- 'postLaunchActions', 'updateLaunchConfigurationTemplate_postLaunchActions' - Post Launch Action to execute on the Test or Cutover instance.+--+-- 'smallVolumeConf', 'updateLaunchConfigurationTemplate_smallVolumeConf' - Small volume config.+--+-- 'smallVolumeMaxSize', 'updateLaunchConfigurationTemplate_smallVolumeMaxSize' - Small volume maximum size.+--+-- 'targetInstanceTypeRightSizingMethod', 'updateLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod' - Target instance type right-sizing method.+--+-- 'launchConfigurationTemplateID', 'updateLaunchConfigurationTemplate_launchConfigurationTemplateID' - Launch Configuration Template ID.+newUpdateLaunchConfigurationTemplate ::+  -- | 'launchConfigurationTemplateID'+  Prelude.Text ->+  UpdateLaunchConfigurationTemplate+newUpdateLaunchConfigurationTemplate+  pLaunchConfigurationTemplateID_ =+    UpdateLaunchConfigurationTemplate'+      { associatePublicIpAddress =+          Prelude.Nothing,+        bootMode = Prelude.Nothing,+        copyPrivateIp = Prelude.Nothing,+        copyTags = Prelude.Nothing,+        enableMapAutoTagging = Prelude.Nothing,+        largeVolumeConf = Prelude.Nothing,+        launchDisposition = Prelude.Nothing,+        licensing = Prelude.Nothing,+        mapAutoTaggingMpeID = Prelude.Nothing,+        postLaunchActions = Prelude.Nothing,+        smallVolumeConf = Prelude.Nothing,+        smallVolumeMaxSize = Prelude.Nothing,+        targetInstanceTypeRightSizingMethod =+          Prelude.Nothing,+        launchConfigurationTemplateID =+          pLaunchConfigurationTemplateID_+      }++-- | Associate public Ip address.+updateLaunchConfigurationTemplate_associatePublicIpAddress :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+updateLaunchConfigurationTemplate_associatePublicIpAddress = Lens.lens (\UpdateLaunchConfigurationTemplate' {associatePublicIpAddress} -> associatePublicIpAddress) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {associatePublicIpAddress = a} :: UpdateLaunchConfigurationTemplate)++-- | Launch configuration template boot mode.+updateLaunchConfigurationTemplate_bootMode :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe BootMode)+updateLaunchConfigurationTemplate_bootMode = Lens.lens (\UpdateLaunchConfigurationTemplate' {bootMode} -> bootMode) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {bootMode = a} :: UpdateLaunchConfigurationTemplate)++-- | Copy private Ip.+updateLaunchConfigurationTemplate_copyPrivateIp :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+updateLaunchConfigurationTemplate_copyPrivateIp = Lens.lens (\UpdateLaunchConfigurationTemplate' {copyPrivateIp} -> copyPrivateIp) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {copyPrivateIp = a} :: UpdateLaunchConfigurationTemplate)++-- | Copy tags.+updateLaunchConfigurationTemplate_copyTags :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+updateLaunchConfigurationTemplate_copyTags = Lens.lens (\UpdateLaunchConfigurationTemplate' {copyTags} -> copyTags) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {copyTags = a} :: UpdateLaunchConfigurationTemplate)++-- | Enable map auto tagging.+updateLaunchConfigurationTemplate_enableMapAutoTagging :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Bool)+updateLaunchConfigurationTemplate_enableMapAutoTagging = Lens.lens (\UpdateLaunchConfigurationTemplate' {enableMapAutoTagging} -> enableMapAutoTagging) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {enableMapAutoTagging = a} :: UpdateLaunchConfigurationTemplate)++-- | Large volume config.+updateLaunchConfigurationTemplate_largeVolumeConf :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)+updateLaunchConfigurationTemplate_largeVolumeConf = Lens.lens (\UpdateLaunchConfigurationTemplate' {largeVolumeConf} -> largeVolumeConf) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {largeVolumeConf = a} :: UpdateLaunchConfigurationTemplate)++-- | Launch disposition.+updateLaunchConfigurationTemplate_launchDisposition :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe LaunchDisposition)+updateLaunchConfigurationTemplate_launchDisposition = Lens.lens (\UpdateLaunchConfigurationTemplate' {launchDisposition} -> launchDisposition) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {launchDisposition = a} :: UpdateLaunchConfigurationTemplate)++-- | Undocumented member.+updateLaunchConfigurationTemplate_licensing :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe Licensing)+updateLaunchConfigurationTemplate_licensing = Lens.lens (\UpdateLaunchConfigurationTemplate' {licensing} -> licensing) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {licensing = a} :: UpdateLaunchConfigurationTemplate)++-- | Launch configuration template map auto tagging MPE ID.+updateLaunchConfigurationTemplate_mapAutoTaggingMpeID :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Text)+updateLaunchConfigurationTemplate_mapAutoTaggingMpeID = Lens.lens (\UpdateLaunchConfigurationTemplate' {mapAutoTaggingMpeID} -> mapAutoTaggingMpeID) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {mapAutoTaggingMpeID = a} :: UpdateLaunchConfigurationTemplate)++-- | Post Launch Action to execute on the Test or Cutover instance.+updateLaunchConfigurationTemplate_postLaunchActions :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe PostLaunchActions)+updateLaunchConfigurationTemplate_postLaunchActions = Lens.lens (\UpdateLaunchConfigurationTemplate' {postLaunchActions} -> postLaunchActions) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {postLaunchActions = a} :: UpdateLaunchConfigurationTemplate)++-- | Small volume config.+updateLaunchConfigurationTemplate_smallVolumeConf :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe LaunchTemplateDiskConf)+updateLaunchConfigurationTemplate_smallVolumeConf = Lens.lens (\UpdateLaunchConfigurationTemplate' {smallVolumeConf} -> smallVolumeConf) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {smallVolumeConf = a} :: UpdateLaunchConfigurationTemplate)++-- | Small volume maximum size.+updateLaunchConfigurationTemplate_smallVolumeMaxSize :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe Prelude.Natural)+updateLaunchConfigurationTemplate_smallVolumeMaxSize = Lens.lens (\UpdateLaunchConfigurationTemplate' {smallVolumeMaxSize} -> smallVolumeMaxSize) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {smallVolumeMaxSize = a} :: UpdateLaunchConfigurationTemplate)++-- | Target instance type right-sizing method.+updateLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod :: Lens.Lens' UpdateLaunchConfigurationTemplate (Prelude.Maybe TargetInstanceTypeRightSizingMethod)+updateLaunchConfigurationTemplate_targetInstanceTypeRightSizingMethod = Lens.lens (\UpdateLaunchConfigurationTemplate' {targetInstanceTypeRightSizingMethod} -> targetInstanceTypeRightSizingMethod) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {targetInstanceTypeRightSizingMethod = a} :: UpdateLaunchConfigurationTemplate)++-- | Launch Configuration Template ID.+updateLaunchConfigurationTemplate_launchConfigurationTemplateID :: Lens.Lens' UpdateLaunchConfigurationTemplate Prelude.Text+updateLaunchConfigurationTemplate_launchConfigurationTemplateID = Lens.lens (\UpdateLaunchConfigurationTemplate' {launchConfigurationTemplateID} -> launchConfigurationTemplateID) (\s@UpdateLaunchConfigurationTemplate' {} a -> s {launchConfigurationTemplateID = a} :: UpdateLaunchConfigurationTemplate)++instance+  Core.AWSRequest+    UpdateLaunchConfigurationTemplate+  where+  type+    AWSResponse UpdateLaunchConfigurationTemplate =+      LaunchConfigurationTemplate+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance+  Prelude.Hashable+    UpdateLaunchConfigurationTemplate+  where+  hashWithSalt+    _salt+    UpdateLaunchConfigurationTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` associatePublicIpAddress+        `Prelude.hashWithSalt` bootMode+        `Prelude.hashWithSalt` copyPrivateIp+        `Prelude.hashWithSalt` copyTags+        `Prelude.hashWithSalt` enableMapAutoTagging+        `Prelude.hashWithSalt` largeVolumeConf+        `Prelude.hashWithSalt` launchDisposition+        `Prelude.hashWithSalt` licensing+        `Prelude.hashWithSalt` mapAutoTaggingMpeID+        `Prelude.hashWithSalt` postLaunchActions+        `Prelude.hashWithSalt` smallVolumeConf+        `Prelude.hashWithSalt` smallVolumeMaxSize+        `Prelude.hashWithSalt` targetInstanceTypeRightSizingMethod+        `Prelude.hashWithSalt` launchConfigurationTemplateID++instance+  Prelude.NFData+    UpdateLaunchConfigurationTemplate+  where+  rnf UpdateLaunchConfigurationTemplate' {..} =+    Prelude.rnf associatePublicIpAddress+      `Prelude.seq` Prelude.rnf bootMode+      `Prelude.seq` Prelude.rnf copyPrivateIp+      `Prelude.seq` Prelude.rnf copyTags+      `Prelude.seq` Prelude.rnf enableMapAutoTagging+      `Prelude.seq` Prelude.rnf largeVolumeConf+      `Prelude.seq` Prelude.rnf launchDisposition+      `Prelude.seq` Prelude.rnf licensing+      `Prelude.seq` Prelude.rnf mapAutoTaggingMpeID+      `Prelude.seq` Prelude.rnf postLaunchActions+      `Prelude.seq` Prelude.rnf smallVolumeConf+      `Prelude.seq` Prelude.rnf smallVolumeMaxSize+      `Prelude.seq` Prelude.rnf+        targetInstanceTypeRightSizingMethod+      `Prelude.seq` Prelude.rnf launchConfigurationTemplateID++instance+  Data.ToHeaders+    UpdateLaunchConfigurationTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    UpdateLaunchConfigurationTemplate+  where+  toJSON UpdateLaunchConfigurationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("associatePublicIpAddress" Data..=)+              Prelude.<$> associatePublicIpAddress,+            ("bootMode" Data..=) Prelude.<$> bootMode,+            ("copyPrivateIp" Data..=) Prelude.<$> copyPrivateIp,+            ("copyTags" Data..=) Prelude.<$> copyTags,+            ("enableMapAutoTagging" Data..=)+              Prelude.<$> enableMapAutoTagging,+            ("largeVolumeConf" Data..=)+              Prelude.<$> largeVolumeConf,+            ("launchDisposition" Data..=)+              Prelude.<$> launchDisposition,+            ("licensing" Data..=) Prelude.<$> licensing,+            ("mapAutoTaggingMpeID" Data..=)+              Prelude.<$> mapAutoTaggingMpeID,+            ("postLaunchActions" Data..=)+              Prelude.<$> postLaunchActions,+            ("smallVolumeConf" Data..=)+              Prelude.<$> smallVolumeConf,+            ("smallVolumeMaxSize" Data..=)+              Prelude.<$> smallVolumeMaxSize,+            ("targetInstanceTypeRightSizingMethod" Data..=)+              Prelude.<$> targetInstanceTypeRightSizingMethod,+            Prelude.Just+              ( "launchConfigurationTemplateID"+                  Data..= launchConfigurationTemplateID+              )+          ]+      )++instance+  Data.ToPath+    UpdateLaunchConfigurationTemplate+  where+  toPath =+    Prelude.const "/UpdateLaunchConfigurationTemplate"++instance+  Data.ToQuery+    UpdateLaunchConfigurationTemplate+  where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UpdateReplicationConfiguration.hs view
@@ -0,0 +1,365 @@+{-# 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.MGN.UpdateReplicationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows you to update multiple ReplicationConfigurations by Source Server+-- ID.+module Amazonka.MGN.UpdateReplicationConfiguration+  ( -- * Creating a Request+    UpdateReplicationConfiguration (..),+    newUpdateReplicationConfiguration,++    -- * Request Lenses+    updateReplicationConfiguration_associateDefaultSecurityGroup,+    updateReplicationConfiguration_bandwidthThrottling,+    updateReplicationConfiguration_createPublicIP,+    updateReplicationConfiguration_dataPlaneRouting,+    updateReplicationConfiguration_defaultLargeStagingDiskType,+    updateReplicationConfiguration_ebsEncryption,+    updateReplicationConfiguration_ebsEncryptionKeyArn,+    updateReplicationConfiguration_name,+    updateReplicationConfiguration_replicatedDisks,+    updateReplicationConfiguration_replicationServerInstanceType,+    updateReplicationConfiguration_replicationServersSecurityGroupsIDs,+    updateReplicationConfiguration_stagingAreaSubnetId,+    updateReplicationConfiguration_stagingAreaTags,+    updateReplicationConfiguration_useDedicatedReplicationServer,+    updateReplicationConfiguration_sourceServerID,++    -- * Destructuring the Response+    ReplicationConfiguration (..),+    newReplicationConfiguration,++    -- * Response Lenses+    replicationConfiguration_associateDefaultSecurityGroup,+    replicationConfiguration_bandwidthThrottling,+    replicationConfiguration_createPublicIP,+    replicationConfiguration_dataPlaneRouting,+    replicationConfiguration_defaultLargeStagingDiskType,+    replicationConfiguration_ebsEncryption,+    replicationConfiguration_ebsEncryptionKeyArn,+    replicationConfiguration_name,+    replicationConfiguration_replicatedDisks,+    replicationConfiguration_replicationServerInstanceType,+    replicationConfiguration_replicationServersSecurityGroupsIDs,+    replicationConfiguration_sourceServerID,+    replicationConfiguration_stagingAreaSubnetId,+    replicationConfiguration_stagingAreaTags,+    replicationConfiguration_useDedicatedReplicationServer,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateReplicationConfiguration' smart constructor.+data UpdateReplicationConfiguration = UpdateReplicationConfiguration'+  { -- | Update replication configuration associate default Application Migration+    -- Service Security group request.+    associateDefaultSecurityGroup :: Prelude.Maybe Prelude.Bool,+    -- | Update replication configuration bandwidth throttling request.+    bandwidthThrottling :: Prelude.Maybe Prelude.Natural,+    -- | Update replication configuration create Public IP request.+    createPublicIP :: Prelude.Maybe Prelude.Bool,+    -- | Update replication configuration data plane routing request.+    dataPlaneRouting :: Prelude.Maybe ReplicationConfigurationDataPlaneRouting,+    -- | Update replication configuration use default large Staging Disk type+    -- request.+    defaultLargeStagingDiskType :: Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType,+    -- | Update replication configuration EBS encryption request.+    ebsEncryption :: Prelude.Maybe ReplicationConfigurationEbsEncryption,+    -- | Update replication configuration EBS encryption key ARN request.+    ebsEncryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration name request.+    name :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration replicated disks request.+    replicatedDisks :: Prelude.Maybe [ReplicationConfigurationReplicatedDisk],+    -- | Update replication configuration Replication Server instance type+    -- request.+    replicationServerInstanceType :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration Replication Server Security Groups IDs+    -- request.+    replicationServersSecurityGroupsIDs :: Prelude.Maybe [Prelude.Text],+    -- | Update replication configuration Staging Area subnet request.+    stagingAreaSubnetId :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration Staging Area Tags request.+    stagingAreaTags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Update replication configuration use dedicated Replication Server+    -- request.+    useDedicatedReplicationServer :: Prelude.Maybe Prelude.Bool,+    -- | Update replication configuration Source Server ID request.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateReplicationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associateDefaultSecurityGroup', 'updateReplicationConfiguration_associateDefaultSecurityGroup' - Update replication configuration associate default Application Migration+-- Service Security group request.+--+-- 'bandwidthThrottling', 'updateReplicationConfiguration_bandwidthThrottling' - Update replication configuration bandwidth throttling request.+--+-- 'createPublicIP', 'updateReplicationConfiguration_createPublicIP' - Update replication configuration create Public IP request.+--+-- 'dataPlaneRouting', 'updateReplicationConfiguration_dataPlaneRouting' - Update replication configuration data plane routing request.+--+-- 'defaultLargeStagingDiskType', 'updateReplicationConfiguration_defaultLargeStagingDiskType' - Update replication configuration use default large Staging Disk type+-- request.+--+-- 'ebsEncryption', 'updateReplicationConfiguration_ebsEncryption' - Update replication configuration EBS encryption request.+--+-- 'ebsEncryptionKeyArn', 'updateReplicationConfiguration_ebsEncryptionKeyArn' - Update replication configuration EBS encryption key ARN request.+--+-- 'name', 'updateReplicationConfiguration_name' - Update replication configuration name request.+--+-- 'replicatedDisks', 'updateReplicationConfiguration_replicatedDisks' - Update replication configuration replicated disks request.+--+-- 'replicationServerInstanceType', 'updateReplicationConfiguration_replicationServerInstanceType' - Update replication configuration Replication Server instance type+-- request.+--+-- 'replicationServersSecurityGroupsIDs', 'updateReplicationConfiguration_replicationServersSecurityGroupsIDs' - Update replication configuration Replication Server Security Groups IDs+-- request.+--+-- 'stagingAreaSubnetId', 'updateReplicationConfiguration_stagingAreaSubnetId' - Update replication configuration Staging Area subnet request.+--+-- 'stagingAreaTags', 'updateReplicationConfiguration_stagingAreaTags' - Update replication configuration Staging Area Tags request.+--+-- 'useDedicatedReplicationServer', 'updateReplicationConfiguration_useDedicatedReplicationServer' - Update replication configuration use dedicated Replication Server+-- request.+--+-- 'sourceServerID', 'updateReplicationConfiguration_sourceServerID' - Update replication configuration Source Server ID request.+newUpdateReplicationConfiguration ::+  -- | 'sourceServerID'+  Prelude.Text ->+  UpdateReplicationConfiguration+newUpdateReplicationConfiguration pSourceServerID_ =+  UpdateReplicationConfiguration'+    { associateDefaultSecurityGroup =+        Prelude.Nothing,+      bandwidthThrottling = Prelude.Nothing,+      createPublicIP = Prelude.Nothing,+      dataPlaneRouting = Prelude.Nothing,+      defaultLargeStagingDiskType =+        Prelude.Nothing,+      ebsEncryption = Prelude.Nothing,+      ebsEncryptionKeyArn = Prelude.Nothing,+      name = Prelude.Nothing,+      replicatedDisks = Prelude.Nothing,+      replicationServerInstanceType =+        Prelude.Nothing,+      replicationServersSecurityGroupsIDs =+        Prelude.Nothing,+      stagingAreaSubnetId = Prelude.Nothing,+      stagingAreaTags = Prelude.Nothing,+      useDedicatedReplicationServer =+        Prelude.Nothing,+      sourceServerID = pSourceServerID_+    }++-- | Update replication configuration associate default Application Migration+-- Service Security group request.+updateReplicationConfiguration_associateDefaultSecurityGroup :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Bool)+updateReplicationConfiguration_associateDefaultSecurityGroup = Lens.lens (\UpdateReplicationConfiguration' {associateDefaultSecurityGroup} -> associateDefaultSecurityGroup) (\s@UpdateReplicationConfiguration' {} a -> s {associateDefaultSecurityGroup = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration bandwidth throttling request.+updateReplicationConfiguration_bandwidthThrottling :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Natural)+updateReplicationConfiguration_bandwidthThrottling = Lens.lens (\UpdateReplicationConfiguration' {bandwidthThrottling} -> bandwidthThrottling) (\s@UpdateReplicationConfiguration' {} a -> s {bandwidthThrottling = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration create Public IP request.+updateReplicationConfiguration_createPublicIP :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Bool)+updateReplicationConfiguration_createPublicIP = Lens.lens (\UpdateReplicationConfiguration' {createPublicIP} -> createPublicIP) (\s@UpdateReplicationConfiguration' {} a -> s {createPublicIP = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration data plane routing request.+updateReplicationConfiguration_dataPlaneRouting :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe ReplicationConfigurationDataPlaneRouting)+updateReplicationConfiguration_dataPlaneRouting = Lens.lens (\UpdateReplicationConfiguration' {dataPlaneRouting} -> dataPlaneRouting) (\s@UpdateReplicationConfiguration' {} a -> s {dataPlaneRouting = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration use default large Staging Disk type+-- request.+updateReplicationConfiguration_defaultLargeStagingDiskType :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType)+updateReplicationConfiguration_defaultLargeStagingDiskType = Lens.lens (\UpdateReplicationConfiguration' {defaultLargeStagingDiskType} -> defaultLargeStagingDiskType) (\s@UpdateReplicationConfiguration' {} a -> s {defaultLargeStagingDiskType = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration EBS encryption request.+updateReplicationConfiguration_ebsEncryption :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe ReplicationConfigurationEbsEncryption)+updateReplicationConfiguration_ebsEncryption = Lens.lens (\UpdateReplicationConfiguration' {ebsEncryption} -> ebsEncryption) (\s@UpdateReplicationConfiguration' {} a -> s {ebsEncryption = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration EBS encryption key ARN request.+updateReplicationConfiguration_ebsEncryptionKeyArn :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Text)+updateReplicationConfiguration_ebsEncryptionKeyArn = Lens.lens (\UpdateReplicationConfiguration' {ebsEncryptionKeyArn} -> ebsEncryptionKeyArn) (\s@UpdateReplicationConfiguration' {} a -> s {ebsEncryptionKeyArn = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration name request.+updateReplicationConfiguration_name :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Text)+updateReplicationConfiguration_name = Lens.lens (\UpdateReplicationConfiguration' {name} -> name) (\s@UpdateReplicationConfiguration' {} a -> s {name = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration replicated disks request.+updateReplicationConfiguration_replicatedDisks :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe [ReplicationConfigurationReplicatedDisk])+updateReplicationConfiguration_replicatedDisks = Lens.lens (\UpdateReplicationConfiguration' {replicatedDisks} -> replicatedDisks) (\s@UpdateReplicationConfiguration' {} a -> s {replicatedDisks = a} :: UpdateReplicationConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Update replication configuration Replication Server instance type+-- request.+updateReplicationConfiguration_replicationServerInstanceType :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Text)+updateReplicationConfiguration_replicationServerInstanceType = Lens.lens (\UpdateReplicationConfiguration' {replicationServerInstanceType} -> replicationServerInstanceType) (\s@UpdateReplicationConfiguration' {} a -> s {replicationServerInstanceType = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration Replication Server Security Groups IDs+-- request.+updateReplicationConfiguration_replicationServersSecurityGroupsIDs :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe [Prelude.Text])+updateReplicationConfiguration_replicationServersSecurityGroupsIDs = Lens.lens (\UpdateReplicationConfiguration' {replicationServersSecurityGroupsIDs} -> replicationServersSecurityGroupsIDs) (\s@UpdateReplicationConfiguration' {} a -> s {replicationServersSecurityGroupsIDs = a} :: UpdateReplicationConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Update replication configuration Staging Area subnet request.+updateReplicationConfiguration_stagingAreaSubnetId :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Text)+updateReplicationConfiguration_stagingAreaSubnetId = Lens.lens (\UpdateReplicationConfiguration' {stagingAreaSubnetId} -> stagingAreaSubnetId) (\s@UpdateReplicationConfiguration' {} a -> s {stagingAreaSubnetId = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration Staging Area Tags request.+updateReplicationConfiguration_stagingAreaTags :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateReplicationConfiguration_stagingAreaTags = Lens.lens (\UpdateReplicationConfiguration' {stagingAreaTags} -> stagingAreaTags) (\s@UpdateReplicationConfiguration' {} a -> s {stagingAreaTags = a} :: UpdateReplicationConfiguration) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Update replication configuration use dedicated Replication Server+-- request.+updateReplicationConfiguration_useDedicatedReplicationServer :: Lens.Lens' UpdateReplicationConfiguration (Prelude.Maybe Prelude.Bool)+updateReplicationConfiguration_useDedicatedReplicationServer = Lens.lens (\UpdateReplicationConfiguration' {useDedicatedReplicationServer} -> useDedicatedReplicationServer) (\s@UpdateReplicationConfiguration' {} a -> s {useDedicatedReplicationServer = a} :: UpdateReplicationConfiguration)++-- | Update replication configuration Source Server ID request.+updateReplicationConfiguration_sourceServerID :: Lens.Lens' UpdateReplicationConfiguration Prelude.Text+updateReplicationConfiguration_sourceServerID = Lens.lens (\UpdateReplicationConfiguration' {sourceServerID} -> sourceServerID) (\s@UpdateReplicationConfiguration' {} a -> s {sourceServerID = a} :: UpdateReplicationConfiguration)++instance+  Core.AWSRequest+    UpdateReplicationConfiguration+  where+  type+    AWSResponse UpdateReplicationConfiguration =+      ReplicationConfiguration+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance+  Prelude.Hashable+    UpdateReplicationConfiguration+  where+  hashWithSalt+    _salt+    UpdateReplicationConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` associateDefaultSecurityGroup+        `Prelude.hashWithSalt` bandwidthThrottling+        `Prelude.hashWithSalt` createPublicIP+        `Prelude.hashWithSalt` dataPlaneRouting+        `Prelude.hashWithSalt` defaultLargeStagingDiskType+        `Prelude.hashWithSalt` ebsEncryption+        `Prelude.hashWithSalt` ebsEncryptionKeyArn+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` replicatedDisks+        `Prelude.hashWithSalt` replicationServerInstanceType+        `Prelude.hashWithSalt` replicationServersSecurityGroupsIDs+        `Prelude.hashWithSalt` stagingAreaSubnetId+        `Prelude.hashWithSalt` stagingAreaTags+        `Prelude.hashWithSalt` useDedicatedReplicationServer+        `Prelude.hashWithSalt` sourceServerID++instance+  Prelude.NFData+    UpdateReplicationConfiguration+  where+  rnf UpdateReplicationConfiguration' {..} =+    Prelude.rnf associateDefaultSecurityGroup+      `Prelude.seq` Prelude.rnf bandwidthThrottling+      `Prelude.seq` Prelude.rnf createPublicIP+      `Prelude.seq` Prelude.rnf dataPlaneRouting+      `Prelude.seq` Prelude.rnf defaultLargeStagingDiskType+      `Prelude.seq` Prelude.rnf ebsEncryption+      `Prelude.seq` Prelude.rnf ebsEncryptionKeyArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf replicatedDisks+      `Prelude.seq` Prelude.rnf replicationServerInstanceType+      `Prelude.seq` Prelude.rnf replicationServersSecurityGroupsIDs+      `Prelude.seq` Prelude.rnf stagingAreaSubnetId+      `Prelude.seq` Prelude.rnf stagingAreaTags+      `Prelude.seq` Prelude.rnf useDedicatedReplicationServer+      `Prelude.seq` Prelude.rnf sourceServerID++instance+  Data.ToHeaders+    UpdateReplicationConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateReplicationConfiguration where+  toJSON UpdateReplicationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("associateDefaultSecurityGroup" Data..=)+              Prelude.<$> associateDefaultSecurityGroup,+            ("bandwidthThrottling" Data..=)+              Prelude.<$> bandwidthThrottling,+            ("createPublicIP" Data..=)+              Prelude.<$> createPublicIP,+            ("dataPlaneRouting" Data..=)+              Prelude.<$> dataPlaneRouting,+            ("defaultLargeStagingDiskType" Data..=)+              Prelude.<$> defaultLargeStagingDiskType,+            ("ebsEncryption" Data..=) Prelude.<$> ebsEncryption,+            ("ebsEncryptionKeyArn" Data..=)+              Prelude.<$> ebsEncryptionKeyArn,+            ("name" Data..=) Prelude.<$> name,+            ("replicatedDisks" Data..=)+              Prelude.<$> replicatedDisks,+            ("replicationServerInstanceType" Data..=)+              Prelude.<$> replicationServerInstanceType,+            ("replicationServersSecurityGroupsIDs" Data..=)+              Prelude.<$> replicationServersSecurityGroupsIDs,+            ("stagingAreaSubnetId" Data..=)+              Prelude.<$> stagingAreaSubnetId,+            ("stagingAreaTags" Data..=)+              Prelude.<$> stagingAreaTags,+            ("useDedicatedReplicationServer" Data..=)+              Prelude.<$> useDedicatedReplicationServer,+            Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance Data.ToPath UpdateReplicationConfiguration where+  toPath =+    Prelude.const "/UpdateReplicationConfiguration"++instance Data.ToQuery UpdateReplicationConfiguration where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UpdateReplicationConfigurationTemplate.hs view
@@ -0,0 +1,376 @@+{-# 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.MGN.UpdateReplicationConfigurationTemplate+-- 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 multiple ReplicationConfigurationTemplates by ID.+module Amazonka.MGN.UpdateReplicationConfigurationTemplate+  ( -- * Creating a Request+    UpdateReplicationConfigurationTemplate (..),+    newUpdateReplicationConfigurationTemplate,++    -- * Request Lenses+    updateReplicationConfigurationTemplate_arn,+    updateReplicationConfigurationTemplate_associateDefaultSecurityGroup,+    updateReplicationConfigurationTemplate_bandwidthThrottling,+    updateReplicationConfigurationTemplate_createPublicIP,+    updateReplicationConfigurationTemplate_dataPlaneRouting,+    updateReplicationConfigurationTemplate_defaultLargeStagingDiskType,+    updateReplicationConfigurationTemplate_ebsEncryption,+    updateReplicationConfigurationTemplate_ebsEncryptionKeyArn,+    updateReplicationConfigurationTemplate_replicationServerInstanceType,+    updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    updateReplicationConfigurationTemplate_stagingAreaSubnetId,+    updateReplicationConfigurationTemplate_stagingAreaTags,+    updateReplicationConfigurationTemplate_useDedicatedReplicationServer,+    updateReplicationConfigurationTemplate_replicationConfigurationTemplateID,++    -- * Destructuring the Response+    ReplicationConfigurationTemplate (..),+    newReplicationConfigurationTemplate,++    -- * Response Lenses+    replicationConfigurationTemplate_arn,+    replicationConfigurationTemplate_associateDefaultSecurityGroup,+    replicationConfigurationTemplate_bandwidthThrottling,+    replicationConfigurationTemplate_createPublicIP,+    replicationConfigurationTemplate_dataPlaneRouting,+    replicationConfigurationTemplate_defaultLargeStagingDiskType,+    replicationConfigurationTemplate_ebsEncryption,+    replicationConfigurationTemplate_ebsEncryptionKeyArn,+    replicationConfigurationTemplate_replicationServerInstanceType,+    replicationConfigurationTemplate_replicationServersSecurityGroupsIDs,+    replicationConfigurationTemplate_stagingAreaSubnetId,+    replicationConfigurationTemplate_stagingAreaTags,+    replicationConfigurationTemplate_tags,+    replicationConfigurationTemplate_useDedicatedReplicationServer,+    replicationConfigurationTemplate_replicationConfigurationTemplateID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateReplicationConfigurationTemplate' smart constructor.+data UpdateReplicationConfigurationTemplate = UpdateReplicationConfigurationTemplate'+  { -- | Update replication configuration template ARN request.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration template associate default Application+    -- Migration Service Security group request.+    associateDefaultSecurityGroup :: Prelude.Maybe Prelude.Bool,+    -- | Update replication configuration template bandwidth throttling request.+    bandwidthThrottling :: Prelude.Maybe Prelude.Natural,+    -- | Update replication configuration template create Public IP request.+    createPublicIP :: Prelude.Maybe Prelude.Bool,+    -- | Update replication configuration template data plane routing request.+    dataPlaneRouting :: Prelude.Maybe ReplicationConfigurationDataPlaneRouting,+    -- | Update replication configuration template use default large Staging Disk+    -- type request.+    defaultLargeStagingDiskType :: Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType,+    -- | Update replication configuration template EBS encryption request.+    ebsEncryption :: Prelude.Maybe ReplicationConfigurationEbsEncryption,+    -- | Update replication configuration template EBS encryption key ARN+    -- request.+    ebsEncryptionKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration template Replication Server instance+    -- type request.+    replicationServerInstanceType :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration template Replication Server Security+    -- groups IDs request.+    replicationServersSecurityGroupsIDs :: Prelude.Maybe [Prelude.Text],+    -- | Update replication configuration template Staging Area subnet ID+    -- request.+    stagingAreaSubnetId :: Prelude.Maybe Prelude.Text,+    -- | Update replication configuration template Staging Area Tags request.+    stagingAreaTags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | Update replication configuration template use dedicated Replication+    -- Server request.+    useDedicatedReplicationServer :: Prelude.Maybe Prelude.Bool,+    -- | Update replication configuration template template ID request.+    replicationConfigurationTemplateID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateReplicationConfigurationTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateReplicationConfigurationTemplate_arn' - Update replication configuration template ARN request.+--+-- 'associateDefaultSecurityGroup', 'updateReplicationConfigurationTemplate_associateDefaultSecurityGroup' - Update replication configuration template associate default Application+-- Migration Service Security group request.+--+-- 'bandwidthThrottling', 'updateReplicationConfigurationTemplate_bandwidthThrottling' - Update replication configuration template bandwidth throttling request.+--+-- 'createPublicIP', 'updateReplicationConfigurationTemplate_createPublicIP' - Update replication configuration template create Public IP request.+--+-- 'dataPlaneRouting', 'updateReplicationConfigurationTemplate_dataPlaneRouting' - Update replication configuration template data plane routing request.+--+-- 'defaultLargeStagingDiskType', 'updateReplicationConfigurationTemplate_defaultLargeStagingDiskType' - Update replication configuration template use default large Staging Disk+-- type request.+--+-- 'ebsEncryption', 'updateReplicationConfigurationTemplate_ebsEncryption' - Update replication configuration template EBS encryption request.+--+-- 'ebsEncryptionKeyArn', 'updateReplicationConfigurationTemplate_ebsEncryptionKeyArn' - Update replication configuration template EBS encryption key ARN+-- request.+--+-- 'replicationServerInstanceType', 'updateReplicationConfigurationTemplate_replicationServerInstanceType' - Update replication configuration template Replication Server instance+-- type request.+--+-- 'replicationServersSecurityGroupsIDs', 'updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs' - Update replication configuration template Replication Server Security+-- groups IDs request.+--+-- 'stagingAreaSubnetId', 'updateReplicationConfigurationTemplate_stagingAreaSubnetId' - Update replication configuration template Staging Area subnet ID+-- request.+--+-- 'stagingAreaTags', 'updateReplicationConfigurationTemplate_stagingAreaTags' - Update replication configuration template Staging Area Tags request.+--+-- 'useDedicatedReplicationServer', 'updateReplicationConfigurationTemplate_useDedicatedReplicationServer' - Update replication configuration template use dedicated Replication+-- Server request.+--+-- 'replicationConfigurationTemplateID', 'updateReplicationConfigurationTemplate_replicationConfigurationTemplateID' - Update replication configuration template template ID request.+newUpdateReplicationConfigurationTemplate ::+  -- | 'replicationConfigurationTemplateID'+  Prelude.Text ->+  UpdateReplicationConfigurationTemplate+newUpdateReplicationConfigurationTemplate+  pReplicationConfigurationTemplateID_ =+    UpdateReplicationConfigurationTemplate'+      { arn =+          Prelude.Nothing,+        associateDefaultSecurityGroup =+          Prelude.Nothing,+        bandwidthThrottling =+          Prelude.Nothing,+        createPublicIP = Prelude.Nothing,+        dataPlaneRouting = Prelude.Nothing,+        defaultLargeStagingDiskType =+          Prelude.Nothing,+        ebsEncryption = Prelude.Nothing,+        ebsEncryptionKeyArn =+          Prelude.Nothing,+        replicationServerInstanceType =+          Prelude.Nothing,+        replicationServersSecurityGroupsIDs =+          Prelude.Nothing,+        stagingAreaSubnetId =+          Prelude.Nothing,+        stagingAreaTags = Prelude.Nothing,+        useDedicatedReplicationServer =+          Prelude.Nothing,+        replicationConfigurationTemplateID =+          pReplicationConfigurationTemplateID_+      }++-- | Update replication configuration template ARN request.+updateReplicationConfigurationTemplate_arn :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+updateReplicationConfigurationTemplate_arn = Lens.lens (\UpdateReplicationConfigurationTemplate' {arn} -> arn) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {arn = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template associate default Application+-- Migration Service Security group request.+updateReplicationConfigurationTemplate_associateDefaultSecurityGroup :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)+updateReplicationConfigurationTemplate_associateDefaultSecurityGroup = Lens.lens (\UpdateReplicationConfigurationTemplate' {associateDefaultSecurityGroup} -> associateDefaultSecurityGroup) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {associateDefaultSecurityGroup = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template bandwidth throttling request.+updateReplicationConfigurationTemplate_bandwidthThrottling :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Natural)+updateReplicationConfigurationTemplate_bandwidthThrottling = Lens.lens (\UpdateReplicationConfigurationTemplate' {bandwidthThrottling} -> bandwidthThrottling) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {bandwidthThrottling = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template create Public IP request.+updateReplicationConfigurationTemplate_createPublicIP :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)+updateReplicationConfigurationTemplate_createPublicIP = Lens.lens (\UpdateReplicationConfigurationTemplate' {createPublicIP} -> createPublicIP) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {createPublicIP = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template data plane routing request.+updateReplicationConfigurationTemplate_dataPlaneRouting :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationDataPlaneRouting)+updateReplicationConfigurationTemplate_dataPlaneRouting = Lens.lens (\UpdateReplicationConfigurationTemplate' {dataPlaneRouting} -> dataPlaneRouting) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {dataPlaneRouting = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template use default large Staging Disk+-- type request.+updateReplicationConfigurationTemplate_defaultLargeStagingDiskType :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationDefaultLargeStagingDiskType)+updateReplicationConfigurationTemplate_defaultLargeStagingDiskType = Lens.lens (\UpdateReplicationConfigurationTemplate' {defaultLargeStagingDiskType} -> defaultLargeStagingDiskType) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {defaultLargeStagingDiskType = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template EBS encryption request.+updateReplicationConfigurationTemplate_ebsEncryption :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe ReplicationConfigurationEbsEncryption)+updateReplicationConfigurationTemplate_ebsEncryption = Lens.lens (\UpdateReplicationConfigurationTemplate' {ebsEncryption} -> ebsEncryption) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {ebsEncryption = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template EBS encryption key ARN+-- request.+updateReplicationConfigurationTemplate_ebsEncryptionKeyArn :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+updateReplicationConfigurationTemplate_ebsEncryptionKeyArn = Lens.lens (\UpdateReplicationConfigurationTemplate' {ebsEncryptionKeyArn} -> ebsEncryptionKeyArn) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {ebsEncryptionKeyArn = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template Replication Server instance+-- type request.+updateReplicationConfigurationTemplate_replicationServerInstanceType :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+updateReplicationConfigurationTemplate_replicationServerInstanceType = Lens.lens (\UpdateReplicationConfigurationTemplate' {replicationServerInstanceType} -> replicationServerInstanceType) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {replicationServerInstanceType = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template Replication Server Security+-- groups IDs request.+updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe [Prelude.Text])+updateReplicationConfigurationTemplate_replicationServersSecurityGroupsIDs = Lens.lens (\UpdateReplicationConfigurationTemplate' {replicationServersSecurityGroupsIDs} -> replicationServersSecurityGroupsIDs) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {replicationServersSecurityGroupsIDs = a} :: UpdateReplicationConfigurationTemplate) Prelude.. Lens.mapping Lens.coerced++-- | Update replication configuration template Staging Area subnet ID+-- request.+updateReplicationConfigurationTemplate_stagingAreaSubnetId :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Text)+updateReplicationConfigurationTemplate_stagingAreaSubnetId = Lens.lens (\UpdateReplicationConfigurationTemplate' {stagingAreaSubnetId} -> stagingAreaSubnetId) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {stagingAreaSubnetId = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template Staging Area Tags request.+updateReplicationConfigurationTemplate_stagingAreaTags :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateReplicationConfigurationTemplate_stagingAreaTags = Lens.lens (\UpdateReplicationConfigurationTemplate' {stagingAreaTags} -> stagingAreaTags) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {stagingAreaTags = a} :: UpdateReplicationConfigurationTemplate) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | Update replication configuration template use dedicated Replication+-- Server request.+updateReplicationConfigurationTemplate_useDedicatedReplicationServer :: Lens.Lens' UpdateReplicationConfigurationTemplate (Prelude.Maybe Prelude.Bool)+updateReplicationConfigurationTemplate_useDedicatedReplicationServer = Lens.lens (\UpdateReplicationConfigurationTemplate' {useDedicatedReplicationServer} -> useDedicatedReplicationServer) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {useDedicatedReplicationServer = a} :: UpdateReplicationConfigurationTemplate)++-- | Update replication configuration template template ID request.+updateReplicationConfigurationTemplate_replicationConfigurationTemplateID :: Lens.Lens' UpdateReplicationConfigurationTemplate Prelude.Text+updateReplicationConfigurationTemplate_replicationConfigurationTemplateID = Lens.lens (\UpdateReplicationConfigurationTemplate' {replicationConfigurationTemplateID} -> replicationConfigurationTemplateID) (\s@UpdateReplicationConfigurationTemplate' {} a -> s {replicationConfigurationTemplateID = a} :: UpdateReplicationConfigurationTemplate)++instance+  Core.AWSRequest+    UpdateReplicationConfigurationTemplate+  where+  type+    AWSResponse+      UpdateReplicationConfigurationTemplate =+      ReplicationConfigurationTemplate+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance+  Prelude.Hashable+    UpdateReplicationConfigurationTemplate+  where+  hashWithSalt+    _salt+    UpdateReplicationConfigurationTemplate' {..} =+      _salt+        `Prelude.hashWithSalt` arn+        `Prelude.hashWithSalt` associateDefaultSecurityGroup+        `Prelude.hashWithSalt` bandwidthThrottling+        `Prelude.hashWithSalt` createPublicIP+        `Prelude.hashWithSalt` dataPlaneRouting+        `Prelude.hashWithSalt` defaultLargeStagingDiskType+        `Prelude.hashWithSalt` ebsEncryption+        `Prelude.hashWithSalt` ebsEncryptionKeyArn+        `Prelude.hashWithSalt` replicationServerInstanceType+        `Prelude.hashWithSalt` replicationServersSecurityGroupsIDs+        `Prelude.hashWithSalt` stagingAreaSubnetId+        `Prelude.hashWithSalt` stagingAreaTags+        `Prelude.hashWithSalt` useDedicatedReplicationServer+        `Prelude.hashWithSalt` replicationConfigurationTemplateID++instance+  Prelude.NFData+    UpdateReplicationConfigurationTemplate+  where+  rnf UpdateReplicationConfigurationTemplate' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf associateDefaultSecurityGroup+      `Prelude.seq` Prelude.rnf bandwidthThrottling+      `Prelude.seq` Prelude.rnf createPublicIP+      `Prelude.seq` Prelude.rnf dataPlaneRouting+      `Prelude.seq` Prelude.rnf defaultLargeStagingDiskType+      `Prelude.seq` Prelude.rnf ebsEncryption+      `Prelude.seq` Prelude.rnf ebsEncryptionKeyArn+      `Prelude.seq` Prelude.rnf replicationServerInstanceType+      `Prelude.seq` Prelude.rnf replicationServersSecurityGroupsIDs+      `Prelude.seq` Prelude.rnf stagingAreaSubnetId+      `Prelude.seq` Prelude.rnf stagingAreaTags+      `Prelude.seq` Prelude.rnf useDedicatedReplicationServer+      `Prelude.seq` Prelude.rnf+        replicationConfigurationTemplateID++instance+  Data.ToHeaders+    UpdateReplicationConfigurationTemplate+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    UpdateReplicationConfigurationTemplate+  where+  toJSON UpdateReplicationConfigurationTemplate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("arn" Data..=) Prelude.<$> arn,+            ("associateDefaultSecurityGroup" Data..=)+              Prelude.<$> associateDefaultSecurityGroup,+            ("bandwidthThrottling" Data..=)+              Prelude.<$> bandwidthThrottling,+            ("createPublicIP" Data..=)+              Prelude.<$> createPublicIP,+            ("dataPlaneRouting" Data..=)+              Prelude.<$> dataPlaneRouting,+            ("defaultLargeStagingDiskType" Data..=)+              Prelude.<$> defaultLargeStagingDiskType,+            ("ebsEncryption" Data..=) Prelude.<$> ebsEncryption,+            ("ebsEncryptionKeyArn" Data..=)+              Prelude.<$> ebsEncryptionKeyArn,+            ("replicationServerInstanceType" Data..=)+              Prelude.<$> replicationServerInstanceType,+            ("replicationServersSecurityGroupsIDs" Data..=)+              Prelude.<$> replicationServersSecurityGroupsIDs,+            ("stagingAreaSubnetId" Data..=)+              Prelude.<$> stagingAreaSubnetId,+            ("stagingAreaTags" Data..=)+              Prelude.<$> stagingAreaTags,+            ("useDedicatedReplicationServer" Data..=)+              Prelude.<$> useDedicatedReplicationServer,+            Prelude.Just+              ( "replicationConfigurationTemplateID"+                  Data..= replicationConfigurationTemplateID+              )+          ]+      )++instance+  Data.ToPath+    UpdateReplicationConfigurationTemplate+  where+  toPath =+    Prelude.const+      "/UpdateReplicationConfigurationTemplate"++instance+  Data.ToQuery+    UpdateReplicationConfigurationTemplate+  where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UpdateSourceServerReplicationType.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.MGN.UpdateSourceServerReplicationType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Allows you to change between the AGENT_BASED replication type and the+-- SNAPSHOT_SHIPPING replication type.+module Amazonka.MGN.UpdateSourceServerReplicationType+  ( -- * Creating a Request+    UpdateSourceServerReplicationType (..),+    newUpdateSourceServerReplicationType,++    -- * Request Lenses+    updateSourceServerReplicationType_replicationType,+    updateSourceServerReplicationType_sourceServerID,++    -- * Destructuring the Response+    SourceServer (..),+    newSourceServer,++    -- * Response Lenses+    sourceServer_applicationID,+    sourceServer_arn,+    sourceServer_dataReplicationInfo,+    sourceServer_isArchived,+    sourceServer_launchedInstance,+    sourceServer_lifeCycle,+    sourceServer_replicationType,+    sourceServer_sourceProperties,+    sourceServer_sourceServerID,+    sourceServer_tags,+    sourceServer_vcenterClientID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSourceServerReplicationType' smart constructor.+data UpdateSourceServerReplicationType = UpdateSourceServerReplicationType'+  { -- | Replication type to which to update source server.+    replicationType :: ReplicationType,+    -- | ID of source server on which to update replication type.+    sourceServerID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSourceServerReplicationType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replicationType', 'updateSourceServerReplicationType_replicationType' - Replication type to which to update source server.+--+-- 'sourceServerID', 'updateSourceServerReplicationType_sourceServerID' - ID of source server on which to update replication type.+newUpdateSourceServerReplicationType ::+  -- | 'replicationType'+  ReplicationType ->+  -- | 'sourceServerID'+  Prelude.Text ->+  UpdateSourceServerReplicationType+newUpdateSourceServerReplicationType+  pReplicationType_+  pSourceServerID_ =+    UpdateSourceServerReplicationType'+      { replicationType =+          pReplicationType_,+        sourceServerID = pSourceServerID_+      }++-- | Replication type to which to update source server.+updateSourceServerReplicationType_replicationType :: Lens.Lens' UpdateSourceServerReplicationType ReplicationType+updateSourceServerReplicationType_replicationType = Lens.lens (\UpdateSourceServerReplicationType' {replicationType} -> replicationType) (\s@UpdateSourceServerReplicationType' {} a -> s {replicationType = a} :: UpdateSourceServerReplicationType)++-- | ID of source server on which to update replication type.+updateSourceServerReplicationType_sourceServerID :: Lens.Lens' UpdateSourceServerReplicationType Prelude.Text+updateSourceServerReplicationType_sourceServerID = Lens.lens (\UpdateSourceServerReplicationType' {sourceServerID} -> sourceServerID) (\s@UpdateSourceServerReplicationType' {} a -> s {sourceServerID = a} :: UpdateSourceServerReplicationType)++instance+  Core.AWSRequest+    UpdateSourceServerReplicationType+  where+  type+    AWSResponse UpdateSourceServerReplicationType =+      SourceServer+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance+  Prelude.Hashable+    UpdateSourceServerReplicationType+  where+  hashWithSalt+    _salt+    UpdateSourceServerReplicationType' {..} =+      _salt+        `Prelude.hashWithSalt` replicationType+        `Prelude.hashWithSalt` sourceServerID++instance+  Prelude.NFData+    UpdateSourceServerReplicationType+  where+  rnf UpdateSourceServerReplicationType' {..} =+    Prelude.rnf replicationType+      `Prelude.seq` Prelude.rnf sourceServerID++instance+  Data.ToHeaders+    UpdateSourceServerReplicationType+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    UpdateSourceServerReplicationType+  where+  toJSON UpdateSourceServerReplicationType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("replicationType" Data..= replicationType),+            Prelude.Just+              ("sourceServerID" Data..= sourceServerID)+          ]+      )++instance+  Data.ToPath+    UpdateSourceServerReplicationType+  where+  toPath =+    Prelude.const "/UpdateSourceServerReplicationType"++instance+  Data.ToQuery+    UpdateSourceServerReplicationType+  where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/UpdateWave.hs view
@@ -0,0 +1,152 @@+{-# 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.MGN.UpdateWave+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update wave.+module Amazonka.MGN.UpdateWave+  ( -- * Creating a Request+    UpdateWave (..),+    newUpdateWave,++    -- * Request Lenses+    updateWave_description,+    updateWave_name,+    updateWave_waveID,++    -- * Destructuring the Response+    Wave (..),+    newWave,++    -- * Response Lenses+    wave_arn,+    wave_creationDateTime,+    wave_description,+    wave_isArchived,+    wave_lastModifiedDateTime,+    wave_name,+    wave_tags,+    wave_waveAggregatedStatus,+    wave_waveID,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateWave' smart constructor.+data UpdateWave = UpdateWave'+  { -- | Wave description.+    description :: Prelude.Maybe Prelude.Text,+    -- | Wave name.+    name :: Prelude.Maybe Prelude.Text,+    -- | Wave ID.+    waveID :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateWave' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateWave_description' - Wave description.+--+-- 'name', 'updateWave_name' - Wave name.+--+-- 'waveID', 'updateWave_waveID' - Wave ID.+newUpdateWave ::+  -- | 'waveID'+  Prelude.Text ->+  UpdateWave+newUpdateWave pWaveID_ =+  UpdateWave'+    { description = Prelude.Nothing,+      name = Prelude.Nothing,+      waveID = pWaveID_+    }++-- | Wave description.+updateWave_description :: Lens.Lens' UpdateWave (Prelude.Maybe Prelude.Text)+updateWave_description = Lens.lens (\UpdateWave' {description} -> description) (\s@UpdateWave' {} a -> s {description = a} :: UpdateWave)++-- | Wave name.+updateWave_name :: Lens.Lens' UpdateWave (Prelude.Maybe Prelude.Text)+updateWave_name = Lens.lens (\UpdateWave' {name} -> name) (\s@UpdateWave' {} a -> s {name = a} :: UpdateWave)++-- | Wave ID.+updateWave_waveID :: Lens.Lens' UpdateWave Prelude.Text+updateWave_waveID = Lens.lens (\UpdateWave' {waveID} -> waveID) (\s@UpdateWave' {} a -> s {waveID = a} :: UpdateWave)++instance Core.AWSRequest UpdateWave where+  type AWSResponse UpdateWave = Wave+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateWave where+  hashWithSalt _salt UpdateWave' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` waveID++instance Prelude.NFData UpdateWave where+  rnf UpdateWave' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf waveID++instance Data.ToHeaders UpdateWave where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateWave where+  toJSON UpdateWave' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("name" Data..=) Prelude.<$> name,+            Prelude.Just ("waveID" Data..= waveID)+          ]+      )++instance Data.ToPath UpdateWave where+  toPath = Prelude.const "/UpdateWave"++instance Data.ToQuery UpdateWave where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/MGN/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.MGN.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.MGN.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MGN.Lens+import Amazonka.MGN.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.MGN+import Test.Amazonka.MGN.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "MGN"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/MGN.hs view
@@ -0,0 +1,1138 @@+{-# 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.MGN+-- 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.MGN where++import Amazonka.MGN+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.MGN.Internal+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"+--         [ requestArchiveApplication $+--             newArchiveApplication+--+--         , requestArchiveWave $+--             newArchiveWave+--+--         , requestAssociateApplications $+--             newAssociateApplications+--+--         , requestAssociateSourceServers $+--             newAssociateSourceServers+--+--         , requestChangeServerLifeCycleState $+--             newChangeServerLifeCycleState+--+--         , requestCreateApplication $+--             newCreateApplication+--+--         , requestCreateLaunchConfigurationTemplate $+--             newCreateLaunchConfigurationTemplate+--+--         , requestCreateReplicationConfigurationTemplate $+--             newCreateReplicationConfigurationTemplate+--+--         , requestCreateWave $+--             newCreateWave+--+--         , requestDeleteApplication $+--             newDeleteApplication+--+--         , requestDeleteJob $+--             newDeleteJob+--+--         , requestDeleteLaunchConfigurationTemplate $+--             newDeleteLaunchConfigurationTemplate+--+--         , requestDeleteReplicationConfigurationTemplate $+--             newDeleteReplicationConfigurationTemplate+--+--         , requestDeleteSourceServer $+--             newDeleteSourceServer+--+--         , requestDeleteVcenterClient $+--             newDeleteVcenterClient+--+--         , requestDeleteWave $+--             newDeleteWave+--+--         , requestDescribeJobLogItems $+--             newDescribeJobLogItems+--+--         , requestDescribeJobs $+--             newDescribeJobs+--+--         , requestDescribeLaunchConfigurationTemplates $+--             newDescribeLaunchConfigurationTemplates+--+--         , requestDescribeReplicationConfigurationTemplates $+--             newDescribeReplicationConfigurationTemplates+--+--         , requestDescribeSourceServers $+--             newDescribeSourceServers+--+--         , requestDescribeVcenterClients $+--             newDescribeVcenterClients+--+--         , requestDisassociateApplications $+--             newDisassociateApplications+--+--         , requestDisassociateSourceServers $+--             newDisassociateSourceServers+--+--         , requestDisconnectFromService $+--             newDisconnectFromService+--+--         , requestFinalizeCutover $+--             newFinalizeCutover+--+--         , requestGetLaunchConfiguration $+--             newGetLaunchConfiguration+--+--         , requestGetReplicationConfiguration $+--             newGetReplicationConfiguration+--+--         , requestInitializeService $+--             newInitializeService+--+--         , requestListApplications $+--             newListApplications+--+--         , requestListSourceServerActions $+--             newListSourceServerActions+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListTemplateActions $+--             newListTemplateActions+--+--         , requestListWaves $+--             newListWaves+--+--         , requestMarkAsArchived $+--             newMarkAsArchived+--+--         , requestPutSourceServerAction $+--             newPutSourceServerAction+--+--         , requestPutTemplateAction $+--             newPutTemplateAction+--+--         , requestRemoveSourceServerAction $+--             newRemoveSourceServerAction+--+--         , requestRemoveTemplateAction $+--             newRemoveTemplateAction+--+--         , requestRetryDataReplication $+--             newRetryDataReplication+--+--         , requestStartCutover $+--             newStartCutover+--+--         , requestStartReplication $+--             newStartReplication+--+--         , requestStartTest $+--             newStartTest+--+--         , requestTagResource $+--             newTagResource+--+--         , requestTerminateTargetInstances $+--             newTerminateTargetInstances+--+--         , requestUnarchiveApplication $+--             newUnarchiveApplication+--+--         , requestUnarchiveWave $+--             newUnarchiveWave+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateApplication $+--             newUpdateApplication+--+--         , requestUpdateLaunchConfiguration $+--             newUpdateLaunchConfiguration+--+--         , requestUpdateLaunchConfigurationTemplate $+--             newUpdateLaunchConfigurationTemplate+--+--         , requestUpdateReplicationConfiguration $+--             newUpdateReplicationConfiguration+--+--         , requestUpdateReplicationConfigurationTemplate $+--             newUpdateReplicationConfigurationTemplate+--+--         , requestUpdateSourceServerReplicationType $+--             newUpdateSourceServerReplicationType+--+--         , requestUpdateWave $+--             newUpdateWave+--+--           ]++--     , testGroup "response"+--         [ responseArchiveApplication $+--             newApplication+--+--         , responseArchiveWave $+--             newWave+--+--         , responseAssociateApplications $+--             newAssociateApplicationsResponse+--+--         , responseAssociateSourceServers $+--             newAssociateSourceServersResponse+--+--         , responseChangeServerLifeCycleState $+--             newSourceServer+--+--         , responseCreateApplication $+--             newApplication+--+--         , responseCreateLaunchConfigurationTemplate $+--             newLaunchConfigurationTemplate+--+--         , responseCreateReplicationConfigurationTemplate $+--             newReplicationConfigurationTemplate+--+--         , responseCreateWave $+--             newWave+--+--         , responseDeleteApplication $+--             newDeleteApplicationResponse+--+--         , responseDeleteJob $+--             newDeleteJobResponse+--+--         , responseDeleteLaunchConfigurationTemplate $+--             newDeleteLaunchConfigurationTemplateResponse+--+--         , responseDeleteReplicationConfigurationTemplate $+--             newDeleteReplicationConfigurationTemplateResponse+--+--         , responseDeleteSourceServer $+--             newDeleteSourceServerResponse+--+--         , responseDeleteVcenterClient $+--             newDeleteVcenterClientResponse+--+--         , responseDeleteWave $+--             newDeleteWaveResponse+--+--         , responseDescribeJobLogItems $+--             newDescribeJobLogItemsResponse+--+--         , responseDescribeJobs $+--             newDescribeJobsResponse+--+--         , responseDescribeLaunchConfigurationTemplates $+--             newDescribeLaunchConfigurationTemplatesResponse+--+--         , responseDescribeReplicationConfigurationTemplates $+--             newDescribeReplicationConfigurationTemplatesResponse+--+--         , responseDescribeSourceServers $+--             newDescribeSourceServersResponse+--+--         , responseDescribeVcenterClients $+--             newDescribeVcenterClientsResponse+--+--         , responseDisassociateApplications $+--             newDisassociateApplicationsResponse+--+--         , responseDisassociateSourceServers $+--             newDisassociateSourceServersResponse+--+--         , responseDisconnectFromService $+--             newSourceServer+--+--         , responseFinalizeCutover $+--             newSourceServer+--+--         , responseGetLaunchConfiguration $+--             newLaunchConfiguration+--+--         , responseGetReplicationConfiguration $+--             newReplicationConfiguration+--+--         , responseInitializeService $+--             newInitializeServiceResponse+--+--         , responseListApplications $+--             newListApplicationsResponse+--+--         , responseListSourceServerActions $+--             newListSourceServerActionsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListTemplateActions $+--             newListTemplateActionsResponse+--+--         , responseListWaves $+--             newListWavesResponse+--+--         , responseMarkAsArchived $+--             newSourceServer+--+--         , responsePutSourceServerAction $+--             newSourceServerActionDocument+--+--         , responsePutTemplateAction $+--             newTemplateActionDocument+--+--         , responseRemoveSourceServerAction $+--             newRemoveSourceServerActionResponse+--+--         , responseRemoveTemplateAction $+--             newRemoveTemplateActionResponse+--+--         , responseRetryDataReplication $+--             newSourceServer+--+--         , responseStartCutover $+--             newStartCutoverResponse+--+--         , responseStartReplication $+--             newSourceServer+--+--         , responseStartTest $+--             newStartTestResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseTerminateTargetInstances $+--             newTerminateTargetInstancesResponse+--+--         , responseUnarchiveApplication $+--             newApplication+--+--         , responseUnarchiveWave $+--             newWave+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateApplication $+--             newApplication+--+--         , responseUpdateLaunchConfiguration $+--             newLaunchConfiguration+--+--         , responseUpdateLaunchConfigurationTemplate $+--             newLaunchConfigurationTemplate+--+--         , responseUpdateReplicationConfiguration $+--             newReplicationConfiguration+--+--         , responseUpdateReplicationConfigurationTemplate $+--             newReplicationConfigurationTemplate+--+--         , responseUpdateSourceServerReplicationType $+--             newSourceServer+--+--         , responseUpdateWave $+--             newWave+--+--           ]+--     ]++-- Requests++requestArchiveApplication :: ArchiveApplication -> TestTree+requestArchiveApplication =+  req+    "ArchiveApplication"+    "fixture/ArchiveApplication.yaml"++requestArchiveWave :: ArchiveWave -> TestTree+requestArchiveWave =+  req+    "ArchiveWave"+    "fixture/ArchiveWave.yaml"++requestAssociateApplications :: AssociateApplications -> TestTree+requestAssociateApplications =+  req+    "AssociateApplications"+    "fixture/AssociateApplications.yaml"++requestAssociateSourceServers :: AssociateSourceServers -> TestTree+requestAssociateSourceServers =+  req+    "AssociateSourceServers"+    "fixture/AssociateSourceServers.yaml"++requestChangeServerLifeCycleState :: ChangeServerLifeCycleState -> TestTree+requestChangeServerLifeCycleState =+  req+    "ChangeServerLifeCycleState"+    "fixture/ChangeServerLifeCycleState.yaml"++requestCreateApplication :: CreateApplication -> TestTree+requestCreateApplication =+  req+    "CreateApplication"+    "fixture/CreateApplication.yaml"++requestCreateLaunchConfigurationTemplate :: CreateLaunchConfigurationTemplate -> TestTree+requestCreateLaunchConfigurationTemplate =+  req+    "CreateLaunchConfigurationTemplate"+    "fixture/CreateLaunchConfigurationTemplate.yaml"++requestCreateReplicationConfigurationTemplate :: CreateReplicationConfigurationTemplate -> TestTree+requestCreateReplicationConfigurationTemplate =+  req+    "CreateReplicationConfigurationTemplate"+    "fixture/CreateReplicationConfigurationTemplate.yaml"++requestCreateWave :: CreateWave -> TestTree+requestCreateWave =+  req+    "CreateWave"+    "fixture/CreateWave.yaml"++requestDeleteApplication :: DeleteApplication -> TestTree+requestDeleteApplication =+  req+    "DeleteApplication"+    "fixture/DeleteApplication.yaml"++requestDeleteJob :: DeleteJob -> TestTree+requestDeleteJob =+  req+    "DeleteJob"+    "fixture/DeleteJob.yaml"++requestDeleteLaunchConfigurationTemplate :: DeleteLaunchConfigurationTemplate -> TestTree+requestDeleteLaunchConfigurationTemplate =+  req+    "DeleteLaunchConfigurationTemplate"+    "fixture/DeleteLaunchConfigurationTemplate.yaml"++requestDeleteReplicationConfigurationTemplate :: DeleteReplicationConfigurationTemplate -> TestTree+requestDeleteReplicationConfigurationTemplate =+  req+    "DeleteReplicationConfigurationTemplate"+    "fixture/DeleteReplicationConfigurationTemplate.yaml"++requestDeleteSourceServer :: DeleteSourceServer -> TestTree+requestDeleteSourceServer =+  req+    "DeleteSourceServer"+    "fixture/DeleteSourceServer.yaml"++requestDeleteVcenterClient :: DeleteVcenterClient -> TestTree+requestDeleteVcenterClient =+  req+    "DeleteVcenterClient"+    "fixture/DeleteVcenterClient.yaml"++requestDeleteWave :: DeleteWave -> TestTree+requestDeleteWave =+  req+    "DeleteWave"+    "fixture/DeleteWave.yaml"++requestDescribeJobLogItems :: DescribeJobLogItems -> TestTree+requestDescribeJobLogItems =+  req+    "DescribeJobLogItems"+    "fixture/DescribeJobLogItems.yaml"++requestDescribeJobs :: DescribeJobs -> TestTree+requestDescribeJobs =+  req+    "DescribeJobs"+    "fixture/DescribeJobs.yaml"++requestDescribeLaunchConfigurationTemplates :: DescribeLaunchConfigurationTemplates -> TestTree+requestDescribeLaunchConfigurationTemplates =+  req+    "DescribeLaunchConfigurationTemplates"+    "fixture/DescribeLaunchConfigurationTemplates.yaml"++requestDescribeReplicationConfigurationTemplates :: DescribeReplicationConfigurationTemplates -> TestTree+requestDescribeReplicationConfigurationTemplates =+  req+    "DescribeReplicationConfigurationTemplates"+    "fixture/DescribeReplicationConfigurationTemplates.yaml"++requestDescribeSourceServers :: DescribeSourceServers -> TestTree+requestDescribeSourceServers =+  req+    "DescribeSourceServers"+    "fixture/DescribeSourceServers.yaml"++requestDescribeVcenterClients :: DescribeVcenterClients -> TestTree+requestDescribeVcenterClients =+  req+    "DescribeVcenterClients"+    "fixture/DescribeVcenterClients.yaml"++requestDisassociateApplications :: DisassociateApplications -> TestTree+requestDisassociateApplications =+  req+    "DisassociateApplications"+    "fixture/DisassociateApplications.yaml"++requestDisassociateSourceServers :: DisassociateSourceServers -> TestTree+requestDisassociateSourceServers =+  req+    "DisassociateSourceServers"+    "fixture/DisassociateSourceServers.yaml"++requestDisconnectFromService :: DisconnectFromService -> TestTree+requestDisconnectFromService =+  req+    "DisconnectFromService"+    "fixture/DisconnectFromService.yaml"++requestFinalizeCutover :: FinalizeCutover -> TestTree+requestFinalizeCutover =+  req+    "FinalizeCutover"+    "fixture/FinalizeCutover.yaml"++requestGetLaunchConfiguration :: GetLaunchConfiguration -> TestTree+requestGetLaunchConfiguration =+  req+    "GetLaunchConfiguration"+    "fixture/GetLaunchConfiguration.yaml"++requestGetReplicationConfiguration :: GetReplicationConfiguration -> TestTree+requestGetReplicationConfiguration =+  req+    "GetReplicationConfiguration"+    "fixture/GetReplicationConfiguration.yaml"++requestInitializeService :: InitializeService -> TestTree+requestInitializeService =+  req+    "InitializeService"+    "fixture/InitializeService.yaml"++requestListApplications :: ListApplications -> TestTree+requestListApplications =+  req+    "ListApplications"+    "fixture/ListApplications.yaml"++requestListSourceServerActions :: ListSourceServerActions -> TestTree+requestListSourceServerActions =+  req+    "ListSourceServerActions"+    "fixture/ListSourceServerActions.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListTemplateActions :: ListTemplateActions -> TestTree+requestListTemplateActions =+  req+    "ListTemplateActions"+    "fixture/ListTemplateActions.yaml"++requestListWaves :: ListWaves -> TestTree+requestListWaves =+  req+    "ListWaves"+    "fixture/ListWaves.yaml"++requestMarkAsArchived :: MarkAsArchived -> TestTree+requestMarkAsArchived =+  req+    "MarkAsArchived"+    "fixture/MarkAsArchived.yaml"++requestPutSourceServerAction :: PutSourceServerAction -> TestTree+requestPutSourceServerAction =+  req+    "PutSourceServerAction"+    "fixture/PutSourceServerAction.yaml"++requestPutTemplateAction :: PutTemplateAction -> TestTree+requestPutTemplateAction =+  req+    "PutTemplateAction"+    "fixture/PutTemplateAction.yaml"++requestRemoveSourceServerAction :: RemoveSourceServerAction -> TestTree+requestRemoveSourceServerAction =+  req+    "RemoveSourceServerAction"+    "fixture/RemoveSourceServerAction.yaml"++requestRemoveTemplateAction :: RemoveTemplateAction -> TestTree+requestRemoveTemplateAction =+  req+    "RemoveTemplateAction"+    "fixture/RemoveTemplateAction.yaml"++requestRetryDataReplication :: RetryDataReplication -> TestTree+requestRetryDataReplication =+  req+    "RetryDataReplication"+    "fixture/RetryDataReplication.yaml"++requestStartCutover :: StartCutover -> TestTree+requestStartCutover =+  req+    "StartCutover"+    "fixture/StartCutover.yaml"++requestStartReplication :: StartReplication -> TestTree+requestStartReplication =+  req+    "StartReplication"+    "fixture/StartReplication.yaml"++requestStartTest :: StartTest -> TestTree+requestStartTest =+  req+    "StartTest"+    "fixture/StartTest.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestTerminateTargetInstances :: TerminateTargetInstances -> TestTree+requestTerminateTargetInstances =+  req+    "TerminateTargetInstances"+    "fixture/TerminateTargetInstances.yaml"++requestUnarchiveApplication :: UnarchiveApplication -> TestTree+requestUnarchiveApplication =+  req+    "UnarchiveApplication"+    "fixture/UnarchiveApplication.yaml"++requestUnarchiveWave :: UnarchiveWave -> TestTree+requestUnarchiveWave =+  req+    "UnarchiveWave"+    "fixture/UnarchiveWave.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateApplication :: UpdateApplication -> TestTree+requestUpdateApplication =+  req+    "UpdateApplication"+    "fixture/UpdateApplication.yaml"++requestUpdateLaunchConfiguration :: UpdateLaunchConfiguration -> TestTree+requestUpdateLaunchConfiguration =+  req+    "UpdateLaunchConfiguration"+    "fixture/UpdateLaunchConfiguration.yaml"++requestUpdateLaunchConfigurationTemplate :: UpdateLaunchConfigurationTemplate -> TestTree+requestUpdateLaunchConfigurationTemplate =+  req+    "UpdateLaunchConfigurationTemplate"+    "fixture/UpdateLaunchConfigurationTemplate.yaml"++requestUpdateReplicationConfiguration :: UpdateReplicationConfiguration -> TestTree+requestUpdateReplicationConfiguration =+  req+    "UpdateReplicationConfiguration"+    "fixture/UpdateReplicationConfiguration.yaml"++requestUpdateReplicationConfigurationTemplate :: UpdateReplicationConfigurationTemplate -> TestTree+requestUpdateReplicationConfigurationTemplate =+  req+    "UpdateReplicationConfigurationTemplate"+    "fixture/UpdateReplicationConfigurationTemplate.yaml"++requestUpdateSourceServerReplicationType :: UpdateSourceServerReplicationType -> TestTree+requestUpdateSourceServerReplicationType =+  req+    "UpdateSourceServerReplicationType"+    "fixture/UpdateSourceServerReplicationType.yaml"++requestUpdateWave :: UpdateWave -> TestTree+requestUpdateWave =+  req+    "UpdateWave"+    "fixture/UpdateWave.yaml"++-- Responses++responseArchiveApplication :: Application -> TestTree+responseArchiveApplication =+  res+    "ArchiveApplicationResponse"+    "fixture/ArchiveApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ArchiveApplication)++responseArchiveWave :: Wave -> TestTree+responseArchiveWave =+  res+    "ArchiveWaveResponse"+    "fixture/ArchiveWaveResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ArchiveWave)++responseAssociateApplications :: AssociateApplicationsResponse -> TestTree+responseAssociateApplications =+  res+    "AssociateApplicationsResponse"+    "fixture/AssociateApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateApplications)++responseAssociateSourceServers :: AssociateSourceServersResponse -> TestTree+responseAssociateSourceServers =+  res+    "AssociateSourceServersResponse"+    "fixture/AssociateSourceServersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateSourceServers)++responseChangeServerLifeCycleState :: SourceServer -> TestTree+responseChangeServerLifeCycleState =+  res+    "ChangeServerLifeCycleStateResponse"+    "fixture/ChangeServerLifeCycleStateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ChangeServerLifeCycleState)++responseCreateApplication :: Application -> TestTree+responseCreateApplication =+  res+    "CreateApplicationResponse"+    "fixture/CreateApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateApplication)++responseCreateLaunchConfigurationTemplate :: LaunchConfigurationTemplate -> TestTree+responseCreateLaunchConfigurationTemplate =+  res+    "CreateLaunchConfigurationTemplateResponse"+    "fixture/CreateLaunchConfigurationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLaunchConfigurationTemplate)++responseCreateReplicationConfigurationTemplate :: ReplicationConfigurationTemplate -> TestTree+responseCreateReplicationConfigurationTemplate =+  res+    "CreateReplicationConfigurationTemplateResponse"+    "fixture/CreateReplicationConfigurationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateReplicationConfigurationTemplate)++responseCreateWave :: Wave -> TestTree+responseCreateWave =+  res+    "CreateWaveResponse"+    "fixture/CreateWaveResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateWave)++responseDeleteApplication :: DeleteApplicationResponse -> TestTree+responseDeleteApplication =+  res+    "DeleteApplicationResponse"+    "fixture/DeleteApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteApplication)++responseDeleteJob :: DeleteJobResponse -> TestTree+responseDeleteJob =+  res+    "DeleteJobResponse"+    "fixture/DeleteJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteJob)++responseDeleteLaunchConfigurationTemplate :: DeleteLaunchConfigurationTemplateResponse -> TestTree+responseDeleteLaunchConfigurationTemplate =+  res+    "DeleteLaunchConfigurationTemplateResponse"+    "fixture/DeleteLaunchConfigurationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteLaunchConfigurationTemplate)++responseDeleteReplicationConfigurationTemplate :: DeleteReplicationConfigurationTemplateResponse -> TestTree+responseDeleteReplicationConfigurationTemplate =+  res+    "DeleteReplicationConfigurationTemplateResponse"+    "fixture/DeleteReplicationConfigurationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteReplicationConfigurationTemplate)++responseDeleteSourceServer :: DeleteSourceServerResponse -> TestTree+responseDeleteSourceServer =+  res+    "DeleteSourceServerResponse"+    "fixture/DeleteSourceServerResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSourceServer)++responseDeleteVcenterClient :: DeleteVcenterClientResponse -> TestTree+responseDeleteVcenterClient =+  res+    "DeleteVcenterClientResponse"+    "fixture/DeleteVcenterClientResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVcenterClient)++responseDeleteWave :: DeleteWaveResponse -> TestTree+responseDeleteWave =+  res+    "DeleteWaveResponse"+    "fixture/DeleteWaveResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteWave)++responseDescribeJobLogItems :: DescribeJobLogItemsResponse -> TestTree+responseDescribeJobLogItems =+  res+    "DescribeJobLogItemsResponse"+    "fixture/DescribeJobLogItemsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeJobLogItems)++responseDescribeJobs :: DescribeJobsResponse -> TestTree+responseDescribeJobs =+  res+    "DescribeJobsResponse"+    "fixture/DescribeJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeJobs)++responseDescribeLaunchConfigurationTemplates :: DescribeLaunchConfigurationTemplatesResponse -> TestTree+responseDescribeLaunchConfigurationTemplates =+  res+    "DescribeLaunchConfigurationTemplatesResponse"+    "fixture/DescribeLaunchConfigurationTemplatesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeLaunchConfigurationTemplates)++responseDescribeReplicationConfigurationTemplates :: DescribeReplicationConfigurationTemplatesResponse -> TestTree+responseDescribeReplicationConfigurationTemplates =+  res+    "DescribeReplicationConfigurationTemplatesResponse"+    "fixture/DescribeReplicationConfigurationTemplatesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeReplicationConfigurationTemplates)++responseDescribeSourceServers :: DescribeSourceServersResponse -> TestTree+responseDescribeSourceServers =+  res+    "DescribeSourceServersResponse"+    "fixture/DescribeSourceServersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSourceServers)++responseDescribeVcenterClients :: DescribeVcenterClientsResponse -> TestTree+responseDescribeVcenterClients =+  res+    "DescribeVcenterClientsResponse"+    "fixture/DescribeVcenterClientsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeVcenterClients)++responseDisassociateApplications :: DisassociateApplicationsResponse -> TestTree+responseDisassociateApplications =+  res+    "DisassociateApplicationsResponse"+    "fixture/DisassociateApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateApplications)++responseDisassociateSourceServers :: DisassociateSourceServersResponse -> TestTree+responseDisassociateSourceServers =+  res+    "DisassociateSourceServersResponse"+    "fixture/DisassociateSourceServersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateSourceServers)++responseDisconnectFromService :: SourceServer -> TestTree+responseDisconnectFromService =+  res+    "DisconnectFromServiceResponse"+    "fixture/DisconnectFromServiceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisconnectFromService)++responseFinalizeCutover :: SourceServer -> TestTree+responseFinalizeCutover =+  res+    "FinalizeCutoverResponse"+    "fixture/FinalizeCutoverResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy FinalizeCutover)++responseGetLaunchConfiguration :: LaunchConfiguration -> TestTree+responseGetLaunchConfiguration =+  res+    "GetLaunchConfigurationResponse"+    "fixture/GetLaunchConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetLaunchConfiguration)++responseGetReplicationConfiguration :: ReplicationConfiguration -> TestTree+responseGetReplicationConfiguration =+  res+    "GetReplicationConfigurationResponse"+    "fixture/GetReplicationConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetReplicationConfiguration)++responseInitializeService :: InitializeServiceResponse -> TestTree+responseInitializeService =+  res+    "InitializeServiceResponse"+    "fixture/InitializeServiceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy InitializeService)++responseListApplications :: ListApplicationsResponse -> TestTree+responseListApplications =+  res+    "ListApplicationsResponse"+    "fixture/ListApplicationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListApplications)++responseListSourceServerActions :: ListSourceServerActionsResponse -> TestTree+responseListSourceServerActions =+  res+    "ListSourceServerActionsResponse"+    "fixture/ListSourceServerActionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSourceServerActions)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListTemplateActions :: ListTemplateActionsResponse -> TestTree+responseListTemplateActions =+  res+    "ListTemplateActionsResponse"+    "fixture/ListTemplateActionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTemplateActions)++responseListWaves :: ListWavesResponse -> TestTree+responseListWaves =+  res+    "ListWavesResponse"+    "fixture/ListWavesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListWaves)++responseMarkAsArchived :: SourceServer -> TestTree+responseMarkAsArchived =+  res+    "MarkAsArchivedResponse"+    "fixture/MarkAsArchivedResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy MarkAsArchived)++responsePutSourceServerAction :: SourceServerActionDocument -> TestTree+responsePutSourceServerAction =+  res+    "PutSourceServerActionResponse"+    "fixture/PutSourceServerActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutSourceServerAction)++responsePutTemplateAction :: TemplateActionDocument -> TestTree+responsePutTemplateAction =+  res+    "PutTemplateActionResponse"+    "fixture/PutTemplateActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutTemplateAction)++responseRemoveSourceServerAction :: RemoveSourceServerActionResponse -> TestTree+responseRemoveSourceServerAction =+  res+    "RemoveSourceServerActionResponse"+    "fixture/RemoveSourceServerActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveSourceServerAction)++responseRemoveTemplateAction :: RemoveTemplateActionResponse -> TestTree+responseRemoveTemplateAction =+  res+    "RemoveTemplateActionResponse"+    "fixture/RemoveTemplateActionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveTemplateAction)++responseRetryDataReplication :: SourceServer -> TestTree+responseRetryDataReplication =+  res+    "RetryDataReplicationResponse"+    "fixture/RetryDataReplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RetryDataReplication)++responseStartCutover :: StartCutoverResponse -> TestTree+responseStartCutover =+  res+    "StartCutoverResponse"+    "fixture/StartCutoverResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartCutover)++responseStartReplication :: SourceServer -> TestTree+responseStartReplication =+  res+    "StartReplicationResponse"+    "fixture/StartReplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartReplication)++responseStartTest :: StartTestResponse -> TestTree+responseStartTest =+  res+    "StartTestResponse"+    "fixture/StartTestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartTest)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseTerminateTargetInstances :: TerminateTargetInstancesResponse -> TestTree+responseTerminateTargetInstances =+  res+    "TerminateTargetInstancesResponse"+    "fixture/TerminateTargetInstancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TerminateTargetInstances)++responseUnarchiveApplication :: Application -> TestTree+responseUnarchiveApplication =+  res+    "UnarchiveApplicationResponse"+    "fixture/UnarchiveApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UnarchiveApplication)++responseUnarchiveWave :: Wave -> TestTree+responseUnarchiveWave =+  res+    "UnarchiveWaveResponse"+    "fixture/UnarchiveWaveResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UnarchiveWave)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateApplication :: Application -> TestTree+responseUpdateApplication =+  res+    "UpdateApplicationResponse"+    "fixture/UpdateApplicationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateApplication)++responseUpdateLaunchConfiguration :: LaunchConfiguration -> TestTree+responseUpdateLaunchConfiguration =+  res+    "UpdateLaunchConfigurationResponse"+    "fixture/UpdateLaunchConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLaunchConfiguration)++responseUpdateLaunchConfigurationTemplate :: LaunchConfigurationTemplate -> TestTree+responseUpdateLaunchConfigurationTemplate =+  res+    "UpdateLaunchConfigurationTemplateResponse"+    "fixture/UpdateLaunchConfigurationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLaunchConfigurationTemplate)++responseUpdateReplicationConfiguration :: ReplicationConfiguration -> TestTree+responseUpdateReplicationConfiguration =+  res+    "UpdateReplicationConfigurationResponse"+    "fixture/UpdateReplicationConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateReplicationConfiguration)++responseUpdateReplicationConfigurationTemplate :: ReplicationConfigurationTemplate -> TestTree+responseUpdateReplicationConfigurationTemplate =+  res+    "UpdateReplicationConfigurationTemplateResponse"+    "fixture/UpdateReplicationConfigurationTemplateResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateReplicationConfigurationTemplate)++responseUpdateSourceServerReplicationType :: SourceServer -> TestTree+responseUpdateSourceServerReplicationType =+  res+    "UpdateSourceServerReplicationTypeResponse"+    "fixture/UpdateSourceServerReplicationTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSourceServerReplicationType)++responseUpdateWave :: Wave -> TestTree+responseUpdateWave =+  res+    "UpdateWaveResponse"+    "fixture/UpdateWaveResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateWave)
+ test/Test/Amazonka/MGN.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.MGN+-- 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.MGN+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/MGN/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.MGN.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.MGN.Internal where